RNG driver

nRF5 SDK v10.0.0

nRF51 SDK v10.0.0

Driver for managing the random number generator (RNG). More...

Data Structures

struct nrf_drv_rng_config_t
Struct for RNG configuration. More...

Macros

#define NRF_DRV_RNG_DEFAULT_CONFIG
RNG default configuration. More...

Functions

ret_code_t nrf_drv_rng_init ( nrf_drv_rng_config_t const *p_config)
Function for initializing the nrf_drv_rng module. More...
void nrf_drv_rng_uninit (void)
Function for uninitializing the nrf_drv_rng module.
ret_code_t nrf_drv_rng_bytes_available (uint8_t *p_bytes_available)
Function for getting the number of currently available random bytes. More...
ret_code_t nrf_drv_rng_pool_capacity (uint8_t *p_pool_capacity)
Function for querying the capacity of the application random pool. More...
ret_code_t nrf_drv_rng_rand (uint8_t *p_buff, uint8_t length)
Function for getting the vector of random numbers. More...

Detailed Description

Driver for managing the random number generator (RNG).

Macro Definition Documentation

#define NRF_DRV_RNG_DEFAULT_CONFIG
Value:
{ \
.error_correction = RNG_CONFIG_ERROR_CORRECTION, \
.interrupt_priority = RNG_CONFIG_IRQ_PRIORITY, \
}

RNG default configuration.

Function Documentation

ret_code_t nrf_drv_rng_bytes_available ( uint8_t * p_bytes_available )

Function for getting the number of currently available random bytes.

Parameters
[out] p_bytes_available The number of bytes currently available in the pool.
Return values
NRF_SUCCESS If the number of available random bytes was written to p_bytes_available.
NRF_ERROR_INVALID_STATE If the driver was not initialized.
ret_code_t nrf_drv_rng_init ( nrf_drv_rng_config_t const * p_config )

Function for initializing the nrf_drv_rng module.

Parameters
[in] p_config Initial configuration. Default configuration used if NULL.
Return values
NRF_SUCCESS Driver was successfully initialized.
NRF_ERROR_INVALID_STATE Driver was already initialized.
NRF_ERROR_INVALID_LENGTH Pool size have to be a power of 2.
NRF_ERROR_SOFTDEVICE_NOT_ENABLED SoftDevice is present, but not enabled.
ret_code_t nrf_drv_rng_pool_capacity ( uint8_t * p_pool_capacity )

Function for querying the capacity of the application random pool.

Parameters
[out] p_pool_capacity The capacity of the pool.
Return values
NRF_SUCCESS If the capacity of the pool was written to p_pool_capacity.
NRF_ERROR_INVALID_STATE If the driver was not initialized.
ret_code_t nrf_drv_rng_rand ( uint8_t * p_buff ,
uint8_t length
)

Function for getting the vector of random numbers.

Parameters
[out] p_buff Pointer to unit8_t buffer for storing the bytes.
[in] length Number of bytes to take from the pool and place in p_buff.
Return values
NRF_SUCCESS If the requested bytes were written to p_buff.
NRF_ERROR_INVALID_STATE If the driver was not initialized.
NRF_ERROR_NO_MEM If no bytes were written to the buffer because there were not enough bytes available in p_buff.
NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUES If no bytes were written to the buffer because there were not enough bytes available in the pool.

Please send us your feedback about the documentation! For technical questions, visit the Nordic Developer Zone .