LibISAAC
1.0.0
A modern reimplementation of the ISAAC CPRNG.
|
Go to the documentation of this file.
60 #define LIBISAAC_VERSION "1.0.0"
80 #if (ISAAC_BITS == 32)
82 #elif (ISAAC_BITS == 64)
85 _Static_assert(0,
"ISAAC: only 32 or 64 bit words are supported.");
91 #define ISAAC_ELEMENTS 256U
96 #define ISAAC_SEED_MAX_BYTES ISAAC_ELEMENTS
227 size_t amount_of_values);
244 size_t amount_of_values);
isaac_uint_t stream_index
Index of the next value to output in the stream.
Definition: isaac.h:125
uint64_t isaac_uint_t
Definition: isaac.h:83
void isaac_to_little_endian(uint8_t *bytes, const isaac_uint_t *values, size_t amount_of_values)
Utility function, converting an array of 32-bit/64-bit integers into bytes using little endian byte o...
void isaac_to_big_endian(uint8_t *bytes, const isaac_uint_t *values, size_t amount_of_values)
Utility function, converting an array of 32-bit/64-bit integers into bytes using big endian byte orde...
void isaac_cleanup(isaac_ctx_t *ctx)
Safely erases the context.
#define ISAAC_ELEMENTS
Amount of elements in ISAAC's context arrays.
Definition: isaac.h:91
void isaac_stream(isaac_ctx_t *ctx, isaac_uint_t *ints, size_t amount)
Provides the next pseudo-random integer.
Context of the ISAAC CPRNG.
Definition: isaac.h:105
isaac_uint_t b
Internal field.
Definition: isaac.h:116
void isaac_init(isaac_ctx_t *ctx, const uint8_t *seed, uint16_t seed_bytes)
Initialises the ISAAC CPRNG with a seed.
isaac_uint_t a
Internal field.
Definition: isaac.h:114
isaac_uint_t c
Internal field.
Definition: isaac.h:118