public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 0/7] CryptoPkg: Add BigNum and EC support to BaseCryptLib
@ 2022-09-07  8:29 yi1 li
  2022-09-07  8:29 ` [PATCH 1/7] CryptoPkg: Add BigNum support yi1 li
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: yi1 li @ 2022-09-07  8:29 UTC (permalink / raw)
  To: devel; +Cc: Yi Li, Jiewen Yao, Jian J Wang, Xiaoyu Lu, Guomin Jiang

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@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com>
Cc: Guomin Jiang <guomin.jiang@intel.com>

Signed-off-by: Yi Li <yi1.li@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


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2022-09-21 10:46 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-07  8:29 [PATCH 0/7] CryptoPkg: Add BigNum and EC support to BaseCryptLib yi1 li
2022-09-07  8:29 ` [PATCH 1/7] CryptoPkg: Add BigNum support yi1 li
2022-09-07  8:29 ` [PATCH 2/7] CryptoPkg: Add BigNum API to DXE and protocol yi1 li
2022-09-07  8:29 ` [PATCH 3/7] CryptoPkg: Add EC support yi1 li
2022-09-07  8:29 ` [PATCH 4/7] CryptoPkg: Add EC APIs to DXE and protocol yi1 li
2022-09-07  8:29 ` [PATCH 5/7] CryptoPkg/Test: Add unit test for CryptoBn yi1 li
2022-09-07  8:29 ` [PATCH 6/7] CryptoPkg/Test: Add unit test for CryptoEc yi1 li
2022-09-07  8:29 ` [PATCH 7/7] CryptoPkg: Run uncrustify tools on EC and BN change yi1 li
2022-09-20 16:01 ` [PATCH 0/7] CryptoPkg: Add BigNum and EC support to BaseCryptLib Yao, Jiewen
2022-09-21  4:56   ` yi1 li
2022-09-21 10:46     ` Yao, Jiewen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox