public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel] [PATCH v2 0/3] TCG_Sp800_155_PlatformId_Event3 support
@ 2024-05-01 16:09 Dionna Glaze via groups.io
  2024-05-01 16:09 ` [edk2-devel] [PATCH v2 1/3] MdePkg: Add TcgSp800155Event3 type info Dionna Glaze via groups.io
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Dionna Glaze via groups.io @ 2024-05-01 16:09 UTC (permalink / raw)
  To: devel
  Cc: Dionna Glaze, Michael D Kinney, Liming Gao, Zhiguang Liu,
	Jiewen Yao, Rahul Kumar, Ard Biesheuvel, Gerd Hoffmann

In December 2023, the TCG published the PC Client Platform Firmware
Profile version 1.06 revision 52. This revision includes a new event
type for NIST SP 800-155 recommended signed BIOS reference measurements.
The new type allows for the event log auditor to find local or remote
copies of the signed reference measurements.

Supporting this new event type eases the process of distributing signed
reference measurements since the machine can now simply report where
they can be found in a standard way.

Changes since v1:
  - MdePkg defines TCG_Sp800_155_PlatformId_Event3 instead of adding a
    comment about Event3 to Event2.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>

Dionna Glaze (3):
  MdePkg: Add TcgSp800155Event3 type info
  SecurityPkg: recognize sp800155Event3 event too
  OvmfPkg: add sp800155Event3 support

 .../IndustryStandard/UefiTcgPlatform.h        | 40 ++++++++++++++++++-
 OvmfPkg/Tcg/TdTcg2Dxe/TdTcg2Dxe.c             |  9 ++++-
 SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c             |  9 ++++-
 3 files changed, 52 insertions(+), 6 deletions(-)

--
2.45.0.rc0.197.gbae5840b3b-goog


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118463): https://edk2.groups.io/g/devel/message/118463
Mute This Topic: https://groups.io/mt/105845523/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [edk2-devel] [PATCH v2 1/3] MdePkg: Add TcgSp800155Event3 type info
  2024-05-01 16:09 [edk2-devel] [PATCH v2 0/3] TCG_Sp800_155_PlatformId_Event3 support Dionna Glaze via groups.io
@ 2024-05-01 16:09 ` Dionna Glaze via groups.io
  2024-05-02  0:43   ` Yao, Jiewen
  2024-05-01 16:09 ` [edk2-devel] [PATCH v2 2/3] SecurityPkg: recognize sp800155Event3 event too Dionna Glaze via groups.io
  2024-05-01 16:09 ` [edk2-devel] [PATCH v2 3/3] OvmfPkg: add sp800155Event3 support Dionna Glaze via groups.io
  2 siblings, 1 reply; 5+ messages in thread
From: Dionna Glaze via groups.io @ 2024-05-01 16:09 UTC (permalink / raw)
  To: devel; +Cc: Dionna Glaze, Michael D Kinney, Liming Gao, Zhiguang Liu

TCG PC Client Platform Firmware Profile 1.06 revision 52 of December
2023 added a new event signature and extended information about where a
reference measurement document for the firmware can be found.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>

Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
---
 .../IndustryStandard/UefiTcgPlatform.h        | 40 ++++++++++++++++++-
 1 file changed, 38 insertions(+), 2 deletions(-)

diff --git a/MdePkg/Include/IndustryStandard/UefiTcgPlatform.h b/MdePkg/Include/IndustryStandard/UefiTcgPlatform.h
index 61bd4e4667..54bdf3a339 100644
--- a/MdePkg/Include/IndustryStandard/UefiTcgPlatform.h
+++ b/MdePkg/Include/IndustryStandard/UefiTcgPlatform.h
@@ -451,6 +451,7 @@ typedef struct tdTCG_PCClientTaggedEvent {
 
 #define TCG_Sp800_155_PlatformId_Event_SIGNATURE   "SP800-155 Event"
 #define TCG_Sp800_155_PlatformId_Event2_SIGNATURE  "SP800-155 Event2"
+#define TCG_Sp800_155_PlatformId_Event3_SIGNATURE  "SP800-155 Event3"
 
 typedef struct tdTCG_Sp800_155_PlatformId_Event2 {
   UINT8       Signature[16];
@@ -463,7 +464,7 @@ typedef struct tdTCG_Sp800_155_PlatformId_Event2 {
   // 16-byte identifier of a given platform's static configuration of code
   //
   EFI_GUID    ReferenceManifestGuid;
-  //
+   //
   // Below structure is newly added in TCG_Sp800_155_PlatformId_Event2.
   //
   // UINT8               PlatformManufacturerStrSize;
@@ -478,9 +479,44 @@ typedef struct tdTCG_Sp800_155_PlatformId_Event2 {
   // UINT8               FirmwareManufacturerStr[FirmwareManufacturerStrSize];
   // UINT32              FirmwareManufacturerId;
   // UINT8               FirmwareVersion;
-  // UINT8               FirmwareVersion[FirmwareVersionSize]];
+  // UINT8               FirmwareVersion[FirmwareVersionSize];
 } TCG_Sp800_155_PlatformId_Event2;
 
+typedef struct tdTCG_Sp800_155_PlatformId_Event3 {
+  UINT8       Signature[16];
+  //
+  // Where Vendor ID is an integer defined
+  // at http://www.iana.org/assignments/enterprisenumbers
+  //
+  UINT32      VendorId;
+  //
+  // 16-byte identifier of a given platform's static configuration of code
+  //
+  EFI_GUID    ReferenceManifestGuid;
+  // UINT8               PlatformManufacturerStrSize;
+  // UINT8               PlatformManufacturerStr[PlatformManufacturerStrSize];
+  // UINT8               PlatformModelSize;
+  // UINT8               PlatformModel[PlatformModelSize];
+  // UINT8               PlatformVersionSize;
+  // UINT8               PlatformVersion[PlatformVersionSize];
+  // UINT8               PlatformModelSize;
+  // UINT8               PlatformModel[PlatformModelSize];
+  // UINT8               FirmwareManufacturerStrSize;
+  // UINT8               FirmwareManufacturerStr[FirmwareManufacturerStrSize];
+  // UINT32              FirmwareManufacturerId;
+  // UINT8               FirmwareVersion;
+  // UINT8               FirmwareVersion[FirmwareVersionSize];
+  //
+  // Below structure is newly added in TCG_Sp800_155_PlatformId_Event3
+  //
+  // UINT32              RimLocatorType;
+  // UINT32              RimLocatorLength;
+  // UINT8               RimLocator[RimLocatorLength];
+  // UINT32              PlatformCertLocatorType;
+  // UINT32              PlatformCertLocatorLength;
+  // UINT8               PlatformCertLocator[PlatformCertLocatorLength];
+} TCG_Sp800_155_PlatformId_Event3;
+
 #define TCG_EfiStartupLocalityEvent_SIGNATURE  "StartupLocality"
 
 //
-- 
2.45.0.rc0.197.gbae5840b3b-goog



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118464): https://edk2.groups.io/g/devel/message/118464
Mute This Topic: https://groups.io/mt/105845524/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [edk2-devel] [PATCH v2 2/3] SecurityPkg: recognize sp800155Event3 event too
  2024-05-01 16:09 [edk2-devel] [PATCH v2 0/3] TCG_Sp800_155_PlatformId_Event3 support Dionna Glaze via groups.io
  2024-05-01 16:09 ` [edk2-devel] [PATCH v2 1/3] MdePkg: Add TcgSp800155Event3 type info Dionna Glaze via groups.io
