From: Pierre Gondois <pierre.gond...@arm.com> The default algorithm to use is the first element of mAvailableAlgoArray. There is no need to iterate through the array to find a valid algorithm.
Simplify the Rng algorithm selection by returning the first element of mAvailableAlgoArray. Signed-off-by: Pierre Gondois <pierre.gond...@arm.com> --- .../RandomNumberGenerator/RngDxe/ArmRngDxe.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c index ce49ff7ae661..b8a343e3d397 100644 --- a/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c +++ b/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c @@ -77,7 +77,6 @@ RngGetRNG ( ) { EFI_STATUS Status; - UINTN Index; if ((This == NULL) || (RNGValueLength == 0) || (RNGValue == NULL)) { return EFI_INVALID_PARAMETER; @@ -87,21 +86,13 @@ RngGetRNG ( // // Use the default RNG algorithm if RNGAlgorithm is NULL. // - for (Index = 0; Index < mAvailableAlgoArrayCount; Index++) { - if (!IsZeroGuid (&mAvailableAlgoArray[Index])) { - RNGAlgorithm = &mAvailableAlgoArray[Index]; - goto FoundAlgo; - } - } - - if (Index == mAvailableAlgoArrayCount) { - // No algorithm available. - ASSERT (Index != mAvailableAlgoArrayCount); - return EFI_DEVICE_ERROR; + if (mAvailableAlgoArrayCount != 0) { + RNGAlgorithm = &mAvailableAlgoArray[0]; + } else { + return EFI_UNSUPPORTED; } } -FoundAlgo: if (CompareGuid (RNGAlgorithm, PcdGetPtr (PcdCpuRngSupportedAlgorithm))) { Status = RngGetBytes (RNGValueLength, RNGValue); return Status; -- 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#100807): https://edk2.groups.io/g/devel/message/100807 Mute This Topic: https://groups.io/mt/97454017/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-