From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.15688.1656530364070127648 for ; Wed, 29 Jun 2022 12:19:24 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: pierre.gondois@arm.com) 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 D76401480; Wed, 29 Jun 2022 12:19:23 -0700 (PDT) Received: from pierre123.home (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 825E63F792; Wed, 29 Jun 2022 12:19:21 -0700 (PDT) From: "PierreGondois" To: devel@edk2.groups.io Cc: Sami Mujawar , Leif Lindholm , Ard Biesheuvel , Rebecca Cran , Michael D Kinney , Liming Gao , Jiewen Yao , Jian J Wang Subject: [PATCH RESEND v1 0/9] Add DrbgLib Date: Wed, 29 Jun 2022 21:18:37 +0200 Message-Id: <20220629191848.2619317-1-Pierre.Gondois@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Pierre Gondois Bugzilla: Bug 3971 (https://bugzilla.tianocore.org/show_bug.cgi?id=3D3971= ) Add support for a Deterministic Random Bits Generator (Drbg). The specifications used are the following: - [1] NIST Special Publication 800-90A Revision 1, June 2015, Recommendat= ion for Random Number Generation Using Deterministic Random Bit Generators= . (https://csrc.nist.gov/publications/detail/sp/800-90a/rev-1/final) - [2] NIST Special Publication 800-90B, Recommendation for the Entropy Sources Used for Random Bit Generation. (https://csrc.nist.gov/publications/detail/sp/800-90b/final) - [3] (Second Draft) NIST Special Publication 800-90C, Recommendation for Random Bit Generator (RBG) Constructions. (https://csrc.nist.gov/publications/detail/sp/800-90c/draft) - [4] NIST Special Publication 800-57 Part 1 Revision 5, May 2020, Recommendation for Key Management:Part 1 - General. The test vectors available in the CTR_DRBG_AES256 sections of https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Gui= delines/documents/examples/CTR_DRBG_noDF.pdf were used for validation. This patch-set can seen at: https://github.com/PierreARM/edk2/tree/Arm_Drbg_v1 This patch has the following dependency: - [PATCH v3 00/22] Add Raw algorithm support using Arm FW-TRNG interface https://edk2.groups.io/g/devel/message/90845 - [PATCH v1 0/7] Add AesLib and ArmAesLib=20 https://edk2.groups.io/g/devel/message/90878 Pierre Gondois (9): MdePkg/DrbgLib: Drbg library interface definition MdePkg/DrbgLib: Add NULL instance of Drbg Library MdePkg/DrbgLib: Add BitStream implementation MdePkg/DrbgLib: Add Get_entropy_input() implementation MdePkg/DrbgLib: Add common wrappers MdePkg/DrbgLib: Add Ctr Drbg mechanism functions MdePkg/DrbgLib: Add Drbg mechanism functions and module ArmVirtPkg: Kvmtool: Add AesLib/DrbgLib for RngDxe SecurityPkg/RngDxe: Use DrbgLib in RngDxe for Arm ArmVirtPkg/ArmVirtKvmTool.dsc | 2 + MdePkg/Include/Library/DrbgLib.h | 172 +++ MdePkg/Library/DrbgLib/BitStream.c | 1114 +++++++++++++++++ MdePkg/Library/DrbgLib/BitStream.h | 366 ++++++ MdePkg/Library/DrbgLib/Common.c | 249 ++++ MdePkg/Library/DrbgLib/Common.h | 74 ++ MdePkg/Library/DrbgLib/CtrDrbg.c | 899 +++++++++++++ MdePkg/Library/DrbgLib/CtrDrbg.h | 100 ++ MdePkg/Library/DrbgLib/DrbgLib.c | 628 ++++++++++ MdePkg/Library/DrbgLib/DrbgLib.inf | 39 + MdePkg/Library/DrbgLib/DrbgLibInternal.h | 310 +++++ MdePkg/Library/DrbgLib/GetEntropyInput.c | 72 ++ MdePkg/Library/DrbgLib/GetEntropyInput.h | 48 + MdePkg/Library/DrbgLibNull/DrbgLib.c | 165 +++ MdePkg/Library/DrbgLibNull/DrbgLibNull.inf | 21 + MdePkg/MdePkg.dec | 4 + MdePkg/MdePkg.dsc | 2 + .../RandomNumberGenerator/RngDxe/ArmRngDxe.c | 75 +- .../RandomNumberGenerator/RngDxe/RngDxe.inf | 1 + SecurityPkg/SecurityPkg.dsc | 2 + 20 files changed, 4342 insertions(+), 1 deletion(-) create mode 100644 MdePkg/Include/Library/DrbgLib.h create mode 100644 MdePkg/Library/DrbgLib/BitStream.c create mode 100644 MdePkg/Library/DrbgLib/BitStream.h create mode 100644 MdePkg/Library/DrbgLib/Common.c create mode 100644 MdePkg/Library/DrbgLib/Common.h create mode 100644 MdePkg/Library/DrbgLib/CtrDrbg.c create mode 100644 MdePkg/Library/DrbgLib/CtrDrbg.h create mode 100644 MdePkg/Library/DrbgLib/DrbgLib.c create mode 100644 MdePkg/Library/DrbgLib/DrbgLib.inf create mode 100644 MdePkg/Library/DrbgLib/DrbgLibInternal.h create mode 100644 MdePkg/Library/DrbgLib/GetEntropyInput.c create mode 100644 MdePkg/Library/DrbgLib/GetEntropyInput.h create mode 100644 MdePkg/Library/DrbgLibNull/DrbgLib.c create mode 100644 MdePkg/Library/DrbgLibNull/DrbgLibNull.inf --=20 2.25.1