@ 2024-05-01 16:09 ` Dionna Glaze via groups.io
  2024-05-01 16:09 ` [edk2-devel] [PATCH v2 3/3] OvmfPkg: add sp800155Event3 support Dionna Glaze via groups.io
  2 siblings, 0 replies; 5+ messages in thread
From: Dionna Glaze via groups.io @ 2024-05-01 16:09 UTC (permalink / raw)
  To: devel; +Cc: Dionna Glaze, Jiewen Yao, Rahul Kumar

The signatures for event2 or event3 are now valid TCG SP800155 event
types.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>

Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
---
 SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c
index b8f50e25df..2f73237984 100644
--- a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c
+++ b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c
@@ -812,11 +812,16 @@ Is800155Event (
 {
   if ((((TCG_PCR_EVENT2_HDR *)NewEventHdr)->EventType == EV_NO_ACTION) &&
       (NewEventSize >= sizeof (TCG_Sp800_155_PlatformId_Event2)) &&
-      (CompareMem (
+      ((CompareMem (
          NewEventData,
          TCG_Sp800_155_PlatformId_Event2_SIGNATURE,
          sizeof (TCG_Sp800_155_PlatformId_Event2_SIGNATURE) - 1
-         ) == 0))
+         ) == 0) ||
+       (CompareMem (
+         NewEventData,
+         TCG_Sp800_155_PlatformId_Event3_SIGNATURE,
+         sizeof (TCG_Sp800_155_PlatformId_Event3_SIGNATURE) - 1
+         ) == 0)))
   {
     return TRUE;
   }
-- 
2.45.0.rc0.197.gbae5840b3b-goog



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118465): https://edk2.groups.io/g/devel/message/118465
Mute This Topic: https://groups.io/mt/105845525/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [edk2-devel] [PATCH v2 3/3] OvmfPkg: add sp800155Event3 support
  2024-05-01 16:09 [edk2-devel] [PATCH v2 0/3] TCG_Sp800_155_PlatformId_Event3 support Dionna Glaze via groups.io
  2024-05-01 16:09 ` [edk2-devel] [PATCH v2 1/3] MdePkg: Add TcgSp800155Event3 type info Dionna Glaze via groups.io
  2024-05-01 16:09 ` [edk2-devel] [PATCH v2 2/3] SecurityPkg: recognize sp800155Event3 event too Dionna Glaze via groups.io
