[edk2-devel] [PATCH 0/7] CryptoPkg: Add BigNum and EC support to BaseCryptLib
yi1 li
yi1.li at intel.com
Wed Sep 7 08:29:17 UTC 2022
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 and CryptEc 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 5 and patch 6:
CryptoPkg/Test: Add unit test for CryptoBn
CryptoPkg/Test: Add unit test for CryptoEc
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 of CryptBn is 100%;
The Code Coverage of CryptEc is 90.3%.
All test case show in:
https://github.com/liyi77/edk2-staging/tree/HBFA/HBFA/UefiHostFuzzTestCasePkg/TestCase/CryptoPkg
Tested-by: Yi Li <yi1.li at intel.com>
Cc: Jiewen Yao <jiewen.yao at intel.com>
Cc: Jian J Wang <jian.j.wang at intel.com>
Cc: Xiaoyu Lu <xiaoyux.lu at intel.com>
Cc: Guomin Jiang <guomin.jiang at intel.com>
Signed-off-by: Yi Li <yi1.li at intel.com>
Yi Li (7):
CryptoPkg: Add BigNum support
CryptoPkg: Add BigNum API to DXE and protocol
CryptoPkg: Add EC support
CryptoPkg: Add EC APIs to DXE and protocol
CryptoPkg/Test: Add unit test for CryptoBn
CryptoPkg/Test: Add unit test for CryptoEc
CryptoPkg: Run uncrustify tools on EC and BN change
CryptoPkg/CryptoPkg.dsc | 2 +
CryptoPkg/Driver/Crypto.c | 1016 +++++++++++++-
CryptoPkg/Include/Library/BaseCryptLib.h | 842 ++++++++++++
.../Pcd/PcdCryptoServiceFamilyEnable.h | 55 +
.../Library/BaseCryptLib/BaseCryptLib.inf | 3 +
CryptoPkg/Library/BaseCryptLib/Bn/CryptBn.c | 581 ++++++++
.../Library/BaseCryptLib/Bn/CryptBnNull.c | 520 ++++++++
.../Library/BaseCryptLib/PeiCryptLib.inf | 2 +
CryptoPkg/Library/BaseCryptLib/Pk/CryptEc.c | 765 +++++++++++
.../Library/BaseCryptLib/Pk/CryptEcNull.c | 496 +++++++
.../Library/BaseCryptLib/SmmCryptLib.inf | 2 +
.../BaseCryptLib/UnitTestHostBaseCryptLib.inf | 3 +
.../BaseCryptLibNull/BaseCryptLibNull.inf | 2 +
.../Library/BaseCryptLibNull/Bn/CryptBnNull.c | 520 ++++++++
.../Library/BaseCryptLibNull/Pk/CryptEcNull.c | 496 +++++++
.../BaseCryptLibOnProtocolPpi/CryptLib.c | 961 ++++++++++++++
CryptoPkg/Private/Protocol/Crypto.h | 1176 ++++++++++++++---
CryptoPkg/Test/CryptoPkgHostUnitTest.dsc | 3 +
.../BaseCryptLib/BaseCryptLibUnitTests.c | 2 +
.../UnitTest/Library/BaseCryptLib/BnTests.c | 266 ++++
.../UnitTest/Library/BaseCryptLib/EcTests.c | 290 ++++
.../Library/BaseCryptLib/TestBaseCryptLib.h | 5 +
.../BaseCryptLib/TestBaseCryptLibHost.inf | 2 +
.../BaseCryptLib/TestBaseCryptLibShell.inf | 2 +
24 files changed, 7852 insertions(+), 160 deletions(-)
create mode 100644 CryptoPkg/Library/BaseCryptLib/Bn/CryptBn.c
create mode 100644 CryptoPkg/Library/BaseCryptLib/Bn/CryptBnNull.c
create mode 100644 CryptoPkg/Library/BaseCryptLib/Pk/CryptEc.c
create mode 100644 CryptoPkg/Library/BaseCryptLib/Pk/CryptEcNull.c
create mode 100644 CryptoPkg/Library/BaseCryptLibNull/Bn/CryptBnNull.c
create mode 100644 CryptoPkg/Library/BaseCryptLibNull/Pk/CryptEcNull.c
create mode 100644 CryptoPkg/Test/UnitTest/Library/BaseCryptLib/BnTests.c
create mode 100644 CryptoPkg/Test/UnitTest/Library/BaseCryptLib/EcTests.c
--
2.31.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#93362): https://edk2.groups.io/g/devel/message/93362
Mute This Topic: https://groups.io/mt/93520780/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list