Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
; An Attested CSR EAT is one of two variants:
; - A CSR response, returned for a specific KeyPairID > 0.
; - A keypair-inventory (discovery) response, returned when the
; Requester specifies KeyPairID = 0.
cwt-attested-csr-eat =
cwt-attested-csr-eat-csr /
cwt-attested-csr-eat-inventory

cwt-attested-csr-eat-csr = {
; Issuer claim is StringOrURI (tstr)
&(iss : 1) => tstr
Comment thread
fdamato marked this conversation as resolved.
Outdated

; Nonce claim is nonce-type = bstr .size (8..64)
? &(nonce : 10) => bstr
Comment thread
fdamato marked this conversation as resolved.
Outdated

; Private Claims (they have to be < -65536 for rfc8392)

; CSR bytestring
&(csr: -70001) => bstr

; Attribute List of OIDs
&(attrib: -70002) => [+ $key-attributes-type]
}

; Discovery response payload returned when KeyPairID = 0 in the request.
cwt-attested-csr-eat-inventory = {
&(iss : 1) => tstr
Comment thread
fdamato marked this conversation as resolved.
Outdated

? &(nonce : 10) => bstr
Comment thread
fdamato marked this conversation as resolved.
Outdated

; KeyPair Inventory private claim. Each entry pairs a KeyPairID
; with the list of derivation-attribute OIDs that apply to it.
&(keypair-inventory: -70003) => [+ keypair-inventory-entry]
}

keypair-inventory-entry = [
keypair-id: 1..255,
attributes: [+ $key-attributes-type]
]

$key-attributes-type = tagged-oid-type

signed-cwt = #6.18(COSE-Sign1-attested-csr)

COSE-Sign1-attested-csr = [
protected: bstr .cbor protected-esc-header-map
Comment thread
fdamato marked this conversation as resolved.
Outdated
unprotected: unprotected-esc-header-map
Comment thread
fdamato marked this conversation as resolved.
Outdated
payload: bstr .cbor cwt-attested-csr-eat
signature: bstr
]

protected-esc-header-map {
; Well-defined header fields
&(alg-id: 1) => int
&(content-type: 3) => tstr / int
&(issuer-key-id: 4) => bstr
; User-defined fields
* cose-label => cose-value
Comment thread
fdamato marked this conversation as resolved.
Outdated
}

unprotected-esc-header-map = {
Comment thread
fdamato marked this conversation as resolved.
Outdated
; The Attestation Key's certificate chain is NOT carried here; the
; Requester retrieves it via SPDM GET_CERTIFICATE for the slot
; identified by SignerSlotIDParam.
* cose-label => cose-value
Comment thread
fdamato marked this conversation as resolved.
Outdated
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
; ----------------------------------------------------------------------
; Example: CSR response (returned when the Requester sent
; GET_ATTESTED_CSR with a specific KeyPairID > 0). The payload
; carries the CSR for the selected keypair along with the derivation-
; attribute OIDs that apply to it.
; ----------------------------------------------------------------------

signed-cwt / 18([
/ protected / <<{
/ alg-id / 1 : 7,
/ content-type / 3 : "application/eat+cbor",
; SHA-384 hash of the Attestation Key's certificate chain (same as
; the SPDM DIGEST response) for the slot that produced this signature.
/ kid / 4 : h'1a2b3c4d5e6f70819203a4b5c6d7e8f900112233445566778899aabbccddeeff00112233445566778899aabbccddeeff'
}>>,
/ unprotected / {},
Comment thread
fdamato marked this conversation as resolved.
/ payload / <<{
/ iss / 1 : "RT Alias Key",
Comment thread
fdamato marked this conversation as resolved.
Outdated
/ nonce / 10: h'AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999',
/ csr / -70001 : h'59025630820252308201d9a003020102021431a4e0',
/ attrib / -70002: [
/ tagged-oid-type / 111(h'6086480186F84D010F046301')
]
}>>,
/ signature / h'FA45AAB345AB4988'
])

; ----------------------------------------------------------------------
; Example: discovery response (returned when the Requester sent
; GET_ATTESTED_CSR with KeyPairID = 0). The payload omits the
; CSR/attrib claims and instead carries the KeyPair Inventory claim,
; which enumerates every supported KeyPairID and its derivation OIDs.
; ----------------------------------------------------------------------

signed-cwt / 18([
/ protected / <<{
/ alg-id / 1 : 7,
/ content-type / 3 : "application/eat+cbor",
; SHA-384 hash of the Attestation Key's certificate chain (same as
; the SPDM DIGEST response) for the slot that produced this signature.
/ kid / 4 : h'1a2b3c4d5e6f70819203a4b5c6d7e8f900112233445566778899aabbccddeeff00112233445566778899aabbccddeeff'
}>>,
/ unprotected / {},
Comment thread
fdamato marked this conversation as resolved.
/ payload / <<{
/ iss / 1 : "RT Alias Key",
Comment thread
fdamato marked this conversation as resolved.
Outdated
/ nonce / 10 : h'AAAABBBBCCCCDDDDEEEEFFFF0000111122223333444455556666777788889999',
/ keypair-inventory / -70003 : [
Comment thread
fdamato marked this conversation as resolved.
; KeyPairID 1: IDevID, derived from First Mutable Code
Comment thread
fdamato marked this conversation as resolved.
Outdated
[ 1, [ 111(h'6086480186F84D010F040602') ] ],
; KeyPairID 2: LDevID, derived from Owner Entropy Fuse +
; First Mutable Code
Comment thread
fdamato marked this conversation as resolved.
Outdated
[ 2, [
111(h'6086480186F84D010F040601'),
111(h'6086480186F84D010F040602')
] ],
; KeyPairID 3: Owner-provisioned alias key
Comment thread
fdamato marked this conversation as resolved.
Outdated
[ 3, [ 111(h'6086480186F84D010F040604') ] ]
Comment thread
fdamato marked this conversation as resolved.
Outdated
]
}>>,
/ signature / h'FA45AAB345AB4988'
])

This file was deleted.

Loading