[edk2-devel] [PATCH v2 9/9] SecurityPkg/Tcg2: handle PRE HASH and LOG ONLY

Qi Zhang posted 9 patches 5 years, 6 months ago
There is a newer version of this series
[edk2-devel] [PATCH v2 9/9] SecurityPkg/Tcg2: handle PRE HASH and LOG ONLY
Posted by Qi Zhang 5 years, 6 months ago
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>
---
 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;
 //
 #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.
 
diff --git a/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c b/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.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;
   }
 
-  if(Flags & EDKII_TCG_PRE_HASH) {
+  if ((Flags & EDKII_TCG_PRE_HASH) || (Flags & EDKII_TCG_PRE_HASH_LOG_ONLY)) {
     ZeroMem (&DigestList, sizeof(DigestList));
     CopyMem (&DigestList, HashData, sizeof(DigestList));
-    Status = Tpm2PcrExtend (
-             0,
-             &DigestList
-             );
+    if (Flags & EDKII_TCG_PRE_HASH) {
+      Status = Tpm2PcrExtend (
+               NewEventHdr->PCRIndex,
+               &DigestList
+               );
+    }
   } else {
     Status = HashAndExtend (
                NewEventHdr->PCRIndex,
-- 
2.26.2.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#63760): https://edk2.groups.io/g/devel/message/63760
Mute This Topic: https://groups.io/mt/76019593/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v2 9/9] SecurityPkg/Tcg2: handle PRE HASH and LOG ONLY
Posted by Liming Gao 5 years, 6 months ago
Qi:
  I run ECC plugin (https://edk2.groups.io/g/devel/message/63271) for this patch set. It reports below issues. Can you help update the patches to fix them?

EFI coding style error
  *Error code: 3002
  *Non-Boolean comparisons should use a compare operator (==, !=, >, < >=, <=)
  *file: D:\AllPkg\edk2\SecurityPkg\Tcg\Tcg2Pei\Tcg2Pei.c
  *Line number: 456
  *Predicate Expression: (Flags & EDKII_TCG_PRE_HASH 
EFI coding style error
  *Error code: 3002
  *Non-Boolean comparisons should use a compare operator (==, !=, >, < >=, <=)
  *file: D:\AllPkg\edk2\SecurityPkg\Tcg\Tcg2Pei\Tcg2Pei.c
  *Line number: 456
  *Predicate Expression: Flags & EDKII_TCG_PRE_HASH_LOG_ONLY 
EFI coding style error
  *Error code: 3002
  *Non-Boolean comparisons should use a compare operator (==, !=, >, < >=, <=)
  *file: D:\AllPkg\edk2\SecurityPkg\Tcg\Tcg2Pei\Tcg2Pei.c
  *Line number: 459
  *Predicate Expression: Flags & EDKII_TCG_PRE_HASH 
EFI coding style error
  *Error code: 4002
  *Function header doesn't exist
  *file: D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMeasurementLib.c
  *Line number: 279
  *Function [mFspFindFspHeader] has NO comment immediately preceding it. 
EFI coding style error
  *Error code: 8005
  *Variable name does not follow the rules: 1. First character should be upper case 2. Must contain lower case characters 3. No white space characters 4. Global variable name must start with a 'g'
  *file: D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMeasurementLib.c
  *Line number: 178
  *The variable name [*UPDEventLo] does not follow the rules
EFI coding style error
  *Error code: 8006
  *Function name does not follow the rules: 1. First character should be upper case 2. Must contain lower case characters 3. No white space characters
  *file: D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMeasurementLib.c
  *Line number: 279
  *The function name [mFspFindFspHeader] does not follow the rules
EFI coding style error
  *Error code: 9002
  *The function headers should follow Doxygen special documentation blocks in section 2.3.5
  *file: D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMeasurementLib.c
  *Line number: 149
  *Comment does NOT have tail **/ 
EFI coding style error
  *Error code: 9002
  *The function headers should follow Doxygen special documentation blocks in section 2.3.5
  *file: D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMeasurementLib.c
  *Line number: 312
  *Comment does NOT have tail **/ 
EFI coding style error
  *Error code: 9002
  *The function headers should follow Doxygen special documentation blocks in section 2.3.5
  *file: D:\AllPkg\edk2\SecurityPkg\Library\PeiTpmMeasurementLib\EventLogRecord.c
  *Line number: 86
  *Comment does NOT have tail **/ 
EFI coding style error
  *Error code: 9002
  *The function headers should follow Doxygen special documentation blocks in section 2.3.5
  *file: D:\AllPkg\edk2\SecurityPkg\Library\PeiTpmMeasurementLib\EventLogRecord.c
  *Line number: 155
  *Comment does NOT have tail **/ 
EFI coding style error
  *Error code: 9002
  *The function headers should follow Doxygen special documentation blocks in section 2.3.5
  *file: D:\AllPkg\edk2\SecurityPkg\Library\DxeTpmMeasurementLib\EventLogRecord.c
  *Line number: 86
  *Comment does NOT have tail **/ 
EFI coding style error
  *Error code: 9002
  *The function headers should follow Doxygen special documentation blocks in section 2.3.5
  *file: D:\AllPkg\edk2\SecurityPkg\Library\DxeTpmMeasurementLib\EventLogRecord.c
  *Line number: 155
  *Comment does NOT have tail **/ 
EFI coding style error
  *Error code: 9002
  *The function headers should follow Doxygen special documentation blocks in section 2.3.5
  *file: D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasurementLibNull.c
  *Line number: 43
  *Comment does NOT have tail **/ 
EFI coding style error
  *Error code: 9002
  *The function headers should follow Doxygen special documentation blocks in section 2.3.5
  *file: D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasurementLibNull.c
  *Line number: 43
  *in Comment, <@param[in] Descrption> does NOT consistent with parameter name PcrIndex 
EFI coding style error
  *Error code: 9002
  *The function headers should follow Doxygen special documentation blocks in section 2.3.5
  *file: D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasurementLibNull.c
  *Line number: 43
  *in Comment, <@param[in] FirmwareBlobBase> does NOT consistent with parameter name Description 
EFI coding style error
  *Error code: 9002
  *The function headers should follow Doxygen special documentation blocks in section 2.3.5
  *file: D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasurementLibNull.c
  *Line number: 43
  *in Comment, <@param[in] FirmwareBlobLength> does NOT consistent with parameter name FirmwareBlobBase 
EFI coding style error
  *Error code: 9002
  *The function headers should follow Doxygen special documentation blocks in section 2.3.5
  *file: D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasurementLibNull.c
  *Line number: 43
  *in Comment, <@retval EFI_SUCCESS> does NOT consistent with parameter name FirmwareBlobLength 
EFI coding style error
  *Error code: 9002
  *The function headers should follow Doxygen special documentation blocks in section 2.3.5
  *file: D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasurementLibNull.c
  *Line number: 70
  *Comment does NOT have tail **/

Thanks
Liming
-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Qi Zhang
Sent: 2020年8月6日 8:34
To: devel@edk2.groups.io
Cc: Zhang, Qi1 <qi1.zhang@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>; Wang, Jian J <jian.j.wang@intel.com>; Kumar, Rahul1 <rahul1.kumar@intel.com>
Subject: [edk2-devel] [PATCH v2 9/9] 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>
---
 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;
 // #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. diff --git a/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c b/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.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;   } -  if(Flags & EDKII_TCG_PRE_HASH) {+  if ((Flags & EDKII_TCG_PRE_HASH) || (Flags & EDKII_TCG_PRE_HASH_LOG_ONLY)) {     ZeroMem (&DigestList, sizeof(DigestList));     CopyMem (&DigestList, HashData, sizeof(DigestList));-    Status = Tpm2PcrExtend (-             0,-             &DigestList-             );+    if (Flags & EDKII_TCG_PRE_HASH) {+      Status = Tpm2PcrExtend (+               NewEventHdr->PCRIndex,+               &DigestList+               );+    }   } else {     Status = HashAndExtend (                NewEventHdr->PCRIndex,-- 
2.26.2.windows.1


-=-=-=-=-=-=
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#63760): https://edk2.groups.io/g/devel/message/63760
Mute This Topic: https://groups.io/mt/76019593/1759384
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [liming.gao@intel.com] -=-=-=-=-=-=


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#63932): https://edk2.groups.io/g/devel/message/63932
Mute This Topic: https://groups.io/mt/76019593/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v2 9/9] SecurityPkg/Tcg2: handle PRE HASH and LOG ONLY
Posted by Qi Zhang 5 years, 6 months ago
Hi, Liming

Thanks for your comments! Is there any wiki of how to run ECC plugin?

BRs
Qi Zhang

> -----Original Message-----
> From: Gao, Liming <liming.gao@intel.com>
> Sent: Tuesday, August 11, 2020 8:19 AM
> To: devel@edk2.groups.io; Zhang, Qi1 <qi1.zhang@intel.com>
> Cc: Yao, Jiewen <jiewen.yao@intel.com>; Wang, Jian J
> <jian.j.wang@intel.com>; Kumar, Rahul1 <rahul1.kumar@intel.com>
> Subject: RE: [edk2-devel] [PATCH v2 9/9] SecurityPkg/Tcg2: handle PRE HASH
> and LOG ONLY
> 
> Qi:
>   I run ECC plugin (https://edk2.groups.io/g/devel/message/63271) for this
> patch set. It reports below issues. Can you help update the patches to fix them?
> 
> EFI coding style error
>   *Error code: 3002
>   *Non-Boolean comparisons should use a compare operator (==, !=, >, < >=, <=)
>   *file: D:\AllPkg\edk2\SecurityPkg\Tcg\Tcg2Pei\Tcg2Pei.c
>   *Line number: 456
>   *Predicate Expression: (Flags & EDKII_TCG_PRE_HASH EFI coding style error
>   *Error code: 3002
>   *Non-Boolean comparisons should use a compare operator (==, !=, >, < >=, <=)
>   *file: D:\AllPkg\edk2\SecurityPkg\Tcg\Tcg2Pei\Tcg2Pei.c
>   *Line number: 456
>   *Predicate Expression: Flags & EDKII_TCG_PRE_HASH_LOG_ONLY EFI coding
> style error
>   *Error code: 3002
>   *Non-Boolean comparisons should use a compare operator (==, !=, >, < >=, <=)
>   *file: D:\AllPkg\edk2\SecurityPkg\Tcg\Tcg2Pei\Tcg2Pei.c
>   *Line number: 459
>   *Predicate Expression: Flags & EDKII_TCG_PRE_HASH EFI coding style error
>   *Error code: 4002
>   *Function header doesn't exist
>   *file:
> D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMe
> asurementLib.c
>   *Line number: 279
>   *Function [mFspFindFspHeader] has NO comment immediately preceding it.
> EFI coding style error
>   *Error code: 8005
>   *Variable name does not follow the rules: 1. First character should be upper
> case 2. Must contain lower case characters 3. No white space characters 4.
> Global variable name must start with a 'g'
>   *file:
> D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMe
> asurementLib.c
>   *Line number: 178
>   *The variable name [*UPDEventLo] does not follow the rules EFI coding style
> error
>   *Error code: 8006
>   *Function name does not follow the rules: 1. First character should be upper
> case 2. Must contain lower case characters 3. No white space characters
>   *file:
> D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMe
> asurementLib.c
>   *Line number: 279
>   *The function name [mFspFindFspHeader] does not follow the rules EFI coding
> style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation blocks in
> section 2.3.5
>   *file:
> D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMe
> asurementLib.c
>   *Line number: 149
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation blocks in
> section 2.3.5
>   *file:
> D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMe
> asurementLib.c
>   *Line number: 312
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation blocks in
> section 2.3.5
>   *file:
> D:\AllPkg\edk2\SecurityPkg\Library\PeiTpmMeasurementLib\EventLogRecord.c
>   *Line number: 86
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation blocks in
> section 2.3.5
>   *file:
> D:\AllPkg\edk2\SecurityPkg\Library\PeiTpmMeasurementLib\EventLogRecord.c
>   *Line number: 155
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation blocks in
> section 2.3.5
>   *file:
> D:\AllPkg\edk2\SecurityPkg\Library\DxeTpmMeasurementLib\EventLogRecord.
> c
>   *Line number: 86
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation blocks in
> section 2.3.5
>   *file:
> D:\AllPkg\edk2\SecurityPkg\Library\DxeTpmMeasurementLib\EventLogRecord.
> c
>   *Line number: 155
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation blocks in
> section 2.3.5
>   *file:
> D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasur
> ementLibNull.c
>   *Line number: 43
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation blocks in
> section 2.3.5
>   *file:
> D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasur
> ementLibNull.c
>   *Line number: 43
>   *in Comment, <@param[in] Descrption> does NOT consistent with parameter
> name PcrIndex EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation blocks in
> section 2.3.5
>   *file:
> D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasur
> ementLibNull.c
>   *Line number: 43
>   *in Comment, <@param[in] FirmwareBlobBase> does NOT consistent with
> parameter name Description EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation blocks in
> section 2.3.5
>   *file:
> D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasur
> ementLibNull.c
>   *Line number: 43
>   *in Comment, <@param[in] FirmwareBlobLength> does NOT consistent with
> parameter name FirmwareBlobBase EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation blocks in
> section 2.3.5
>   *file:
> D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasur
> ementLibNull.c
>   *Line number: 43
>   *in Comment, <@retval EFI_SUCCESS> does NOT consistent with parameter
> name FirmwareBlobLength EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation blocks in
> section 2.3.5
>   *file:
> D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasur
> ementLibNull.c
>   *Line number: 70
>   *Comment does NOT have tail **/
> 
> Thanks
> Liming
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Qi Zhang
> Sent: 2020年8月6日 8:34
> To: devel@edk2.groups.io
> Cc: Zhang, Qi1 <qi1.zhang@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>;
> Wang, Jian J <jian.j.wang@intel.com>; Kumar, Rahul1
> <rahul1.kumar@intel.com>
> Subject: [edk2-devel] [PATCH v2 9/9] 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>
> ---
>  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;
>  // #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. diff --git
> a/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c b/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.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;   } -  if(Flags & EDKII_TCG_PRE_HASH) {+  if
> ((Flags & EDKII_TCG_PRE_HASH) || (Flags & EDKII_TCG_PRE_HASH_LOG_ONLY))
> {     ZeroMem (&DigestList, sizeof(DigestList));     CopyMem (&DigestList,
> HashData, sizeof(DigestList));-    Status = Tpm2PcrExtend (-             0,-
> &DigestList-             );+    if (Flags & EDKII_TCG_PRE_HASH) {+      Status =
> Tpm2PcrExtend (+               NewEventHdr->PCRIndex,+
> &DigestList+               );+    }   } else {     Status = HashAndExtend
> (                NewEventHdr->PCRIndex,--
> 2.26.2.windows.1
> 
> 
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> 
> View/Reply Online (#63760): https://edk2.groups.io/g/devel/message/63760
> Mute This Topic: https://groups.io/mt/76019593/1759384
> Group Owner: devel+owner@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub  [liming.gao@intel.com] -=-
> =-=-=-=-=


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#63935): https://edk2.groups.io/g/devel/message/63935
Mute This Topic: https://groups.io/mt/76019593/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v2 9/9] SecurityPkg/Tcg2: handle PRE HASH and LOG ONLY
Posted by Liming Gao 5 years, 6 months ago
Qi:
  EccPlugin will be enabled in open CI. Then, ECC result can be checked in open CI result. Now, I use the standalone EccCheck.py from https://github.com/shenglei10/edk2/tree/ecc_script to check the patch set. 

Thanks
Liming
-----Original Message-----
From: Zhang, Qi1 <qi1.zhang@intel.com> 
Sent: 2020年8月11日 8:54
To: Gao, Liming <liming.gao@intel.com>; devel@edk2.groups.io
Cc: Yao, Jiewen <jiewen.yao@intel.com>; Wang, Jian J <jian.j.wang@intel.com>; Kumar, Rahul1 <rahul1.kumar@intel.com>
Subject: RE: [edk2-devel] [PATCH v2 9/9] SecurityPkg/Tcg2: handle PRE HASH and LOG ONLY

Hi, Liming

Thanks for your comments! Is there any wiki of how to run ECC plugin?

BRs
Qi Zhang

> -----Original Message-----
> From: Gao, Liming <liming.gao@intel.com>
> Sent: Tuesday, August 11, 2020 8:19 AM
> To: devel@edk2.groups.io; Zhang, Qi1 <qi1.zhang@intel.com>
> Cc: Yao, Jiewen <jiewen.yao@intel.com>; Wang, Jian J 
> <jian.j.wang@intel.com>; Kumar, Rahul1 <rahul1.kumar@intel.com>
> Subject: RE: [edk2-devel] [PATCH v2 9/9] SecurityPkg/Tcg2: handle PRE 
> HASH and LOG ONLY
> 
> Qi:
>   I run ECC plugin (https://edk2.groups.io/g/devel/message/63271) for 
> this patch set. It reports below issues. Can you help update the patches to fix them?
> 
> EFI coding style error
>   *Error code: 3002
>   *Non-Boolean comparisons should use a compare operator (==, !=, >, < >=, <=)
>   *file: D:\AllPkg\edk2\SecurityPkg\Tcg\Tcg2Pei\Tcg2Pei.c
>   *Line number: 456
>   *Predicate Expression: (Flags & EDKII_TCG_PRE_HASH EFI coding style error
>   *Error code: 3002
>   *Non-Boolean comparisons should use a compare operator (==, !=, >, < >=, <=)
>   *file: D:\AllPkg\edk2\SecurityPkg\Tcg\Tcg2Pei\Tcg2Pei.c
>   *Line number: 456
>   *Predicate Expression: Flags & EDKII_TCG_PRE_HASH_LOG_ONLY EFI 
> coding style error
>   *Error code: 3002
>   *Non-Boolean comparisons should use a compare operator (==, !=, >, < >=, <=)
>   *file: D:\AllPkg\edk2\SecurityPkg\Tcg\Tcg2Pei\Tcg2Pei.c
>   *Line number: 459
>   *Predicate Expression: Flags & EDKII_TCG_PRE_HASH EFI coding style error
>   *Error code: 4002
>   *Function header doesn't exist
>   *file:
> D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMe
> asurementLib.c
>   *Line number: 279
>   *Function [mFspFindFspHeader] has NO comment immediately preceding it.
> EFI coding style error
>   *Error code: 8005
>   *Variable name does not follow the rules: 1. First character should 
> be upper case 2. Must contain lower case characters 3. No white space characters 4.
> Global variable name must start with a 'g'
>   *file:
> D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMe
> asurementLib.c
>   *Line number: 178
>   *The variable name [*UPDEventLo] does not follow the rules EFI 
> coding style error
>   *Error code: 8006
>   *Function name does not follow the rules: 1. First character should 
> be upper case 2. Must contain lower case characters 3. No white space characters
>   *file:
> D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMe
> asurementLib.c
>   *Line number: 279
>   *The function name [mFspFindFspHeader] does not follow the rules EFI 
> coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation 
> blocks in section 2.3.5
>   *file:
> D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMe
> asurementLib.c
>   *Line number: 149
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation 
> blocks in section 2.3.5
>   *file:
> D:\AllPkg\edk2\IntelFsp2WrapperPkg\Library\BaseFspMeasurementLib\FspMe
> asurementLib.c
>   *Line number: 312
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation 
> blocks in section 2.3.5
>   *file:
> D:\AllPkg\edk2\SecurityPkg\Library\PeiTpmMeasurementLib\EventLogRecord.c
>   *Line number: 86
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation 
> blocks in section 2.3.5
>   *file:
> D:\AllPkg\edk2\SecurityPkg\Library\PeiTpmMeasurementLib\EventLogRecord.c
>   *Line number: 155
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation 
> blocks in section 2.3.5
>   *file:
> D:\AllPkg\edk2\SecurityPkg\Library\DxeTpmMeasurementLib\EventLogRecord.
> c
>   *Line number: 86
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation 
> blocks in section 2.3.5
>   *file:
> D:\AllPkg\edk2\SecurityPkg\Library\DxeTpmMeasurementLib\EventLogRecord.
> c
>   *Line number: 155
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation 
> blocks in section 2.3.5
>   *file:
> D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasur
> ementLibNull.c
>   *Line number: 43
>   *Comment does NOT have tail **/
> EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation 
> blocks in section 2.3.5
>   *file:
> D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasur
> ementLibNull.c
>   *Line number: 43
>   *in Comment, <@param[in] Descrption> does NOT consistent with 
> parameter name PcrIndex EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation 
> blocks in section 2.3.5
>   *file:
> D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasur
> ementLibNull.c
>   *Line number: 43
>   *in Comment, <@param[in] FirmwareBlobBase> does NOT consistent with 
> parameter name Description EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation 
> blocks in section 2.3.5
>   *file:
> D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasur
> ementLibNull.c
>   *Line number: 43
>   *in Comment, <@param[in] FirmwareBlobLength> does NOT consistent 
> with parameter name FirmwareBlobBase EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation 
> blocks in section 2.3.5
>   *file:
> D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasur
> ementLibNull.c
>   *Line number: 43
>   *in Comment, <@retval EFI_SUCCESS> does NOT consistent with 
> parameter name FirmwareBlobLength EFI coding style error
>   *Error code: 9002
>   *The function headers should follow Doxygen special documentation 
> blocks in section 2.3.5
>   *file:
> D:\AllPkg\edk2\MdeModulePkg\Library\TpmMeasurementLibNull\TpmMeasur
> ementLibNull.c
>   *Line number: 70
>   *Comment does NOT have tail **/
> 
> Thanks
> Liming
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Qi 
> Zhang
> Sent: 2020年8月6日 8:34
> To: devel@edk2.groups.io
> Cc: Zhang, Qi1 <qi1.zhang@intel.com>; Yao, Jiewen 
> <jiewen.yao@intel.com>; Wang, Jian J <jian.j.wang@intel.com>; Kumar, 
> Rahul1 <rahul1.kumar@intel.com>
> Subject: [edk2-devel] [PATCH v2 9/9] 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>
> ---
>  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;  // 
> #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. 
> diff --git a/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c 
> b/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.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;   } -  if(Flags & EDKII_TCG_PRE_HASH) {+  if
> ((Flags & EDKII_TCG_PRE_HASH) || (Flags & EDKII_TCG_PRE_HASH_LOG_ONLY))
> {     ZeroMem (&DigestList, sizeof(DigestList));     CopyMem (&DigestList,
> HashData, sizeof(DigestList));-    Status = Tpm2PcrExtend (-             0,-
> &DigestList-             );+    if (Flags & EDKII_TCG_PRE_HASH) {+      Status =
> Tpm2PcrExtend (+               NewEventHdr->PCRIndex,+
> &DigestList+               );+    }   } else {     Status = HashAndExtend
> (                NewEventHdr->PCRIndex,--
> 2.26.2.windows.1
> 
> 
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> 
> View/Reply Online (#63760): 
> https://edk2.groups.io/g/devel/message/63760
> Mute This Topic: https://groups.io/mt/76019593/1759384
> Group Owner: devel+owner@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub  
> [liming.gao@intel.com] -=- =-=-=-=-=


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#63938): https://edk2.groups.io/g/devel/message/63938
Mute This Topic: https://groups.io/mt/76019593/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v2 9/9] SecurityPkg/Tcg2: handle PRE HASH and LOG ONLY
Posted by Wang, Jian J 5 years, 6 months ago

Reviewed-by: Jian J Wang <jian.j.wang@intel.com>

Regards,
Jian

> -----Original Message-----
> From: Zhang, Qi1 <qi1.zhang@intel.com>
> Sent: Thursday, August 06, 2020 8:34 AM
> To: devel@edk2.groups.io
> Cc: Zhang, Qi1 <qi1.zhang@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>;
> Wang, Jian J <jian.j.wang@intel.com>; Kumar, Rahul1 <rahul1.kumar@intel.com>
> Subject: [PATCH v2 9/9] 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>
> ---
>  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;
>  //
> 
>  #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.
> 
> 
> 
> diff --git a/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c
> b/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.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;
> 
>    }
> 
> 
> 
> -  if(Flags & EDKII_TCG_PRE_HASH) {
> 
> +  if ((Flags & EDKII_TCG_PRE_HASH) || (Flags &
> EDKII_TCG_PRE_HASH_LOG_ONLY)) {
> 
>      ZeroMem (&DigestList, sizeof(DigestList));
> 
>      CopyMem (&DigestList, HashData, sizeof(DigestList));
> 
> -    Status = Tpm2PcrExtend (
> 
> -             0,
> 
> -             &DigestList
> 
> -             );
> 
> +    if (Flags & EDKII_TCG_PRE_HASH) {
> 
> +      Status = Tpm2PcrExtend (
> 
> +               NewEventHdr->PCRIndex,
> 
> +               &DigestList
> 
> +               );
> 
> +    }
> 
>    } else {
> 
>      Status = HashAndExtend (
> 
>                 NewEventHdr->PCRIndex,
> 
> --
> 2.26.2.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#64043): https://edk2.groups.io/g/devel/message/64043
Mute This Topic: https://groups.io/mt/76019593/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-