KeyHashEx format

This section defines the wire format for M_KeyHashEx and its descendant types.

In a key attestation bundle as described in Key attestation bundle construction, the following fields will use this format:

  • hkre

  • hkra

  • hkfips

  • hkmc

  • hkm

M_KeyHashEx

This represents a structure with the following fields:

Field Size Format

mech

4 bytes

Little-endian unsigned integer. See M_KeyHashMech

data

variable

Depends on field mech. See below.

M_KeyHashEx.data representations

This depends on the value of the mech field, as follows:

Name of mech Value of mech Format of data

KeyHashMech_SHA1Hash

44

M_KeyHashMech_SHA1Hash_KeyHashData

KeyHashMech_SHA256Hash

93

M_KeyHashMech_SHA256Hash_KeyHashData

KeyHashMech_SHA512Hash

95

M_KeyHashMech_SHA512Hash_KeyHashData

Any supported values of mech not present in the table correspond to an empty (zero-length) data field.

M_KeyHashMech

An enumeration type, represented as a 4-byte little-endian unsigned integer. Possible values include:

Value Name

44

KeyHashMech_SHA1Hash

93

KeyHashMech_SHA256Hash

95

KeyHashMech_SHA512Hash

M_KeyHashMech_SHA1Hash_KeyHashData

This represents a structure with the following fields:

Field Size Format

hash

variable

See M_Hash

M_KeyHashMech_SHA256Hash_KeyHashData

This represents a structure with the following fields:

Field Size Format

hash

variable

See M_Hash32

M_KeyHashMech_SHA512Hash_KeyHashData

This represents a structure with the following fields:

Field Size Format

hash

variable

See M_Hash64