47QSC_CPLUSPLUS_ENABLED_START
69#define QSC_SECRAND_SEED_SIZE 32ULL
75#define QSC_SECRAND_CACHE_SIZE 1024ULL
278QSC_CPLUSPLUS_ENABLED_END
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 common.h:520
Contains the public API and documentation for the CSG pseudo-random bytes generator.
QSC_EXPORT_API uint64_t qsc_secrand_next_uint64(void)
Generate an unsigned 64-bit random integer.
Definition secrand.c:274
QSC_EXPORT_API void qsc_secrand_dispose(void)
Clear the buffer and destroy the internal state.
Definition secrand.c:322
QSC_EXPORT_API uint16_t qsc_secrand_next_uint16(void)
Generate an unsigned 16-bit random integer.
Definition secrand.c:82
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:190
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:159
QSC_EXPORT_API int32_t qsc_secrand_next_int32(void)
Generate a signed 32-bit random integer.
Definition secrand.c:130
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:255
#define QSC_SECRAND_CACHE_SIZE
The internal cache size of the generator.
Definition secrand.h:75
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:303
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:286
QSC_EXPORT_API int16_t qsc_secrand_next_int16(void)
Generate a signed 16-bit random integer.
Definition secrand.c:34
QSC_EXPORT_API uint32_t qsc_secrand_next_uint32(void)
Generate an unsigned 32-bit random integer.
Definition secrand.c:178
QSC_EXPORT_API int64_t qsc_secrand_next_int64(void)
Generate a signed 64-bit random integer.
Definition secrand.c:226
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:142
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:94
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:111
QSC_EXPORT_API uint8_t qsc_secrand_next_uchar(void)
Generate an unsigned 8-bit random integer.
Definition secrand.c:14
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:46
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:333
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:238
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:207
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:63
QSC_EXPORT_API bool qsc_secrand_generate(uint8_t *output, size_t length)
Generate an array of pseudo-random bytes.
Definition secrand.c:347
QSC_EXPORT_API double qsc_secrand_next_double(void)
Generate a random double-precision floating-point number.
Definition secrand.c:22
The CSG state structure.
Definition csg.h:110
The internal secrand state array.
Definition secrand.h:82
size_t cpos
Definition secrand.h:85
bool init
Definition secrand.h:86
qsc_csg_state hstate
Definition secrand.h:83
uint8_t cache[QSC_SECRAND_CACHE_SIZE]
Definition secrand.h:84