mirror of https://github.com/acidanthera/audk.git
SecurityPkg/RngDxe: Simplify Rng algorithm selection for Arm
The first element of mAvailableAlgoArray is defined as the default Rng algorithm to use. Don't go through the array at each RngGetRNG() call and just return the first element of the array. Signed-off-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com> Acked-by: Ard Biesheuvel <ardb@kernel.org> Acked-by: Jiewen Yao <Jiewen.yao@intel.com> Tested-by: Kun Qin <kun.qin@microsoft.com>
This commit is contained in:
parent
19438cff97
commit
ff7ddc02b2
|
@ -77,7 +77,6 @@ RngGetRNG (
|
|||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
UINTN Index;
|
||||
GUID RngGuid;
|
||||
|
||||
if ((This == NULL) || (RNGValueLength == 0) || (RNGValue == NULL)) {
|
||||
|
@ -88,21 +87,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:
|
||||
Status = GetRngGuid (&RngGuid);
|
||||
if (!EFI_ERROR (Status) &&
|
||||
CompareGuid (RNGAlgorithm, &RngGuid))
|
||||
|
|
Loading…
Reference in New Issue