20#ifndef MCUXCLELS_RNG_H_
21#define MCUXCLELS_RNG_H_
23#include <mcuxClConfig.h>
47#define MCUXCLELS_RNG_DTRNG_CONFIG_SIZE ((uint8_t) 84)
48#define MCUXCLELS_RNG_DTRNG_EVAL_CONFIG_SIZE ((uint8_t) 52)
49#define MCUXCLELS_RNG_DTRNG_EVAL_RESULT_SIZE ((uint8_t) 188)
51#define MCUXCLELS_RNG_DRBG_TEST_EXTRACT_OUTPUT_MIN_SIZE 4U
52#define MCUXCLELS_RNG_DRBG_TEST_EXTRACT_OUTPUT_MAX_SIZE ((uint32_t) 1U << 16U)
54#define MCUXCLELS_RNG_DRBG_TEST_MODE_INSTANTIATE ((uint32_t) 0U)
55#define MCUXCLELS_RNG_DRBG_TEST_MODE_EXTRACT ((uint32_t) 1U)
56#define MCUXCLELS_RNG_DRBG_TEST_MODE_AES_ECB ((uint32_t) 3U)
57#define MCUXCLELS_RNG_DRBG_TEST_MODE_AES_CTR ((uint32_t) 2U)
59#ifdef MCUXCL_FEATURE_ELS_RND_RAW
60#define MCUXCLELS_RNG_RND_REQ_RND_RAW ((uint32_t) 1U << 1)
61#define MCUXCLELS_RNG_RAW_ENTROPY_SIZE ((uint32_t) 32U)
63#ifdef MCUXCL_FEATURE_ELS_PRND_INIT
64#define MCUXCLELS_RNG_RND_REQ_PRND_INIT ((uint32_t) 1U << 0)
124#ifdef MCUXCL_FEATURE_ELS_RND_RAW
168 uint8_t const * pEntropy
229 uint8_t const * pDataKey,
257 uint8_t const * pData,
259 uint8_t const * pIvKey,
294 uint8_t const * pInput
329 uint8_t const * pInput,
333#ifdef MCUXCL_FEATURE_ELS_PRND_INIT
399#ifdef MCUXCL_FEATURE_ELS_ITERATIVE_SEEDING
ELS header for common functionality.
#define MCUXCLELS_API
Marks a function as a public API function of the mcuxClEls component.
Definition mcuxClEls_Common.h:46
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Prng_GetRandomWord(uint32_t *pWord)
Returns one random word from the ELS PRNG.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Rng_DrbgTestInstantiate_Async(uint8_t const *pEntropy)
Instantiates the DRBG in test mode.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Prng_GetRandom(uint8_t *pOutput, size_t outputLength)
Writes random data from the ELS PRNG to the given buffer.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Rng_Dtrng_ConfigLoad_Async(uint8_t const *pInput)
Loads a configuration of the ELS DTRNG.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Rng_DrbgTestExtract_Async(uint8_t *pOutput, size_t outputLength)
Performs a DRBG extraction.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Rng_DrbgTestAesEcb_Async(uint8_t const *pDataKey, uint8_t *pOutput)
Encrypts data using the AES-ECB engine of the DRBG.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Rng_DrbgRequest_Async(uint8_t *pOutput, size_t outputLength)
Writes random data from the ELS DRBG to the given buffer.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Rng_Dtrng_ConfigEvaluate_Async(uint8_t const *pInput, uint8_t *pOutput)
Performs characterization of the ELS DTRNG.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Rng_DrbgTestAesCtr_Async(uint8_t const *pData, size_t dataLength, uint8_t const *pIvKey, uint8_t *pOutput)
Encrypts data using the AES-CTR engine of the DRBG.
uint32_t mcuxClEls_Status_t
Type for ELS driver status codes.
Definition mcuxClEls_Types.h:212
#define MCUX_CSSL_FP_FUNCTION_DECL(...)
Declaration of a flow protected function.
Definition mcuxCsslFlowProtection.h:125
#define MCUX_CSSL_FP_PROTECTED_TYPE(resultType)
Based on a given base type, builds a return type with flow protection.
Definition mcuxCsslFlowProtection.h:81