SecurityPkg: Apply uncrustify changes
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the SecurityPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
This commit is contained in:
committed by
mergify[bot]
parent
39de741e2d
commit
c411b485b6
@@ -52,13 +52,13 @@
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RngGetRNG (
|
||||
IN EFI_RNG_PROTOCOL *This,
|
||||
IN EFI_RNG_ALGORITHM *RNGAlgorithm OPTIONAL,
|
||||
IN UINTN RNGValueLength,
|
||||
OUT UINT8 *RNGValue
|
||||
IN EFI_RNG_PROTOCOL *This,
|
||||
IN EFI_RNG_ALGORITHM *RNGAlgorithm OPTIONAL,
|
||||
IN UINTN RNGValueLength,
|
||||
OUT UINT8 *RNGValue
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
|
||||
if ((RNGValueLength == 0) || (RNGValue == NULL)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -103,12 +103,12 @@ RngGetRNG (
|
||||
UINTN
|
||||
EFIAPI
|
||||
ArchGetSupportedRngAlgorithms (
|
||||
IN OUT UINTN *RNGAlgorithmListSize,
|
||||
OUT EFI_RNG_ALGORITHM *RNGAlgorithmList
|
||||
IN OUT UINTN *RNGAlgorithmListSize,
|
||||
OUT EFI_RNG_ALGORITHM *RNGAlgorithmList
|
||||
)
|
||||
{
|
||||
UINTN RequiredSize;
|
||||
EFI_RNG_ALGORITHM *CpuRngSupportedAlgorithm;
|
||||
UINTN RequiredSize;
|
||||
EFI_RNG_ALGORITHM *CpuRngSupportedAlgorithm;
|
||||
|
||||
RequiredSize = sizeof (EFI_RNG_ALGORITHM);
|
||||
|
||||
@@ -119,7 +119,7 @@ ArchGetSupportedRngAlgorithms (
|
||||
|
||||
CpuRngSupportedAlgorithm = PcdGetPtr (PcdCpuRngSupportedAlgorithm);
|
||||
|
||||
CopyMem(&RNGAlgorithmList[0], CpuRngSupportedAlgorithm, sizeof (EFI_RNG_ALGORITHM));
|
||||
CopyMem (&RNGAlgorithmList[0], CpuRngSupportedAlgorithm, sizeof (EFI_RNG_ALGORITHM));
|
||||
|
||||
*RNGAlgorithmListSize = RequiredSize;
|
||||
return EFI_SUCCESS;
|
||||
|
@@ -14,7 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
// Number of columns (32-bit words) comprising the State.
|
||||
// AES_NB is a constant (value = 4) for NIST FIPS-197.
|
||||
//
|
||||
#define AES_NB 4
|
||||
#define AES_NB 4
|
||||
|
||||
//
|
||||
// Pre-computed AES Forward Table: AesForwardTable[t] = AES_SBOX[t].[02, 01, 01, 03]
|
||||
@@ -22,7 +22,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
// This is to speed up execution of the cipher by combining SubBytes and
|
||||
// ShiftRows with MixColumns steps and transforming them into table lookups.
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 AesForwardTable[] = {
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 AesForwardTable[] = {
|
||||
0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd,
|
||||
0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d,
|
||||
0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d,
|
||||
@@ -71,7 +71,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 AesForwardTable[] = {
|
||||
//
|
||||
// Round constant word array used in AES key expansion.
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 Rcon[] = {
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 Rcon[] = {
|
||||
0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000,
|
||||
0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000
|
||||
};
|
||||
@@ -79,14 +79,14 @@ GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT32 Rcon[] = {
|
||||
//
|
||||
// Rotates x right n bits (circular right shift operation)
|
||||
//
|
||||
#define ROTATE_RIGHT32(x, n) (((x) >> (n)) | ((x) << (32-(n))))
|
||||
#define ROTATE_RIGHT32(x, n) (((x) >> (n)) | ((x) << (32-(n))))
|
||||
|
||||
//
|
||||
// Loading & Storing 32-bit words in big-endian format: y[3..0] --> x; x --> y[3..0];
|
||||
//
|
||||
#define LOAD32H(x, y) { x = ((UINT32)((y)[0] & 0xFF) << 24) | ((UINT32)((y)[1] & 0xFF) << 16) | \
|
||||
#define LOAD32H(x, y) { x = ((UINT32)((y)[0] & 0xFF) << 24) | ((UINT32)((y)[1] & 0xFF) << 16) | \
|
||||
((UINT32)((y)[2] & 0xFF) << 8) | ((UINT32)((y)[3] & 0xFF)); }
|
||||
#define STORE32H(x, y) { (y)[0] = (UINT8)(((x) >> 24) & 0xFF); (y)[1] = (UINT8)(((x) >> 16) & 0xFF); \
|
||||
#define STORE32H(x, y) { (y)[0] = (UINT8)(((x) >> 24) & 0xFF); (y)[1] = (UINT8)(((x) >> 16) & 0xFF); \
|
||||
(y)[2] = (UINT8)(((x) >> 8) & 0xFF); (y)[3] = (UINT8)((x) & 0xFF); }
|
||||
|
||||
//
|
||||
@@ -121,30 +121,31 @@ typedef struct {
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
AesExpandKey (
|
||||
IN UINT8 *Key,
|
||||
IN UINTN KeyLenInBits,
|
||||
OUT AES_KEY *AesKey
|
||||
IN UINT8 *Key,
|
||||
IN UINTN KeyLenInBits,
|
||||
OUT AES_KEY *AesKey
|
||||
)
|
||||
{
|
||||
UINTN Nk;
|
||||
UINTN Nr;
|
||||
UINTN Nw;
|
||||
UINTN Index1;
|
||||
UINTN Index2;
|
||||
UINTN Index3;
|
||||
UINT32 *Ek;
|
||||
UINT32 Temp;
|
||||
UINTN Nk;
|
||||
UINTN Nr;
|
||||
UINTN Nw;
|
||||
UINTN Index1;
|
||||
UINTN Index2;
|
||||
UINTN Index3;
|
||||
UINT32 *Ek;
|
||||
UINT32 Temp;
|
||||
|
||||
//
|
||||
// Nk - Number of 32-bit words comprising the cipher key. (Nk = 4, 6 or 8)
|
||||
// Nr - Number of rounds. (Nr = 10, 12, or 14), which is dependent on the key size.
|
||||
//
|
||||
Nk = KeyLenInBits >> 5;
|
||||
if (Nk != 4 && Nk != 6 && Nk != 8) {
|
||||
if ((Nk != 4) && (Nk != 6) && (Nk != 8)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
Nr = Nk + 6;
|
||||
Nw = AES_NB * (Nr + 1); // Key Expansion generates a total of Nb * (Nr + 1) words
|
||||
|
||||
Nr = Nk + 6;
|
||||
Nw = AES_NB * (Nr + 1); // Key Expansion generates a total of Nb * (Nr + 1) words
|
||||
AesKey->Nk = Nk;
|
||||
|
||||
//
|
||||
@@ -161,31 +162,32 @@ AesExpandKey (
|
||||
//
|
||||
for (Index2 = Nk, Index3 = 0; Index2 < Nw; Index2 += Nk, Index3++) {
|
||||
Temp = Ek[Index2 - 1];
|
||||
Ek[Index2] = Ek[Index2 - Nk] ^ (AES_FT2((Temp >> 16) & 0xFF) & 0xFF000000) ^
|
||||
(AES_FT3((Temp >> 8) & 0xFF) & 0x00FF0000) ^
|
||||
(AES_FT0((Temp) & 0xFF) & 0x0000FF00) ^
|
||||
(AES_FT1((Temp >> 24) & 0xFF) & 0x000000FF) ^
|
||||
Rcon[Index3];
|
||||
Ek[Index2] = Ek[Index2 - Nk] ^ (AES_FT2 ((Temp >> 16) & 0xFF) & 0xFF000000) ^
|
||||
(AES_FT3 ((Temp >> 8) & 0xFF) & 0x00FF0000) ^
|
||||
(AES_FT0 ((Temp) & 0xFF) & 0x0000FF00) ^
|
||||
(AES_FT1 ((Temp >> 24) & 0xFF) & 0x000000FF) ^
|
||||
Rcon[Index3];
|
||||
if (Nk <= 6) {
|
||||
//
|
||||
// If AES Cipher Key is 128 or 192 bits
|
||||
//
|
||||
for (Index1 = 1; Index1 < Nk && (Index1 + Index2) < Nw; Index1++) {
|
||||
Ek [Index1 + Index2] = Ek [Index1 + Index2 - Nk] ^ Ek[Index1 + Index2 - 1];
|
||||
Ek[Index1 + Index2] = Ek[Index1 + Index2 - Nk] ^ Ek[Index1 + Index2 - 1];
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// Different routine for key expansion If Cipher Key is 256 bits,
|
||||
//
|
||||
for (Index1 = 1; Index1 < 4 && (Index1 + Index2) < Nw; Index1++) {
|
||||
Ek [Index1 + Index2] = Ek[Index1 + Index2 - Nk] ^ Ek[Index1 + Index2 - 1];
|
||||
Ek[Index1 + Index2] = Ek[Index1 + Index2 - Nk] ^ Ek[Index1 + Index2 - 1];
|
||||
}
|
||||
|
||||
if (Index2 + 4 < Nw) {
|
||||
Temp = Ek[Index2 + 3];
|
||||
Ek[Index2 + 4] = Ek[Index2 + 4 - Nk] ^ (AES_FT2((Temp >> 24) & 0xFF) & 0xFF000000) ^
|
||||
(AES_FT3((Temp >> 16) & 0xFF) & 0x00FF0000) ^
|
||||
(AES_FT0((Temp >> 8) & 0xFF) & 0x0000FF00) ^
|
||||
(AES_FT1((Temp) & 0xFF) & 0x000000FF);
|
||||
Ek[Index2 + 4] = Ek[Index2 + 4 - Nk] ^ (AES_FT2 ((Temp >> 24) & 0xFF) & 0xFF000000) ^
|
||||
(AES_FT3 ((Temp >> 16) & 0xFF) & 0x00FF0000) ^
|
||||
(AES_FT0 ((Temp >> 8) & 0xFF) & 0x0000FF00) ^
|
||||
(AES_FT1 ((Temp) & 0xFF) & 0x000000FF);
|
||||
}
|
||||
|
||||
for (Index1 = 5; Index1 < Nk && (Index1 + Index2) < Nw; Index1++) {
|
||||
@@ -211,9 +213,9 @@ AesExpandKey (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
AesEncrypt (
|
||||
IN UINT8 *Key,
|
||||
IN UINT8 *InData,
|
||||
OUT UINT8 *OutData
|
||||
IN UINT8 *Key,
|
||||
IN UINT8 *InData,
|
||||
OUT UINT8 *OutData
|
||||
)
|
||||
{
|
||||
AES_KEY AesKey;
|
||||
@@ -258,33 +260,35 @@ AesEncrypt (
|
||||
// table lookups to speed up the execution.
|
||||
//
|
||||
for (Round = 1; Round < Nr; Round++) {
|
||||
StateY[0] = AES_FT0 ((StateX[0] >> 24) ) ^ AES_FT1 ((StateX[1] >> 16) & 0xFF) ^
|
||||
AES_FT2 ((StateX[2] >> 8) & 0xFF) ^ AES_FT3 ((StateX[3] ) & 0xFF) ^ Ek[NbIndex];
|
||||
StateY[1] = AES_FT0 ((StateX[1] >> 24) ) ^ AES_FT1 ((StateX[2] >> 16) & 0xFF) ^
|
||||
AES_FT2 ((StateX[3] >> 8) & 0xFF) ^ AES_FT3 ((StateX[0] ) & 0xFF) ^ Ek[NbIndex + 1];
|
||||
StateY[2] = AES_FT0 ((StateX[2] >> 24) ) ^ AES_FT1 ((StateX[3] >> 16) & 0xFF) ^
|
||||
AES_FT2 ((StateX[0] >> 8) & 0xFF) ^ AES_FT3 ((StateX[1] ) & 0xFF) ^ Ek[NbIndex + 2];
|
||||
StateY[3] = AES_FT0 ((StateX[3] >> 24) ) ^ AES_FT1 ((StateX[0] >> 16) & 0xFF) ^
|
||||
AES_FT2 ((StateX[1] >> 8) & 0xFF) ^ AES_FT3 ((StateX[2] ) & 0xFF) ^ Ek[NbIndex + 3];
|
||||
StateY[0] = AES_FT0 ((StateX[0] >> 24)) ^ AES_FT1 ((StateX[1] >> 16) & 0xFF) ^
|
||||
AES_FT2 ((StateX[2] >> 8) & 0xFF) ^ AES_FT3 ((StateX[3]) & 0xFF) ^ Ek[NbIndex];
|
||||
StateY[1] = AES_FT0 ((StateX[1] >> 24)) ^ AES_FT1 ((StateX[2] >> 16) & 0xFF) ^
|
||||
AES_FT2 ((StateX[3] >> 8) & 0xFF) ^ AES_FT3 ((StateX[0]) & 0xFF) ^ Ek[NbIndex + 1];
|
||||
StateY[2] = AES_FT0 ((StateX[2] >> 24)) ^ AES_FT1 ((StateX[3] >> 16) & 0xFF) ^
|
||||
AES_FT2 ((StateX[0] >> 8) & 0xFF) ^ AES_FT3 ((StateX[1]) & 0xFF) ^ Ek[NbIndex + 2];
|
||||
StateY[3] = AES_FT0 ((StateX[3] >> 24)) ^ AES_FT1 ((StateX[0] >> 16) & 0xFF) ^
|
||||
AES_FT2 ((StateX[1] >> 8) & 0xFF) ^ AES_FT3 ((StateX[2]) & 0xFF) ^ Ek[NbIndex + 3];
|
||||
|
||||
NbIndex += 4;
|
||||
Temp = StateX; StateX = StateY; StateY = Temp;
|
||||
Temp = StateX;
|
||||
StateX = StateY;
|
||||
StateY = Temp;
|
||||
}
|
||||
|
||||
//
|
||||
// Apply the final round, which does not include MixColumns() transformation
|
||||
//
|
||||
StateY[0] = (AES_FT2 ((StateX[0] >> 24) ) & 0xFF000000) ^ (AES_FT3 ((StateX[1] >> 16) & 0xFF) & 0x00FF0000) ^
|
||||
(AES_FT0 ((StateX[2] >> 8) & 0xFF) & 0x0000FF00) ^ (AES_FT1 ((StateX[3] ) & 0xFF) & 0x000000FF) ^
|
||||
StateY[0] = (AES_FT2 ((StateX[0] >> 24)) & 0xFF000000) ^ (AES_FT3 ((StateX[1] >> 16) & 0xFF) & 0x00FF0000) ^
|
||||
(AES_FT0 ((StateX[2] >> 8) & 0xFF) & 0x0000FF00) ^ (AES_FT1 ((StateX[3]) & 0xFF) & 0x000000FF) ^
|
||||
Ek[NbIndex];
|
||||
StateY[1] = (AES_FT2 ((StateX[1] >> 24) ) & 0xFF000000) ^ (AES_FT3 ((StateX[2] >> 16) & 0xFF) & 0x00FF0000) ^
|
||||
(AES_FT0 ((StateX[3] >> 8) & 0xFF) & 0x0000FF00) ^ (AES_FT1 ((StateX[0] ) & 0xFF) & 0x000000FF) ^
|
||||
StateY[1] = (AES_FT2 ((StateX[1] >> 24)) & 0xFF000000) ^ (AES_FT3 ((StateX[2] >> 16) & 0xFF) & 0x00FF0000) ^
|
||||
(AES_FT0 ((StateX[3] >> 8) & 0xFF) & 0x0000FF00) ^ (AES_FT1 ((StateX[0]) & 0xFF) & 0x000000FF) ^
|
||||
Ek[NbIndex + 1];
|
||||
StateY[2] = (AES_FT2 ((StateX[2] >> 24) ) & 0xFF000000) ^ (AES_FT3 ((StateX[3] >> 16) & 0xFF) & 0x00FF0000) ^
|
||||
(AES_FT0 ((StateX[0] >> 8) & 0xFF) & 0x0000FF00) ^ (AES_FT1 ((StateX[1] ) & 0xFF) & 0x000000FF) ^
|
||||
StateY[2] = (AES_FT2 ((StateX[2] >> 24)) & 0xFF000000) ^ (AES_FT3 ((StateX[3] >> 16) & 0xFF) & 0x00FF0000) ^
|
||||
(AES_FT0 ((StateX[0] >> 8) & 0xFF) & 0x0000FF00) ^ (AES_FT1 ((StateX[1]) & 0xFF) & 0x000000FF) ^
|
||||
Ek[NbIndex + 2];
|
||||
StateY[3] = (AES_FT2 ((StateX[3] >> 24) ) & 0xFF000000) ^ (AES_FT3 ((StateX[0] >> 16) & 0xFF) & 0x00FF0000) ^
|
||||
(AES_FT0 ((StateX[1] >> 8) & 0xFF) & 0x0000FF00) ^ (AES_FT1 ((StateX[2] ) & 0xFF) & 0x000000FF) ^
|
||||
StateY[3] = (AES_FT2 ((StateX[3] >> 24)) & 0xFF000000) ^ (AES_FT3 ((StateX[0] >> 16) & 0xFF) & 0x00FF0000) ^
|
||||
(AES_FT0 ((StateX[1] >> 8) & 0xFF) & 0x0000FF00) ^ (AES_FT1 ((StateX[2]) & 0xFF) & 0x000000FF) ^
|
||||
Ek[NbIndex + 3];
|
||||
|
||||
//
|
||||
|
@@ -23,9 +23,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
AesEncrypt (
|
||||
IN UINT8 *Key,
|
||||
IN UINT8 *InData,
|
||||
OUT UINT8 *OutData
|
||||
IN UINT8 *Key,
|
||||
IN UINT8 *InData,
|
||||
OUT UINT8 *OutData
|
||||
);
|
||||
|
||||
#endif // __AES_CORE_H__
|
||||
#endif // __AES_CORE_H__
|
||||
|
@@ -28,7 +28,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RdRandGetSeed128 (
|
||||
OUT UINT8 *SeedBuffer
|
||||
OUT UINT8 *SeedBuffer
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -43,7 +43,7 @@ RdRandGetSeed128 (
|
||||
// Chose an arbitrary key and zero the feed_forward_value (FFV)
|
||||
//
|
||||
for (Index = 0; Index < 16; Index++) {
|
||||
Key[Index] = (UINT8) Index;
|
||||
Key[Index] = (UINT8)Index;
|
||||
Ffv[Index] = 0;
|
||||
}
|
||||
|
||||
@@ -88,8 +88,8 @@ RdRandGetSeed128 (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RdRandGenerateEntropy (
|
||||
IN UINTN Length,
|
||||
OUT UINT8 *Entropy
|
||||
IN UINTN Length,
|
||||
OUT UINT8 *Entropy
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -109,6 +109,7 @@ RdRandGenerateEntropy (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
CopyMem (Ptr, Seed, 16);
|
||||
|
||||
BlockCount--;
|
||||
@@ -122,6 +123,7 @@ RdRandGenerateEntropy (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
CopyMem (Ptr, Seed, (Length % 16));
|
||||
|
||||
return Status;
|
||||
|
@@ -36,8 +36,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RdRandGenerateEntropy (
|
||||
IN UINTN Length,
|
||||
OUT UINT8 *Entropy
|
||||
IN UINTN Length,
|
||||
OUT UINT8 *Entropy
|
||||
);
|
||||
|
||||
#endif // __RD_RAND_H__
|
||||
#endif // __RD_RAND_H__
|
||||
|
@@ -48,13 +48,13 @@
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RngGetRNG (
|
||||
IN EFI_RNG_PROTOCOL *This,
|
||||
IN EFI_RNG_ALGORITHM *RNGAlgorithm OPTIONAL,
|
||||
IN UINTN RNGValueLength,
|
||||
OUT UINT8 *RNGValue
|
||||
IN EFI_RNG_PROTOCOL *This,
|
||||
IN EFI_RNG_ALGORITHM *RNGAlgorithm OPTIONAL,
|
||||
IN UINTN RNGValueLength,
|
||||
OUT UINT8 *RNGValue
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
|
||||
if ((RNGValueLength == 0) || (RNGValue == NULL)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -119,12 +119,12 @@ RngGetRNG (
|
||||
UINTN
|
||||
EFIAPI
|
||||
ArchGetSupportedRngAlgorithms (
|
||||
IN OUT UINTN *RNGAlgorithmListSize,
|
||||
OUT EFI_RNG_ALGORITHM *RNGAlgorithmList
|
||||
IN OUT UINTN *RNGAlgorithmListSize,
|
||||
OUT EFI_RNG_ALGORITHM *RNGAlgorithmList
|
||||
)
|
||||
{
|
||||
UINTN RequiredSize;
|
||||
EFI_RNG_ALGORITHM *CpuRngSupportedAlgorithm;
|
||||
UINTN RequiredSize;
|
||||
EFI_RNG_ALGORITHM *CpuRngSupportedAlgorithm;
|
||||
|
||||
RequiredSize = 2 * sizeof (EFI_RNG_ALGORITHM);
|
||||
|
||||
@@ -135,10 +135,10 @@ ArchGetSupportedRngAlgorithms (
|
||||
|
||||
CpuRngSupportedAlgorithm = PcdGetPtr (PcdCpuRngSupportedAlgorithm);
|
||||
|
||||
CopyMem(&RNGAlgorithmList[0], CpuRngSupportedAlgorithm, sizeof (EFI_RNG_ALGORITHM));
|
||||
CopyMem (&RNGAlgorithmList[0], CpuRngSupportedAlgorithm, sizeof (EFI_RNG_ALGORITHM));
|
||||
|
||||
// x86 platforms also support EFI_RNG_ALGORITHM_RAW via RDSEED
|
||||
CopyMem(&RNGAlgorithmList[1], &gEfiRngAlgorithmRaw, sizeof (EFI_RNG_ALGORITHM));
|
||||
CopyMem (&RNGAlgorithmList[1], &gEfiRngAlgorithmRaw, sizeof (EFI_RNG_ALGORITHM));
|
||||
|
||||
*RNGAlgorithmListSize = RequiredSize;
|
||||
return EFI_SUCCESS;
|
||||
|
@@ -54,12 +54,12 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RngGetInfo (
|
||||
IN EFI_RNG_PROTOCOL *This,
|
||||
IN OUT UINTN *RNGAlgorithmListSize,
|
||||
OUT EFI_RNG_ALGORITHM *RNGAlgorithmList
|
||||
IN EFI_RNG_PROTOCOL *This,
|
||||
IN OUT UINTN *RNGAlgorithmListSize,
|
||||
OUT EFI_RNG_ALGORITHM *RNGAlgorithmList
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
|
||||
if ((This == NULL) || (RNGAlgorithmListSize == NULL)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -80,7 +80,7 @@ RngGetInfo (
|
||||
//
|
||||
// The Random Number Generator (RNG) protocol
|
||||
//
|
||||
EFI_RNG_PROTOCOL mRngRdRand = {
|
||||
EFI_RNG_PROTOCOL mRngRdRand = {
|
||||
RngGetInfo,
|
||||
RngGetRNG
|
||||
};
|
||||
@@ -99,12 +99,12 @@ EFI_RNG_PROTOCOL mRngRdRand = {
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RngDriverEntry (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_HANDLE Handle;
|
||||
EFI_STATUS Status;
|
||||
EFI_HANDLE Handle;
|
||||
|
||||
//
|
||||
// Install UEFI RNG (Random Number Generator) Protocol
|
||||
@@ -120,7 +120,6 @@ RngDriverEntry (
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Calls RDRAND to fill a buffer of arbitrary size with random bytes.
|
||||
|
||||
@@ -134,24 +133,25 @@ RngDriverEntry (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RngGetBytes (
|
||||
IN UINTN Length,
|
||||
OUT UINT8 *RandBuffer
|
||||
IN UINTN Length,
|
||||
OUT UINT8 *RandBuffer
|
||||
)
|
||||
{
|
||||
BOOLEAN IsRandom;
|
||||
UINT64 TempRand[2];
|
||||
BOOLEAN IsRandom;
|
||||
UINT64 TempRand[2];
|
||||
|
||||
while (Length > 0) {
|
||||
IsRandom = GetRandomNumber128 (TempRand);
|
||||
if (!IsRandom) {
|
||||
return EFI_NOT_READY;
|
||||
}
|
||||
|
||||
if (Length >= sizeof (TempRand)) {
|
||||
WriteUnaligned64 ((UINT64*)RandBuffer, TempRand[0]);
|
||||
WriteUnaligned64 ((UINT64 *)RandBuffer, TempRand[0]);
|
||||
RandBuffer += sizeof (UINT64);
|
||||
WriteUnaligned64 ((UINT64*)RandBuffer, TempRand[1]);
|
||||
WriteUnaligned64 ((UINT64 *)RandBuffer, TempRand[1]);
|
||||
RandBuffer += sizeof (UINT64);
|
||||
Length -= sizeof (TempRand);
|
||||
Length -= sizeof (TempRand);
|
||||
} else {
|
||||
CopyMem (RandBuffer, TempRand, Length);
|
||||
Length = 0;
|
||||
|
@@ -36,9 +36,9 @@
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RngGetInfo (
|
||||
IN EFI_RNG_PROTOCOL *This,
|
||||
IN OUT UINTN *RNGAlgorithmListSize,
|
||||
OUT EFI_RNG_ALGORITHM *RNGAlgorithmList
|
||||
IN EFI_RNG_PROTOCOL *This,
|
||||
IN OUT UINTN *RNGAlgorithmListSize,
|
||||
OUT EFI_RNG_ALGORITHM *RNGAlgorithmList
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -66,10 +66,10 @@ RngGetInfo (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RngGetRNG (
|
||||
IN EFI_RNG_PROTOCOL *This,
|
||||
IN EFI_RNG_ALGORITHM *RNGAlgorithm OPTIONAL,
|
||||
IN UINTN RNGValueLength,
|
||||
OUT UINT8 *RNGValue
|
||||
IN EFI_RNG_PROTOCOL *This,
|
||||
IN EFI_RNG_ALGORITHM *RNGAlgorithm OPTIONAL,
|
||||
IN UINTN RNGValueLength,
|
||||
OUT UINT8 *RNGValue
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -93,8 +93,8 @@ RngGetRNG (
|
||||
UINTN
|
||||
EFIAPI
|
||||
ArchGetSupportedRngAlgorithms (
|
||||
IN OUT UINTN *RNGAlgorithmListSize,
|
||||
OUT EFI_RNG_ALGORITHM *RNGAlgorithmList
|
||||
IN OUT UINTN *RNGAlgorithmListSize,
|
||||
OUT EFI_RNG_ALGORITHM *RNGAlgorithmList
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -110,8 +110,8 @@ ArchGetSupportedRngAlgorithms (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RngGetBytes (
|
||||
IN UINTN Length,
|
||||
OUT UINT8 *RandBuffer
|
||||
IN UINTN Length,
|
||||
OUT UINT8 *RandBuffer
|
||||
);
|
||||
|
||||
#endif // RNGDXE_INTERNALS_H_
|
||||
#endif // RNGDXE_INTERNALS_H_
|
||||
|
Reference in New Issue
Block a user