MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Spdm.h File Reference

Data Structures

struct  SPDM_MESSAGE_HEADER
 
struct  SPDM_GET_VERSION_REQUEST
 
struct  SPDM_VERSION_RESPONSE
 
struct  SPDM_VERSION_NUMBER
 
struct  SPDM_GET_CAPABILITIES_REQUEST
 
struct  SPDM_CAPABILITIES_RESPONSE
 
struct  SPDM_NEGOTIATE_ALGORITHMS_REQUEST
 
struct  SPDM_ALGORITHMS_RESPONSE
 
struct  SPDM_GET_DIGESTS_REQUEST
 
struct  SPDM_DIGESTS_RESPONSE
 
struct  SPDM_GET_CERTIFICATE_REQUEST
 
struct  SPDM_CERTIFICATE_RESPONSE
 
struct  SPDM_CHALLENGE_REQUEST
 
struct  SPDM_CHALLENGE_AUTH_RESPONSE
 
struct  SPDM_GET_MEASUREMENTS_REQUEST
 
struct  SPDM_MEASUREMENT_BLOCK_COMMON_HEADER
 
struct  SPDM_MEASUREMENT_BLOCK_DMTF_HEADER
 
struct  SPDM_MEASUREMENTS_RESPONSE
 
struct  SPDM_ERROR_RESPONSE
 
struct  SPDM_RESPONSE_IF_READY_REQUEST
 

Macros

#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_SET_CERT_RESPONSE   0x62
 
#define SPDM_ALGORITHMS   0x63
 
#define SPDM_ERROR   0x7F
 
#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_RESPOND_IF_READY   0xFF
 
#define SPDM_MESSAGE_VERSION   0x10
 
#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_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSASSA_2048   BIT0
 
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSAPSS_2048   BIT1
 
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSASSA_3072   BIT2
 
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSAPSS_3072   BIT3
 
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_ECDSA_ECC_NIST_P256   BIT4
 
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSASSA_4096   BIT5
 
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSAPSS_4096   BIT6
 
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_ECDSA_ECC_NIST_P384   BIT7
 
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_ECDSA_ECC_NIST_P521   BIT8
 
#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA_256   BIT0
 
#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA_384   BIT1
 
#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA_512   BIT2
 
#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA3_256   BIT3
 
#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA3_384   BIT4
 
#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA3_512   BIT5
 
#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_RAW_BIT_STREAM_ONLY   BIT0
 
#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SHA_256   BIT1
 
#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SHA_384   BIT2
 
#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SHA_512   BIT3
 
#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SHA3_256   BIT4
 
#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SHA3_384   BIT5
 
#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SHA3_512   BIT6
 
#define SPDM_MEASUREMENT_BLOCK_HEADER_SPECIFICATION_DMTF   BIT0
 
#define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_IMMUTABLE_ROM   0
 
#define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_MUTABLE_FIRMWARE   1
 
#define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_HARDWARE_CONFIGURATION   2
 
#define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_FIRMWARE_CONFIGURATION   3
 
#define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_RAW_BIT_STREAM   BIT7
 
#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_MAJOR_VERSION_MISMATCH   0x41
 
#define SPDM_ERROR_CODE_RESPONSE_NOT_READY   0x42
 
#define SPDM_ERROR_CODE_REQUEST_RESYNCH   0x43
 

Detailed Description

Definitions of Security Protocol & Data Model Specification (SPDM) version 1.0.0 in Distributed Management Task Force (DMTF).

Copyright (c) 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Macro Definition Documentation

#define SPDM_ALGORITHMS   0x63
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_ECDSA_ECC_NIST_P256   BIT4
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_ECDSA_ECC_NIST_P384   BIT7
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_ECDSA_ECC_NIST_P521   BIT8
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSAPSS_2048   BIT1
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSAPSS_3072   BIT3
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSAPSS_4096   BIT6
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSASSA_2048   BIT0

SPDM NEGOTIATE_ALGORITHMS request BaseAsymAlgo

#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSASSA_3072   BIT2
#define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSASSA_4096   BIT5
#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA3_256   BIT3
#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA3_384   BIT4
#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA3_512   BIT5
#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA_256   BIT0

SPDM NEGOTIATE_ALGORITHMS request BaseHashAlgo

#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA_384   BIT1
#define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA_512   BIT2
#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_RAW_BIT_STREAM_ONLY   BIT0

SPDM NEGOTIATE_ALGORITHMS response MeasurementHashAlgo

#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SHA3_256   BIT4
#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SHA3_384   BIT5
#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SHA3_512   BIT6
#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SHA_256   BIT1
#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SHA_384   BIT2
#define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SHA_512   BIT3
#define SPDM_CAPABILITIES   0x61
#define SPDM_CERTIFICATE   0x02
#define SPDM_CHALLENGE   0x83
#define SPDM_CHALLENGE_AUTH   0x03
#define SPDM_DIGESTS   0x01

SPDM response code

#define SPDM_ERROR   0x7F
#define SPDM_ERROR_CODE_BUSY   0x03
#define SPDM_ERROR_CODE_INVALID_REQUEST   0x01

SPDM error code

#define SPDM_ERROR_CODE_MAJOR_VERSION_MISMATCH   0x41
#define SPDM_ERROR_CODE_REQUEST_RESYNCH   0x43
#define SPDM_ERROR_CODE_RESPONSE_NOT_READY   0x42
#define SPDM_ERROR_CODE_UNEXPECTED_REQUEST   0x04
#define SPDM_ERROR_CODE_UNSPECIFIED   0x05
#define SPDM_ERROR_CODE_UNSUPPORTED_REQUEST   0x07
#define SPDM_GET_CAPABILITIES   0xE1
#define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CACHE_CAP   BIT0

SPDM GET_CAPABILITIES response Flags

#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_CERTIFICATE   0x82
#define SPDM_GET_DIGESTS   0x81

SPDM request code

#define SPDM_GET_MEASUREMENTS   0xE0
#define SPDM_GET_VERSION   0x84
#define SPDM_MEASUREMENT_BLOCK_HEADER_SPECIFICATION_DMTF   BIT0
#define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_FIRMWARE_CONFIGURATION   3
#define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_HARDWARE_CONFIGURATION   2
#define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_IMMUTABLE_ROM   0

SPDM MEASUREMENTS block MeasurementValueType

#define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_MUTABLE_FIRMWARE   1
#define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_RAW_BIT_STREAM   BIT7
#define SPDM_MEASUREMENTS   0x60
#define SPDM_MESSAGE_VERSION   0x10
#define SPDM_NEGOTIATE_ALGORITHMS   0xE3
#define SPDM_RESPOND_IF_READY   0xFF
#define SPDM_SET_CERT_RESPONSE   0x62
#define SPDM_VERSION   0x04