Skip to content
Snippets Groups Projects
Commit 58299b29 authored by Nick Mathewson's avatar Nick Mathewson :game_die:
Browse files

Merge remote-tracking branch 'public/bug27728'

parents c4e29001 ea5792f3
No related branches found
No related tags found
No related merge requests found
o Minor bugfixes (compilation):
- Compile the ed25519-donna code with a correct declaration of
crypto_strongest_rand(). Previously, we build it with one type,
but link it against another in the unit tests, which caused
compilation failures with LTO enabled, and which could have
caused other undefined behavior in the tests. Fixes bug 27728;
bugfix on 0.3.5.1-alpha.
......@@ -335,8 +335,18 @@ crypto_strongest_rand_raw(uint8_t *out, size_t out_len)
* Try to get <b>out_len</b> bytes of the strongest entropy we can generate,
* storing it into <b>out</b>.
**/
void
crypto_strongest_rand(uint8_t *out, size_t out_len)
{
crypto_strongest_rand_(out, out_len);
}
/**
* Try to get <b>out_len</b> bytes of the strongest entropy we can generate,
* storing it into <b>out</b>. (Mockable version.)
**/
MOCK_IMPL(void,
crypto_strongest_rand,(uint8_t *out, size_t out_len))
crypto_strongest_rand_,(uint8_t *out, size_t out_len))
{
#define DLEN DIGEST512_LEN
......
......@@ -21,7 +21,8 @@
int crypto_seed_rng(void) ATTR_WUR;
MOCK_DECL(void,crypto_rand,(char *to, size_t n));
void crypto_rand_unmocked(char *to, size_t n);
MOCK_DECL(void,crypto_strongest_rand,(uint8_t *out, size_t out_len));
void crypto_strongest_rand(uint8_t *out, size_t out_len);
MOCK_DECL(void,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);
uint64_t crypto_rand_uint64_range(uint64_t min, uint64_t max);
......
......@@ -909,7 +909,7 @@ test_build_authorized_client(void *arg)
client_pubkey_b16,
strlen(client_pubkey_b16));
MOCK(crypto_strongest_rand, mock_crypto_strongest_rand);
MOCK(crypto_strongest_rand_, mock_crypto_strongest_rand);
hs_desc_build_authorized_client(subcredential,
&client_auth_pk, &auth_ephemeral_sk,
......@@ -925,7 +925,7 @@ test_build_authorized_client(void *arg)
done:
tor_free(desc_client);
tor_free(mem_op_hex_tmp);
UNMOCK(crypto_strongest_rand);
UNMOCK(crypto_strongest_rand_);
}
struct testcase_t hs_descriptor[] = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment