diff options
author | Riccardo Spagni <ric@spagni.net> | 2015-08-24 19:21:24 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2015-08-24 19:21:31 +0200 |
commit | 32077d381013ce19fb9824105a1d348fc8975658 (patch) | |
tree | b2fbd2123b601e14350a9ada57212aa60e8836a0 /src/crypto/shen_ed25519_ref/include/sodium/randombytes.h | |
parent | Merge pull request #383 (diff) | |
parent | Added ref10 shen_ed25519_ref code, which includes code that can replace crypt... (diff) | |
download | monero-32077d381013ce19fb9824105a1d348fc8975658.tar.xz |
Merge pull request #385
0a4bc84 Added ref10 shen_ed25519_ref code, which includes code that can replace crypto-ops with a version straight from Bernstein's ref 10 (ShenNoether)
0d70fdc revert to 776b4fc91a821be152f0f23e6873aabb78a72029 (ShenNoether)
b01f286 Added shen_ed25519_ref to crypto ops subfolder, the point is to directly have bitmonero's crypto code come from bernstein et al's ref 10 code (ShenNoether)
Diffstat (limited to 'src/crypto/shen_ed25519_ref/include/sodium/randombytes.h')
-rw-r--r-- | src/crypto/shen_ed25519_ref/include/sodium/randombytes.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/crypto/shen_ed25519_ref/include/sodium/randombytes.h b/src/crypto/shen_ed25519_ref/include/sodium/randombytes.h new file mode 100644 index 000000000..08aff0525 --- /dev/null +++ b/src/crypto/shen_ed25519_ref/include/sodium/randombytes.h @@ -0,0 +1,58 @@ + +#ifndef randombytes_H +#define randombytes_H + +#include <sys/types.h> + +#include <stddef.h> +#include <stdint.h> + +#include "export.h" + +#ifdef __cplusplus +# if __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +typedef struct randombytes_implementation { + const char *(*implementation_name)(void); /* required */ + uint32_t (*random)(void); /* required */ + void (*stir)(void); /* optional */ + uint32_t (*uniform)(const uint32_t upper_bound); /* optional, a default implementation will be used if NULL */ + void (*buf)(void * const buf, const size_t size); /* required */ + int (*close)(void); /* optional */ +} randombytes_implementation; + +SODIUM_EXPORT +void randombytes_buf(void * const buf, const size_t size); + +SODIUM_EXPORT +uint32_t randombytes_random(void); + +SODIUM_EXPORT +uint32_t randombytes_uniform(const uint32_t upper_bound); + +SODIUM_EXPORT +void randombytes_stir(void); + +SODIUM_EXPORT +int randombytes_close(void); + +SODIUM_EXPORT +int randombytes_set_implementation(randombytes_implementation *impl); + +SODIUM_EXPORT +const char *randombytes_implementation_name(void); + +/* -- NaCl compatibility interface -- */ + +SODIUM_EXPORT +void randombytes(unsigned char * const buf, const unsigned long long buf_len); + +#ifdef __cplusplus +} +#endif + +#endif |