SecurityPkg/Tcg2: handle PRE HASH and LOG ONLY

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2376

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Qi Zhang <qi1.zhang@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Signed-off-by: Qi Zhang <qi1.zhang@intel.com>
Message-Id: <20200818062618.3698-8-qi1.zhang@intel.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
This commit is contained in:
Qi Zhang 2020-08-18 14:26:17 +08:00 committed by mergify[bot]
parent c1a42bb0e2
commit 547067dd86
2 changed files with 12 additions and 5 deletions

View File

@ -18,6 +18,11 @@ typedef struct _EDKII_TCG_PPI EDKII_TCG_PPI;
// //
#define EDKII_TCG_PRE_HASH 0x0000000000000001 #define EDKII_TCG_PRE_HASH 0x0000000000000001
//
// This bit is shall be set when HashData is the pre-hash digest and log only.
//
#define EDKII_TCG_PRE_HASH_LOG_ONLY 0x0000000000000002
/** /**
Tpm measure and log data, and extend the measurement result into a specific PCR. Tpm measure and log data, and extend the measurement result into a specific PCR.

View File

@ -453,13 +453,15 @@ HashLogExtendEvent (
return EFI_DEVICE_ERROR; return EFI_DEVICE_ERROR;
} }
if(Flags & EDKII_TCG_PRE_HASH) { if ((Flags & EDKII_TCG_PRE_HASH) != 0 || (Flags & EDKII_TCG_PRE_HASH_LOG_ONLY) != 0) {
ZeroMem (&DigestList, sizeof(DigestList)); ZeroMem (&DigestList, sizeof(DigestList));
CopyMem (&DigestList, HashData, sizeof(DigestList)); CopyMem (&DigestList, HashData, sizeof(DigestList));
Status = Tpm2PcrExtend ( if ((Flags & EDKII_TCG_PRE_HASH) !=0 ) {
0, Status = Tpm2PcrExtend (
&DigestList NewEventHdr->PCRIndex,
); &DigestList
);
}
} else { } else {
Status = HashAndExtend ( Status = HashAndExtend (
NewEventHdr->PCRIndex, NewEventHdr->PCRIndex,