Laszlo, > -----Original Message----- > From: Laszlo Ersek <ler...@redhat.com> > Sent: Wednesday, November 13, 2019 5:28 PM > To: Wang, Jian J <jian.j.w...@intel.com>; devel@edk2.groups.io > Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming > <liming....@intel.com>; Ard Biesheuvel <ard.biesheu...@linaro.org>; Ni, Ray > <ray...@intel.com> > Subject: Re: [edk2-devel] [PATCH v2] MdePkg: add null version of RngLib > > On 11/13/19 09:43, Wang, Jian J wrote: > > As requested by Ray, I'd like to mention more usage about this library > > instance. > > > > To be more specific, if following components or functionalities are used in > > a > > platform, the BaseRngLibNull should *not* be used. Instead, a non-Null > version > > of RngLib must be used (like BaseRngLib for IA32/X64, or coming RngDxeLib > > for all ARCHs). > > > > - SecurityPkg/HddPassword/HddPasswordDxe.c > > - AES, TLS (NetworkPkg/TlsDxe/TlsDxe.inf, > > CryptoPkg/Library/TlsLib/TlsLib.inf) > > RSA_OAEP, RSA_PK1 > > - (If BaseRngLibNull interface ASSERTed at boot time) > > Just a naming suggestion for "RngDxeLib": I think it should be called > "DxeRngLibXxxx", where "Xxxx" should stand for the core idea in the > implementation. For example, if the library is based on > EFI_RNG_PROTOCOL, then it likely should be called > > DxeRngLibRngProtocol > > This scheme seems consistent with some other library instance names > under MdePkg/Library: > > MdePkg/Library/UefiDebugLibDebugPortProtocol > MdePkg/Library/UefiDevicePathLibDevicePathProtocol > > and maybe even with > > MdePkg/Library/SmmPciLibPciRootBridgeIo > MdePkg/Library/UefiPciLibPciRootBridgeIo >
Good suggestion. Thanks. Regards, Jian > Thanks > Laszlo > > > > > Regards, > > Jian > > > >> -----Original Message----- > >> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Wang, > Jian > >> J > >> Sent: Wednesday, November 13, 2019 1:35 PM > >> To: devel@edk2.groups.io > >> Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming > >> <liming....@intel.com>; Laszlo Ersek <ler...@redhat.com>; Ard Biesheuvel > >> <ard.biesheu...@linaro.org>; Ni, Ray <ray...@intel.com> > >> Subject: [edk2-devel] [PATCH v2] MdePkg: add null version of RngLib > >> > >>> v2: > >>> - Change the name from RngLibNull to BaseRngLibNull according to Laszlo's > >>> comments > >>> - Move the module from SecurityPkg to MdePkg according to Laszlo's > >> comments > >>> - Update commit message according to Laszlo and Ray's comments > >> > >> This is null version of RngLib which should be used with modules that > >> inherit an (indirect) dependency on the RngLib class, but never actually > >> call RngLib APIs for consuming randomness. > >> > >> > >> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1871 > >> Cc: Michael D Kinney <michael.d.kin...@intel.com> > >> Cc: Liming Gao <liming....@intel.com> > >> Cc: Laszlo Ersek <ler...@redhat.com> > >> Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> > >> Cc: Ray Ni <ray...@intel.com> > >> Signed-off-by: Jian J Wang <jian.j.w...@intel.com> > >> --- > >> .../Library/BaseRngLibNull/BaseRngLibNull.c | 95 +++++++++++++++++++ > >> .../Library/BaseRngLibNull/BaseRngLibNull.inf | 31 ++++++ > >> .../Library/BaseRngLibNull/BaseRngLibNull.uni | 14 +++ > >> MdePkg/MdePkg.dsc | 1 + > >> 4 files changed, 141 insertions(+) > >> create mode 100644 MdePkg/Library/BaseRngLibNull/BaseRngLibNull.c > >> create mode 100644 MdePkg/Library/BaseRngLibNull/BaseRngLibNull.inf > >> create mode 100644 MdePkg/Library/BaseRngLibNull/BaseRngLibNull.uni > >> > >> diff --git a/MdePkg/Library/BaseRngLibNull/BaseRngLibNull.c > >> b/MdePkg/Library/BaseRngLibNull/BaseRngLibNull.c > >> new file mode 100644 > >> index 0000000000..13677abc84 > >> --- /dev/null > >> +++ b/MdePkg/Library/BaseRngLibNull/BaseRngLibNull.c > >> @@ -0,0 +1,95 @@ > >> +/** @file > >> + Null version of Random number generator services. > >> + > >> +Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> > >> +SPDX-License-Identifier: BSD-2-Clause-Patent > >> + > >> +**/ > >> + > >> +#include <Library/BaseLib.h> > >> +#include <Library/DebugLib.h> > >> +#include <Library/RngLib.h> > >> + > >> +/** > >> + Generates a 16-bit random number. > >> + > >> + if Rand is NULL, then ASSERT(). > >> + > >> + @param[out] Rand Buffer pointer to store the 16-bit random value. > >> + > >> + @retval TRUE Random number generated successfully. > >> + @retval FALSE Failed to generate the random number. > >> + > >> +**/ > >> +BOOLEAN > >> +EFIAPI > >> +GetRandomNumber16 ( > >> + OUT UINT16 *Rand > >> + ) > >> +{ > >> + ASSERT (FALSE); > >> + return FALSE; > >> +} > >> + > >> +/** > >> + Generates a 32-bit random number. > >> + > >> + if Rand is NULL, then ASSERT(). > >> + > >> + @param[out] Rand Buffer pointer to store the 32-bit random value. > >> + > >> + @retval TRUE Random number generated successfully. > >> + @retval FALSE Failed to generate the random number. > >> + > >> +**/ > >> +BOOLEAN > >> +EFIAPI > >> +GetRandomNumber32 ( > >> + OUT UINT32 *Rand > >> + ) > >> +{ > >> + ASSERT (FALSE); > >> + return FALSE; > >> +} > >> + > >> +/** > >> + Generates a 64-bit random number. > >> + > >> + if Rand is NULL, then ASSERT(). > >> + > >> + @param[out] Rand Buffer pointer to store the 64-bit random value. > >> + > >> + @retval TRUE Random number generated successfully. > >> + @retval FALSE Failed to generate the random number. > >> + > >> +**/ > >> +BOOLEAN > >> +EFIAPI > >> +GetRandomNumber64 ( > >> + OUT UINT64 *Rand > >> + ) > >> +{ > >> + ASSERT (FALSE); > >> + return FALSE; > >> +} > >> + > >> +/** > >> + Generates a 128-bit random number. > >> + > >> + if Rand is NULL, then ASSERT(). > >> + > >> + @param[out] Rand Buffer pointer to store the 128-bit random value. > >> + > >> + @retval TRUE Random number generated successfully. > >> + @retval FALSE Failed to generate the random number. > >> + > >> +**/ > >> +BOOLEAN > >> +EFIAPI > >> +GetRandomNumber128 ( > >> + OUT UINT64 *Rand > >> + ) > >> +{ > >> + ASSERT (FALSE); > >> + return FALSE; > >> +} > >> diff --git a/MdePkg/Library/BaseRngLibNull/BaseRngLibNull.inf > >> b/MdePkg/Library/BaseRngLibNull/BaseRngLibNull.inf > >> new file mode 100644 > >> index 0000000000..f456df1dae > >> --- /dev/null > >> +++ b/MdePkg/Library/BaseRngLibNull/BaseRngLibNull.inf > >> @@ -0,0 +1,31 @@ > >> +## @file > >> +# Null instance of RNG (Random Number Generator) Library. > >> +# > >> +# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> > >> +# > >> +# SPDX-License-Identifier: BSD-2-Clause-Patent > >> +# > >> +## > >> + > >> +[Defines] > >> + INF_VERSION = 0x00010005 > >> + BASE_NAME = BaseRngLibNull > >> + MODULE_UNI_FILE = BaseRngLibNull.uni > >> + FILE_GUID = CD8991F8-2061-4084-8C9E-9C6F352DC58D > >> + MODULE_TYPE = BASE > >> + VERSION_STRING = 1.0 > >> + LIBRARY_CLASS = RngLib > >> + > >> +# > >> +# VALID_ARCHITECTURES = IA32 X64 ARM AARCH64 > >> +# > >> + > >> +[Sources] > >> + BaseRngLibNull.c > >> + > >> +[Packages] > >> + MdePkg/MdePkg.dec > >> + > >> +[LibraryClasses] > >> + BaseLib > >> + DebugLib > >> diff --git a/MdePkg/Library/BaseRngLibNull/BaseRngLibNull.uni > >> b/MdePkg/Library/BaseRngLibNull/BaseRngLibNull.uni > >> new file mode 100644 > >> index 0000000000..f32be6a617 > >> --- /dev/null > >> +++ b/MdePkg/Library/BaseRngLibNull/BaseRngLibNull.uni > >> @@ -0,0 +1,14 @@ > >> +// /** @file > >> +// Null Instance of RNG (Random Number Generator) Library. > >> +// > >> +// Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> > >> +// > >> +// SPDX-License-Identifier: BSD-2-Clause-Patent > >> +// > >> +// **/ > >> + > >> + > >> +#string STR_MODULE_ABSTRACT #language en-US "Null Instance of > >> RNG Library" > >> + > >> +#string STR_MODULE_DESCRIPTION #language en-US "This library > >> instance should be used with modules that inherit an (indirect) dependency > >> on > >> the RngLib class, but never actually call RngLib APIs for consuming > randomness." > >> + > >> diff --git a/MdePkg/MdePkg.dsc b/MdePkg/MdePkg.dsc > >> index c1278e7907..0aeafaaacc 100644 > >> --- a/MdePkg/MdePkg.dsc > >> +++ b/MdePkg/MdePkg.dsc > >> @@ -61,6 +61,7 @@ > >> > >> > MdePkg/Library/BaseUefiDecompressLib/BaseUefiTianoCustomDecompressLib. > >> inf > >> MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf > >> MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf > >> + MdePkg/Library/BaseRngLibNull/BaseRngLibNull.inf > >> > >> MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf > >> MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf > >> -- > >> 2.17.1.windows.2 > >> > >> > >> > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#50584): https://edk2.groups.io/g/devel/message/50584 Mute This Topic: https://groups.io/mt/55296935/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-