From nobody Mon Feb 9 21:37:14 2026 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+82149+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+82149+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=arm.com ARC-Seal: i=1; a=rsa-sha256; t=1634314633; cv=none; d=zohomail.com; s=zohoarc; b=Or4449DdwiFC/6PTV/nIXnQB4o9/0bJXxxZL7yYlqj22O0ASRmKM4pPH4SZeL3AcOQrRTNR8iZTPSCpGvMQQ78jqv6YDvJMiQDzy+UW6hanrPMnkNmpOxJwJcL9qL55vDl410km/mAz8SDGotP4hbW/3AWXMcEtMCvmlgE935LE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1634314633; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=fRt/n3y/hvq6cUXCADK32wgiMGse20qX3omld1D4t54=; b=ZYfOReLD/TBMSlqs3wzGtfMadU2uSz2D2pdGjLowV+y0AM00Uon8TB9YavpaJwqbLiMTo4d7i89eKJ3Jx6RYLHTu5MSzrSjyPnrJFE4y53B4hqtjlIk/x3Csy6/0a11T/9a2VOMrwxgg9EyS23OyrDkXMHQ+N0ZmuMjg2HQIe8g= 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+82149+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 1634314633475912.2214519596924; Fri, 15 Oct 2021 09:17:13 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id wFsRYY1788612x2TfChBa0mJ; Fri, 15 Oct 2021 09:17:12 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.65.1634314630885275371 for ; Fri, 15 Oct 2021 09:17:11 -0700 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 8D01F1515; Fri, 15 Oct 2021 09:17:10 -0700 (PDT) X-Received: from u203013-lin.austin.arm.com (u203013-lin.austin.arm.com [10.118.29.243]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 8511B3F66F; Fri, 15 Oct 2021 09:17:10 -0700 (PDT) From: "Joseph Hemann" To: devel@edk2.groups.io Cc: nd@arm.com, Joseph Hemann Subject: [edk2-devel] [PATCH 3/6] uefi-sct/SctPkg: TCG2 Protocol: add GetActivePcrBanks test Date: Fri, 15 Oct 2021 11:17:03 -0500 Message-Id: <20211015161706.23885-4-joseph.hemann@arm.com> In-Reply-To: <20211015161706.23885-1-joseph.hemann@arm.com> References: <20211015161706.23885-1-joseph.hemann@arm.com> Precedence: Bulk List-Unsubscribe: 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,joseph.hemann@arm.com X-Gm-Message-State: NupdOESdlELFfVkeNIKsSuYfx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1634314632; bh=tYg941pAG/Zlcax0PlwQnut5IRyh6X94/rgubEDrEL8=; h=Cc:Date:From:Reply-To:Subject:To; b=DTh9lqIF+AIh9HtpNDqSBpWwGuCg6h4/6OqaJFp7dZwXU1ynYv+RmGiHLiHsSbznyXs VcYfLSMWe4ms8EzBspunBJTBRbF11k+83VwLEI6mVF7tP5h9sKXK3fNE/m9nVtWi32BrW 9pnfxvhNBnflv9AntHXGJtFoip5DOPKNlpI= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1634314634027100009 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Joseph Hemann -add initial TCG2 protocol test for GetActivePcrBanks() -checkpoint for NULL pointer passed for buffer -checkpoint for test of function with proper input Signed-off-by: Joseph Hemann Change-Id: Ibf289085dc0f21952ff210757b4736619ac34046 --- .../EFI/Protocol/TCG2/BlackBoxTest/Guid.c | 4 + .../EFI/Protocol/TCG2/BlackBoxTest/Guid.h | 10 ++ .../TCG2/BlackBoxTest/TCG2ProtocolBBTest.h | 23 +++ .../TCG2ProtocolBBTestConformance.c | 140 +++++++++++++++++- .../BlackBoxTest/TCG2ProtocolBBTestMain.c | 9 ++ 5 files changed, 185 insertions(+), 1 deletion(-) 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 206662ee..0497f08f 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 @@ -33,3 +33,7 @@ EFI_GUID gTcg2ConformanceTestAssertionGuid001 =3D EFI_TES= T_TCG2CONFORMANCE_ASSERTI EFI_GUID gTcg2ConformanceTestAssertionGuid002 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_002_GUID; =20 EFI_GUID gTcg2ConformanceTestAssertionGuid003 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_003_GUID; + +EFI_GUID gTcg2ConformanceTestAssertionGuid004 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_004_GUID; + +EFI_GUID gTcg2ConformanceTestAssertionGuid005 =3D EFI_TEST_TCG2CONFORMANCE= _ASSERTION_005_GUID; 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 b675756b..f470255c 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 @@ -41,3 +41,13 @@ extern EFI_GUID gTcg2ConformanceTestAssertionGuid002; =20 extern EFI_GUID gTcg2ConformanceTestAssertionGuid003; =20 +#define EFI_TEST_TCG2CONFORMANCE_ASSERTION_004_GUID \ +{ 0x7a1e79a3, 0x4064, 0x4372, {0xbb, 0x64, 0x55, 0xb8, 0xf2, 0xa5, 0xa3, 0= x26 }} + +extern EFI_GUID gTcg2ConformanceTestAssertionGuid004; + +#define EFI_TEST_TCG2CONFORMANCE_ASSERTION_005_GUID \ +{ 0xb0e717c4, 0xb1e2, 0x49f7, {0xb2, 0xd7, 0x60, 0x58, 0x97, 0x7d, 0x09, 0= x2c }} + +extern EFI_GUID gTcg2ConformanceTestAssertionGuid005; + 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 67454018..a6773010 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 \ {0x39ff9c71, 0x4b41, 0x4e5b, {0xae, 0xd7, 0x87, 0xc7, 0x94, 0x18, 0x7d, 0= x67} } =20 +#define EFI_TCG2_PROTOCOL_TEST_ENTRY_GUID0102 \ + {0x847f1ae0, 0xb429, 0x49f1, {0x9e, 0x0c, 0x8f, 0x43, 0xfb, 0x55, 0x34, 0= x54} } + EFI_STATUS EFIAPI BBTestTCG2ProtocolUnload ( @@ -55,6 +58,18 @@ BBTestGetCapabilityConformanceTestCheckpoint2 ( IN EFI_TCG2_PROTOCOL *TCG2 ); =20 +EFI_STATUS +BBTestGetActivePcrBanksConformanceTestCheckpoint1 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN EFI_TCG2_PROTOCOL *TCG2 + ); + +EFI_STATUS +BBTestGetActivePcrBanksConformanceTestCheckpoint2 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN EFI_TCG2_PROTOCOL *TCG2 + ); + EFI_STATUS BBTestGetCapabilityConformanceTest ( IN EFI_BB_TEST_PROTOCOL *This, @@ -63,3 +78,11 @@ BBTestGetCapabilityConformanceTest ( IN EFI_HANDLE SupportHandle ); =20 +EFI_STATUS +BBTestGetActivePcrBanksConformanceTest ( + 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/T= CG2ProtocolBBTestConformance.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol= /TCG2/BlackBoxTest/TCG2ProtocolBBTestConformance.c index e1724ff3..009bd5af 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 @@ -75,6 +75,54 @@ BBTestGetCapabilityConformanceTest ( return EFI_SUCCESS; } =20 +/** + * @brief Entrypoint for GetActivePcrBanks() 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 +BBTestGetActivePcrBanksConformanceTest ( + 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; + + // + // Get the Standard Library Interface + // + Status =3D gtBS->HandleProtocol ( + SupportHandle, + &gEfiStandardTestLibraryGuid, + (VOID **) &StandardLib + ); + if (EFI_ERROR(Status)) { + return Status; + } + + // Test Using NULL Pointer + BBTestGetActivePcrBanksConformanceTestCheckpoint1 (StandardLib, TCG2); + + // Test with correct size field + BBTestGetActivePcrBanksConformanceTestCheckpoint2 (StandardLib, TCG2); + + return EFI_SUCCESS; +} =20 EFI_STATUS BBTestGetCapabilityConformanceTestCheckpoint1 ( @@ -181,7 +229,7 @@ BBTestGetCapabilityConformanceTestCheckpoint2 ( AssertionType =3D EFI_TEST_ASSERTION_FAILED; } =20 - EFI_TCG2_EVENT_ALGORITHM_BITMAP HashBitMapAlgos =3D EFI_TCG2_BOOT_HASH_= ALG_SHA256 | EFI_TCG2_BOOT_HASH_ALG_SHA384 | EFI_TCG2_BOOT_HASH_ALG_SHA512; + EFI_TCG2_EVENT_ALGORITHM_BITMAP HashBitMapAlgos =3D EFI_TCG2_BOOT_HASH_= ALG_SHA1 | EFI_TCG2_BOOT_HASH_ALG_SHA256 | EFI_TCG2_BOOT_HASH_ALG_SHA384 | = EFI_TCG2_BOOT_HASH_ALG_SHA512; =20 if (!(BootServiceCap.HashAlgorithmBitmap & HashBitMapAlgos)) { StandardLib->RecordMessage ( @@ -219,3 +267,93 @@ BBTestGetCapabilityConformanceTestCheckpoint2 ( return EFI_SUCCESS; } =20 +EFI_STATUS +BBTestGetActivePcrBanksConformanceTestCheckpoint1 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN EFI_TCG2_PROTOCOL *TCG2 + ) +{ + EFI_TEST_ASSERTION AssertionType; + EFI_STATUS Status; + + EFI_TCG2_EVENT_ALGORITHM_BITMAP *ActivePcrBanks =3D NULL; + Status =3D TCG2->GetActivePcrBanks ( + TCG2, + ActivePcrBanks); + + // Ensure GetCapablity returns Invalid Parameter when passing in NULL po= inter + if (EFI_INVALID_PARAMETER =3D=3D Status) { + AssertionType =3D EFI_TEST_ASSERTION_PASSED; + } else { + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } + + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gTcg2ConformanceTestAssertionGuid004, + L"TCG2_PROTOCOL.GetActivePcrBanks - GetActivePcrBanks() r= eturns EFI_INVALID_PARAMETER with NULL pointer Passed in", + L"%a:%d: Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + + return EFI_SUCCESS; +} + +EFI_STATUS +BBTestGetActivePcrBanksConformanceTestCheckpoint2 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN EFI_TCG2_PROTOCOL *TCG2 + ) +{ + EFI_TEST_ASSERTION AssertionType; + EFI_STATUS Status; + + EFI_TCG2_EVENT_ALGORITHM_BITMAP ActivePcrBanks; + Status =3D TCG2->GetActivePcrBanks ( + TCG2, + &ActivePcrBanks); + + // Ensure GetActivePcrBanks returns EFI_SUCCESS + if (Status =3D=3D EFI_SUCCESS) { + AssertionType =3D EFI_TEST_ASSERTION_PASSED; + } else { + StandardLib->RecordMessage ( + StandardLib, + EFI_VERBOSE_LEVEL_DEFAULT, + L"\r\nTCG2 Protocol GetActivePcrBanks Test: GetActive= PcrBanks should return EFI_SUCCESS", + ActivePcrBanks + ); + + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } + + 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; + + // Ensure ActivePcrBanks has SHA256/384/512 in its Bitmap + if (!(ActivePcrBanks & BitMapAlgos)) { + StandardLib->RecordMessage ( + StandardLib, + EFI_VERBOSE_LEVEL_DEFAULT, + L"\r\nTCG2 Protocol GetActivePcrBanks Test: GetActiVe= PcrBanks should have SHA256/384/512 Algorithm in its Bitmap. ActivePcrBanks= =3D %x", + ActivePcrBanks + ); + + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } + + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gTcg2ConformanceTestAssertionGuid005, + L"TCG2_PROTOCOL.GetActivePcrBanks - GetActivePcrBanks sho= uld return with EFI_SUCCESS and have SHA256/384/512 Algoritms in its Bitmap= ", + L"%a:%d: Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + + 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 97da8f58..4e7b1593 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, BBTestGetCapabilityConformanceTest }, + { + EFI_TCG2_PROTOCOL_TEST_ENTRY_GUID0102, + L"GetActivePcrBanks_Conf", + L"Test the GetActivePcrBanks API", + EFI_TEST_LEVEL_DEFAULT, + gSupportProtocolGuid1, + EFI_TEST_CASE_AUTO, + BBTestGetActivePcrBanksConformanceTest + }, 0 }; =20 --=20 2.17.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 (#82149): https://edk2.groups.io/g/devel/message/82149 Mute This Topic: https://groups.io/mt/86343162/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-