You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.4 KiB
44 lines
1.4 KiB
From da8fda9932ab4a64a07d318d30b03baafbf1e0c1 Mon Sep 17 00:00:00 2001
|
|
From: Gerd Hoffmann <kraxel@redhat.com>
|
|
Date: Fri, 31 May 2024 09:49:13 +0200
|
|
Subject: [PATCH] SecurityPkg/RngDxe: add rng test
|
|
|
|
Check whenever RngLib actually returns random numbers, only return
|
|
a non-zero number of Algorithms if that is the case.
|
|
|
|
This has the effect that RndDxe loads and installs EFI_RNG_PROTOCOL
|
|
only in case it can actually deliver random numbers.
|
|
|
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
(cherry picked from commit a61bc0accb8a76edba4f073fdc7bafc908df045d)
|
|
---
|
|
SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c | 8 +++++++-
|
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c
|
|
index 5723ed6957..8b0742bab6 100644
|
|
--- a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c
|
|
+++ b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c
|
|
@@ -23,6 +23,7 @@
|
|
|
|
#include <Library/BaseLib.h>
|
|
#include <Library/BaseMemoryLib.h>
|
|
+#include <Library/RngLib.h>
|
|
|
|
#include "RngDxeInternals.h"
|
|
|
|
@@ -43,7 +44,12 @@ GetAvailableAlgorithms (
|
|
VOID
|
|
)
|
|
{
|
|
- mAvailableAlgoArrayCount = RNG_ALGORITHM_COUNT;
|
|
+ UINT64 RngTest;
|
|
+
|
|
+ if (GetRandomNumber64 (&RngTest)) {
|
|
+ mAvailableAlgoArrayCount = RNG_ALGORITHM_COUNT;
|
|
+ }
|
|
+
|
|
return EFI_SUCCESS;
|
|
}
|
|
|