From nobody Fri Dec 19 22:03:25 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+113488+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+113488+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=arm.com ARC-Seal: i=1; a=rsa-sha256; t=1704824466; cv=none; d=zohomail.com; s=zohoarc; b=C71F01Dnjm1j6TtCu0K91M1pAT+I+rj92wrtqYNoFDrhz0YESDTZcd72LKeDYIyq/2MEEMFG8nXt06yYJ/r3xQ53aMwqYRcHA0XEf4N83/3UDRCDDtwXFoVc8czTM/5h28an91kjOuuyDoOF0fDnVLWlZ3P1noYhGqZ65ZzGXKo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1704824466; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=CiczHCqhjLjU3P5/Pg29wxSYgxgosod5f6qQO+UjCPw=; b=Kz1dvidhOyT3bPoqPP+DFl+K3KxUkmKO2YGCL27SE0Saxb7b2RLk3HM6E1VsN9suTXAjuMT/YE/BWb6Rd/cA+VvX1r52/SEET/qXyJR7xlde2reTxajiKg24BI3E+w+puJ5OlGpjdX1iTtYmB/W0yg1e7VbVuT1Ddsjn9gjvtHI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+113488+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1704824466906856.789684333347; Tue, 9 Jan 2024 10:21:06 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=QXoU0+RidVSTFR422uwRjKFqQh4x2ucJnn80whEEGx4=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding; s=20140610; t=1704824466; v=1; b=LvG4yjNYaMNBHaihTbuPuDZeXzXOUjQoEp5MaAamjTNkbozBj7/ja+q7P8HhFtPDKDl731Nh fkj+ckSLPGOWSwIRZjc+dDrO0guv5Q+fzYagCQeR0u5zgpuO4MQqyvUs3WEmn6jSwyUbqF6+zk6 64uSan4vIKJFuEi7Nj95qOuI= X-Received: by 127.0.0.2 with SMTP id dZi9YY1788612xfpTM6C9R0q; Tue, 09 Jan 2024 10:21:06 -0800 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.24571.1704824465406611858 for ; Tue, 09 Jan 2024 10:21:05 -0800 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id AA1FF153B; Tue, 9 Jan 2024 10:21:50 -0800 (PST) X-Received: from beelzebub.ast.arm.com (unknown [10.118.29.240]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 114543F5A1; Tue, 9 Jan 2024 10:21:05 -0800 (PST) From: "Stuart Yoder" To: devel@edk2.groups.io, Edhaya.Chandran@arm.com, gaojie@byosoft.com.cn Cc: ilias.apalodimas@linaro.org, heinrich.schuchardt@canonical.com, Samer.El-Haj-Mahmoud@arm.com, Jiewen.Yao@intel.com Subject: [edk2-devel] [PATCH v2 4/6] uefi-sct/SctPkg: TCG2 Protocol: add HashLogExtendEvent test Date: Tue, 9 Jan 2024 12:20:51 -0600 Message-Id: <20240109182053.2540542-5-stuart.yoder@arm.com> In-Reply-To: <20240109182053.2540542-1-stuart.yoder@arm.com> References: <20240109182053.2540542-1-stuart.yoder@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,stuart.yoder@arm.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: 5aMie0u0xWK5z4eyiWTtioBNx1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1704824468062100002 Content-Type: text/plain; charset="utf-8" From: Joseph Hemann -add tests for HashLogExtendEvent() -tests with valid, invalid, and out of range parameters -do extend of data to PCR 16 Signed-off-by: Joseph Hemann Signed-off-by: Stuart Yoder --- uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/Guid.h = | 29 ++ uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/TCG2ProtocolB= BTest.h | 29 ++ uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/Guid.c = | 12 + uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/TCG2ProtocolB= BTestConformance.c | 283 ++++++++++++++++++++ uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/TCG2ProtocolB= BTestMain.c | 9 + 5 files changed, 362 insertions(+) diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/G= uid.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/Guid.h index d6797f5287f4..dcfd5919acda 100644 --- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/Guid.h +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/Guid.h @@ -56,3 +56,32 @@ extern EFI_GUID gTcg2ConformanceTestAssertionGuid005; =20 extern EFI_GUID gTcg2ConformanceTestAssertionGuid006; =20 +#define EFI_TEST_TCG2CONFORMANCE_ASSERTION_007_GUID \ +{ 0xa8e1b5e6, 0xfc09, 0x461c, {0xb0, 0xe9, 0x2a, 0x49, 0xcd, 0x25, 0xc1, 0= x24 }} + +extern EFI_GUID gTcg2ConformanceTestAssertionGuid007; + +#define EFI_TEST_TCG2CONFORMANCE_ASSERTION_008_GUID \ +{ 0x26f04a9b, 0x7b7a, 0x4f47, {0xbe, 0xa8, 0xb1, 0xa6, 0x02, 0x65, 0x19, 0= x8a }} + +extern EFI_GUID gTcg2ConformanceTestAssertionGuid008; + +#define EFI_TEST_TCG2CONFORMANCE_ASSERTION_009_GUID \ +{ 0x4d1d9985, 0x91e2, 0x4948, {0x89, 0x16, 0xbb, 0x98, 0x13, 0x62, 0x39, 0= x1d }} + +extern EFI_GUID gTcg2ConformanceTestAssertionGuid009; + +#define EFI_TEST_TCG2CONFORMANCE_ASSERTION_010_GUID \ +{ 0xfb59cab7, 0x4f8c, 0x4ded, {0xa4, 0x1c, 0xc8, 0x41, 0x20, 0x1c, 0x37, 0= x22 }} + +extern EFI_GUID gTcg2ConformanceTestAssertionGuid010; + +#define EFI_TEST_TCG2CONFORMANCE_ASSERTION_011_GUID \ +{ 0x0363d22f, 0xc66a, 0x4872, {0xa5, 0x46, 0x06, 0x7f, 0x6a, 0x0d, 0xdb, 0= xcd }} + +extern EFI_GUID gTcg2ConformanceTestAssertionGuid011; + +#define EFI_TEST_TCG2CONFORMANCE_ASSERTION_012_GUID \ +{ 0x9cd6d636, 0x603a, 0x4b78, {0x80, 0xa3, 0xa3, 0xb9, 0xcc, 0x6a, 0x0b, 0= x08 }} + +extern EFI_GUID gTcg2ConformanceTestAssertionGuid012; diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/T= CG2ProtocolBBTest.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/Black= BoxTest/TCG2ProtocolBBTest.h index 80c02d9ed2d2..cbbadef4a5c7 100644 --- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/TCG2Prot= ocolBBTest.h +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/TCG2Prot= ocolBBTest.h @@ -40,6 +40,15 @@ Abstract: #define EFI_TCG2_PROTOCOL_TEST_ENTRY_GUID0102 \ {0x847f1ae0, 0xb429, 0x49f1, {0x9e, 0x0c, 0x8f, 0x43, 0xfb, 0x55, 0x34, 0= x54} } =20 +#define EFI_TCG2_PROTOCOL_TEST_ENTRY_GUID0103 \ + {0x907a7878, 0xb294, 0xf147, {0xe9, 0x0a, 0x65, 0x43, 0xab, 0x55, 0x76, 0= x46} } + +#define EV_POST_CODE 0x01 + +#define EFI_TCG2_EXTEND_ONLY 0x0000000000000001 + +#define PE_COFF_IMAGE 0x0000000000000010 + EFI_STATUS EFIAPI BBTestTCG2ProtocolUnload ( @@ -82,6 +91,18 @@ BBTestGetActivePcrBanksConformanceTestCheckpoint2 ( IN EFI_TCG2_PROTOCOL *TCG2 ); =20 +EFI_STATUS +BBTestHashLogExtendEventConformanceTestCheckpoint1 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN EFI_TCG2_PROTOCOL *TCG2 + ); + +EFI_STATUS +BBTestHashLogExtendEventConformanceTestCheckpoint2 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN EFI_TCG2_PROTOCOL *TCG2 + ); + EFI_STATUS BBTestGetCapabilityConformanceTest ( IN EFI_BB_TEST_PROTOCOL *This, @@ -98,3 +119,11 @@ BBTestGetActivePcrBanksConformanceTest ( IN EFI_HANDLE SupportHandle ); =20 +EFI_STATUS +BBTestHashLogExtendEventConformanceTest ( + IN EFI_BB_TEST_PROTOCOL *This, + IN VOID *ClientInterface, + IN EFI_TEST_LEVEL TestLevel, + IN EFI_HANDLE SupportHandle + ); + diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/G= uid.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/Guid.c index 0dc2cfddfcbf..ccc20259d128 100644 --- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/Guid.c +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/Guid.c @@ -39,3 +39,15 @@ EFI_GUID gTcg2ConformanceTestAssertionGuid004 =3D EFI_TE= ST_TCG2CONFORMANCE_ASSERTI EFI_GUID gTcg2ConformanceTestAssertionGuid005 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_005_GUID; =20 EFI_GUID gTcg2ConformanceTestAssertionGuid006 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_006_GUID; + +EFI_GUID gTcg2ConformanceTestAssertionGuid007 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_007_GUID; + +EFI_GUID gTcg2ConformanceTestAssertionGuid008 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_008_GUID; + +EFI_GUID gTcg2ConformanceTestAssertionGuid009 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_009_GUID; + +EFI_GUID gTcg2ConformanceTestAssertionGuid010 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_010_GUID; + +EFI_GUID gTcg2ConformanceTestAssertionGuid011 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_011_GUID; + +EFI_GUID gTcg2ConformanceTestAssertionGuid012 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_012_GUID; diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/T= CG2ProtocolBBTestConformance.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol= /TCG2/BlackBoxTest/TCG2ProtocolBBTestConformance.c index 681f57ac224a..2768eef725e8 100644 --- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/TCG2Prot= ocolBBTestConformance.c +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/TCG2Prot= ocolBBTestConformance.c @@ -140,6 +140,57 @@ BBTestGetActivePcrBanksConformanceTest ( return EFI_SUCCESS; } =20 +/** + * @brief Entrypoint for HashLogExtendEvent() Function Test. + * 2 checkpoints will be tested. + * @param This a pointer of EFI_BB_TEST_PROTOCOL + * @param ClientInterface A pointer to the interface array under test + * @param TestLevel Test "thoroughness" control + * @param SupportHandle A handle containing protocols required + * @return EFI_SUCCESS + * @return EFI_NOT_FOUND + */ + +EFI_STATUS +BBTestHashLogExtendEventConformanceTest ( + IN EFI_BB_TEST_PROTOCOL *This, + IN VOID *ClientInterface, + IN EFI_TEST_LEVEL TestLevel, + IN EFI_HANDLE SupportHandle + ) +{ + EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib; + EFI_STATUS Status; + EFI_TCG2_PROTOCOL *TCG2; + // + // init + // + TCG2 =3D (EFI_TCG2_PROTOCOL*)ClientInterface; + + // Ensure Protocol not NULL + if (TCG2 =3D=3D NULL) + return EFI_UNSUPPORTED; + + // Get the Standard Library Interface + // + Status =3D gtBS->HandleProtocol ( + SupportHandle, + &gEfiStandardTestLibraryGuid, + (VOID **) &StandardLib + ); + if (EFI_ERROR(Status)) { + return Status; + } + + // Test HashLogExtendEvent with invalid arguments + BBTestHashLogExtendEventConformanceTestCheckpoint1 (StandardLib, TCG2); + + // Test HashLogExtendEvent with valid arguments + BBTestHashLogExtendEventConformanceTestCheckpoint2 (StandardLib, TCG2); + + return EFI_SUCCESS; +} + EFI_STATUS BBTestGetCapabilityConformanceTestCheckpoint1 ( IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, @@ -518,3 +569,235 @@ BBTestGetActivePcrBanksConformanceTestCheckpoint2 ( =20 return EFI_SUCCESS; } + +EFI_STATUS +BBTestHashLogExtendEventConformanceTestCheckpoint1 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN EFI_TCG2_PROTOCOL *TCG2 + ) +{ + EFI_TEST_ASSERTION AssertionType; + EFI_STATUS Status; + UINT64 Flags =3D 0; + EFI_PHYSICAL_ADDRESS DataToHash; + UINT64 DataToHashLen; + EFI_TCG2_EVENT *EfiTcgEvent; + const CHAR8 *EventData =3D "TCG2 Protocol Test= "; + const CHAR8 *Str =3D "The quick brown fox jump= s over the lazy dog"; + UINT32 EfiTcgEventSize =3D sizeof(EFI_TCG= 2_EVENT) + SctAsciiStrLen(EventData); + + DataToHash =3D (EFI_PHYSICAL_ADDRESS)Str; + DataToHashLen =3D SctAsciiStrLen(Str); + + Status =3D gtBS->AllocatePool ( + EfiBootServicesData, + EfiTcgEventSize, + (VOID **)&EfiTcgEvent + ); + + EfiTcgEvent->Header.HeaderSize =3D sizeof(EFI_TCG2_EVENT_HEADER); + EfiTcgEvent->Header.HeaderVersion =3D 1; + EfiTcgEvent->Header.EventType =3D EV_POST_CODE; + EfiTcgEvent->Header.PCRIndex =3D 16; + EfiTcgEvent->Size =3D EfiTcgEvent->Header.HeaderSize + SctAsciiStrLen(Ev= entData); + + // Ensure HashLogExtendEvent returns Invalid Parameter when passing in N= ULL DataToHash pointer + // EFI Protocol Spec Section 6.6.5 #1 + Status =3D TCG2->HashLogExtendEvent ( + TCG2, + Flags, + (EFI_PHYSICAL_ADDRESS)NULL, + 0, + EfiTcgEvent); + + if (EFI_INVALID_PARAMETER !=3D Status) { + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } else { + AssertionType =3D EFI_TEST_ASSERTION_PASSED; + } + + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gTcg2ConformanceTestAssertionGuid007, + L"TCG2_PROTOCOL.HashLogExtendEvent - Test with NULL DataT= oHash Pointer should return EFI_INVALID_PARAMETER", + L"%a:%d: Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + + // Ensure HashLogExtendEvent returns Invalid Parameter when passing in N= ULL EfiTcgEvent pointer + // EFI Protocol Spec Section 6.6.5 #1 + Status =3D TCG2->HashLogExtendEvent ( + TCG2, + Flags, + DataToHash, + DataToHashLen, + NULL); + + if (EFI_INVALID_PARAMETER !=3D Status) { + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } else { + AssertionType =3D EFI_TEST_ASSERTION_PASSED; + } + + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gTcg2ConformanceTestAssertionGuid008, + L"TCG2_PROTOCOL.HashLogExtendEvent - Test with NULL EfiTc= gEvent Pointer should return EFI_INVALID_PARAMETER", + L"%a:%d: Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + + // Ensure HashLogExtendEvent returns Invalid Parameter when passed in Ev= entSize < HeaderSize + sizeof(UINT32) + // EFI Protocol Spec Section 6.6.5 #2 + EfiTcgEvent->Size =3D EfiTcgEvent->Header.HeaderSize + sizeof(UINT32) - = 1; + + Status =3D TCG2->HashLogExtendEvent ( + TCG2, + Flags, + DataToHash, + DataToHashLen, + EfiTcgEvent); + + if (EFI_INVALID_PARAMETER !=3D Status) { + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } else { + AssertionType =3D EFI_TEST_ASSERTION_PASSED; + } + + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gTcg2ConformanceTestAssertionGuid009, + L"TCG2_PROTOCOL.HashLogExtendEvent - Test with Event.Size= < Event.Header.HeaderSize + sizeof(UINT32) should return EFI_INVALID_PARAM= ETER", + L"%a:%d: Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + + // Ensure HashLogExtendEvent returns Invalid Parameter when passing in P= CR Index > 23 + // EFI Protocol Spec Section 6.6.5 #3 + EfiTcgEvent->Header.PCRIndex =3D 24; + EfiTcgEvent->Size =3D EfiTcgEvent->Header.HeaderSize + SctAsciiStrLen(Ev= entData); + + Status =3D TCG2->HashLogExtendEvent ( + TCG2, + Flags, + DataToHash, + DataToHashLen, + EfiTcgEvent); + + if (EFI_INVALID_PARAMETER !=3D Status) { + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } else { + AssertionType =3D EFI_TEST_ASSERTION_PASSED; + } + + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gTcg2ConformanceTestAssertionGuid010, + L"TCG2_PROTOCOL.HashLogExtendEvent - Test with PCRIndex >= 23 should return EFI_INVALID_PARAMETER", + L"%a:%d: Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + + return EFI_SUCCESS; +} + +EFI_STATUS +BBTestHashLogExtendEventConformanceTestCheckpoint2 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN EFI_TCG2_PROTOCOL *TCG2 + ) +{ + EFI_TCG2_EVENT *EfiTcgEvent; + EFI_TEST_ASSERTION AssertionType; + EFI_STATUS Status; + UINT64 Flags =3D 0; + EFI_PHYSICAL_ADDRESS DataToHash; + UINT64 DataToHashLen; + const CHAR8 *Str =3D "The quick brown fox jump= s over the lazy dog"; + const CHAR8 *EventData =3D "TCG2 Protocol Test= "; + UINT32 EfiTcgEventSize =3D sizeof(EFI_TCG2_EVENT) + SctAsciiStrLen(Event= Data); + + DataToHash =3D (EFI_PHYSICAL_ADDRESS)Str; + DataToHashLen =3D SctAsciiStrLen(Str); + + Status =3D gtBS->AllocatePool ( + EfiBootServicesData, + EfiTcgEventSize, + (VOID **)&EfiTcgEvent + ); + + EfiTcgEvent->Header.HeaderSize =3D sizeof(EFI_TCG2_EVENT_HEADER); + EfiTcgEvent->Header.HeaderVersion =3D 1; + EfiTcgEvent->Header.EventType =3D EV_POST_CODE; + EfiTcgEvent->Header.PCRIndex =3D 16; + EfiTcgEvent->Size =3D EfiTcgEvent->Header.HeaderSize + SctAsciiStrLen(Ev= entData); + + // Perform HashLogExtendEvent over test buffer to PCR 16 + Status =3D TCG2->HashLogExtendEvent ( + TCG2, + Flags, + DataToHash, + DataToHashLen, + EfiTcgEvent); + + if (Status !=3D EFI_SUCCESS) { + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } else { + AssertionType =3D EFI_TEST_ASSERTION_PASSED; + } + + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gTcg2ConformanceTestAssertionGuid011, + L"TCG2_PROTOCOL.HashLogExtendEvent - HashLogExtendEvent()= Test: HashLogExtendEvent should return EFI_SUCCESS", + L"%a:%d: Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + + // Test with valid Parameters but with Flags =3D PE_COFF_IMAGE + // EFI Protocol Spec Section 6.6.5 #4 + Flags =3D PE_COFF_IMAGE; + + Status =3D TCG2->HashLogExtendEvent ( + TCG2, + Flags, + DataToHash, + DataToHashLen, + EfiTcgEvent); + + if (Status !=3D EFI_UNSUPPORTED) { + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } else { + AssertionType =3D EFI_TEST_ASSERTION_PASSED; + } + + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gTcg2ConformanceTestAssertionGuid012, + L"TCG2_PROTOCOL.HashLogExtendEvent - HashLogExtendEvent()= Test Handling of PE_COFF_IMAGE flag", + L"%a:%d: Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + + gtBS->FreePool (EfiTcgEvent); + + return EFI_SUCCESS; +} diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/T= CG2ProtocolBBTestMain.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/B= lackBoxTest/TCG2ProtocolBBTestMain.c index 7fc202246cd8..f7b9e487eda2 100644 --- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/TCG2Prot= ocolBBTestMain.c +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/TCG2Prot= ocolBBTestMain.c @@ -56,6 +56,15 @@ EFI_BB_TEST_ENTRY_FIELD gBBTestEntryField[] =3D { EFI_TEST_CASE_AUTO, BBTestGetActivePcrBanksConformanceTest }, + { + EFI_TCG2_PROTOCOL_TEST_ENTRY_GUID0103, + L"HashLogExtendEvent_Conf", + L"Test the HashLogExtendEvent API", + EFI_TEST_LEVEL_DEFAULT, + gSupportProtocolGuid1, + EFI_TEST_CASE_AUTO, + BBTestHashLogExtendEventConformanceTest + }, 0 }; =20 --=20 2.34.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113488): https://edk2.groups.io/g/devel/message/113488 Mute This Topic: https://groups.io/mt/103625303/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-