From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web09.5804.1635834303745790380 for ; Mon, 01 Nov 2021 23:25:03 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=uzqYaaz5; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: jiewen.yao@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10155"; a="211246154" X-IronPort-AV: E=Sophos;i="5.87,201,1631602800"; d="scan'208";a="211246154" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Nov 2021 23:25:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,201,1631602800"; d="scan'208";a="666995702" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga005.jf.intel.com with ESMTP; 01 Nov 2021 23:25:01 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 1 Nov 2021 23:25:01 -0700 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 1 Nov 2021 23:25:00 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Mon, 1 Nov 2021 23:25:00 -0700 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.41) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Mon, 1 Nov 2021 23:25:00 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eVwH14vKTKT9yb/nNnRAuGQkQzj9dOdXa+oCtayRrJH5VlIIK51ThFwI/gecx64TXiPCznQCSRIaAnF0wdyvczKq4U6DzBVP+wyUh467B3fzznU1gYmcHxXr1tDdUD77cZ71K9kML4AKqdq92vqzDX6X24N1a8Rg8VoP4SH+hv0py0eWejrJ74cme6UnxinSaihl3L4saKXJCSOpxHaauEDRJud09tUOGBkVDmUwSrwJDpjrEI/liNfveJbla1Gtnr0y3vhfrueuLUlRzph9+zyJMpJ97ad31Om04Lc3f0q9kHgHm7/0GPQKjU7IlfiOiqWzLL8RYZjBvgb2IwLrLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Y5NXprt8EVXXbEJN9r0n6W0631eF5e992lVDpsJiQ+0=; b=F0D3GgKPz7y2Qs60Cc4ESI5w6XFpACudR2F0lv6PvkPva+vgOeiIVRswLJ2viMXN9qO4XMBCGsuDdlzHzOiHaW8+KbojQJC5SLNulkHPlg6eNvO9pYHIM1PmOwhO9EY2NXgG4K7T08Lcimrb2DdIzD/ViOqECbcZ/dRPCY0ahighgTUUgKP2mlxZLRtZF+8lQWG/UT10elnpFFTe02/KBgYBOabLEXwQ9qIV8WkfU9UqhAxIhVv9x9lwh/30UowUCLDrwq4QjXqpGPqtthRAePtpYodHGAW17rqbkyiydsXzm42D2I54HwEHhkyjxDygaKpGIcQLHFvvaetfi4gYKQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y5NXprt8EVXXbEJN9r0n6W0631eF5e992lVDpsJiQ+0=; b=uzqYaaz5z3RLb50I1r+UIO7OnHmpZ3uBXIwdtjJmCzkJNzWpi0slNxgUegB4zrezOrd0/WQRwHULbKvG8puODVQG/WVJq7ZFaDjHoCiDvUm3WCWtEXSm4ymjSG9vXMpS+4ZncFs15hEbaMqqzJsqFtot3aEtyQ+eWIPCbBukUVI= Received: from PH0PR11MB4885.namprd11.prod.outlook.com (2603:10b6:510:35::14) by PH0PR11MB5830.namprd11.prod.outlook.com (2603:10b6:510:129::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov 2021 06:24:58 +0000 Received: from PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::c5cb:e37a:9f3:8f80]) by PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::c5cb:e37a:9f3:8f80%5]) with mapi id 15.20.4649.019; Tue, 2 Nov 2021 06:24:59 +0000 From: "Yao, Jiewen" To: "Xu, Min M" , "devel@edk2.groups.io" CC: "Kinney, Michael D" , Liming Gao , "Liu, Zhiguang" , "Wang, Jian J" , Sami Mujawar , "Gerd Hoffmann" Subject: Re: [PATCH V4 3/3] SecurityPkg: Support CcMeasurementProtocol in DxeTpmMeasurementLib Thread-Topic: [PATCH V4 3/3] SecurityPkg: Support CcMeasurementProtocol in DxeTpmMeasurementLib Thread-Index: AQHXz5SlEO7xpZXKj0ewSExCMI+F3avvxYng Date: Tue, 2 Nov 2021 06:24:58 +0000 Message-ID: References: <44a80d4605e02dcf5fed85c5669aedbff3a283a1.1635818903.git.min.m.xu@intel.com> In-Reply-To: <44a80d4605e02dcf5fed85c5669aedbff3a283a1.1635818903.git.min.m.xu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.200.16 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ed18c730-bc17-4acb-1d14-08d99dc97ebe x-ms-traffictypediagnostic: PH0PR11MB5830: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4941; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: JC89hZGQh5CkM2f2wAMgwsb2hnBqqG4N0GnWkhp3ODSDkp6UvXk0yVHLTzQ+v3fsITQXnuPWTPhI84qCy/ySS/WRjtj/eWxwKAGhoGbYRaVS/lee9xobICNrzJ2YwdGQgah1szmvGgW73QxqvSIES9eQN6GG2Afluv+/ks9omt0iqxfaS7+uR7sDfG5HPSO8k/PUWw1dsoyhogf8iTZ+5rYM5bvRcF/KVtT7Al6rru768IXZsQfRtD/0fv9FpZFJZPrGPPJ9ZIhRd3DqyeTHjYkrROni+brGuFRYauXiwoCZ/YGAffAIW6LFdQx+meVXnkv/INFa/5pc8pePiZBcrBcHTWIc6f+kJQCqyQuvQAdEJVKOsqWulAs2DwOdGnuc3Sw2xKI7aDl8tc6qwZmHG/YbPEvnu55384TFReMHvWG56piJzZcVB+ODTgXRr0ZEg6lwaJ7gTOColX6o0hJzh8AdUZZmjiWp0+Fi+szwYa3nagPCKeudozmT3NKBB0hVxQAQ1UV2vzzyCHyLxAbpUnsp0p75FrfbOr/XwFAQ4rwFxQQnokAwnGJeaqaGyLWZ0uAWiGL8KyfgijnbZTzH9NZqy6h33BN9H0Kop9TUAc1p1tbSBtd1Np8veQ4PrqRl/SchDOM2/2pdgeKY7d2eE9KMg4D1bWJHCLIj4dsgoIPOTjRq1TAZRDERa6pEYZKodEprDNlEciNabCYTAqqmXfOhCvCmaYql7xD6+oo2fZBYbErl/CoLUBxSh8Ako4cKFOznjNLycUGk19TPdG48G7piVm3alsEy8jv7kYotcEk= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB4885.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(6029001)(366004)(186003)(7696005)(86362001)(26005)(54906003)(82960400001)(64756008)(66476007)(316002)(66946007)(2906002)(66556008)(19627235002)(66446008)(83380400001)(9686003)(6506007)(53546011)(110136005)(38070700005)(966005)(76116006)(15650500001)(122000001)(33656002)(38100700002)(5660300002)(8936002)(52536014)(55016002)(8676002)(4326008)(71200400001)(508600001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?xeCxFRcuNiQQLX3VO2Z2+HTgku5RKzmJXyAmEy5g0AaracfoWpWCGB/poQvg?= =?us-ascii?Q?mbKxfCc0+LOBj8JKvEjGFPgPRHL3+u/9evLHEu/3JX4JyfTVh1crRxu57Uls?= =?us-ascii?Q?X0iujySkJje/LCQCTKNEIX3w1w63CN7apm0CsIaBdOgpuEVtt4wikrfpmHL8?= =?us-ascii?Q?ObXvrDNTv/1P6sJ88ihRqsdGB3srO563VGogq0QndQfB+jIcmZM0JdIaOdIO?= =?us-ascii?Q?i3PoIEArFns2QObyw1H9QxfmiHS3fGn0Kk/4+bjgQezmuNhUMswwgHLT1yoo?= =?us-ascii?Q?fC8hlWpR/KK6B3DXhv1Xr77g/H5NhWAwVMpeHSQFkJgIf0vgrEa0IgIHkq3i?= =?us-ascii?Q?WrV8YeTCFGuc9hEKrH/uLg0ZVCnmn0NoMqjRQGLKTdhagkbQYmjBtoUKuw1j?= =?us-ascii?Q?8PYT8wzDJ68w/QSv5Stg7OnHDUxWGr7erImFCAXmSlf2QU1WxgN4gk0Jpe/3?= =?us-ascii?Q?6C9ayEP+5571KSW3AyzLuFSeeQ7D3uaMp836RalQyZWHttId31eeXW2PuNPc?= =?us-ascii?Q?FilinO3mZOTALv0PhT0HUx4dRpdTEeVDvZFfc9e1VhNp62FVEIRFjRM4MWLO?= =?us-ascii?Q?bCmpjPvQceISpMe6mCuymV1FsrP0jwdJZLduX20VDW+i8983LaG5TJUTn2BS?= =?us-ascii?Q?etSFscCIEA1eBjIC+ltJWwWYuX20MAD61vwWKJz8qF6hcb0JR9KB357eaOQP?= =?us-ascii?Q?MKDmxXbj67h/PB+eyvKnhPhh426+fWsAfxHPInN58O3vmWWdorfFBf2UdXh3?= =?us-ascii?Q?OC2BivfEWU48BzeMURMsbKNqHFghzLivtkbcWRo1Kg8jRVcqLY3mFm8AMl9B?= =?us-ascii?Q?TV+fuH28evKEYVY7JYdbukKe6mPhoanvVX5kFqxK5NFW1QgVnjNRZC9Cl/Ss?= =?us-ascii?Q?LXxCYX5gIpNAGK0ZLW61h2MSxCv+6CdnEl8TILg5pm0oLig8U8lQw/wNMOQW?= =?us-ascii?Q?0WiNzh6Wsjg00CcynKMj8yIOKlpO0wDLeJ12hP1ceibgLo8mLl5MNA4Bml2v?= =?us-ascii?Q?vX2yhx4Bwj3ECxX6myPohl/GPPPDx1nrAayhNxBM3aue2Mc9Vxxhd54viG6J?= =?us-ascii?Q?AR7k/M2R3x5L1GjyWQu/HRzqSJAsvAxVJiOlnMwNuTubklJKIKwWslQ4SLYI?= =?us-ascii?Q?d58GJ4kylQIZFkyq90bY2OXja8Dm6bZX33kKGNSg9OiLTq2LTp4k6PbLUPhk?= =?us-ascii?Q?OaC6Wb7R7HGfsZBiQj6WKmJZ3bEml/VKFUOr181VJaEMt5LY8fjVevrkWYri?= =?us-ascii?Q?sQ6fRtTU9/7cKh7Qx7zaP0TjMSju3OdA5u+SKQOqpmQwlrpyAuleZtOc0j8v?= =?us-ascii?Q?EODJNhM3O/0FN9//01VYQx+f0HTWOYXLWQMd9bCpUqQIwRQ5luVFlnM3SnoA?= =?us-ascii?Q?J3d1vMBEZMjo4VYpEq3cWRTXngWbcBeq2sD/uNA14OGE+LGJFy9vZZzXILSH?= =?us-ascii?Q?+giiznNSPBZNSOPMDSwR5JC5qDU1wGnrQYwUQkBQJODaFwlGyDcb+fJoUPa1?= =?us-ascii?Q?vXZ4yTcjCg8MtND+0SUq1OAQ5nJc86C8MKJd2acjPet48zi/K2hY3TXHFxZz?= =?us-ascii?Q?NP88+yIArC9kiIDe3BzWR5buZb0OvgFMR/7BPv2aIQYIHM6zj6GZeebvn7aW?= =?us-ascii?Q?0Jwp3KvDIASAcLlpkPnFaB4=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4885.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ed18c730-bc17-4acb-1d14-08d99dc97ebe X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 06:24:58.8448 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: EV7XeCHPkq92fvWhWlMWy53l3wnhP+Uat8cFu5b7j6ntgseE0d1NG7aZTIitDb0iZt4wISBqPNW0hHm3L0tZ/g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5830 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable May I know which platform you have run the test? I think we need cover both TD and TPM in real platform. > -----Original Message----- > From: Xu, Min M > Sent: Tuesday, November 2, 2021 10:51 AM > To: devel@edk2.groups.io > Cc: Xu, Min M ; Kinney, Michael D > ; Liming Gao ; Liu, > Zhiguang ; Yao, Jiewen ; > Wang, Jian J ; Sami Mujawar > ; Gerd Hoffmann > Subject: [PATCH V4 3/3] SecurityPkg: Support CcMeasurementProtocol in > DxeTpmMeasurementLib >=20 > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3625 >=20 > DxeTpmMeasurementLib supports TPM based measurement in DXE phase. > After CcMeasurementProtocol is introduced, CC based measurement needs > to be supported in DxeTpmMeasurementLib as well. >=20 > In TpmMeasureAndLogData, CC based measurement will be first called. > If it failed, TPM based measurement will be called sequentially. > Currently there is an assumption that CC based measurement and > TPM based measurement won't be exist at the same time.If the > assumption is not true in the future, we will revisit here then. >=20 > Cc: Michael D Kinney > Cc: Liming Gao > Cc: Zhiguang Liu > Cc: Jiewen Yao > Cc: Jian J Wang > Cc: Sami Mujawar > Cc: Gerd Hoffmann > Signed-off-by: Min Xu > --- > .../DxeTpmMeasurementLib.c | 91 ++++++++++++++++++- > .../DxeTpmMeasurementLib.inf | 9 +- > 2 files changed, 92 insertions(+), 8 deletions(-) >=20 > diff --git > a/SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.c > b/SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.c > index 061136ee7860..2ddb9033a0d5 100644 > --- a/SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.c > +++ b/SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.c > @@ -1,5 +1,6 @@ > /** @file > - This library is used by other modules to measure data to TPM. > + This library is used by other modules to measure data to TPM and Confi= dential > + Computing (CC) measure registers. >=20 > Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent > @@ -19,8 +20,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > #include > #include > - > - > +#include >=20 > /** > Tpm12 measure and log data, and extend the measurement result into a > specific PCR. > @@ -149,6 +149,73 @@ Tpm20MeasureAndLogData ( > return Status; > } >=20 > +/** > + Cc measure and log data, and extend the measurement result into a > + specific CC MR. > + > + @param[in] PcrIndex PCR Index. > + @param[in] EventType Event type. > + @param[in] EventLog Measurement event log. > + @param[in] LogLen Event log length in bytes. > + @param[in] HashData The start of the data buffer to be hashed= , > extended. > + @param[in] HashDataLen The length, in bytes, of the buffer refer= enced by > HashData > + > + @retval EFI_SUCCESS Operation completed successfully. > + @retval EFI_UNSUPPORTED Tdx device not available. > + @retval EFI_OUT_OF_RESOURCES Out of memory. > + @retval EFI_DEVICE_ERROR The operation was unsuccessful. > +**/ > +EFI_STATUS > +EFIAPI > +CcMeasureAndLogData ( > + IN UINT32 PcrIndex, > + IN UINT32 EventType, > + IN VOID *EventLog, > + IN UINT32 LogLen, > + IN VOID *HashData, > + IN UINT64 HashDataLen > + ) > +{ > + EFI_STATUS Status; > + EFI_CC_MEASUREMENT_PROTOCOL *CcProtocol; > + EFI_CC_EVENT *EfiCcEvent; > + UINT32 MrIndex; > + > + Status =3D gBS->LocateProtocol (&gEfiCcMeasurementProtocolGuid, NULL, > (VOID **) &CcProtocol); > + if (EFI_ERROR (Status)) { > + return Status; > + } > + > + Status =3D CcProtocol->MapPcrToMrIndex (CcProtocol, PcrIndex, &MrIndex= ); > + if (EFI_ERROR (Status)) { > + return EFI_INVALID_PARAMETER; > + } > + > + EfiCcEvent =3D (EFI_CC_EVENT *) AllocateZeroPool (LogLen + sizeof > (EFI_CC_EVENT)); > + if(EfiCcEvent =3D=3D NULL) { > + return EFI_OUT_OF_RESOURCES; > + } > + > + EfiCcEvent->Size =3D (UINT32) LogLen + sizeof (EFI_CC_EVENT) - sizeof > (EfiCcEvent->Event); > + EfiCcEvent->Header.HeaderSize =3D sizeof (EFI_CC_EVENT_HEADER); > + EfiCcEvent->Header.HeaderVersion =3D EFI_CC_EVENT_HEADER_VERSION; > + EfiCcEvent->Header.MrIndex =3D MrIndex; > + EfiCcEvent->Header.EventType =3D EventType; > + CopyMem (&EfiCcEvent->Event[0], EventLog, LogLen); > + > + Status =3D CcProtocol->HashLogExtendEvent ( > + CcProtocol, > + 0, > + (EFI_PHYSICAL_ADDRESS) (UINTN) HashData, > + HashDataLen, > + EfiCcEvent > + ); > + FreePool (EfiCcEvent); > + > + return Status; > +} > + > + > /** > Tpm measure and log data, and extend the measurement result into a spe= cific > PCR. >=20 > @@ -178,9 +245,9 @@ TpmMeasureAndLogData ( > EFI_STATUS Status; >=20 > // > - // Try to measure using Tpm20 protocol > + // Try to measure using Cc measurement protocol > // > - Status =3D Tpm20MeasureAndLogData( > + Status =3D CcMeasureAndLogData ( > PcrIndex, > EventType, > EventLog, > @@ -189,6 +256,20 @@ TpmMeasureAndLogData ( > HashDataLen > ); >=20 > + if (EFI_ERROR (Status)) { > + // > + // Try to measure using Tpm20 protocol > + // > + Status =3D Tpm20MeasureAndLogData( > + PcrIndex, > + EventType, > + EventLog, > + LogLen, > + HashData, > + HashDataLen > + ); > + } > + > if (EFI_ERROR (Status)) { > // > // Try to measure using Tpm1.2 protocol > diff --git > a/SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf > b/SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf > index 7d41bc41f95d..3af3d4e33b25 100644 > --- a/SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf > +++ > b/SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf > @@ -1,5 +1,7 @@ > ## @file > -# Provides TPM measurement functions for TPM1.2 and TPM 2.0 > +# Provides below measurement functions: > +# 1. TPM measurement functions for TPM1.2 and TPM 2.0 > +# 2. Confidential Computing (CC) measurement functions > # > # This library provides TpmMeasureAndLogData() to measure and log data,= and > # extend the measurement result into a specific PCR. > @@ -40,5 +42,6 @@ > UefiBootServicesTableLib >=20 > [Protocols] > - gEfiTcgProtocolGuid ## SOMETIMES_CONSUMES > - gEfiTcg2ProtocolGuid ## SOMETIMES_CONSUMES > + gEfiTcgProtocolGuid ## SOMETIMES_CONSUMES > + gEfiTcg2ProtocolGuid ## SOMETIMES_CONSUMES > + gEfiCcMeasurementProtocolGuid ## SOMETIMES_CONSUMES > -- > 2.29.2.windows.2