From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com []) by mx.groups.io with SMTP id smtpd.web11.3442.1596674029695996418 for ; Wed, 05 Aug 2020 17:34:03 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=fail (domain: intel.com, ip: , mailfrom: qi1.zhang@intel.com) IronPort-SDR: vEGgnIVBrFir9zrJVWX3A6qQsd+CVosPeIbBnGdcVYCFujbJcyGNXWzUZj74IgZvGXDjQB0eKl 0i47h46J83EA== X-IronPort-AV: E=McAfee;i="6000,8403,9704"; a="150152862" X-IronPort-AV: E=Sophos;i="5.75,439,1589266800"; d="scan'208";a="150152862" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Aug 2020 17:34:03 -0700 IronPort-SDR: N/851xkmH8VZik1HnBvMaFdrvtCDiNXqE3wtc0YEwOilWfxooOcr3Woj6SDR+FAqaCItb0ES0+ JlSkpLDOqk/g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,439,1589266800"; d="scan'208";a="274924491" Received: from shwdesssddpdqi.ccr.corp.intel.com ([10.239.9.10]) by fmsmga007.fm.intel.com with ESMTP; 05 Aug 2020 17:34:02 -0700 From: "Qi Zhang" To: devel@edk2.groups.io Cc: Qi Zhang , Jiewen Yao , Jian J Wang , Rahul Kumar Subject: [PATCH v2 9/9] SecurityPkg/Tcg2: handle PRE HASH and LOG ONLY Date: Thu, 6 Aug 2020 08:33:42 +0800 Message-Id: <20200806003342.17866-10-qi1.zhang@intel.com> X-Mailer: git-send-email 2.26.2.windows.1 In-Reply-To: <20200806003342.17866-1-qi1.zhang@intel.com> References: <20200806003342.17866-1-qi1.zhang@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2376 Cc: Jiewen Yao Cc: Jian J Wang Cc: Qi Zhang Cc: Rahul Kumar Signed-off-by: Qi Zhang --- SecurityPkg/Include/Ppi/Tcg.h | 5 +++++ SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c | 12 +++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/SecurityPkg/Include/Ppi/Tcg.h b/SecurityPkg/Include/Ppi/Tcg.h index 0e943f2465..22f47f9817 100644 --- a/SecurityPkg/Include/Ppi/Tcg.h +++ b/SecurityPkg/Include/Ppi/Tcg.h @@ -18,6 +18,11 @@ typedef struct _EDKII_TCG_PPI EDKII_TCG_PPI; //=0D #define EDKII_TCG_PRE_HASH 0x0000000000000001=0D =0D +//=0D +// This bit is shall be set when HashData is the pre-hash digest and log o= nly.=0D +//=0D +#define EDKII_TCG_PRE_HASH_LOG_ONLY 0x0000000000000002=0D +=0D /**=0D Tpm measure and log data, and extend the measurement result into a speci= fic PCR.=0D =0D diff --git a/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c b/SecurityPkg/Tcg/Tcg2Pei/Tc= g2Pei.c index 246968bb7f..b56b03746c 100644 --- a/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c +++ b/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c @@ -453,13 +453,15 @@ HashLogExtendEvent ( return EFI_DEVICE_ERROR;=0D }=0D =0D - if(Flags & EDKII_TCG_PRE_HASH) {=0D + if ((Flags & EDKII_TCG_PRE_HASH) || (Flags & EDKII_TCG_PRE_HASH_LOG_ONLY= )) {=0D ZeroMem (&DigestList, sizeof(DigestList));=0D CopyMem (&DigestList, HashData, sizeof(DigestList));=0D - Status =3D Tpm2PcrExtend (=0D - 0,=0D - &DigestList=0D - );=0D + if (Flags & EDKII_TCG_PRE_HASH) {=0D + Status =3D Tpm2PcrExtend (=0D + NewEventHdr->PCRIndex,=0D + &DigestList=0D + );=0D + }=0D } else {=0D Status =3D HashAndExtend (=0D NewEventHdr->PCRIndex,=0D --=20 2.26.2.windows.1