github.com/YoungNK/go-ethereum@v1.9.7/crypto/secp256k1/libsecp256k1/src/testrand.h (about)

     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