59QSC_CPLUSPLUS_ENABLED_START
81#define QSC_SECRAND_SEED_SIZE 32ULL
87#define QSC_SECRAND_CACHE_SIZE 1024ULL
291QSC_CPLUSPLUS_ENABLED_END
Asynchronous Thread and Mutex Management Functions.
Contains the public API and documentation for the CSG pseudo-random bytes generator.
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.
#define QSC_EXPORT_API
API export macro for Microsoft compilers when importing from a DLL.
Definition qsccommon.h:605
QSC_EXPORT_API uint64_t qsc_secrand_next_uint64(void)
Generate an unsigned 64-bit random integer.
Definition secrand.c:307
QSC_EXPORT_API void qsc_secrand_dispose(void)
Clear the buffer and destroy the internal state.
Definition secrand.c:358
QSC_EXPORT_API uint16_t qsc_secrand_next_uint16(void)
Generate an unsigned 16-bit random integer.
Definition secrand.c:103
QSC_EXPORT_API uint32_t qsc_secrand_next_uint32_max(uint32_t maximum)
Generate an unsigned 32-bit random integer of a maximum value.
Definition secrand.c:220
QSC_EXPORT_API int32_t qsc_secrand_next_int32_maxmin(int32_t maximum, int32_t minimum)
Generate a signed 32-bit random integer of a maximum and minimum value.
Definition secrand.c:186
QSC_EXPORT_API int32_t qsc_secrand_next_int32(void)
Generate a signed 32-bit random integer.
Definition secrand.c:154
QSC_EXPORT_API int64_t qsc_secrand_next_int64_maxmin(int64_t maximum, int64_t minimum)
Generate a signed 64-bit random integer of a maximum and minimum value.
Definition secrand.c:288
#define QSC_SECRAND_CACHE_SIZE
The internal cache size of the generator.
Definition secrand.h:87
QSC_EXPORT_API uint64_t qsc_secrand_next_uint64_maxmin(uint64_t maximum, uint64_t minimum)
Generate an unsigned 64-bit random integer of a maximum and minimum value.
Definition secrand.c:339
QSC_EXPORT_API uint64_t qsc_secrand_next_uint64_max(uint64_t maximum)
Generate an unsigned 64-bit random integer of a maximum value.
Definition secrand.c:322
QSC_EXPORT_API int16_t qsc_secrand_next_int16(void)
Generate a signed 16-bit random integer.
Definition secrand.c:52
QSC_EXPORT_API uint32_t qsc_secrand_next_uint32(void)
Generate an unsigned 32-bit random integer.
Definition secrand.c:205
QSC_EXPORT_API int64_t qsc_secrand_next_int64(void)
Generate a signed 64-bit random integer.
Definition secrand.c:256
QSC_EXPORT_API int32_t qsc_secrand_next_int32_max(int32_t maximum)
Generate a signed 32-bit random integer of a maximum value.
Definition secrand.c:169
QSC_EXPORT_API uint16_t qsc_secrand_next_uint16_max(uint16_t maximum)
Generate an unsigned 16-bit random integer of a maximum value.
Definition secrand.c:118
QSC_EXPORT_API uint16_t qsc_secrand_next_uint16_maxmin(uint16_t maximum, uint16_t minimum)
Generate an unsigned 16-bit random integer of a maximum and minimum value.
Definition secrand.c:135
QSC_EXPORT_API uint8_t qsc_secrand_next_uchar(void)
Generate an unsigned 8-bit random integer.
Definition secrand.c:21
QSC_EXPORT_API int16_t qsc_secrand_next_int16_max(int16_t maximum)
Generate a signed 16-bit random integer of a maximum value.
Definition secrand.c:67
QSC_EXPORT_API void qsc_secrand_initialize(const uint8_t *seed, size_t seedlen, const uint8_t *custom, size_t custlen)
Initialize the random generator with a seed and optional customization array.
Definition secrand.c:376
QSC_EXPORT_API int64_t qsc_secrand_next_int64_max(int64_t maximum)
Generate a signed 64-bit random integer of a maximum value.
Definition secrand.c:271
QSC_EXPORT_API uint32_t qsc_secrand_next_uint32_maxmin(uint32_t maximum, uint32_t minimum)
Generate an unsigned 32-bit random integer of a maximum and minimum value.
Definition secrand.c:237
QSC_EXPORT_API int8_t qsc_secrand_next_char(void)
Generate a signed 8-bit random integer.
Definition secrand.c:6
QSC_EXPORT_API int16_t qsc_secrand_next_int16_maxmin(int16_t maximum, int16_t minimum)
Generate a signed 16-bit random integer of a maximum and minimum value.
Definition secrand.c:84
QSC_EXPORT_API bool qsc_secrand_generate(uint8_t *output, size_t length)
Generate an array of pseudo-random bytes.
Definition secrand.c:405
QSC_EXPORT_API double qsc_secrand_next_double(void)
Generate a random double-precision floating-point number.
Definition secrand.c:36
The CSG state structure.
Definition csg.h:121
The internal secrand state array.
Definition secrand.h:94
size_t cpos
Definition secrand.h:97
bool init
Definition secrand.h:98
qsc_csg_state hstate
Definition secrand.h:95
qsc_mutex opmtx
Definition secrand.h:99
uint8_t cache[QSC_SECRAND_CACHE_SIZE]
Definition secrand.h:96