mirror of https://github.com/acidanthera/audk.git
SecurityPkg/RngDxe: Rename RdRandGenerateEntropy to generic name
Bugzilla: 3668 (https://bugzilla.tianocore.org/show_bug.cgi?id=3668) Rename RdRandGenerateEntropy() to GenerateEntropy() to provide a common interface to generate entropy on other architectures. GenerateEntropy() is intended to generate high quality entropy. Also move the definition to RngDxeInternals.h Signed-off-by: Pierre Gondois <pierre.gondois@arm.com> Acked-by: Jiewen Yao <jiewen.yao@intel.com>
This commit is contained in:
parent
e00ec499c5
commit
8a89747844
|
@ -1,15 +1,23 @@
|
|||
/** @file
|
||||
Support routines for RDRAND instruction access.
|
||||
Support routines for RDRAND instruction access, which will leverage
|
||||
Intel Secure Key technology to provide high-quality random numbers for use
|
||||
in applications, or entropy for seeding other random number generators.
|
||||
Refer to http://software.intel.com/en-us/articles/intel-digital-random-number
|
||||
-generator-drng-software-implementation-guide/ for more information about Intel
|
||||
Secure Key technology.
|
||||
|
||||
Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.<BR>
|
||||
Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/BaseMemoryLib.h>
|
||||
#include <Library/RngLib.h>
|
||||
#include <Library/TimerLib.h>
|
||||
|
||||
#include "AesCore.h"
|
||||
#include "RdRand.h"
|
||||
#include "RngDxeInternals.h"
|
||||
|
||||
/**
|
||||
|
@ -87,7 +95,7 @@ RdRandGetSeed128 (
|
|||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RdRandGenerateEntropy (
|
||||
GenerateEntropy (
|
||||
IN UINTN Length,
|
||||
OUT UINT8 *Entropy
|
||||
)
|
||||
|
|
|
@ -1,43 +0,0 @@
|
|||
/** @file
|
||||
Header for the RDRAND APIs used by RNG DXE driver.
|
||||
|
||||
Support API definitions for RDRAND instruction access, which will leverage
|
||||
Intel Secure Key technology to provide high-quality random numbers for use
|
||||
in applications, or entropy for seeding other random number generators.
|
||||
Refer to http://software.intel.com/en-us/articles/intel-digital-random-number
|
||||
-generator-drng-software-implementation-guide/ for more information about Intel
|
||||
Secure Key technology.
|
||||
|
||||
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
|
||||
(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __RD_RAND_H__
|
||||
#define __RD_RAND_H__
|
||||
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/BaseMemoryLib.h>
|
||||
#include <Library/UefiBootServicesTableLib.h>
|
||||
#include <Library/TimerLib.h>
|
||||
#include <Protocol/Rng.h>
|
||||
|
||||
/**
|
||||
Generate high-quality entropy source through RDRAND.
|
||||
|
||||
@param[in] Length Size of the buffer, in bytes, to fill with.
|
||||
@param[out] Entropy Pointer to the buffer to store the entropy data.
|
||||
|
||||
@retval EFI_SUCCESS Entropy generation succeeded.
|
||||
@retval EFI_NOT_READY Failed to request random data.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RdRandGenerateEntropy (
|
||||
IN UINTN Length,
|
||||
OUT UINT8 *Entropy
|
||||
);
|
||||
|
||||
#endif // __RD_RAND_H__
|
|
@ -14,13 +14,16 @@
|
|||
- EFI_RNG_ALGORITHM_X9_31_3DES_GUID - Unsupported
|
||||
- EFI_RNG_ALGORITHM_X9_31_AES_GUID - Unsupported
|
||||
|
||||
Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.<BR>
|
||||
Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
#include "RdRand.h"
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/BaseMemoryLib.h>
|
||||
|
||||
#include "RngDxeInternals.h"
|
||||
|
||||
/**
|
||||
|
@ -88,7 +91,7 @@ RngGetRNG (
|
|||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
Status = RdRandGenerateEntropy (RNGValueLength, RNGValue);
|
||||
Status = GenerateEntropy (RNGValueLength, RNGValue);
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#
|
||||
# Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
# (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
|
||||
# Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
##
|
||||
|
@ -36,7 +37,6 @@
|
|||
[Sources.IA32, Sources.X64]
|
||||
Rand/RngDxe.c
|
||||
Rand/RdRand.c
|
||||
Rand/RdRand.h
|
||||
Rand/AesCore.c
|
||||
Rand/AesCore.h
|
||||
|
||||
|
|
|
@ -10,6 +10,8 @@
|
|||
#ifndef RNGDXE_INTERNALS_H_
|
||||
#define RNGDXE_INTERNALS_H_
|
||||
|
||||
#include <Protocol/Rng.h>
|
||||
|
||||
/**
|
||||
Returns information about the random number generation implementation.
|
||||
|
||||
|
@ -114,4 +116,21 @@ RngGetBytes (
|
|||
OUT UINT8 *RandBuffer
|
||||
);
|
||||
|
||||
/**
|
||||
Generate high-quality entropy source using a TRNG or through RDRAND.
|
||||
|
||||
@param[in] Length Size of the buffer, in bytes, to fill with.
|
||||
@param[out] Entropy Pointer to the buffer to store the entropy data.
|
||||
|
||||
@retval EFI_SUCCESS Entropy generation succeeded.
|
||||
@retval EFI_NOT_READY Failed to request random data.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
GenerateEntropy (
|
||||
IN UINTN Length,
|
||||
OUT UINT8 *Entropy
|
||||
);
|
||||
|
||||
#endif // RNGDXE_INTERNALS_H_
|
||||
|
|
Loading…
Reference in New Issue