ISARA Quantum Resistant Toolkit  Version 1.1
Quantum resistant cryptographic primitives and algorithms.
iqr_RNGCallbacks Struct Reference

#include <iqr_rng.h>

Data Fields

iqr_retval(* initialize )(void **state, const uint8_t *seed, size_t seed_size)
 
iqr_retval(* reseed )(void *state, const uint8_t *entropy, size_t entropy_size)
 
iqr_retval(* getbytes )(void *state, uint8_t *buffer, size_t buffer_size)
 
iqr_retval(* cleanup )(void **state)
 

Field Documentation

§ cleanup

iqr_retval(* cleanup) (void **state)

Clean up the Random Number Generator.

Perform any clean up required before the Random Number Generator is destroyed, including zeroing and deallocating any state.

Parameters
[in,out]stateRNG state, maintained by the implementation.
Returns
IQR_OK or a suitable error value.

§ getbytes

iqr_retval(* getbytes) (void *state, uint8_t *buffer, size_t buffer_size)

Get random data from the Random Number Generator.

Return buffer_size bytes in the given buffer.

Parameters
[in]stateRNG state.
[in]bufferA buffer to receive the random bytes.
[in]buffer_sizeThe size of the buffer in bytes.
Returns
IQR_OK or a suitable error value.

§ initialize

iqr_retval(* initialize) (void **state, const uint8_t *seed, size_t seed_size)

Initialize the Random Number Generator.

Called to initialize the RNG using the given seed bytes.

Parameters
[out]stateRNG state, maintained by the implementation.
[in]seedA buffer containing seed data.
[in]seed_sizeThe size of the seed buffer in bytes.
Returns
IQR_OK or a suitable error value.

§ reseed

iqr_retval(* reseed) (void *state, const uint8_t *entropy, size_t entropy_size)

Reseed the Random Number Generator.

Called to reseed the RNG without re-initializing it; the given entropy bytes are added to the existing entropy.

Parameters
[in]stateRNG state.
[in]entropyA buffer containing additional entropy bytes.
[in]entropy_sizeThe size of the entropy buffer in bytes.
Returns
IQR_OK or a suitable error value.

Detailed Description

Callbacks for random number generator implementations.