@ 2024-05-01 16:09 ` Dionna Glaze via groups.io
  2 siblings, 0 replies; 5+ messages in thread
From: Dionna Glaze via groups.io @ 2024-05-01 16:09 UTC (permalink / raw)
  To: devel; +Cc: Dionna Glaze, Ard Biesheuvel, Jiewen Yao, Gerd Hoffmann

The signatures for event2 or event3 are now valid TCG SP800155 event
types.

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>

Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
---
 OvmfPkg/Tcg/TdTcg2Dxe/TdTcg2Dxe.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/OvmfPkg/Tcg/TdTcg2Dxe/TdTcg2Dxe.c b/OvmfPkg/Tcg/TdTcg2Dxe/TdTcg2Dxe.c
index 6ca29f5de0..d487f5c715 100644
--- a/OvmfPkg/Tcg/TdTcg2Dxe/TdTcg2Dxe.c
+++ b/OvmfPkg/Tcg/TdTcg2Dxe/TdTcg2Dxe.c
@@ -821,11 +821,16 @@ Is800155Event (
 {
   if ((((TCG_PCR_EVENT2_HDR *)NewEventHdr)->EventType == EV_NO_ACTION) &&
       (NewEventSize >= sizeof (TCG_Sp800_155_PlatformId_Event2)) &&
-      (CompareMem (
+      ((CompareMem (
          NewEventData,
          TCG_Sp800_155_PlatformId_Event2_SIGNATURE,
          sizeof (TCG_Sp800_155_PlatformId_Event2_SIGNATURE) - 1
-         ) == 0))
+         ) == 0) ||
+      (CompareMem (
+         NewEventData,
+         TCG_Sp800_155_PlatformId_Event3_SIGNATURE,
+         sizeof (TCG_Sp800_155_PlatformId_Event3_SIGNATURE) - 1
+         ) == 0))))
   {
     return TRUE;
   }
-- 
2.45.0.rc0.197.gbae5840b3b-goog



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118466): https://edk2.groups.io/g/devel/message/118466
Mute This Topic: https://groups.io/mt/105845526/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [edk2-devel] [PATCH v2 1/3] MdePkg: Add TcgSp800155Event3 type info
  2024-05-01 16:09 ` [edk2-devel] [PATCH v2 1/3] MdePkg: Add TcgSp800155Event3 type info Dionna Glaze via groups.io
