From 5ba6aef1dab196c8777cf33c4804e62df3e5e46b Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Thu, 18 Apr 2013 13:18:59 +0200 Subject: [PATCH] Export randombytes implementation structs --- .../sodium/randombytes_salsa20_random.h | 5 ++++- .../include/sodium/randombytes_sysrandom.h | 5 ++++- src/libsodium/randombytes/randombytes.c | 2 +- .../salsa20/randombytes_salsa20_random.c | 18 ++++++++++++++++-- .../randombytes/sys/randombytes_sysrandom.c | 16 +++++++++++++++- 5 files changed, 40 insertions(+), 6 deletions(-) diff --git a/src/libsodium/include/sodium/randombytes_salsa20_random.h b/src/libsodium/include/sodium/randombytes_salsa20_random.h index 3352655a..7c7dfe87 100644 --- a/src/libsodium/include/sodium/randombytes_salsa20_random.h +++ b/src/libsodium/include/sodium/randombytes_salsa20_random.h @@ -9,7 +9,10 @@ extern "C" { #endif -const char *salsa20_random_implementation_name(void); +struct randombytes_implementation + randombytes_salsa20_implementation(void); + +const char *randombytes_salsa20_implementation_name(void); uint32_t salsa20_random(void); void salsa20_random_stir(void); diff --git a/src/libsodium/include/sodium/randombytes_sysrandom.h b/src/libsodium/include/sodium/randombytes_sysrandom.h index de8c2e08..bdc76dc2 100644 --- a/src/libsodium/include/sodium/randombytes_sysrandom.h +++ b/src/libsodium/include/sodium/randombytes_sysrandom.h @@ -9,7 +9,10 @@ extern "C" { #endif -const char *sysrandom_implementation_name(void); +struct randombytes_implementation + randombytes_sysrandom_implementation(void); + +const char *randombytes_sysrandom_implementation_name(void); uint32_t sysrandom(void); void sysrandom_stir(void); diff --git a/src/libsodium/randombytes/randombytes.c b/src/libsodium/randombytes/randombytes.c index 380ada5e..b3b0cfd4 100644 --- a/src/libsodium/randombytes/randombytes.c +++ b/src/libsodium/randombytes/randombytes.c @@ -9,7 +9,7 @@ #include "randombytes_sysrandom.h" static randombytes_implementation implementation = { - .implementation_name = sysrandom_implementation_name, + .implementation_name = randombytes_sysrandom_implementation_name, .random = sysrandom, .stir = sysrandom_stir, .uniform = sysrandom_uniform, diff --git a/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c b/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c index 83d5aac7..9dab1cd6 100644 --- a/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c +++ b/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c @@ -15,6 +15,7 @@ #include "crypto_core_salsa20.h" #include "crypto_hash_sha256.h" #include "crypto_stream_salsa20.h" +#include "randombytes.h" #include "randombytes_salsa20_random.h" #include "utils.h" @@ -293,7 +294,20 @@ salsa20_random_uniform(const uint32_t upper_bound) } const char * -salsa20_random_implementation_name(void) +randombytes_salsa20_implementation_name(void) { - return "salsa20_random"; + return "salsa20"; +} + +struct randombytes_implementation +randombytes_salsa20_implementation(void) +{ + return (randombytes_implementation) { + .implementation_name = randombytes_salsa20_implementation_name, + .random = salsa20_random, + .stir = salsa20_random_stir, + .uniform = salsa20_random_uniform, + .buf = salsa20_random_buf, + .close = salsa20_random_close + }; } diff --git a/src/libsodium/randombytes/sys/randombytes_sysrandom.c b/src/libsodium/randombytes/sys/randombytes_sysrandom.c index 1518d2cc..6fce26ff 100644 --- a/src/libsodium/randombytes/sys/randombytes_sysrandom.c +++ b/src/libsodium/randombytes/sys/randombytes_sysrandom.c @@ -15,6 +15,7 @@ #include #include +#include "randombytes.h" #include "randombytes_sysrandom.h" #ifdef _WIN32 @@ -195,7 +196,20 @@ sysrandom_uniform(const uint32_t upper_bound) } const char * -sysrandom_implementation_name(void) +randombytes_sysrandom_implementation_name(void) { return "sysrandom"; } + +struct randombytes_implementation +randombytes_sysrandom_implementation(void) +{ + return (randombytes_implementation) { + .implementation_name = randombytes_sysrandom_implementation_name, + .random = sysrandom, + .stir = sysrandom_stir, + .uniform = sysrandom_uniform, + .buf = sysrandom_buf, + .close = sysrandom_close + }; +}