|
CXI
|
Key blobs are encode in a simple, TLV encoded key blob format.
Key blobs are encode in a simple, TLV encoded key blob format.
Each item is encoded as follows:
| Tag | Lengh | Value |
|---|---|---|
| 2 bytes | 4 bytes | Length bytes |
Items can also encapsulate other items.
Currently two types of key blobs are defined:
A Simple Blob is encoded as follows:
| Simple Blob | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| "KB" | length(KB) | Blob Header | Key Components | ||||||
| "BH" | length(BH) | Property List | "KC" | length(KC) | Components | ||||
| "PL" | length(PL) | Properties | |||||||
RSA key blobs may contain the following key component items:
Item
Tag
Public Exponent
"PE"
Modulus
"MO"
Secret (Private) Exponent
"SE"
Prime P
"P "
Prime Q
"Q "
U := Q^-1 mod P
"U "
dP := D mod P-1
"DP"
dQ := D mod Q-1
"DQ"
ECDSA key blobs may contain the following key component items:
| Item | Tag |
|---|---|
| Public Key | "PK" |
| Secret (Private) Key | "SK" |
On DES or AES key blobs the key components directly contain the key value.
A Backup Blob is encoded as follows:
| Backup Blob | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| "PL" | length(PL) | Properties | "PK" | length(PK) | Public Key | "SK" | length(SK) | Secret (Private) Key | "CV" | length(CV) | Check Value |