From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web09.2893.1663736037279331647 for ; Tue, 20 Sep 2022 21:53:57 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=fG5dr68o; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: yi1.li@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1663736037; x=1695272037; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=rIRSjbbryqEk/gBlQ6ZL2GStHbkehCzzIdVOh3vbDoc=; b=fG5dr68odLefau4n/4Ymc5ddiEIYrh4TNhBLLSOR+hOJKGVZscUROBSl b4K+Loha0xTxu/cZgcXcyvysaZgc/mnGTZNyTYmngPoRMyUU/TreR4L/q td9gOAb3LhoB9qcJv4whNYHh6a/H3rIfdMlsz9WdDUjvFpM+5ovGViJtc UYsrl7vqa2TRlZqdwpgox4NsUZ6nQ68NhAvFkq3yK53+TSLCVEzOR6a4p +qsWEEITL1hlEleVBEZ3e/2FNQd2kXyh3kfyycdETfZQUTeiADGGPbkfJ mYhNnLQXf4KWgCoL9DF8pM9iTuHUmAlwnYi2JKzc7JfHkuf5fp26GwMvh A==; X-IronPort-AV: E=McAfee;i="6500,9779,10476"; a="386184416" X-IronPort-AV: E=Sophos;i="5.93,332,1654585200"; d="scan'208";a="386184416" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Sep 2022 21:53:56 -0700 X-IronPort-AV: E=Sophos;i="5.93,332,1654585200"; d="scan'208";a="947982365" Received: from liyi4-desktop.ccr.corp.intel.com ([10.239.153.82]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Sep 2022 21:53:55 -0700 From: "yi1 li" To: devel@edk2.groups.io Cc: Yi Li , Jiewen Yao , Jian J Wang , Xiaoyu Lu , Guomin Jiang Subject: [PATCH V2 0/3] CryptoPkg: Add BigNum support Date: Wed, 21 Sep 2022 12:53:44 +0800 Message-Id: X-Mailer: git-send-email 2.31.1.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3828 Review PR: https://github.com/tianocore/edk2/pull/3309 This patch sequence is used to add CryptBn library, which are wrapped over OpenSSL. The implementation provides library functions for EFI BaseCrypt protocol and EFI BaseCrypt Configuration Protocol. All APIs passed unit test and fuzzing test, detail as: 1. Unit test: The purpose of unit testing is to ensure that the function obtains the expected result under specific input, that is, to ensure the correctness of APIs. All test case show in patch 3 :CryptoPkg/Test: Add unit test for CryptoBn. 2. Fuzzing test: Various Fuzz Testing are employed across the all introduced APIs, and the test is used AFL (2.52b) and Libfuzzer (clang+llvm-11.0.0) as the fuzzer, based on HBFA. Fuzzing Pass Rate is 100%; The Code Coverage new APIs is 100%; All test case show in: https://github.com/liyi77/edk2-staging/tree/HBFA/HBFA/UefiHostFuzzTestCasePkg/TestCase/CryptoPkg V2 change: 1. Squash uncrustify tool update into previous patch. 2. Increase EDKII_CRYPTO_VERSION to 9. Tested-by: Yi Li Cc: Jiewen Yao Cc: Jian J Wang Cc: Xiaoyu Lu Cc: Guomin Jiang Signed-off-by: Yi Li Yi Li (3): CryptoPkg: Add EC support CryptoPkg: Add EC APIs to DXE and protocol CryptoPkg/Test: Add unit test for CryptoEc CryptoPkg/CryptoPkg.dsc | 1 + CryptoPkg/Driver/Crypto.c | 496 +++++++++++ CryptoPkg/Include/Library/BaseCryptLib.h | 424 +++++++++ .../Pcd/PcdCryptoServiceFamilyEnable.h | 25 + .../Library/BaseCryptLib/BaseCryptLib.inf | 2 + .../Library/BaseCryptLib/PeiCryptLib.inf | 1 + CryptoPkg/Library/BaseCryptLib/Pk/CryptEc.c | 765 +++++++++++++++++ .../Library/BaseCryptLib/Pk/CryptEcNull.c | 496 +++++++++++ .../Library/BaseCryptLib/SmmCryptLib.inf | 1 + .../BaseCryptLib/UnitTestHostBaseCryptLib.inf | 2 + .../BaseCryptLibNull/BaseCryptLibNull.inf | 1 + .../Library/BaseCryptLibNull/Pk/CryptEcNull.c | 496 +++++++++++ .../BaseCryptLibOnProtocolPpi/CryptLib.c | 469 ++++++++++ CryptoPkg/Private/Protocol/Crypto.h | 801 ++++++++++++++---- CryptoPkg/Test/CryptoPkgHostUnitTest.dsc | 3 + .../BaseCryptLib/BaseCryptLibUnitTests.c | 1 + .../UnitTest/Library/BaseCryptLib/EcTests.c | 290 +++++++ .../Library/BaseCryptLib/TestBaseCryptLib.h | 2 + .../BaseCryptLib/TestBaseCryptLibHost.inf | 1 + .../BaseCryptLib/TestBaseCryptLibShell.inf | 1 + 20 files changed, 4093 insertions(+), 185 deletions(-) create mode 100644 CryptoPkg/Library/BaseCryptLib/Pk/CryptEc.c create mode 100644 CryptoPkg/Library/BaseCryptLib/Pk/CryptEcNull.c create mode 100644 CryptoPkg/Library/BaseCryptLibNull/Pk/CryptEcNull.c create mode 100644 CryptoPkg/Test/UnitTest/Library/BaseCryptLib/EcTests.c -- 2.31.1.windows.1