hardened_malloc/random.h
Daniel Micay dcd969ae04 use a consistent style for fixed-size int types
The stdint.h types don't cover 128-bit integers and the underscore makes
them ill suited to usage in function suffixes. Instead, use the common
naming style in the Linux kernel and elsewhere including the ChaCha8
implementation included here.
2018-10-04 15:17:11 -04:00

24 lines
555 B
C

#ifndef RANDOM_H
#define RANDOM_H
#include "chacha.h"
#include "util.h"
#define RANDOM_CACHE_SIZE 256ULL
#define RANDOM_RESEED_SIZE 256ULL * 1024
struct random_state {
size_t index;
size_t reseed;
chacha_ctx ctx;
u8 cache[RANDOM_CACHE_SIZE];
};
void random_state_init(struct random_state *state);
u16 get_random_u16(struct random_state *state);
u16 get_random_u16_uniform(struct random_state *state, u16 bound);
u64 get_random_u64(struct random_state *state);
u64 get_random_u64_uniform(struct random_state *state, u64 bound);
#endif