Yes we did use PRNG(DRBG), the entropy pool is polled from HW RngLib. Seed is generated by TSC.
Regards,
Yi
From: Ard Biesheuvel <ardb@kernel.org>
Sent: Friday, June 14, 2024 3:52 PM
To: Li, Yi1 <yi1.li@intel.com>
Cc: Yao, Jiewen <jiewen.yao@intel.com>; devel@edk2.groups.io; Hou, Wenxing <wenxing.hou@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Pedro Falcato <pedro.falcato@gmail.com>
Subject: Re: CryptoPkg host test broken due to smoketest for RDRAND
For crypto unit tests, it is generally better to use a pseudo-random RNG, with a known (but not constant) seed, so that potential failures can be diagnosed more easily. E.g., the seed could be logged in the test output.
On Fri, 14 Jun 2024 at 09:24, Li, Yi1 <yi1.li@intel.com> wrote:
Yes, we can create a host test specific lib if no better ways.
Regards,
Yi
From: Yao, Jiewen <jiewen.yao@intel.com>
Sent: Friday, June 14, 2024 3:20 PM
To: Li, Yi1 <yi1.li@intel.com>; devel@edk2.groups.io
Cc: Hou, Wenxing <wenxing.hou@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Pedro Falcato <pedro.falcato@gmail.com>; Ard Biesheuvel <ardb+tianocore@kernel.org>
Subject: RE: CryptoPkg host test broken due to smoketest for RDRAND
Can we use a host test specific RngLib?
From: Li, Yi1 <yi1.li@intel.com>
Sent: Friday, June 14, 2024 3:08 PM
To: devel@edk2.groups.io
Cc: Hou, Wenxing <wenxing.hou@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Pedro Falcato <pedro.falcato@gmail.com>; Ard Biesheuvel <ardb+tianocore@kernel.org>
Subject: CryptoPkg host test broken due to smoketest for RDRAND
All crypto host tests which consumed randlib broken due to:
https://github.com/tianocore/edk2/pull/5714
Not sure why this issue not reported by CI when merge this PR.
The reason is that the ```BaseRngLibConstructor``` of rnglib is not called in host test, so ```mRdRandSupported``` is not enabled.
Then the Crypto API calls ```GetRandomNumber*``` will fail.
GetRandomNumber64 (
OUT UINT64 *Rand
)
{
……
if (!ArchIsRngSupported ()) {
return FALSE;
}
Is there a way to let unit test host to call the constructors correctly?
Regards,
Yi