Firmware Key and Signature Formats

From OLPC
Revision as of 18:19, 23 August 2007 by CScott (talk | contribs) (Initial import of Noah's email.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Key

=

key01 alg datalen data\n

3 2 1 3 1   3   1  N  1

So thats:

* the literal string "key"
* the two digit version number ("01" for now)
* a space
* the three character algorithm name (for now this will always be

"rsa")

* a space
* the three digit length for the key data
* a space
* the key data as a hex-encoded string
* a newline

Signature

=

sig01 timestamp keyid datalen data\n

3 2 1    12   1  64 1   3   1  N  1

So thats:

* the literal string "sig"
* the two digit version number ("01" for now)
* a space
* the 12 character timestamp (ex., "200708161735" -> 2007-07-08

16:17:35)

* a space
* the 64 character key ID, as a hex-encoded SHA256 hash of the key

file (for the immediate future you can ignore this in the firmware, and just use a single key for each task.)

* a space
* the three digit length for the signature data
* a space
* the signature data as a hex-encoded string
* a newline