aboutsummaryrefslogtreecommitdiff
path: root/src/rnd.h
blob: 78d99df322da9803f2c5455ba33aed88329e9520 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#pragma once
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>

#define PRNE_RND_WELL512_SEEDLEN 64

struct prne_rnd {
	void *ctx;
	void (*free_ctx_f)(void*);
	bool (*random)(void*, uint8_t *buf, size_t len);
};

typedef struct prne_rnd prne_rnd_t;


void prne_init_rnd (prne_rnd_t *p);
void prne_free_rnd (prne_rnd_t *p);
bool prne_rnd (prne_rnd_t *p, uint8_t *buf, const size_t len);

/*
* is_len should be 64 bytes(512 bits).
*/
bool prne_rnd_alloc_well512 (
	prne_rnd_t *p,
	const uint8_t *is);