From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id D08E37803CF for ; Mon, 8 Apr 2024 01:47:00 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=M58lruKL9vOcI50h1nsC/MbvTlM2y5YExFCzL4pFfAQ=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding; s=20240206; t=1712540819; v=1; b=F1HtVRussXbZQUCv4QfHil/g9i5uz1jDlNTIs9ZYzxNdyDm1UzJFZnh9fK5vh/X5rCCnd0KF vGtoNsOmnXwR+tZoFps9JEDHZg+rmzwJgm8rBGhfVBppO0ZbpQRutW0r/ZlpEao+mbK4jkd4D+u 33Fu25TUcegV/5+V91Hwd1NYZKaWmB+E6B3nTUiOoCBsY+i8+WriUf8+mv8Wa/4NV17jb/v6HH7 1bKwr6RkjXxmQ3lo3onOOrZOx80OocwEgYSOCpMeeEraTFrF15p2FjZQmGjQ+v2Cy5N6KYKnf3C NQCUMNXJrieOq4EUPhOa+y1Z1+NElLz2FQIGY23OntgmA== X-Received: by 127.0.0.2 with SMTP id z4CxYY7687511xTlRrfJ6kQF; Sun, 07 Apr 2024 18:46:59 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.18]) by mx.groups.io with SMTP id smtpd.web11.96783.1712540815713985685 for ; Sun, 07 Apr 2024 18:46:58 -0700 X-CSE-ConnectionGUID: NsqCw1wjSBihGWrT0veHXg== X-CSE-MsgGUID: UY32dy8lSzKp3eBbryw1Og== X-IronPort-AV: E=McAfee;i="6600,9927,11037"; a="7969729" X-IronPort-AV: E=Sophos;i="6.07,186,1708416000"; d="scan'208";a="7969729" X-Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2024 18:46:59 -0700 X-CSE-ConnectionGUID: J/pLQ/pbQO2jgPvuSDy4mA== X-CSE-MsgGUID: R6WnW7InQWqwz4QShf22Ww== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,186,1708416000"; d="scan'208";a="24209662" X-Received: from shwdejointd777.ccr.corp.intel.com ([10.239.58.116]) by fmviesa003.fm.intel.com with ESMTP; 07 Apr 2024 18:46:57 -0700 From: "Wenxing Hou" To: devel@edk2.groups.io Cc: Michael D Kinney , Liming Gao , Zhiguang Liu , Jiewen Yao Subject: [edk2-devel] [PATCH v2 2/9] MdePkg: Add TCG PFP 1.06 support. Date: Mon, 8 Apr 2024 09:46:42 +0800 Message-Id: <20240408014649.2521-3-wenxing.hou@intel.com> In-Reply-To: <20240408014649.2521-1-wenxing.hou@intel.com> References: <20240408014649.2521-1-wenxing.hou@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Resent-Date: Sun, 07 Apr 2024 18:46:58 -0700 Resent-From: wenxing.hou@intel.com Reply-To: devel@edk2.groups.io,wenxing.hou@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: PpX0EZGYCoCPN7pkwW5gzKl3x7686176AA= Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=F1HtVRus; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io Add support for TCG PC Client Platform Firmware Profile Specification 1.06. Cc: Michael D Kinney Cc: Liming Gao Cc: Zhiguang Liu Cc: Jiewen Yao Signed-off-by: Wenxing Hou --- MdePkg/Include/IndustryStandard/Spdm.h | 4 +- .../IndustryStandard/UefiTcgPlatform.h | 186 +++++++++++++++++- 2 files changed, 187 insertions(+), 3 deletions(-) diff --git a/MdePkg/Include/IndustryStandard/Spdm.h b/MdePkg/Include/Indust= ryStandard/Spdm.h index 7940caa95e..3d511b4768 100644 --- a/MdePkg/Include/IndustryStandard/Spdm.h +++ b/MdePkg/Include/IndustryStandard/Spdm.h @@ -1302,7 +1302,9 @@ typedef struct { #define SPDM_ST1_VALUE_US 100000=0D =0D ///=0D -/// id-DMTF 1.3.6.1.4.1.412=0D +/// id-DMTF 1.3.6.1.4.1.412.=0D +/// These OID are defiend in ANNEX C (informative) OID reference section f= rom the DMTF SPDM spec.=0D +/// https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1= .2.2.pdf=0D ///=0D #define SPDM_OID_DMTF \=0D {0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1C }=0D diff --git a/MdePkg/Include/IndustryStandard/UefiTcgPlatform.h b/MdePkg/Inc= lude/IndustryStandard/UefiTcgPlatform.h index e07840c9dd..61bd4e4667 100644 --- a/MdePkg/Include/IndustryStandard/UefiTcgPlatform.h +++ b/MdePkg/Include/IndustryStandard/UefiTcgPlatform.h @@ -1,8 +1,8 @@ /** @file=0D TCG EFI Platform Definition in TCG_EFI_Platform_1_20_Final and=0D - TCG PC Client Platform Firmware Profile Specification, Revision 1.05=0D + TCG PC Client Platform Firmware Profile Specification, Revision 1.06=0D =0D - Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
=0D + Copyright (c) 2006 - 2024, Intel Corporation. All rights reserved.
=0D SPDX-License-Identifier: BSD-2-Clause-Patent=0D =0D **/=0D @@ -53,6 +53,18 @@ #define EV_EFI_VARIABLE_AUTHORITY (EV_EFI_EVENT_BASE + 0xE0)=0D #define EV_EFI_SPDM_FIRMWARE_BLOB (EV_EFI_EVENT_BASE + 0xE1)=0D #define EV_EFI_SPDM_FIRMWARE_CONFIG (EV_EFI_EVENT_BASE + 0xE2)=0D +#define EV_EFI_SPDM_DEVICE_BLOB EV_EFI_SPDM_FIRMWARE_BLOB=0D +#define EV_EFI_SPDM_DEVICE_CONFIG EV_EFI_SPDM_FIRMWARE_CONFIG=0D +//=0D +// The SPDM policy database for SPDM verification.=0D +// It goes to PCR7=0D +//=0D +#define EV_EFI_SPDM_DEVICE_POLICY (EV_EFI_EVENT_BASE + 0xE3)=0D +//=0D +// The SPDM policy authority for SPDM verification for the signature=0D +// of GET_MEASUREMENT or CHALLENGE_AUTH. It goes to PCR7.=0D +//=0D +#define EV_EFI_SPDM_DEVICE_AUTHORITY (EV_EFI_EVENT_BASE + 0xE4)=0D =0D #define EFI_CALLING_EFI_APPLICATION \=0D "Calling EFI Application from Boot Option"=0D @@ -374,6 +386,7 @@ typedef struct { #define TCG_EfiSpecIDEventStruct_SPEC_VERSION_MINOR_TPM2 0=0D #define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2 0=0D #define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2_REV_105 105=0D +#define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2_REV_106 106=0D =0D typedef struct {=0D UINT8 signature[16];=0D @@ -492,4 +505,173 @@ typedef struct tdTCG_EfiStartupLocalityEvent { //=0D #pragma pack ()=0D =0D +//=0D +// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +// Event Type PCR Event Log = Usage=0D +// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +// EV_EFI_SPDM_DEVICE_BLOB 2 SPDM_MEASUREMENT_BLOCK (subtype) = MEASUREMENT from device=0D +// EV_EFI_SPDM_DEVICE_CONFIG 3 SPDM_MEASUREMENT_BLOCK (subtype) = MEASUREMENT from device=0D +// EV_EFI_SPDM_DEVICE_BLOB 2 SPDM_MEASUREMENT_SUMMARY_HASH.TCB (s= ubtype) SUMMARY_HASH from device=0D +=0D +// EV_EFI_SPDM_DEVICE_POLICY 7 UEFI_VARIABLE_DATA with EFI_SIGNATUR= E_LIST Provisioned device public cert.=0D +// EV_EFI_SPDM_DEVICE_AUTHORITY 7 UEFI_VARIABLE_DATA with EFI_SIGNATUR= E_DATA CHALLENGE_AUTH signature verification=0D +// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +//=0D +=0D +#define PCR_INDEX_FOR_SIGNATURE_DB 7=0D +=0D +#pragma pack(1)=0D +=0D +#define TCG_DEVICE_SECURITY_EVENT_DATA_VERSION_1 1=0D +#define TCG_DEVICE_SECURITY_EVENT_DATA_VERSION_2 2=0D +#define TCG_DEVICE_SECURITY_EVENT_DATA_SIGNATURE_2 "SPDM Device Sec2"=0D +=0D +typedef struct {=0D + UINT8 Signature[16];=0D + UINT16 Version;=0D + UINT8 AuthState;=0D + UINT8 Reserved;=0D + UINT32 Length; // Length in bytes for all follow= ing structures.=0D + UINT32 DeviceType;=0D + UINT32 SubHeaderType;=0D + UINT32 SubHeaderLength; // Length in bytes of th= e sub header followed by.=0D + UINT64 SubHeaderUID; // Universal identifier = assigned by the event log creator. It can be used to bind two sub header st= ructure together.=0D + // UINT64 DevicePathLength;=0D + // UINT8 DevicePath[DevicePathLength];=0D +} TCG_DEVICE_SECURITY_EVENT_DATA_HEADER2;=0D +=0D +#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_SUCCESS 0=0D +#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_NO_AUTH 1=0D +#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_NO_BINDING 2=0D +#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_FAIL_NO_SIG 3=0D +#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_FAIL_INVALID 4=0D +#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_NO_SPDM 0xF= F=0D +=0D +#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_SUB_HEADER_TYPE_SPDM_MEASURE= MENT_BLOCK 0=0D +#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_SUB_HEADER_TYPE_SPDM_CERT_CH= AIN 1=0D +=0D +typedef struct {=0D + UINT16 SpdmVersion;=0D + UINT8 SpdmMeasurementBlockCount;=0D + UINT8 Reserved;=0D + UINT32 SpdmMeasurementHashAlgo;=0D + // SPDM_MEASUREMENT_BLOCK SpdmMeasurementBlock;=0D +} TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_SPDM_MEASUREMENT_BLOCK;=0D +=0D +typedef struct {=0D + UINT16 SpdmVersion;=0D + UINT8 SpdmSlotId;=0D + UINT8 Reserved;=0D + UINT32 SpdmHashAlgo;=0D + // SPDM_CERT_CHAIN SpdmCertChain;=0D +} TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_SPDM_CERT_CHAIN;=0D +=0D +typedef struct {=0D + UINT32 Type;=0D + UINT32 Length;=0D + UINT8 Value[1];=0D +} TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_OEM_MEASUREMENT;=0D +=0D +typedef union {=0D + TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_SPDM_MEASUREMENT_BLOCK Spdm= MeasurementBlock;=0D + TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_SPDM_CERT_CHAIN Spdm= CertChain;=0D + TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_OEM_MEASUREMENT OemM= easurement;=0D +} TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER;=0D +=0D +typedef union {=0D + TCG_DEVICE_SECURITY_EVENT_DATA_PCI_CONTEXT Pci;=0D + TCG_DEVICE_SECURITY_EVENT_DATA_USB_CONTEXT Usb;=0D +} TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_CONTEXT;=0D +=0D +typedef struct {=0D + TCG_DEVICE_SECURITY_EVENT_DATA_HEADER2 EventDataHeader;=0D + TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER EventDataSubHeader;=0D + TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_CONTEXT DeviceContext;=0D +} TCG_DEVICE_SECURITY_EVENT_DATA2;=0D +=0D +#pragma pack()=0D +=0D +//=0D +// EventType:EV_NO_ACTION=0D +// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +// NVIndex Name PCR/NvIndex Event Log = Usage=0D +// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +// NV_EXTEND_INDEX_FOR_INSTANCE 0x01C40200 NV_INDEX_INSTA= NCE_EVENT_LOG_STRUCT NV Extend Record for instance data (CertChain)=0D +// NV_EXTEND_INDEX_FOR_DYNAMIC 0x01C40201 NV_INDEX_DYNAM= IC_EVENT_LOG_STRUCT NV Extend Record for dynamic data (Nonce)=0D +=0D +// EVENT_LOG_INTEGRITY_NV_INDEX_EXIT_PM_AUTH 0x01C40202 EVENT_LOG_INTE= GRITY_NV_INDEX_STRUCT Event Log Integrity for ExitPmAuth=0D +// EVENT_LOG_INTEGRITY_NV_INDEX_READY_TO_BOOT 0x01C40203 EVENT_LOG_INTE= GRITY_NV_INDEX_STRUCT Event Log Integrity for ReadyToBoot=0D +// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +//=0D +=0D +#define TCG_NV_EXTEND_INDEX_FOR_INSTANCE 0x01C40200=0D +#define TCG_NV_EXTEND_INDEX_FOR_DYNAMIC 0x01C40201=0D +#define TCG_EVENT_LOG_INTEGRITY_NV_INDEX_EXIT_PM_AUTH 0x01C40202=0D +#define TCG_EVENT_LOG_INTEGRITY_NV_INDEX_READY_TO_BOOT 0x01C40203=0D +=0D +#pragma pack(1)=0D +=0D +#define TCG_NV_EXTEND_INDEX_FOR_INSTANCE_SIGNATURE "NvIndexInstance"= =0D +#define TCG_NV_INDEX_INSTANCE_EVENT_LOG_STRUCT_VERSION 1=0D +=0D +typedef struct {=0D + UINT8 Signature[16];=0D + UINT16 Version;=0D + UINT8 Reserved[6];=0D + // TCG_DEVICE_SECURITY_EVENT_DATA2 Data;=0D +} TCG_NV_INDEX_INSTANCE_EVENT_LOG_STRUCT;=0D +=0D +#define TCG_NV_EXTEND_INDEX_FOR_DYNAMIC_SIGNATURE "NvIndexDynamic "=0D +#define TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_VERSION 1=0D +=0D +#define TCG_SPDM_CHALLENGE_DESCRIPTION "SPDM CHALLENGE"=0D +#define TCG_SPDM_CHALLENGE_AUTH_DESCRIPTION "SPDM CHALLENGE_AUTH"=0D +#define TCG_SPDM_GET_MEASUREMENTS_DESCRIPTION "SPDM GET_MEASUREMENTS"=0D +#define TCG_SPDM_MEASUREMENTS_DESCRIPTION "SPDM MEASUREMENTS"=0D +=0D +typedef struct {=0D + UINT8 Signature[16];=0D + UINT16 Version;=0D + UINT8 Reserved[6];=0D + UINT64 Uid;=0D + // UINT16 DescriptionSize;=0D + // UINT8 Description[DescriptionSize];=0D + // UINT16 DataSize;=0D + // UINT8 Data[DataSize];=0D +} TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT;=0D +=0D +typedef struct {=0D + TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header;=0D + UINT16 DescriptionSize;=0D + UINT8 Description[sizeof (TCG_SPDM_CH= ALLENGE_DESCRIPTION)];=0D + UINT16 DataSize;=0D + UINT8 Data[32];=0D +} TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_SPDM_CHALLENGE;=0D +=0D +typedef struct {=0D + TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header;=0D + UINT16 DescriptionSize;=0D + UINT8 Description[sizeof (TCG_SPDM_CH= ALLENGE_AUTH_DESCRIPTION)];=0D + UINT16 DataSize;=0D + UINT8 Data[32];=0D +} TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_SPDM_CHALLENGE_AUTH;=0D +=0D +typedef struct {=0D + TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header;=0D + UINT16 DescriptionSize;=0D + UINT8 Description[sizeof (TCG_SPDM_GE= T_MEASUREMENTS_DESCRIPTION)];=0D + UINT16 DataSize;=0D + UINT8 Data[32];=0D +} TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_SPDM_GET_MEASUREMENTS;=0D +=0D +typedef struct {=0D + TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header;=0D + UINT16 DescriptionSize;=0D + UINT8 Description[sizeof (TCG_SPDM_ME= ASUREMENTS_DESCRIPTION)];=0D + UINT16 DataSize;=0D + UINT8 Data[32];=0D +} TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_SPDM_MEASUREMENTS;=0D +=0D +#pragma pack()=0D +=0D #endif=0D --=20 2.26.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#117479): https://edk2.groups.io/g/devel/message/117479 Mute This Topic: https://groups.io/mt/105394113/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-