public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Stuart Yoder" <stuart.yoder@arm.com>
To: devel@edk2.groups.io, Edhaya.Chandran@arm.com, gaojie@byosoft.com.cn
Cc: Alex_Fox@phoenix.com, heinrich.schuchardt@canonical.com,
	David_Wright@phoenix.com, lichao@loongson.cn
Subject: [edk2-devel] [PATCH v2 1/4] uefi-sct/SctPkg: TCG2 Protocol: correct definition of TPMT_HA struct
Date: Tue, 16 Apr 2024 09:53:58 -0500	[thread overview]
Message-ID: <20240416145401.3213797-2-stuart.yoder@arm.com> (raw)
In-Reply-To: <20240416145401.3213797-1-stuart.yoder@arm.com>

The TPMT_HA struct defining event log hash algorithms was cut/pasted
from the TCG EFI Protocol specification which used a C struct
with a flexible array member as the last element.  This is incorrect
because TPMT_HA itself is used as an array element, and thus can't
be variable size.

Because the size of hash algorithms varies, this should have been
defined as a union of the sizes of supported hash algorithms.  This is
how is it done in the TPM Library specfication and in EDK2.

In addition, added the SM3 hash type to align with the TPM Library
spec.

Signed-off-by: Stuart Yoder <stuart.yoder@arm.com>
---
 uefi-sct/SctPkg/UEFI/Protocol/TCG2.h | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/uefi-sct/SctPkg/UEFI/Protocol/TCG2.h b/uefi-sct/SctPkg/UEFI/Protocol/TCG2.h
index a83a84c33134..01ef81be8793 100644
--- a/uefi-sct/SctPkg/UEFI/Protocol/TCG2.h
+++ b/uefi-sct/SctPkg/UEFI/Protocol/TCG2.h
@@ -50,7 +50,12 @@ Abstract:
 
 #define EFI_TCG2_EVENT_LOG_FORMAT_TCG_2 0x00000002
 
-#define HASH_NUMBER 0x04
+#define HASH_NUMBER 0x05
+#define SHA1_DIGEST_SIZE    20
+#define SHA256_DIGEST_SIZE  32
+#define SHA384_DIGEST_SIZE  48
+#define SHA512_DIGEST_SIZE  64
+#define SM3_256_DIGEST_SIZE 32
 
 typedef struct _EFI_TCG2_PROTOCOL EFI_TCG2_PROTOCOL;
 
@@ -117,9 +122,17 @@ typedef struct tdEFI_TCG2_EVENT {
   UINT8 Event[];
 } EFI_TCG2_EVENT;
 
+typedef union {
+  UINT8 sha1[SHA1_DIGEST_SIZE];
+  UINT8 sha256[SHA256_DIGEST_SIZE];
+  UINT8 sm3_256[SM3_256_DIGEST_SIZE];
+  UINT8 sha384[SHA384_DIGEST_SIZE];
+  UINT8 sha512[SHA512_DIGEST_SIZE];
+} TPMU_HA;
+
 typedef struct {
   UINT16     hashAlg;
-  UINT8      digest[];
+  TPMU_HA    digest;
 } TPMT_HA;
 
 typedef struct tdTPML_DIGEST_VALUES {
-- 
2.34.1



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



  reply	other threads:[~2024-04-16 14:54 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-16 14:53 [edk2-devel] [PATCH v2 0/4] TCG2 protocol clean up Stuart Yoder
2024-04-16 14:53 ` Stuart Yoder [this message]
2024-04-24 11:16   ` [edk2-devel] [PATCH v2 1/4] uefi-sct/SctPkg: TCG2 Protocol: correct definition of TPMT_HA struct G Edhaya Chandran
2024-04-24 11:32     ` G Edhaya Chandran
2024-04-24 11:36       ` G Edhaya Chandran
2024-04-24 13:58         ` Stuart Yoder
2024-04-25  5:40           ` G Edhaya Chandran
2024-04-16 14:53 ` [edk2-devel] [PATCH v2 2/4] uefi-sct/SctPkg: TCG2 Protocol: use OFFSET_OF for computing offsets Stuart Yoder
2024-04-24 11:17   ` G Edhaya Chandran
2024-04-16 14:54 ` [edk2-devel] [PATCH v2 3/4] uefi-sct/SctPkg: TCG2 Protocol: #pragma pack cleanup Stuart Yoder
2024-04-24 11:17   ` G Edhaya Chandran
2024-04-16 14:54 ` [edk2-devel] [PATCH v2 4/4] uefi-sct/SctPkg: TCG2 Protocol: clean up type conversion warnings Stuart Yoder
2024-04-24 11:17   ` G Edhaya Chandran
2024-04-22 19:15 ` [edk2-devel] [PATCH v2 0/4] TCG2 protocol clean up Heinrich Schuchardt
2024-04-23  9:52   ` G Edhaya Chandran
2024-05-03 23:47     ` [edk2-devel] edk2-test Release candidate 2: edk2-test-rc2_202405 // " G Edhaya Chandran
2024-05-05 22:21       ` [edk2-devel] edk2-test Release candidate 2: edk2-test-rc2_202405 Heinrich Schuchardt
2024-05-06 17:26         ` G Edhaya Chandran
2024-05-09 20:23       ` [edk2-devel] edk2-test Release candidate 2: edk2-test-rc2_202405 // RE: [PATCH v2 0/4] TCG2 protocol clean up David Wright
2024-05-10  2:43         ` G Edhaya Chandran
2024-05-10  2:55           ` Chao Li
2024-05-10 14:56             ` G Edhaya Chandran
2024-05-11  2:47               ` Chao Li
     [not found]               ` <17CE4F3DF61B149E.21609@groups.io>
2024-05-13  6:21                 ` Chao Li
2024-05-13 15:21                   ` G Edhaya Chandran

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240416145401.3213797-2-stuart.yoder@arm.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox