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 **********************************************************************/
7 #ifndef _SECP256K1_TESTRAND_H_
8 #define _SECP256K1_TESTRAND_H_
10 #if defined HAVE_CONFIG_H
11 #include "libsecp256k1-config.h"
14 /* A non-cryptographic RNG used only for test infrastructure. */
16 /** Seed the pseudorandom number generator for testing. */
17 SECP256K1_INLINE static void secp256k1_rand_seed(const unsigned char *seed16);
19 /** Generate a pseudorandom 32-bit number. */
20 static uint32_t secp256k1_rand32(void);
22 /** Generate a pseudorandom 32-byte array. */
23 static void secp256k1_rand256(unsigned char *b32);
25 /** Generate a pseudorandom 32-byte array with long sequences of zero and one bits. */
26 static void secp256k1_rand256_test(unsigned char *b32);