From nobody Mon Feb 9 01:22:34 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+93368+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+93368+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1662539404; cv=none; d=zohomail.com; s=zohoarc; b=OcTEYO/0ujBgX39/A+bbyJDeLqMsXCr2JNXbrZzXcEJ1mzDQJ/k/b9cA7TbQqc++wrpGFZOylMDSDTDFeMhoG4cAfHd/81JX3qj1Ovap3dtA6d8Cb8ms45di8LGbKWeOnKQ+ft8n4dG6ebbwFFtcMFUGddoz6RRDf38tG+OVbEw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1662539404; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=TrqsoFu+jPrHx6i3gcGoLpE2SLdRKR+SaNU531Ig9ds=; b=YAcSfSTPHNGOBGq6WCCWYOD4rIn/crOvnP6VTI4wY6WLp+8E8ezpsSmFN/9J9J812+foRRPThyl/i6/4tBYl/lrbjKtzG6ZkBaD/sdIvNLw07fyq5t7QmdggsNam9jty/tUXewZtyqXKjhxJOdvu5+0sV+I/QnmjvCazZMcl6KY= 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+93368+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 166253940453827.129686166902957; Wed, 7 Sep 2022 01:30:04 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id fgZ3YY1788612xurL0UEdnjd; Wed, 07 Sep 2022 01:30:02 -0700 X-Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web09.5425.1662539386710725423 for ; Wed, 07 Sep 2022 01:30:01 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10462"; a="322998968" X-IronPort-AV: E=Sophos;i="5.93,296,1654585200"; d="scan'208";a="322998968" X-Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Sep 2022 01:30:01 -0700 X-IronPort-AV: E=Sophos;i="5.93,296,1654585200"; d="scan'208";a="591599732" X-Received: from liyi4-desktop.ccr.corp.intel.com ([10.239.153.82]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Sep 2022 01:29:59 -0700 From: "yi1 li" To: devel@edk2.groups.io Cc: Yi Li , Jiewen Yao , Jian J Wang , Xiaoyu Lu , Guomin Jiang Subject: [edk2-devel] [PATCH 6/7] CryptoPkg/Test: Add unit test for CryptoEc Date: Wed, 7 Sep 2022 16:29:23 +0800 Message-Id: In-Reply-To: References: MIME-Version: 1.0 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,yi1.li@intel.com X-Gm-Message-State: etKUdrUAKHA8NUQOWld27VISx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1662539402; bh=E4yJw1KTtqSbS1altfxMXBq2v3ub47+fBspxb+XxaDs=; h=Cc:Date:From:Reply-To:Subject:To; b=kaoG/fJ9OxSNV8sjvc4UnmwrYJUIP+yH718wMN7pBm7+oTDJHxYk1hw/aCAkdUGFv9p g3C5/AZ8Wk9MmzMY+MK6UVWMQkatOmQ5IVIz4wSMDT4tkTeEew23hhinMaatQFXXVMIkU FYJDt3FF3neZ/2Ew9+igfJklKVl9rwh1ztI= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1662539404925100001 Content-Type: text/plain; charset="utf-8" Add unit test for CryptoEc. Cc: Jiewen Yao Cc: Jian J Wang Cc: Xiaoyu Lu Cc: Guomin Jiang Signed-off-by: Yi Li --- .../BaseCryptLib/UnitTestHostBaseCryptLib.inf | 2 + CryptoPkg/Test/CryptoPkgHostUnitTest.dsc | 3 + .../BaseCryptLib/BaseCryptLibUnitTests.c | 1 + .../UnitTest/Library/BaseCryptLib/EcTests.c | 289 ++++++++++++++++++ .../Library/BaseCryptLib/TestBaseCryptLib.h | 2 + .../BaseCryptLib/TestBaseCryptLibHost.inf | 1 + .../BaseCryptLib/TestBaseCryptLibShell.inf | 1 + 7 files changed, 299 insertions(+) create mode 100644 CryptoPkg/Test/UnitTest/Library/BaseCryptLib/EcTests.c diff --git a/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf b/= CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf index cf8810e598..33df93c73c 100644 --- a/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf +++ b/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf @@ -47,6 +47,8 @@ Pk/CryptRsaPss.c Pk/CryptRsaPssSign.c Bn/CryptBn.c + Pk/CryptEcNull.c |*|*|*|!gEfiCryptoPkgTokenSpaceGuid.PcdOpensslEcEnab= led + Pk/CryptEc.c |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdOpensslEcEnabled =20 SysCall/UnitTestHostCrtWrapper.c =20 diff --git a/CryptoPkg/Test/CryptoPkgHostUnitTest.dsc b/CryptoPkg/Test/Cryp= toPkgHostUnitTest.dsc index 16478f4a57..b6e1a66198 100644 --- a/CryptoPkg/Test/CryptoPkgHostUnitTest.dsc +++ b/CryptoPkg/Test/CryptoPkgHostUnitTest.dsc @@ -19,6 +19,9 @@ =20 !include UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc =20 +[PcdsFixedAtBuild] + gEfiCryptoPkgTokenSpaceGuid.PcdOpensslEcEnabled|TRUE + [LibraryClasses] OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf BaseCryptLib|CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf diff --git a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/BaseCryptLibUnitT= ests.c b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/BaseCryptLibUnitTests= .c index 792006a194..359921fd5f 100644 --- a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/BaseCryptLibUnitTests.c +++ b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/BaseCryptLibUnitTests.c @@ -26,6 +26,7 @@ SUITE_DESC mSuiteDesc[] =3D { { "PRNG verify tests", "CryptoPkg.BaseCryptLib", NULL, NULL, &= mPrngTestNum, mPrngTest }, { "OAEP encrypt verify tests", "CryptoPkg.BaseCryptLib", NULL, NULL, &= mOaepTestNum, mOaepTest }, { "Bn verify tests", "CryptoPkg.BaseCryptLib", NULL, NULL, &= mBnTestNum, mBnTest }, + { "EC verify tests", "CryptoPkg.BaseCryptLib", NULL, NULL, &= mEcTestNum, mEcTest }, }; =20 EFI_STATUS diff --git a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/EcTests.c b/Crypt= oPkg/Test/UnitTest/Library/BaseCryptLib/EcTests.c new file mode 100644 index 0000000000..8008b1dc78 --- /dev/null +++ b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/EcTests.c @@ -0,0 +1,289 @@ +/** @file + Application for Diffie-Hellman Primitives Validation. + +Copyright (c) 2022, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include "TestBaseCryptLib.h" + +#define EC_CURVE_NUM_SUPPORTED 3 +UINTN EcCurveList[EC_CURVE_NUM_SUPPORTED] =3D {CRYPTO_NID_SECP256R1, CRYP= TO_NID_SECP384R1, CRYPTO_NID_SECP521R1}; +UINTN EcKeyHalfSize[EC_CURVE_NUM_SUPPORTED] =3D {32, 48, 66}; + +struct Generator +{ + UINT8 X[66]; + UINT8 Y[66]; +}; +// Generator points of all ec curve +struct Generator EcCurveGenerator[EC_CURVE_NUM_SUPPORTED] =3D +{ + //CRYPTO_NID_SECP256R1 + { + { 0x6B, 0x17, 0xD1, 0xF2, 0xE1, 0x2C, 0x42, 0x47, 0xF8, 0xBC, 0xE6, 0x= E5, + 0x63, 0xA4, 0x40, 0xF2, 0x77, 0x03, 0x7D, 0x81, 0x2D, 0xEB, 0x33, 0x= A0, + 0xF4, 0xA1, 0x39, 0x45, 0xD8, 0x98, 0xC2, 0x96 }, + + { 0x4f, 0xe3, 0x42, 0xe2, 0xfe, 0x1a, 0x7f, 0x9b, 0x8e, 0xe7, 0xeb, 0x= 4a, + 0x7c, 0x0f, 0x9e, 0x16, 0x2b, 0xce, 0x33, 0x57, 0x6b, 0x31, 0x5e, 0x= ce, + 0xcb, 0xb6, 0x40, 0x68, 0x37, 0xbf, 0x51, 0xf5 } + }, + //CRYPTO_NID_SECP384R1 + { + { 0xAA, 0x87, 0xCA, 0x22, 0xBE, 0x8B, 0x05, 0x37, 0x8E, 0xB1, 0xC7, 0x= 1E, + 0xF3, 0x20, 0xAD, 0x74, 0x6E, 0x1D, 0x3B, 0x62, 0x8B, 0xA7, 0x9B, 0x= 98, + 0x59, 0xF7, 0x41, 0xE0, 0x82, 0x54, 0x2A, 0x38, 0x55, 0x02, 0xF2, 0x= 5D, + 0xBF, 0x55, 0x29, 0x6C, 0x3A, 0x54, 0x5E, 0x38, 0x72, 0x76, 0x0A, 0x= B7 }, + + { 0x36, 0x17, 0xde, 0x4a, 0x96, 0x26, 0x2c, 0x6f, 0x5d, 0x9e, 0x98, 0x= bf, + 0x92, 0x92, 0xdc, 0x29, 0xf8, 0xf4, 0x1d, 0xbd, 0x28, 0x9a, 0x14, 0x= 7c, + 0xe9, 0xda, 0x31, 0x13, 0xb5, 0xf0, 0xb8, 0xc0, 0x0a, 0x60, 0xb1, 0x= ce, + 0x1d, 0x7e, 0x81, 0x9d, 0x7a, 0x43, 0x1d, 0x7c, 0x90, 0xea, 0x0e, 0x= 5f } + }, + //CRYPTO_NID_SECP521R1 + { + { 0x00, 0xC6, 0x85, 0x8E, 0x06, 0xB7, 0x04, 0x04, 0xE9, 0xCD, 0x9E, 0x= 3E, + 0xCB, 0x66, 0x23, 0x95, 0xB4, 0x42, 0x9C, 0x64, 0x81, 0x39, 0x05, 0x= 3F, + 0xB5, 0x21, 0xF8, 0x28, 0xAF, 0x60, 0x6B, 0x4D, 0x3D, 0xBA, 0xA1, 0x= 4B, + 0x5E, 0x77, 0xEF, 0xE7, 0x59, 0x28, 0xFE, 0x1D, 0xC1, 0x27, 0xA2, 0x= FF, + 0xA8, 0xDE, 0x33, 0x48, 0xB3, 0xC1, 0x85, 0x6A, 0x42, 0x9B, 0xF9, 0x= 7E, + 0x7E, 0x31, 0xC2, 0xE5, 0xBD, 0x66 }, + + { 0x01, 0x18, 0x39, 0x29, 0x6a, 0x78, 0x9a, 0x3b, 0xc0, 0x04, 0x5c, 0x= 8a, + 0x5f, 0xb4, 0x2c, 0x7d, 0x1b, 0xd9, 0x98, 0xf5, 0x44, 0x49, 0x57, 0x= 9b, + 0x44, 0x68, 0x17, 0xaf, 0xbd, 0x17, 0x27, 0x3e, 0x66, 0x2c, 0x97, 0x= ee, + 0x72, 0x99, 0x5e, 0xf4, 0x26, 0x40, 0xc5, 0x50, 0xb9, 0x01, 0x3f, 0x= ad, + 0x07, 0x61, 0x35, 0x3c, 0x70, 0x86, 0xa2, 0x72, 0xc2, 0x40, 0x88, 0x= be, + 0x94, 0x76, 0x9f, 0xd1, 0x66, 0x50 } + } +}; + +VOID *Ec1 ; +VOID *Ec2 ; +VOID *Group ; +VOID *Point1 ; +VOID *Point2 ; +VOID *PointRes; +VOID *BnX ; +VOID *BnY ; +VOID *BnP ; +VOID *BnOrder ; + +UNIT_TEST_STATUS +EFIAPI +TestVerifyEcPreReq ( + UNIT_TEST_CONTEXT Context + ) +{ + Ec1 =3D NULL; + Ec2 =3D NULL; + Group =3D NULL; + Point1 =3D NULL; + Point2 =3D NULL; + PointRes =3D NULL; + BnX =3D NULL; + BnY =3D NULL; + BnP =3D BigNumInit (); + BnOrder =3D BigNumInit (); + if (BnP =3D=3D NULL || BnOrder =3D=3D NULL) { + return UNIT_TEST_ERROR_TEST_FAILED; + } + return UNIT_TEST_PASSED; +} + +VOID +EFIAPI +TestVerifyEcCleanUp ( + UNIT_TEST_CONTEXT Context + ) +{ + BigNumFree (BnX, TRUE); + BigNumFree (BnY, TRUE); + BigNumFree (BnP, TRUE); + BigNumFree (BnOrder, TRUE); + EcGroupFree (Group); + EcPointDeInit (Point1, TRUE); + EcPointDeInit (Point2, TRUE); + EcPointDeInit (PointRes, TRUE); + EcFree (Ec1); + EcFree (Ec2); +} + +UNIT_TEST_STATUS +EFIAPI +TestVerifyEcBasic ( + UNIT_TEST_CONTEXT Context + ) +{ + UINTN CurveCount; + BOOLEAN Status; + + // + // Initialize BigNumbers + // + for (CurveCount =3D 0; CurveCount < EC_CURVE_NUM_SUPPORTED; CurveCount++= ) { + // + // Basic EC functions unit test + // + Group =3D EcGroupInit (EcCurveList[CurveCount]); + if (Group =3D=3D NULL) { + return UNIT_TEST_ERROR_TEST_FAILED; + } + + Point1 =3D EcPointInit (Group); + Point2 =3D EcPointInit (Group); + PointRes =3D EcPointInit (Group); + BnX =3D BigNumFromBin (EcCurveGenerator[CurveCount].X, EcKeyHalfSize[C= urveCount]); + BnY =3D BigNumFromBin (EcCurveGenerator[CurveCount].Y, EcKeyHalfSize[C= urveCount]); + if (Point1 =3D=3D NULL || Point2 =3D=3D NULL || PointRes =3D=3D NULL |= | BnX =3D=3D NULL || BnY =3D=3D NULL) { + return UNIT_TEST_ERROR_TEST_FAILED; + } + + Status =3D EcGroupGetCurve (Group, BnP, NULL, NULL, NULL); + UT_ASSERT_TRUE (Status); + + Status =3D EcGroupGetOrder (Group, BnOrder); + UT_ASSERT_TRUE (Status); + + //Point G should on curve + Status =3D EcPointSetAffineCoordinates (Group, Point1, BnX, BnY, NULL); + UT_ASSERT_TRUE (Status); + + Status =3D EcPointSetAffineCoordinates (Group, Point2, BnX, BnY, NULL); + UT_ASSERT_TRUE (Status); + + Status =3D EcPointEqual (Group, Point1, Point2, NULL); + UT_ASSERT_TRUE (Status); + + Status =3D EcPointIsOnCurve (Group, Point1, NULL); + UT_ASSERT_TRUE (Status); + + Status =3D EcPointIsAtInfinity (Group, Point1); + UT_ASSERT_FALSE (Status); + + //Point 2G should on curve + Status =3D EcPointAdd (Group, PointRes, Point1, Point1, NULL); + UT_ASSERT_TRUE (Status); + + Status =3D EcPointIsOnCurve (Group, PointRes, NULL); + UT_ASSERT_TRUE (Status); + + //Point Order * G should at infinity + Status =3D EcPointMul (Group, PointRes, Point1, BnOrder, NULL); + UT_ASSERT_TRUE (Status); + + Status =3D EcPointIsAtInfinity (Group, PointRes); + UT_ASSERT_TRUE (Status); + + //-(-G) =3D=3D G + Status =3D EcPointInvert (Group, Point2, NULL); + UT_ASSERT_TRUE (Status); + + Status =3D EcPointEqual (Group, Point2, Point1, NULL); + UT_ASSERT_FALSE (Status); + + Status =3D EcPointInvert (Group, Point2, NULL); + UT_ASSERT_TRUE (Status); + + Status =3D EcPointEqual (Group, Point2, Point1, NULL); + UT_ASSERT_TRUE (Status); + + //Compress point test + Status =3D EcPointSetCompressedCoordinates (Group, Point1, BnX, 0, NUL= L); + UT_ASSERT_TRUE (Status); + + Status =3D EcPointSetCompressedCoordinates (Group, Point2, BnX, 1, NUL= L); + UT_ASSERT_TRUE (Status); + + Status =3D EcPointEqual (Group, Point2, Point1, NULL); + UT_ASSERT_FALSE (Status); + + Status =3D EcPointInvert (Group, Point2, NULL); + UT_ASSERT_TRUE (Status); + + Status =3D EcPointEqual (Group, Point2, Point1, NULL); + UT_ASSERT_TRUE (Status); + } + + return UNIT_TEST_PASSED; +} + +UNIT_TEST_STATUS +EFIAPI +TestVerifyEcDh ( + UNIT_TEST_CONTEXT Context + ) +{ + UINT8 Public1[66 * 2]; + UINTN Public1Length; + UINT8 Public2[66 * 2]; + UINTN Public2Length; + UINT8 Key1[66]; + UINTN Key1Length; + UINT8 Key2[66]; + UINTN Key2Length; + UINTN CurveCount; + BOOLEAN Status; + + for (CurveCount =3D 0; CurveCount < EC_CURVE_NUM_SUPPORTED; CurveCount++= ) { + // + // Initial key length + // + Public1Length =3D sizeof (Public1); + Public2Length =3D sizeof (Public2); + Key1Length =3D sizeof (Key1); + Key2Length =3D sizeof (Key2); + // + // ECDH functions unit test + // + Ec1 =3D EcNewByNid (EcCurveList[CurveCount]); + if (Ec1 =3D=3D NULL) { + return UNIT_TEST_ERROR_TEST_FAILED; + } + + Ec2 =3D EcNewByNid (EcCurveList[CurveCount]); + if (Ec2 =3D=3D NULL) { + return UNIT_TEST_ERROR_TEST_FAILED; + } + + Status =3D EcGenerateKey (Ec1, Public1, &Public1Length); + UT_ASSERT_TRUE (Status); + UT_ASSERT_EQUAL (Public1Length, EcKeyHalfSize[CurveCount] * 2); + + Status =3D EcGenerateKey (Ec2, Public2, &Public2Length); + UT_ASSERT_TRUE (Status); + UT_ASSERT_EQUAL (Public2Length, EcKeyHalfSize[CurveCount] * 2); + + Status =3D EcDhComputeKey (Ec1, Public2, Public2Length, NULL, Key1, &K= ey1Length); + UT_ASSERT_TRUE (Status); + UT_ASSERT_EQUAL (Key1Length, EcKeyHalfSize[CurveCount]); + + Status =3D EcDhComputeKey (Ec2, Public1, Public1Length, NULL, Key2, &K= ey2Length); + UT_ASSERT_TRUE (Status); + UT_ASSERT_EQUAL (Key2Length, EcKeyHalfSize[CurveCount]); + + UT_ASSERT_EQUAL (Key1Length, Key2Length); + UT_ASSERT_MEM_EQUAL (Key1, Key2, Key1Length); + + Status =3D EcGetPubKey (Ec1, Public2, &Public2Length); + UT_ASSERT_TRUE (Status); + UT_ASSERT_EQUAL (Public2Length, EcKeyHalfSize[CurveCount] * 2); + + UT_ASSERT_EQUAL (Public1Length, Public2Length); + UT_ASSERT_MEM_EQUAL (Public1, Public2, Public1Length); + } + + return UNIT_TEST_PASSED; +} + +TEST_DESC mEcTest[] =3D { + // + // -----Description-----------------Class------------------Function----P= re----Post----Context + // + { "TestVerifyEcBasic()", "CryptoPkg.BaseCryptLib.Ec", TestVerifyEcBasic,= TestVerifyEcPreReq, TestVerifyEcCleanUp, NULL }, + { "TestVerifyEcDh()", "CryptoPkg.BaseCryptLib.Ec", TestVerifyEcDh, = TestVerifyEcPreReq, TestVerifyEcCleanUp, NULL }, +}; + +UINTN mEcTestNum =3D ARRAY_SIZE (mEcTest); diff --git a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLib.= h b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLib.h index b8f0fdfd89..6b198d43b6 100644 --- a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLib.h +++ b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLib.h @@ -89,6 +89,8 @@ extern TEST_DESC mRsaPssTest[]; extern UINTN mBnTestNum; extern TEST_DESC mBnTest[]; =20 +extern UINTN mEcTestNum; +extern TEST_DESC mEcTest[]; /** Creates a framework you can use */ EFI_STATUS EFIAPI diff --git a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibH= ost.inf b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibHost= .inf index 1301345a13..8f96cf6c4a 100644 --- a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibHost.inf +++ b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibHost.inf @@ -38,6 +38,7 @@ RsaPssTests.c ParallelhashTests.c BnTests.c + EcTests.c =20 [Packages] MdePkg/MdePkg.dec diff --git a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibS= hell.inf b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibShe= ll.inf index 9a41dbc317..c9a86dab98 100644 --- a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibShell.inf +++ b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibShell.inf @@ -37,6 +37,7 @@ OaepEncryptTests.c RsaPssTests.c BnTests.c + EcTests.c =20 [Packages] MdePkg/MdePkg.dec --=20 2.31.1.windows.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 (#93368): https://edk2.groups.io/g/devel/message/93368 Mute This Topic: https://groups.io/mt/93520789/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-