From: Yawning Angel Date: Wed, 12 Aug 2015 15:57:05 +0000 (+0000) Subject: Add crypto_rand_unmocked, which is crypto_rand without mocking. X-Git-Tag: tor-0.2.7.3-rc~104^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=af898f54752f45fa2a8da28ca88379c89ca1f5a0;p=thirdparty%2Ftor.git Add crypto_rand_unmocked, which is crypto_rand without mocking. There is odd issues with calling crypto_rand from our copy of ed25519-donna, due to mocking that are not easily resolved. --- diff --git a/src/common/crypto.c b/src/common/crypto.c index 2121383c75..6d4b0d7e16 100644 --- a/src/common/crypto.c +++ b/src/common/crypto.c @@ -2365,10 +2365,19 @@ crypto_seed_rng(void) } /** Write n bytes of strong random data to to. Return 0 on - * success, -1 on failure. + * success, -1 on failure, with support for mocking for unit tests. */ MOCK_IMPL(int, crypto_rand, (char *to, size_t n)) +{ + return crypto_rand_unmocked(to, n); +} + +/** Write n bytes of strong random data to to. Return 0 on + * success, -1 on failure. Most callers will want crypto_rand instead. + */ +int +crypto_rand_unmocked(char *to, size_t n) { int r; tor_assert(n < INT_MAX); diff --git a/src/common/crypto.h b/src/common/crypto.h index 368e9d8e32..6256f7346b 100644 --- a/src/common/crypto.h +++ b/src/common/crypto.h @@ -260,6 +260,7 @@ int crypto_expand_key_material_rfc5869_sha256( /* random numbers */ int crypto_seed_rng(void); MOCK_DECL(int,crypto_rand,(char *to, size_t n)); +int crypto_rand_unmocked(char *to, size_t n); int crypto_strongest_rand(uint8_t *out, size_t out_len); int crypto_rand_int(unsigned int max); int crypto_rand_int_range(unsigned int min, unsigned int max);