]> Git Repo - secp256k1.git/blob - src/testrand.h
Improve testrand: add extra random functions
[secp256k1.git] / src / testrand.h
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  **********************************************************************/
6
7 #ifndef _SECP256K1_TESTRAND_H_
8 #define _SECP256K1_TESTRAND_H_
9
10 #if defined HAVE_CONFIG_H
11 #include "libsecp256k1-config.h"
12 #endif
13
14 /* A non-cryptographic RNG used only for test infrastructure. */
15
16 /** Seed the pseudorandom number generator for testing. */
17 SECP256K1_INLINE static void secp256k1_rand_seed(const unsigned char *seed16);
18
19 /** Generate a pseudorandom number in the range [0..2**32-1]. */
20 static uint32_t secp256k1_rand32(void);
21
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
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
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
38 #endif
This page took 0.026353 seconds and 4 git commands to generate.