Electroneum
randombytes.h
Go to the documentation of this file.
1 
2 #ifndef randombytes_H
3 #define randombytes_H
4 
5 #include <sys/types.h>
6 
7 #include <stddef.h>
8 #include <stdint.h>
9 
10 #include "export.h"
11 
12 #ifdef __cplusplus
13 # if __GNUC__
14 # pragma GCC diagnostic ignored "-Wlong-long"
15 # endif
16 extern "C" {
17 #endif
18 
20  const char *(*implementation_name)(void); /* required */
21  uint32_t (*random)(void); /* required */
22  void (*stir)(void); /* optional */
23  uint32_t (*uniform)(const uint32_t upper_bound); /* optional, a default implementation will be used if NULL */
24  void (*buf)(void * const buf, const size_t size); /* required */
25  int (*close)(void); /* optional */
27 
28 SODIUM_EXPORT
29 void randombytes_buf(void * const buf, const size_t size);
30 
31 SODIUM_EXPORT
32 uint32_t randombytes_random(void);
33 
34 SODIUM_EXPORT
35 uint32_t randombytes_uniform(const uint32_t upper_bound);
36 
37 SODIUM_EXPORT
38 void randombytes_stir(void);
39 
40 SODIUM_EXPORT
42 
43 SODIUM_EXPORT
45 
46 SODIUM_EXPORT
48 
49 /* -- NaCl compatibility interface -- */
50 
51 SODIUM_EXPORT
52 void randombytes(unsigned char * const buf, const unsigned long long buf_len);
53 
54 #ifdef __cplusplus
55 }
56 #endif
57 
58 #endif
struct randombytes_implementation randombytes_implementation
SODIUM_EXPORT uint32_t randombytes_random(void)
SODIUM_EXPORT const char * randombytes_implementation_name(void)
SODIUM_EXPORT uint32_t randombytes_uniform(const uint32_t upper_bound)
SODIUM_EXPORT void randombytes_buf(void *const buf, const size_t size)
SODIUM_EXPORT int randombytes_close(void)
SODIUM_EXPORT void randombytes_stir(void)
SODIUM_EXPORT void randombytes(unsigned char *const buf, const unsigned long long buf_len)
SODIUM_EXPORT int randombytes_set_implementation(randombytes_implementation *impl)
Definition: randombytes.h:19
void(* buf)(void *const buf, const size_t size)
Definition: randombytes.h:24
uint32_t(* random)(void)
Definition: randombytes.h:21
uint32_t(* uniform)(const uint32_t upper_bound)
Definition: randombytes.h:23
void(* stir)(void)
Definition: randombytes.h:22
int(* close)(void)
Definition: randombytes.h:25