liboqs
|
Random number generator. More...
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <oqs/common.h>
Go to the source code of this file.
Macros | |
#define | OQS_RAND_alg_system "system" |
#define | OQS_RAND_alg_openssl "OpenSSL" |
Functions | |
OQS_API OQS_STATUS | OQS_randombytes_switch_algorithm (const char *algorithm) |
OQS_API void | OQS_randombytes_custom_algorithm (void(*algorithm_ptr)(uint8_t *, size_t)) |
OQS_API void | OQS_randombytes (uint8_t *random_array, size_t bytes_to_read) |
Random number generator.
SPDX-License-Identifier: MIT
#define OQS_RAND_alg_openssl "OpenSSL" |
Algorithm identifier for using OpenSSL's PRNG.
#define OQS_RAND_alg_system "system" |
Algorithm identifier for system PRNG.
OQS_API void OQS_randombytes | ( | uint8_t * | random_array, |
size_t | bytes_to_read ) |
Fills the given memory with the requested number of (pseudo)random bytes.
This implementation uses whichever algorithm has been selected by OQS_randombytes_switch_algorithm. The default is OQS_randombytes_system, which reads bytes from a system specific default source.
The caller is responsible for providing a buffer allocated with sufficient room.
[out] | random_array | Pointer to the memory to fill with (pseudo)random bytes |
[in] | bytes_to_read | The number of random bytes to read into memory |
OQS_API void OQS_randombytes_custom_algorithm | ( | void(* | algorithm_ptr )(uint8_t *, size_t) | ) |
Switches OQS_randombytes to use the given function.
This allows additional custom RNGs besides the provided ones. The provided RNG function must have the same signature as OQS_randombytes
.
[in] | algorithm_ptr | Pointer to the RNG function to use. |
OQS_API OQS_STATUS OQS_randombytes_switch_algorithm | ( | const char * | algorithm | ) |
Switches OQS_randombytes to use the specified algorithm.
OQS_randombytes_custom_algorithm
before, this function will overwrite it again. Hence, you have to set your custom algorithm again after calling this function.[in] | algorithm | The name of the algorithm to use. |
algorithm
is a supported algorithm name, OQS_ERROR otherwise.