]>
Commit | Line | Data |
---|---|---|
71712b27 GM |
1 | /********************************************************************** |
2 | * Copyright (c) 2013, 2014 Pieter Wuille * | |
3 | * Distributed under the MIT software license, see the accompanying * | |
4 | * file COPYING or http://www.opensource.org/licenses/mit-license.php.* | |
5 | **********************************************************************/ | |
f0709ac5 | 6 | |
abe2d3e8 DR |
7 | #ifndef SECP256K1_TESTRAND_H |
8 | #define SECP256K1_TESTRAND_H | |
f0709ac5 GM |
9 | |
10 | #if defined HAVE_CONFIG_H | |
11 | #include "libsecp256k1-config.h" | |
12 | #endif | |
13 | ||
34b898dc GM |
14 | /* A non-cryptographic RNG used only for test infrastructure. */ |
15 | ||
16 | /** Seed the pseudorandom number generator for testing. */ | |
89561118 | 17 | SECP256K1_INLINE static void secp256k1_rand_seed(const unsigned char *seed16); |
f0709ac5 | 18 | |
251b1a62 | 19 | /** Generate a pseudorandom number in the range [0..2**32-1]. */ |
f0709ac5 GM |
20 | static uint32_t secp256k1_rand32(void); |
21 | ||
251b1a62 PW |
22 | /** Generate a pseudorandom number in the range [0..2**bits-1]. Bits must be 1 or |
23 | * more. */ | |
24 | static uint32_t secp256k1_rand_bits(int bits); | |
25 | ||
26 | /** Generate a pseudorandom number in the range [0..range-1]. */ | |
27 | static uint32_t secp256k1_rand_int(uint32_t range); | |
28 | ||
f0709ac5 GM |
29 | /** Generate a pseudorandom 32-byte array. */ |
30 | static void secp256k1_rand256(unsigned char *b32); | |
31 | ||
32 | /** Generate a pseudorandom 32-byte array with long sequences of zero and one bits. */ | |
33 | static void secp256k1_rand256_test(unsigned char *b32); | |
34 | ||
251b1a62 PW |
35 | /** Generate pseudorandom bytes with long sequences of zero and one bits. */ |
36 | static void secp256k1_rand_bytes_test(unsigned char *bytes, size_t len); | |
37 | ||
abe2d3e8 | 38 | #endif /* SECP256K1_TESTRAND_H */ |