diff --git a/MdePkg/Include/IndustryStandard/Spdm.h b/MdePkg/Include/IndustryStandard/Spdm.h
index b7323900573..690f8bbc971 100644
--- a/MdePkg/Include/IndustryStandard/Spdm.h
+++ b/MdePkg/Include/IndustryStandard/Spdm.h
@@ -2,7 +2,7 @@
Definitions of DSP0274 Security Protocol & Data Model Specification (SPDM)
version 1.1.0 in Distributed Management Task Force (DMTF).
-Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved.
+Copyright (c) 2019 - 2024, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -19,46 +19,46 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
///
/// SPDM response code (1.0)
///
-#define SPDM_DIGESTS 0x01
-#define SPDM_CERTIFICATE 0x02
-#define SPDM_CHALLENGE_AUTH 0x03
-#define SPDM_VERSION 0x04
-#define SPDM_MEASUREMENTS 0x60
-#define SPDM_CAPABILITIES 0x61
-#define SPDM_ALGORITHMS 0x63
-#define SPDM_VENDOR_DEFINED_RESPONSE 0x7E
-#define SPDM_ERROR 0x7F
+#define SPDM_DIGESTS 0x01
+#define SPDM_CERTIFICATE 0x02
+#define SPDM_CHALLENGE_AUTH 0x03
+#define SPDM_VERSION 0x04
+#define SPDM_MEASUREMENTS 0x60
+#define SPDM_CAPABILITIES 0x61
+#define SPDM_ALGORITHMS 0x63
+#define SPDM_VENDOR_DEFINED_RESPONSE 0x7E
+#define SPDM_ERROR 0x7F
///
/// SPDM response code (1.1)
///
-#define SPDM_KEY_EXCHANGE_RSP 0x64
-#define SPDM_FINISH_RSP 0x65
-#define SPDM_PSK_EXCHANGE_RSP 0x66
-#define SPDM_PSK_FINISH_RSP 0x67
-#define SPDM_HEARTBEAT_ACK 0x68
-#define SPDM_KEY_UPDATE_ACK 0x69
-#define SPDM_ENCAPSULATED_REQUEST 0x6A
-#define SPDM_ENCAPSULATED_RESPONSE_ACK 0x6B
-#define SPDM_END_SESSION_ACK 0x6C
+#define SPDM_KEY_EXCHANGE_RSP 0x64
+#define SPDM_FINISH_RSP 0x65
+#define SPDM_PSK_EXCHANGE_RSP 0x66
+#define SPDM_PSK_FINISH_RSP 0x67
+#define SPDM_HEARTBEAT_ACK 0x68
+#define SPDM_KEY_UPDATE_ACK 0x69
+#define SPDM_ENCAPSULATED_REQUEST 0x6A
+#define SPDM_ENCAPSULATED_RESPONSE_ACK 0x6B
+#define SPDM_END_SESSION_ACK 0x6C
///
/// SPDM response code (1.2)
///
-#define SPDM_CSR 0x6D
-#define SPDM_SET_CERTIFICATE_RSP 0x6E
-#define SPDM_CHUNK_SEND_ACK 0x05
-#define SPDM_CHUNK_RESPONSE 0x06
+#define SPDM_CSR 0x6D
+#define SPDM_SET_CERTIFICATE_RSP 0x6E
+#define SPDM_CHUNK_SEND_ACK 0x05
+#define SPDM_CHUNK_RESPONSE 0x06
///
/// SPDM request code (1.0)
///
-#define SPDM_GET_DIGESTS 0x81
-#define SPDM_GET_CERTIFICATE 0x82
-#define SPDM_CHALLENGE 0x83
-#define SPDM_GET_VERSION 0x84
-#define SPDM_GET_MEASUREMENTS 0xE0
-#define SPDM_GET_CAPABILITIES 0xE1
-#define SPDM_NEGOTIATE_ALGORITHMS 0xE3
-#define SPDM_VENDOR_DEFINED_REQUEST 0xFE
-#define SPDM_RESPOND_IF_READY 0xFF
+#define SPDM_GET_DIGESTS 0x81
+#define SPDM_GET_CERTIFICATE 0x82
+#define SPDM_CHALLENGE 0x83
+#define SPDM_GET_VERSION 0x84
+#define SPDM_GET_MEASUREMENTS 0xE0
+#define SPDM_GET_CAPABILITIES 0xE1
+#define SPDM_NEGOTIATE_ALGORITHMS 0xE3
+#define SPDM_VENDOR_DEFINED_REQUEST 0xFE
+#define SPDM_RESPOND_IF_READY 0xFF
///
/// SPDM request code (1.1)
///
@@ -98,7 +98,7 @@ typedef struct {
/// SPDM GET_VERSION request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == RSVD
} SPDM_GET_VERSION_REQUEST;
@@ -107,12 +107,12 @@ typedef struct {
/// SPDM GET_VERSION response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == RSVD
- UINT8 Reserved;
- UINT8 VersionNumberEntryCount;
-//SPDM_VERSION_NUMBER VersionNumberEntry[VersionNumberEntryCount];
+ UINT8 Reserved;
+ UINT8 VersionNumberEntryCount;
+ // SPDM_VERSION_NUMBER VersionNumberEntry[VersionNumberEntryCount];
} SPDM_VERSION_RESPONSE;
///
@@ -133,7 +133,7 @@ typedef UINT16 SPDM_VERSION_NUMBER;
/// SPDM GET_CAPABILITIES request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == RSVD
// Below field is added in 1.1.
@@ -141,7 +141,7 @@ typedef struct {
UINT8 CTExponent;
UINT16 Reserved2;
UINT32 Flags;
- //Below field is added in 1.2.
+ // Below field is added in 1.2.
UINT32 DataTransferSize;
UINT32 MaxSpdmMsgSize;
} SPDM_GET_CAPABILITIES_REQUEST;
@@ -167,19 +167,19 @@ typedef struct {
///
/// SPDM GET_CAPABILITIES request Flags (1.1)
///
-#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CERT_CAP BIT1
-#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CHAL_CAP BIT2
-#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_ENCRYPT_CAP BIT6
-#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_MAC_CAP BIT7
-#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_MUT_AUTH_CAP BIT8
-#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_KEY_EX_CAP BIT9
-#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_PSK_CAP (BIT10 | BIT11)
-#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_PSK_CAP_REQUESTER BIT10
-#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_ENCAP_CAP BIT12
-#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_HBEAT_CAP BIT13
-#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_KEY_UPD_CAP BIT14
-#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_HANDSHAKE_IN_THE_CLEAR_CAP BIT15
-#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_PUB_KEY_ID_CAP BIT16
+#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CERT_CAP BIT1
+#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CHAL_CAP BIT2
+#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_ENCRYPT_CAP BIT6
+#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_MAC_CAP BIT7
+#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_MUT_AUTH_CAP BIT8
+#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_KEY_EX_CAP BIT9
+#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_PSK_CAP (BIT10 | BIT11)
+#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_PSK_CAP_REQUESTER BIT10
+#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_ENCAP_CAP BIT12
+#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_HBEAT_CAP BIT13
+#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_KEY_UPD_CAP BIT14
+#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_HANDSHAKE_IN_THE_CLEAR_CAP BIT15
+#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_PUB_KEY_ID_CAP BIT16
#define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_11_MASK (\
SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CERT_CAP | \
SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CHAL_CAP | \
@@ -204,13 +204,13 @@ typedef struct {
///
/// SPDM GET_CAPABILITIES response Flags (1.0)
///
-#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CACHE_CAP BIT0
-#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CERT_CAP BIT1
-#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CHAL_CAP BIT2
-#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MEAS_CAP (BIT3 | BIT4)
-#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MEAS_CAP_NO_SIG BIT3
-#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MEAS_CAP_SIG BIT4
-#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MEAS_FRESH_CAP BIT5
+#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CACHE_CAP BIT0
+#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CERT_CAP BIT1
+#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CHAL_CAP BIT2
+#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MEAS_CAP (BIT3 | BIT4)
+#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MEAS_CAP_NO_SIG BIT3
+#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MEAS_CAP_SIG BIT4
+#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MEAS_FRESH_CAP BIT5
#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_10_MASK (\
SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CACHE_CAP | \
SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CERT_CAP | \
@@ -225,8 +225,8 @@ typedef struct {
#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MUT_AUTH_CAP BIT8
#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_KEY_EX_CAP BIT9
#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_PSK_CAP (BIT10 | BIT11)
-#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_PSK_CAP_RESPONDER BIT10
-#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_PSK_CAP_RESPONDER_WITH_CONTEXT BIT11
+#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_PSK_CAP_RESPONDER BIT10
+#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_PSK_CAP_RESPONDER_WITH_CONTEXT BIT11
#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_ENCAP_CAP BIT12
#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_HBEAT_CAP BIT13
#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_KEY_UPD_CAP BIT14
@@ -297,18 +297,18 @@ typedef struct {
#define SPDM_NEGOTIATE_ALGORITHMS_REQUEST_MAX_EXT_ALG_COUNT_VERSION_12 (BIT4 | BIT2)
typedef struct {
- UINT8 AlgType;
- UINT8 AlgCount; // BIT[0:3]=ExtAlgCount, BIT[4:7]=FixedAlgByteCount
-//UINT8 AlgSupported[FixedAlgByteCount];
-//UINT32 AlgExternal[ExtAlgCount];
+ UINT8 AlgType;
+ UINT8 AlgCount; // BIT[0:3]=ExtAlgCount, BIT[4:7]=FixedAlgByteCount
+ // UINT8 AlgSupported[FixedAlgByteCount];
+ // UINT32 AlgExternal[ExtAlgCount];
} SPDM_NEGOTIATE_ALGORITHMS_STRUCT_TABLE;
typedef struct {
- UINT8 ExtAlgCount:4;
- UINT8 FixedAlgByteCount:4;
+ UINT8 ExtAlgCount : 4;
+ UINT8 FixedAlgByteCount : 4;
} SPDM_NEGOTIATE_ALGORITHMS_STRUCT_TABLE_ALG_COUNT;
-#define SPDM_NEGOTIATE_ALGORITHMS_MAX_NUM_STRUCT_TABLE_ALG 4
+#define SPDM_NEGOTIATE_ALGORITHMS_MAX_NUM_STRUCT_TABLE_ALG 4
#define SPDM_NEGOTIATE_ALGORITHMS_STRUCT_TABLE_ALG_TYPE_DHE 2
#define SPDM_NEGOTIATE_ALGORITHMS_STRUCT_TABLE_ALG_TYPE_AEAD 3
@@ -316,9 +316,9 @@ typedef struct {
#define SPDM_NEGOTIATE_ALGORITHMS_STRUCT_TABLE_ALG_TYPE_KEY_SCHEDULE 5
typedef struct {
- UINT8 AlgType;
- UINT8 AlgCount;
- UINT16 AlgSupported;
+ UINT8 AlgType;
+ UINT8 AlgCount;
+ UINT16 AlgSupported;
} SPDM_NEGOTIATE_ALGORITHMS_COMMON_STRUCT_TABLE;
///
@@ -337,9 +337,9 @@ typedef struct {
///
/// SPDM NEGOTIATE_ALGORITHMS request base_asym_algo/REQ_BASE_ASYM_ALG (1.2)
///
-#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_SM2_ECC_SM2_P256 BIT9
-#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_EDDSA_ED25519 BIT10
-#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_EDDSA_ED448 BIT11
+#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_SM2_ECC_SM2_P256 BIT9
+#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_EDDSA_ED25519 BIT10
+#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_EDDSA_ED448 BIT11
///
/// SPDM NEGOTIATE_ALGORITHMS request BaseHashAlgo
@@ -354,38 +354,38 @@ typedef struct {
///
/// SPDM NEGOTIATE_ALGORITHMS request base_hash_algo (1.2)
///
-#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SM3_256 BIT6
+#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SM3_256 BIT6
///
/// SPDM NEGOTIATE_ALGORITHMS request DHE
///
-#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_2048 BIT0
-#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_3072 BIT1
-#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_4096 BIT2
-#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_256_R1 BIT3
-#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_384_R1 BIT4
-#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_521_R1 BIT5
+#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_2048 BIT0
+#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_3072 BIT1
+#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_4096 BIT2
+#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_256_R1 BIT3
+#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_384_R1 BIT4
+#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_521_R1 BIT5
///
/// SPDM NEGOTIATE_ALGORITHMS request DHE (1.2)
///
-#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_SM2_P256 BIT6
+#define SPDM_ALGORITHMS_DHE_NAMED_GROUP_SM2_P256 BIT6
///
/// SPDM NEGOTIATE_ALGORITHMS request AEAD
///
-#define SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AES_128_GCM BIT0
-#define SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AES_256_GCM BIT1
-#define SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_CHACHA20_POLY1305 BIT2
+#define SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AES_128_GCM BIT0
+#define SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AES_256_GCM BIT1
+#define SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_CHACHA20_POLY1305 BIT2
///
/// SPDM NEGOTIATE_ALGORITHMS request AEAD (1.2)
///
-#define SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AEAD_SM4_GCM BIT3
+#define SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AEAD_SM4_GCM BIT3
///
/// SPDM NEGOTIATE_ALGORITHMS request KEY_SCHEDULE
///
-#define SPDM_ALGORITHMS_KEY_SCHEDULE_HMAC_HASH BIT0
+#define SPDM_ALGORITHMS_KEY_SCHEDULE_HMAC_HASH BIT0
///
/// SPDM NEGOTIATE_ALGORITHMS response
@@ -428,7 +428,7 @@ typedef struct {
///
/// SPDM NEGOTIATE_ALGORITHMS response measurement_hash_algo (1.2)
///
-#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SM3_256 BIT7
+#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SM3_256 BIT7
///
/// SPDM Opaque Data Format (1.2)
@@ -451,29 +451,29 @@ typedef struct {
/// SPDM extended algorithm
///
typedef struct {
- UINT8 RegistryID;
- UINT8 Reserved;
- UINT16 AlgorithmID;
+ UINT8 RegistryID;
+ UINT8 Reserved;
+ UINT16 AlgorithmID;
} SPDM_EXTENDED_ALGORITHM;
///
/// SPDM RegistryID
///
-#define SPDM_REGISTRY_ID_DMTF 0
-#define SPDM_REGISTRY_ID_TCG 1
-#define SPDM_REGISTRY_ID_USB 2
-#define SPDM_REGISTRY_ID_PCISIG 3
-#define SPDM_REGISTRY_ID_IANA 4
-#define SPDM_REGISTRY_ID_HDBASET 5
-#define SPDM_REGISTRY_ID_MIPI 6
-#define SPDM_REGISTRY_ID_CXL 7
-#define SPDM_REGISTRY_ID_JEDEC 8
+#define SPDM_REGISTRY_ID_DMTF 0
+#define SPDM_REGISTRY_ID_TCG 1
+#define SPDM_REGISTRY_ID_USB 2
+#define SPDM_REGISTRY_ID_PCISIG 3
+#define SPDM_REGISTRY_ID_IANA 4
+#define SPDM_REGISTRY_ID_HDBASET 5
+#define SPDM_REGISTRY_ID_MIPI 6
+#define SPDM_REGISTRY_ID_CXL 7
+#define SPDM_REGISTRY_ID_JEDEC 8
///
/// SPDM GET_DIGESTS request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == RSVD
} SPDM_GET_DIGESTS_REQUEST;
@@ -482,21 +482,21 @@ typedef struct {
/// SPDM GET_DIGESTS response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == SlotMask
-//UINT8 Digest[DigestSize][SlotCount];
+ // UINT8 Digest[DigestSize][SlotCount];
} SPDM_DIGESTS_RESPONSE;
///
/// SPDM GET_CERTIFICATE request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == SlotNum
// Param2 == RSVD
- UINT16 Offset;
- UINT16 Length;
+ UINT16 Offset;
+ UINT16 Length;
} SPDM_GET_CERTIFICATE_REQUEST;
#define SPDM_GET_CERTIFICATE_REQUEST_SLOT_ID_MASK 0xF
@@ -504,12 +504,12 @@ typedef struct {
/// SPDM GET_CERTIFICATE response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == SlotNum
// Param2 == RSVD
- UINT16 PortionLength;
- UINT16 RemainderLength;
-//UINT8 CertChain[PortionLength];
+ UINT16 PortionLength;
+ UINT16 RemainderLength;
+ // UINT8 CertChain[PortionLength];
} SPDM_CERTIFICATE_RESPONSE;
#define SPDM_CERTIFICATE_RESPONSE_SLOT_ID_MASK 0xF
@@ -519,20 +519,20 @@ typedef struct {
// Total length of the certificate chain, in bytes,
// including all fields in this table.
//
- UINT16 Length;
- UINT16 Reserved;
+ UINT16 Length;
+ UINT16 Reserved;
//
// Digest of the Root Certificate.
// Note that Root Certificate is ASN.1 DER-encoded for this digest.
// The hash size is determined by the SPDM device.
//
-//UINT8 RootHash[HashSize];
+ // UINT8 RootHash[HashSize];
//
// One or more ASN.1 DER-encoded X509v3 certificates where the first certificate is signed by the Root
// Certificate or is the Root Certificate itself and each subsequent certificate is signed by the preceding
// certificate. The last certificate is the Leaf Certificate.
//
-//UINT8 Certificates[Length - 4 - HashSize];
+ // UINT8 Certificates[Length - 4 - HashSize];
} SPDM_CERT_CHAIN;
///
@@ -543,25 +543,25 @@ typedef struct {
/// SPDM CHALLENGE request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == SlotNum
// Param2 == HashType
- UINT8 Nonce[32];
+ UINT8 Nonce[32];
} SPDM_CHALLENGE_REQUEST;
///
/// SPDM CHALLENGE response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == ResponseAttribute
// Param2 == SlotMask
-//UINT8 CertChainHash[DigestSize];
-//UINT8 Nonce[32];
-//UINT8 MeasurementSummaryHash[DigestSize];
-//UINT16 OpaqueLength;
-//UINT8 OpaqueData[OpaqueLength];
-//UINT8 Signature[KeySize];
+ // UINT8 CertChainHash[DigestSize];
+ // UINT8 Nonce[32];
+ // UINT8 MeasurementSummaryHash[DigestSize];
+ // UINT16 OpaqueLength;
+ // UINT8 OpaqueData[OpaqueLength];
+ // UINT8 Signature[KeySize];
} SPDM_CHALLENGE_AUTH_RESPONSE;
///
@@ -582,9 +582,9 @@ typedef struct {
#define SPDM_CHALLENGE_AUTH_RESPONSE_ATTRIBUTE_SLOT_ID_MASK 0xF
typedef struct {
- UINT8 SlotNum:4;
- UINT8 Reserved:3;
- UINT8 BasicMutAuthReq:1;
+ UINT8 SlotNum : 4;
+ UINT8 Reserved : 3;
+ UINT8 BasicMutAuthReq : 1;
} SPDM_CHALLENGE_AUTH_RESPONSE_ATTRIBUTE;
///
@@ -601,17 +601,17 @@ typedef struct {
/// SPDM GET_MEASUREMENTS request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == Attributes
// Param2 == MeasurementOperation
- UINT8 Nonce[32];
+ UINT8 Nonce[32];
// Below field is added in 1.1.
- UINT8 SlotIDParam; // BIT[0:3]=SlotNum, BIT[4:7]=Reserved
+ UINT8 SlotIDParam; // BIT[0:3]=SlotNum, BIT[4:7]=Reserved
} SPDM_GET_MEASUREMENTS_REQUEST;
typedef struct {
- UINT8 SlotNum:4;
- UINT8 Reserved:4;
+ UINT8 SlotNum : 4;
+ UINT8 Reserved : 4;
} SPDM_GET_MEASUREMENTS_REQUEST_SLOT_ID_PARAMETER;
#define SPDM_GET_MEASUREMENTS_REQUEST_SLOT_ID_MASK 0xF
@@ -655,14 +655,14 @@ typedef struct {
} SPDM_MEASUREMENT_BLOCK_DMTF_HEADER;
typedef struct {
- SPDM_MEASUREMENT_BLOCK_COMMON_HEADER MeasurementBlockCommonHeader;
- SPDM_MEASUREMENT_BLOCK_DMTF_HEADER MeasurementBlockDmtfHeader;
-//UINT8 HashValue[HashSize];
+ SPDM_MEASUREMENT_BLOCK_COMMON_HEADER MeasurementBlockCommonHeader;
+ SPDM_MEASUREMENT_BLOCK_DMTF_HEADER MeasurementBlockDmtfHeader;
+ // UINT8 HashValue[HashSize];
} SPDM_MEASUREMENT_BLOCK_DMTF;
typedef struct {
- UINT8 Content:7;
- UINT8 Presentation:1;
+ UINT8 Content : 7;
+ UINT8 Presentation : 1;
} SPDM_MEASUREMENTS_BLOCK_MEASUREMENT_TYPE;
///
@@ -711,22 +711,22 @@ typedef struct {
///
/// SPDM MEASUREMENTS SVN
///
-typedef UINT64 SPDM_MEASUREMENTS_SECURE_VERSION_NUMBER;
+typedef UINT64 SPDM_MEASUREMENTS_SECURE_VERSION_NUMBER;
///
/// SPDM GET_MEASUREMENTS response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == TotalNumberOfMeasurement/RSVD
// Param2 == SlotNum
- UINT8 NumberOfBlocks;
- UINT8 MeasurementRecordLength[3];
-//UINT8 MeasurementRecord[MeasurementRecordLength];
-//UINT8 Nonce[32];
-//UINT16 OpaqueLength;
-//UINT8 OpaqueData[OpaqueLength];
-//UINT8 Signature[KeySize];
+ UINT8 NumberOfBlocks;
+ UINT8 MeasurementRecordLength[3];
+ // UINT8 MeasurementRecord[MeasurementRecordLength];
+ // UINT8 Nonce[32];
+ // UINT16 OpaqueLength;
+ // UINT8 OpaqueData[OpaqueLength];
+ // UINT8 Signature[KeySize];
} SPDM_MEASUREMENTS_RESPONSE;
#define SPDM_MEASUREMENTS_RESPONSE_SLOT_ID_MASK 0xF
@@ -759,15 +759,15 @@ typedef struct {
///
/// SPDM error code
///
-#define SPDM_ERROR_CODE_INVALID_REQUEST 0x01
-#define SPDM_ERROR_CODE_BUSY 0x03
-#define SPDM_ERROR_CODE_UNEXPECTED_REQUEST 0x04
-#define SPDM_ERROR_CODE_UNSPECIFIED 0x05
-#define SPDM_ERROR_CODE_UNSUPPORTED_REQUEST 0x07
-#define SPDM_ERROR_CODE_VERSION_MISMATCH 0x41
-#define SPDM_ERROR_CODE_RESPONSE_NOT_READY 0x42
-#define SPDM_ERROR_CODE_REQUEST_RESYNCH 0x43
-#define SPDM_ERROR_CODE_VENDOR_DEFINED 0xFF
+#define SPDM_ERROR_CODE_INVALID_REQUEST 0x01
+#define SPDM_ERROR_CODE_BUSY 0x03
+#define SPDM_ERROR_CODE_UNEXPECTED_REQUEST 0x04
+#define SPDM_ERROR_CODE_UNSPECIFIED 0x05
+#define SPDM_ERROR_CODE_UNSUPPORTED_REQUEST 0x07
+#define SPDM_ERROR_CODE_VERSION_MISMATCH 0x41
+#define SPDM_ERROR_CODE_RESPONSE_NOT_READY 0x42
+#define SPDM_ERROR_CODE_REQUEST_RESYNCH 0x43
+#define SPDM_ERROR_CODE_VENDOR_DEFINED 0xFF
///
/// SPDM error code (1.1)
///
@@ -789,17 +789,17 @@ typedef struct {
/// SPDM ResponseNotReady extended data
///
typedef struct {
- UINT8 RDTExponent;
- UINT8 RequestCode;
- UINT8 Token;
- UINT8 RDTM;
+ UINT8 RDTExponent;
+ UINT8 RequestCode;
+ UINT8 Token;
+ UINT8 RDTM;
} SPDM_ERROR_DATA_RESPONSE_NOT_READY;
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == Error Code
// Param2 == Error Data
- SPDM_ERROR_DATA_RESPONSE_NOT_READY ExtendErrorData;
+ SPDM_ERROR_DATA_RESPONSE_NOT_READY ExtendErrorData;
} SPDM_ERROR_RESPONSE_DATA_RESPONSE_NOT_READY;
///
@@ -810,7 +810,7 @@ typedef struct {
} SPDM_ERROR_DATA_LARGE_RESPONSE;
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// param1 == Error Code
// param2 == Error data
@@ -843,28 +843,28 @@ typedef struct {
/// SPDM VENDOR_DEFINED request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == RSVD
- UINT16 StandardID;
- UINT8 Len;
-//UINT8 VendorID[Len];
-//UINT16 PayloadLength;
-//UINT8 VendorDefinedPayload[PayloadLength];
+ UINT16 StandardID;
+ UINT8 Len;
+ // UINT8 VendorID[Len];
+ // UINT16 PayloadLength;
+ // UINT8 VendorDefinedPayload[PayloadLength];
} SPDM_VENDOR_DEFINED_REQUEST_MSG;
///
/// SPDM VENDOR_DEFINED response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == RSVD
- UINT16 StandardID;
- UINT8 Len;
-//UINT8 VendorID[Len];
-//UINT16 PayloadLength;
-//UINT8 VendorDefinedPayload[PayloadLength];
+ UINT16 StandardID;
+ UINT8 Len;
+ // UINT8 VendorID[Len];
+ // UINT16 PayloadLength;
+ // UINT8 VendorDefinedPayload[PayloadLength];
} SPDM_VENDOR_DEFINED_RESPONSE_MSG;
//
@@ -875,15 +875,15 @@ typedef struct {
/// SPDM KEY_EXCHANGE request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == HashType
// Param2 == SlotNum
- UINT16 ReqSessionID;
- UINT16 Reserved;
- UINT8 RandomData[32];
-//UINT8 ExchangeData[D];
-//UINT16 OpaqueLength;
-//UINT8 OpaqueData[OpaqueLength];
+ UINT16 ReqSessionID;
+ UINT16 Reserved;
+ UINT8 RandomData[32];
+ // UINT8 ExchangeData[D];
+ // UINT16 OpaqueLength;
+ // UINT8 OpaqueData[OpaqueLength];
} SPDM_KEY_EXCHANGE_REQUEST;
///
@@ -904,19 +904,19 @@ typedef struct {
/// SPDM KEY_EXCHANGE response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == HeartbeatPeriod
// Param2 == RSVD
- UINT16 RspSessionID;
- UINT8 MutAuthRequested;
- UINT8 ReqSlotIDParam;
- UINT8 RandomData[32];
-//UINT8 ExchangeData[D];
-//UINT8 MeasurementSummaryHash[DigestSize];
-//UINT16 OpaqueLength;
-//UINT8 OpaqueData[OpaqueLength];
-//UINT8 Signature[S];
-//UINT8 ResponderVerifyData[H];
+ UINT16 RspSessionID;
+ UINT8 MutAuthRequested;
+ UINT8 ReqSlotIDParam;
+ UINT8 RandomData[32];
+ // UINT8 ExchangeData[D];
+ // UINT8 MeasurementSummaryHash[DigestSize];
+ // UINT16 OpaqueLength;
+ // UINT8 OpaqueData[OpaqueLength];
+ // UINT8 Signature[S];
+ // UINT8 ResponderVerifyData[H];
} SPDM_KEY_EXCHANGE_RESPONSE;
///
@@ -942,26 +942,26 @@ typedef struct {
/// SPDM FINISH request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == SignatureIncluded
// Param2 == ReqSlotNum
-//UINT8 Signature[S];
-//UINT8 RequesterVerifyData[H];
+ // UINT8 Signature[S];
+ // UINT8 RequesterVerifyData[H];
} SPDM_FINISH_REQUEST;
///
/// SPDM FINISH request SignatureIncluded
///
-#define SPDM_FINISH_REQUEST_ATTRIBUTES_SIGNATURE_INCLUDED BIT0
+#define SPDM_FINISH_REQUEST_ATTRIBUTES_SIGNATURE_INCLUDED BIT0
///
/// SPDM FINISH response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == RSVD
-//UINT8 ResponderVerifyData[H];
+ // UINT8 ResponderVerifyData[H];
} SPDM_FINISH_RESPONSE;
#define SPDM_FINISH_SIGN_CONTEXT "requester-finish signing"
@@ -971,16 +971,16 @@ typedef struct {
/// SPDM PSK_EXCHANGE request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == HashType
// Param2 == RSVD/session_policy (1.2)
- UINT16 ReqSessionID;
- UINT16 PSKHintLength;
- UINT16 RequesterContextLength;
- UINT16 OpaqueLength;
-//UINT8 PSKHint[PSKHintLength];
-//UINT8 RequesterContext[RequesterContextLength];
-//UINT8 OpaqueData[OpaqueLength];
+ UINT16 ReqSessionID;
+ UINT16 PSKHintLength;
+ UINT16 RequesterContextLength;
+ UINT16 OpaqueLength;
+ // UINT8 PSKHint[PSKHintLength];
+ // UINT8 RequesterContext[RequesterContextLength];
+ // UINT8 OpaqueData[OpaqueLength];
} SPDM_PSK_EXCHANGE_REQUEST;
///
@@ -996,34 +996,34 @@ typedef struct {
/// SPDM PSK_EXCHANGE response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == HeartbeatPeriod
// Param2 == RSVD
- UINT16 RspSessionID;
- UINT16 Reserved;
- UINT16 ResponderContextLength;
- UINT16 OpaqueLength;
-//UINT8 MeasurementSummaryHash[DigestSize];
-//UINT8 ResponderContext[ResponderContextLength];
-//UINT8 OpaqueData[OpaqueLength];
-//UINT8 ResponderVerifyData[H];
+ UINT16 RspSessionID;
+ UINT16 Reserved;
+ UINT16 ResponderContextLength;
+ UINT16 OpaqueLength;
+ // UINT8 MeasurementSummaryHash[DigestSize];
+ // UINT8 ResponderContext[ResponderContextLength];
+ // UINT8 OpaqueData[OpaqueLength];
+ // UINT8 ResponderVerifyData[H];
} SPDM_PSK_EXCHANGE_RESPONSE;
///
/// SPDM PSK_FINISH request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == RSVD
-//UINT8 RequesterVerifyData[H];
+ // UINT8 RequesterVerifyData[H];
} SPDM_PSK_FINISH_REQUEST;
///
/// SPDM PSK_FINISH response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == RSVD
} SPDM_PSK_FINISH_RESPONSE;
@@ -1032,7 +1032,7 @@ typedef struct {
/// SPDM HEARTBEAT request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == RSVD
} SPDM_HEARTBEAT_REQUEST;
@@ -1041,7 +1041,7 @@ typedef struct {
/// SPDM HEARTBEAT response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == RSVD
} SPDM_HEARTBEAT_RESPONSE;
@@ -1050,7 +1050,7 @@ typedef struct {
/// SPDM KEY_UPDATE request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == KeyOperation
// Param2 == Tag
} SPDM_KEY_UPDATE_REQUEST;
@@ -1058,15 +1058,15 @@ typedef struct {
///
/// SPDM KEY_UPDATE Operations Table
///
-#define SPDM_KEY_UPDATE_OPERATIONS_TABLE_UPDATE_KEY 1
-#define SPDM_KEY_UPDATE_OPERATIONS_TABLE_UPDATE_ALL_KEYS 2
-#define SPDM_KEY_UPDATE_OPERATIONS_TABLE_VERIFY_NEW_KEY 3
+#define SPDM_KEY_UPDATE_OPERATIONS_TABLE_UPDATE_KEY 1
+#define SPDM_KEY_UPDATE_OPERATIONS_TABLE_UPDATE_ALL_KEYS 2
+#define SPDM_KEY_UPDATE_OPERATIONS_TABLE_VERIFY_NEW_KEY 3
///
/// SPDM KEY_UPDATE response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == KeyOperation
// Param2 == Tag
} SPDM_KEY_UPDATE_RESPONSE;
@@ -1075,7 +1075,7 @@ typedef struct {
/// SPDM GET_ENCAPSULATED_REQUEST request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == RSVD
} SPDM_GET_ENCAPSULATED_REQUEST_REQUEST;
@@ -1084,47 +1084,47 @@ typedef struct {
/// SPDM ENCAPSULATED_REQUEST response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RequestID
// Param2 == RSVD
-//UINT8 EncapsulatedRequest[];
+ // UINT8 EncapsulatedRequest[];
} SPDM_ENCAPSULATED_REQUEST_RESPONSE;
///
/// SPDM DELIVER_ENCAPSULATED_RESPONSE request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RequestID
// Param2 == RSVD
-//UINT8 EncapsulatedResponse[];
+ // UINT8 EncapsulatedResponse[];
} SPDM_DELIVER_ENCAPSULATED_RESPONSE_REQUEST;
///
/// SPDM ENCAPSULATED_RESPONSE_ACK response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RequestID
// Param2 == PayloadType
// below 4 bytes are added in 1.2.
- UINT8 AckRequestId;
- UINT8 Reserved[3];
+ UINT8 AckRequestId;
+ UINT8 Reserved[3];
// UINT8 EncapsulatedRequest[];
} SPDM_ENCAPSULATED_RESPONSE_ACK_RESPONSE;
///
/// SPDM ENCAPSULATED_RESPONSE_ACK_RESPONSE Payload Type
///
-#define SPDM_ENCAPSULATED_RESPONSE_ACK_RESPONSE_PAYLOAD_TYPE_ABSENT 0
-#define SPDM_ENCAPSULATED_RESPONSE_ACK_RESPONSE_PAYLOAD_TYPE_PRESENT 1
+#define SPDM_ENCAPSULATED_RESPONSE_ACK_RESPONSE_PAYLOAD_TYPE_ABSENT 0
+#define SPDM_ENCAPSULATED_RESPONSE_ACK_RESPONSE_PAYLOAD_TYPE_PRESENT 1
#define SPDM_ENCAPSULATED_RESPONSE_ACK_RESPONSE_PAYLOAD_TYPE_REQ_SLOT_NUMBER 2
///
/// SPDM END_SESSION request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == EndSessionRequestAttributes
// Param2 == RSVD
} SPDM_END_SESSION_REQUEST;
@@ -1132,13 +1132,13 @@ typedef struct {
///
/// SPDM END_SESSION request Attributes
///
-#define SPDM_END_SESSION_REQUEST_ATTRIBUTES_PRESERVE_NEGOTIATED_STATE_CLEAR BIT0
+#define SPDM_END_SESSION_REQUEST_ATTRIBUTES_PRESERVE_NEGOTIATED_STATE_CLEAR BIT0
///
/// SPDM END_SESSION response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// Param1 == RSVD
// Param2 == RSVD
} SPDM_END_SESSION_RESPONSE;
@@ -1151,7 +1151,7 @@ typedef struct {
/// SPDM SET_CERTIFICATE request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// param1 == BIT[0:3]=slot_id, BIT[4:7]=RSVD
// param2 == RSVD
@@ -1174,7 +1174,7 @@ typedef struct {
/// SPDM SET_CERTIFICATE_RSP response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// param1 == BIT[0:3]=slot_id, BIT[4:7]=RSVD
// param2 == RSVD
@@ -1186,7 +1186,7 @@ typedef struct {
/// SPDM GET_CSR request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
UINT16 RequesterInfoLength;
UINT16 OpaqueDataLength;
@@ -1212,7 +1212,7 @@ typedef struct {
/// SPDM CSR response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// param1 == RSVD
// param2 == RSVD
@@ -1224,7 +1224,7 @@ typedef struct {
/// SPDM CHUNK_SEND request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// param1 - Request Attributes
// param2 - Handle
@@ -1242,7 +1242,7 @@ typedef struct {
/// SPDM CHUNK_SEND_ACK response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// param1 - Response Attributes
// param2 - Handle
@@ -1256,7 +1256,7 @@ typedef struct {
/// SPDM CHUNK_GET request
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// param1 - Reserved
// param2 - Handle
@@ -1267,7 +1267,7 @@ typedef struct {
/// SPDM CHUNK_RESPONSE response
///
typedef struct {
- SPDM_MESSAGE_HEADER Header;
+ SPDM_MESSAGE_HEADER Header;
// param1 - Response Attributes
// param2 - Handle