From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 9414A941C53 for ; Thu, 14 Dec 2023 23:39:37 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=sPxNo5ojDsyi6XuB+rMneq3KnjS/UkIZpV5BW0xsJuQ=; 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=1702597176; v=1; b=s/dlaxU3QVZRuDRlGJKzLs5WGUr/oHdNNh+0WvHahClAZQYJ+1YTSvxu6OsIcVwyccpKxHXW +bPBjTol6PQLit5DNb4gDtuN0AU2WpLG2SfJcknVUJhrYug/ehcYM8zEq4XFbtOeO/vs335iOFc jQ6A2bAnFt2N6RqBNnoGI2CQ= X-Received: by 127.0.0.2 with SMTP id gtKAYY7687511xeGleUGAJ7s; Thu, 14 Dec 2023 15:39:36 -0800 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.44960.1702597173344293295 for ; Thu, 14 Dec 2023 15:39:33 -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 D8A891596; Thu, 14 Dec 2023 15:40:17 -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 62C133F8A4; Thu, 14 Dec 2023 15:39:32 -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 v1 3/6] uefi-sct/SctPkg: TCG2 Protocol: add GetActivePcrBanks test Date: Thu, 14 Dec 2023 17:39:18 -0600 Message-Id: <20231214233921.169624-4-stuart.yoder@arm.com> In-Reply-To: <20231214233921.169624-1-stuart.yoder@arm.com> References: <20231214233921.169624-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: Kw2XFMsFiBEFWahLYYa5AQuyx7686176AA= Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b="s/dlaxU3"; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=arm.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io From: Joseph Hemann -add test for GetActivePcrBanks() -checkpoint for NULL pointer passed for buffer -checkpoint for test of function with proper input Signed-off-by: Joseph Hemann Signed-off-by: Stuart Yoder --- uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/Guid.h = | 11 ++ uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/TCG2ProtocolB= BTest.h | 23 +++ uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/Guid.c = | 4 + uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/TCG2ProtocolB= BTestConformance.c | 159 ++++++++++++++++++++ uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/TCG2/BlackBoxTest/TCG2ProtocolB= BTestMain.c | 9 ++ 5 files changed, 206 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 50b14272939f..d6797f5287f4 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 @@ -45,3 +45,14 @@ extern EFI_GUID gTcg2ConformanceTestAssertionGuid003; { 0x8ddb031b, 0x7448, 0x40ee, {0xb1, 0xa2, 0xe6, 0xf8, 0xe8, 0xc4, 0xe5, 0= x5f }}=0D =0D extern EFI_GUID gTcg2ConformanceTestAssertionGuid004;=0D +=0D +#define EFI_TEST_TCG2CONFORMANCE_ASSERTION_005_GUID \=0D +{ 0x7a1e79a3, 0x4064, 0x4372, {0xbb, 0x64, 0x55, 0xb8, 0xf2, 0xa5, 0xa3, 0= x26 }}=0D +=0D +extern EFI_GUID gTcg2ConformanceTestAssertionGuid005;=0D +=0D +#define EFI_TEST_TCG2CONFORMANCE_ASSERTION_006_GUID \=0D +{ 0xb0e717c4, 0xb1e2, 0x49f7, {0xb2, 0xd7, 0x60, 0x58, 0x97, 0x7d, 0x09, 0= x2c }}=0D +=0D +extern EFI_GUID gTcg2ConformanceTestAssertionGuid006;=0D +=0D 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 a7ce2db322d9..80c02d9ed2d2 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 @@ -37,6 +37,9 @@ Abstract: #define EFI_TCG2_PROTOCOL_TEST_ENTRY_GUID0101 \=0D {0x39ff9c71, 0x4b41, 0x4e5b, {0xae, 0xd7, 0x87, 0xc7, 0x94, 0x18, 0x7d, 0= x67} }=0D =0D +#define EFI_TCG2_PROTOCOL_TEST_ENTRY_GUID0102 \=0D + {0x847f1ae0, 0xb429, 0x49f1, {0x9e, 0x0c, 0x8f, 0x43, 0xfb, 0x55, 0x34, 0= x54} }=0D +=0D EFI_STATUS=0D EFIAPI=0D BBTestTCG2ProtocolUnload (=0D @@ -67,6 +70,18 @@ BBTestGetCapabilityConformanceTestCheckpoint4 ( IN EFI_TCG2_PROTOCOL *TCG2=0D );=0D =0D +EFI_STATUS=0D +BBTestGetActivePcrBanksConformanceTestCheckpoint1 (=0D + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib,=0D + IN EFI_TCG2_PROTOCOL *TCG2=0D + );=0D +=0D +EFI_STATUS=0D +BBTestGetActivePcrBanksConformanceTestCheckpoint2 (=0D + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib,=0D + IN EFI_TCG2_PROTOCOL *TCG2=0D + );=0D +=0D EFI_STATUS=0D BBTestGetCapabilityConformanceTest (=0D IN EFI_BB_TEST_PROTOCOL *This,=0D @@ -75,3 +90,11 @@ BBTestGetCapabilityConformanceTest ( IN EFI_HANDLE SupportHandle=0D );=0D =0D +EFI_STATUS=0D +BBTestGetActivePcrBanksConformanceTest (=0D + IN EFI_BB_TEST_PROTOCOL *This,=0D + IN VOID *ClientInterface,=0D + IN EFI_TEST_LEVEL TestLevel,=0D + IN EFI_HANDLE SupportHandle=0D + );=0D +=0D 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 3e75ffdc0a60..0dc2cfddfcbf 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 @@ -35,3 +35,7 @@ EFI_GUID gTcg2ConformanceTestAssertionGuid002 =3D EFI_TES= T_TCG2CONFORMANCE_ASSERTI EFI_GUID gTcg2ConformanceTestAssertionGuid003 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_003_GUID;=0D =0D EFI_GUID gTcg2ConformanceTestAssertionGuid004 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_004_GUID;=0D +=0D +EFI_GUID gTcg2ConformanceTestAssertionGuid005 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_005_GUID;=0D +=0D +EFI_GUID gTcg2ConformanceTestAssertionGuid006 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_006_GUID;=0D 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 686cf4baebcd..681f57ac224a 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 @@ -87,6 +87,58 @@ BBTestGetCapabilityConformanceTest ( return EFI_SUCCESS;=0D }=0D =0D +/**=0D + * @brief Entrypoint for GetActivePcrBanks() Function Test.=0D + * 2 checkpoints will be tested.=0D + * @param This a pointer of EFI_BB_TEST_PROTOCOL=0D + * @param ClientInterface A pointer to the interface array under test=0D + * @param TestLevel Test "thoroughness" control=0D + * @param SupportHandle A handle containing protocols required=0D + * @return EFI_SUCCESS=0D + * @return EFI_NOT_FOUND=0D + */=0D +=0D +EFI_STATUS=0D +BBTestGetActivePcrBanksConformanceTest (=0D + IN EFI_BB_TEST_PROTOCOL *This,=0D + IN VOID *ClientInterface,=0D + IN EFI_TEST_LEVEL TestLevel,=0D + IN EFI_HANDLE SupportHandle=0D + )=0D +{=0D + EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib;=0D + EFI_STATUS Status;=0D + EFI_TCG2_PROTOCOL *TCG2;=0D +=0D + //=0D + // init=0D + //=0D + TCG2 =3D (EFI_TCG2_PROTOCOL*)ClientInterface;=0D +=0D + // Ensure Protocol not NULL=0D + if (TCG2 =3D=3D NULL)=0D + return EFI_UNSUPPORTED;=0D +=0D + //=0D + // Get the Standard Library Interface=0D + //=0D + Status =3D gtBS->HandleProtocol (=0D + SupportHandle,=0D + &gEfiStandardTestLibraryGuid,=0D + (VOID **) &StandardLib=0D + );=0D + if (EFI_ERROR(Status)) {=0D + return Status;=0D + }=0D +=0D + // Test with invalid (NULL) bitmap=0D + BBTestGetActivePcrBanksConformanceTestCheckpoint1 (StandardLib, TCG2);=0D +=0D + // Test with valid bitmap=0D + BBTestGetActivePcrBanksConformanceTestCheckpoint2 (StandardLib, TCG2);=0D +=0D + return EFI_SUCCESS;=0D +}=0D =0D EFI_STATUS=0D BBTestGetCapabilityConformanceTestCheckpoint1 (=0D @@ -359,3 +411,110 @@ BBTestGetCapabilityConformanceTestCheckpoint4 ( return EFI_SUCCESS;=0D }=0D =0D +EFI_STATUS=0D +BBTestGetActivePcrBanksConformanceTestCheckpoint1 (=0D + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib,=0D + IN EFI_TCG2_PROTOCOL *TCG2=0D + )=0D +{=0D + EFI_TEST_ASSERTION AssertionType;=0D + EFI_STATUS Status;=0D +=0D + EFI_TCG2_EVENT_ALGORITHM_BITMAP *ActivePcrBanks =3D NULL;=0D + Status =3D TCG2->GetActivePcrBanks (=0D + TCG2,=0D + ActivePcrBanks);=0D +=0D + // Ensure GetActivePcrBanks returns Invalid Parameter when passing in NU= LL pointer=0D + if (EFI_INVALID_PARAMETER =3D=3D Status) {=0D + AssertionType =3D EFI_TEST_ASSERTION_PASSED;=0D + } else {=0D + AssertionType =3D EFI_TEST_ASSERTION_FAILED;=0D + }=0D +=0D + StandardLib->RecordAssertion (=0D + StandardLib,=0D + AssertionType,=0D + gTcg2ConformanceTestAssertionGuid005,=0D + L"TCG2_PROTOCOL.GetActivePcrBanks - GetActivePcrBanks() r= eturns EFI_INVALID_PARAMETER with NULL pointer Passed in",=0D + L"%a:%d: Status - %r",=0D + __FILE__,=0D + (UINTN)__LINE__,=0D + Status=0D + );=0D +=0D + return EFI_SUCCESS;=0D +}=0D +=0D +EFI_STATUS=0D +BBTestGetActivePcrBanksConformanceTestCheckpoint2 (=0D + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib,=0D + IN EFI_TCG2_PROTOCOL *TCG2=0D + )=0D +{=0D + EFI_TEST_ASSERTION AssertionType;=0D + EFI_STATUS Status;=0D + EFI_TCG2_EVENT_ALGORITHM_BITMAP ActivePcrBanks;=0D + EFI_TCG2_BOOT_SERVICE_CAPABILITY BootServiceCap;=0D +=0D + Status =3D TCG2->GetActivePcrBanks (=0D + TCG2,=0D + &ActivePcrBanks);=0D +=0D + // Ensure GetActivePcrBanks returns EFI_SUCCESS=0D + if (Status =3D=3D EFI_SUCCESS) {=0D + AssertionType =3D EFI_TEST_ASSERTION_PASSED;=0D + } else {=0D + StandardLib->RecordMessage (=0D + StandardLib,=0D + EFI_VERBOSE_LEVEL_DEFAULT,=0D + L"\r\nTCG2 Protocol GetActivePcrBanks Test: GetActive= PcrBanks should return EFI_SUCCESS"=0D + );=0D +=0D + AssertionType =3D EFI_TEST_ASSERTION_FAILED;=0D + }=0D +=0D + EFI_TCG2_EVENT_ALGORITHM_BITMAP BitMapAlgos =3D EFI_TCG2_BOOT_HASH_ALG_= SHA256 | EFI_TCG2_BOOT_HASH_ALG_SHA384 | EFI_TCG2_BOOT_HASH_ALG_SHA512;=0D +=0D + // Ensure ActivePcrBanks has SHA256/384/512 in its Bitmap=0D + if (!(ActivePcrBanks & BitMapAlgos)) {=0D + StandardLib->RecordMessage (=0D + StandardLib,=0D + EFI_VERBOSE_LEVEL_DEFAULT,=0D + L"\r\nTCG2 Protocol GetActivePcrBanks Test: GetActive= PcrBanks should have SHA256/384/512 Algorithm in its Bitmap. ActivePcrBanks= =3D %x",=0D + ActivePcrBanks=0D + );=0D +=0D + AssertionType =3D EFI_TEST_ASSERTION_FAILED;=0D + }=0D +=0D + BootServiceCap.Size =3D sizeof(EFI_TCG2_BOOT_SERVICE_CAPABILITY);=0D +=0D + Status =3D TCG2->GetCapability (=0D + TCG2,=0D + &BootServiceCap);=0D +=0D + // Ensure ActivePcrBanks is the same returned as GetCapability()=0D + if (ActivePcrBanks !=3D BootServiceCap.ActivePcrBanks) {=0D + StandardLib->RecordMessage (=0D + StandardLib,=0D + EFI_VERBOSE_LEVEL_DEFAULT,=0D + L"\r\nTCG2 Protocol GetActivePcrBanks Test:Returned A= ctivePcrBanks should match the one returned by GetCapability()"=0D + );=0D +=0D + AssertionType =3D EFI_TEST_ASSERTION_FAILED;=0D + }=0D +=0D + StandardLib->RecordAssertion (=0D + StandardLib,=0D + AssertionType,=0D + gTcg2ConformanceTestAssertionGuid006,=0D + L"TCG2_PROTOCOL.GetActivePcrBanks - GetActivePcrBanks sho= uld return with EFI_SUCCESS and have SHA256/384/512 Algoritms in its Bitmap= ",=0D + L"%a:%d: Status - %r",=0D + __FILE__,=0D + (UINTN)__LINE__,=0D + Status=0D + );=0D +=0D + return EFI_SUCCESS;=0D +}=0D 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 1de87e9d4c66..7fc202246cd8 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 @@ -47,6 +47,15 @@ EFI_BB_TEST_ENTRY_FIELD gBBTestEntryField[] =3D { EFI_TEST_CASE_AUTO,=0D BBTestGetCapabilityConformanceTest=0D },=0D + {=0D + EFI_TCG2_PROTOCOL_TEST_ENTRY_GUID0102,=0D + L"GetActivePcrBanks_Conf",=0D + L"Test the GetActivePcrBanks API",=0D + EFI_TEST_LEVEL_DEFAULT,=0D + gSupportProtocolGuid1,=0D + EFI_TEST_CASE_AUTO,=0D + BBTestGetActivePcrBanksConformanceTest=0D + },=0D 0=0D };=0D =0D --=20 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#112568): https://edk2.groups.io/g/devel/message/112568 Mute This Topic: https://groups.io/mt/103181269/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-