@ 2024-05-02  0:43   ` Yao, Jiewen
  0 siblings, 0 replies; 5+ messages in thread
From: Yao, Jiewen @ 2024-05-02  0:43 UTC (permalink / raw)
  To: devel@edk2.groups.io, dionnaglaze@google.com
  Cc: Kinney, Michael D, Liming Gao, Liu, Zhiguang

Thanks Dionna.

Almost good, except you create a typo below:
>    EFI_GUID    ReferenceManifestGuid;
> -  //
> +   //
>    // Below structure is newly added in TCG_Sp800_155_PlatformId_Event2.

With typo fix, reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>

Thank you
Yao, Jiewen


> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Dionna Glaze
> via groups.io
> Sent: Thursday, May 2, 2024 12:10 AM
> To: devel@edk2.groups.io
> Cc: Dionna Glaze <dionnaglaze@google.com>; Kinney, Michael D
> <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>; Liu,
> Zhiguang <zhiguang.liu@intel.com>
> Subject: [edk2-devel] [PATCH v2 1/3] MdePkg: Add TcgSp800155Event3 type info
> 
> TCG PC Client Platform Firmware Profile 1.06 revision 52 of December
> 2023 added a new event signature and extended information about where a
> reference measurement document for the firmware can be found.
> 
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> 
> Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
> ---
>  .../IndustryStandard/UefiTcgPlatform.h        | 40 ++++++++++++++++++-
>  1 file changed, 38 insertions(+), 2 deletions(-)
> 
> diff --git a/MdePkg/Include/IndustryStandard/UefiTcgPlatform.h
> b/MdePkg/Include/IndustryStandard/UefiTcgPlatform.h
> index 61bd4e4667..54bdf3a339 100644
> --- a/MdePkg/Include/IndustryStandard/UefiTcgPlatform.h
> +++ b/MdePkg/Include/IndustryStandard/UefiTcgPlatform.h
> @@ -451,6 +451,7 @@ typedef struct tdTCG_PCClientTaggedEvent {
> 
>  #define TCG_Sp800_155_PlatformId_Event_SIGNATURE   "SP800-155 Event"
>  #define TCG_Sp800_155_PlatformId_Event2_SIGNATURE  "SP800-155 Event2"
> +#define TCG_Sp800_155_PlatformId_Event3_SIGNATURE  "SP800-155 Event3"
> 
>  typedef struct tdTCG_Sp800_155_PlatformId_Event2 {
>    UINT8       Signature[16];
> @@ -463,7 +464,7 @@ typedef struct tdTCG_Sp800_155_PlatformId_Event2 {
>    // 16-byte identifier of a given platform's static configuration of code
>    //
>    EFI_GUID    ReferenceManifestGuid;
> -  //
> +   //
>    // Below structure is newly added in TCG_Sp800_155_PlatformId_Event2.
>    //
>    // UINT8               PlatformManufacturerStrSize;
> @@ -478,9 +479,44 @@ typedef struct tdTCG_Sp800_155_PlatformId_Event2 {
>    // UINT8               FirmwareManufacturerStr[FirmwareManufacturerStrSize];
>    // UINT32              FirmwareManufacturerId;
>    // UINT8               FirmwareVersion;
> -  // UINT8               FirmwareVersion[FirmwareVersionSize]];
> +  // UINT8               FirmwareVersion[FirmwareVersionSize];
>  } TCG_Sp800_155_PlatformId_Event2;
> 
> +typedef struct tdTCG_Sp800_155_PlatformId_Event3 {
> +  UINT8       Signature[16];
> +  //
> +  // Where Vendor ID is an integer defined
> +  // at http://www.iana.org/assignments/enterprisenumbers
> +  //
> +  UINT32      VendorId;
> +  //
> +  // 16-byte identifier of a given platform's static configuration of code
> +  //
> +  EFI_GUID    ReferenceManifestGuid;
> +  // UINT8               PlatformManufacturerStrSize;
> +  // UINT8               PlatformManufacturerStr[PlatformManufacturerStrSize];
> +  // UINT8               PlatformModelSize;
> +  // UINT8               PlatformModel[PlatformModelSize];
> +  // UINT8               PlatformVersionSize;
> +  // UINT8               PlatformVersion[PlatformVersionSize];
> +  // UINT8               PlatformModelSize;
> +  // UINT8               PlatformModel[PlatformModelSize];
> +  // UINT8               FirmwareManufacturerStrSize;
> +  // UINT8               FirmwareManufacturerStr[FirmwareManufacturerStrSize];
> +  // UINT32              FirmwareManufacturerId;
> +  // UINT8               FirmwareVersion;
> +  // UINT8               FirmwareVersion[FirmwareVersionSize];
> +  //
> +  // Below structure is newly added in TCG_Sp800_155_PlatformId_Event3
> +  //
> +  // UINT32              RimLocatorType;
> +  // UINT32              RimLocatorLength;
> +  // UINT8               RimLocator[RimLocatorLength];
> +  // UINT32              PlatformCertLocatorType;
> +  // UINT32              PlatformCertLocatorLength;
> +  // UINT8               PlatformCertLocator[PlatformCertLocatorLength];
> +} TCG_Sp800_155_PlatformId_Event3;
> +
>  #define TCG_EfiStartupLocalityEvent_SIGNATURE  "StartupLocality"
> 
>  //
> --
> 2.45.0.rc0.197.gbae5840b3b-goog
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118484): https://edk2.groups.io/g/devel/message/118484
Mute This Topic: https://groups.io/mt/105845524/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-05-02  0:43 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-01 16:09 [edk2-devel] [PATCH v2 0/3] TCG_Sp800_155_PlatformId_Event3 support Dionna Glaze via groups.io
2024-05-01 16:09 ` [edk2-devel] [PATCH v2 1/3] MdePkg: Add TcgSp800155Event3 type info Dionna Glaze via groups.io
2024-05-02  0:43   ` Yao, Jiewen
2024-05-01 16:09 ` [edk2-devel] [PATCH v2 2/3] SecurityPkg: recognize sp800155Event3 event too Dionna Glaze via groups.io
2024-05-01 16:09 ` [edk2-devel] [PATCH v2 3/3] OvmfPkg: add sp800155Event3 support Dionna Glaze via groups.io

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox