/** @file Provides random number generator services. Copyright (c) 2023, Arm Limited. All rights reserved.
Copyright (c) 2015, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef __RNG_LIB_H__ #define __RNG_LIB_H__ /** Generates a 16-bit random number. if Rand is NULL, then ASSERT(). @param[out] Rand Buffer pointer to store the 16-bit random value. @retval TRUE Random number generated successfully. @retval FALSE Failed to generate the random number. **/ BOOLEAN EFIAPI GetRandomNumber16 ( OUT UINT16 *Rand ); /** Generates a 32-bit random number. if Rand is NULL, then ASSERT(). @param[out] Rand Buffer pointer to store the 32-bit random value. @retval TRUE Random number generated successfully. @retval FALSE Failed to generate the random number. **/ BOOLEAN EFIAPI GetRandomNumber32 ( OUT UINT32 *Rand ); /** Generates a 64-bit random number. if Rand is NULL, then ASSERT(). @param[out] Rand Buffer pointer to store the 64-bit random value. @retval TRUE Random number generated successfully. @retval FALSE Failed to generate the random number. **/ BOOLEAN EFIAPI GetRandomNumber64 ( OUT UINT64 *Rand ); /** Generates a 128-bit random number. if Rand is NULL, then ASSERT(). @param[out] Rand Buffer pointer to store the 128-bit random value. @retval TRUE Random number generated successfully. @retval FALSE Failed to generate the random number. **/ BOOLEAN EFIAPI GetRandomNumber128 ( OUT UINT64 *Rand ); /** Get a GUID identifying the RNG algorithm implementation. @param [out] RngGuid If success, contains the GUID identifying the RNG algorithm implementation. @retval EFI_SUCCESS Success. @retval EFI_UNSUPPORTED Not supported. @retval EFI_INVALID_PARAMETER Invalid parameter. **/ EFI_STATUS EFIAPI GetRngGuid ( GUID *RngGuid ); #endif // __RNG_LIB_H__