Bitcoin Core  24.99.0
P2P Digital Currency
Classes | Macros | Functions | Variables
tests.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "secp256k1.c"
#include "../include/secp256k1.h"
#include "../include/secp256k1_preallocated.h"
#include "testrand_impl.h"
#include "checkmem.h"
#include "util.h"
#include "../contrib/lax_der_parsing.c"
#include "../contrib/lax_der_privatekey_parsing.c"
#include "modinv32_impl.h"
Include dependency graph for tests.c:

Go to the source code of this file.

Classes

struct  ecmult_multi_data
 

Macros

#define CONDITIONAL_TEST(cnt, nam)   if (COUNT < (cnt)) { printf("Skipping %s (iteration count too low)\n", nam); } else
 
#define CHECK_ILLEGAL_VOID(ctx, expr_or_stmt)
 
#define CHECK_ILLEGAL(ctx, expr)   CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
 
#define SECP256K1_EC_PARSE_TEST_NVALID   (12)
 
#define SECP256K1_EC_PARSE_TEST_NXVALID   (4)
 
#define SECP256K1_EC_PARSE_TEST_NINVALID   (7)
 

Functions

static int all_bytes_equal (const void *s, unsigned char value, size_t n)
 
static void counting_illegal_callback_fn (const char *str, void *data)
 
static void uncounting_illegal_callback_fn (const char *str, void *data)
 
static void random_field_element_test (secp256k1_fe *fe)
 
static void random_field_element_magnitude (secp256k1_fe *fe)
 
static void random_group_element_test (secp256k1_ge *ge)
 
static void random_group_element_jacobian_test (secp256k1_gej *gej, const secp256k1_ge *ge)
 
static void random_gej_test (secp256k1_gej *gej)
 
static void random_scalar_order_test (secp256k1_scalar *num)
 
static void random_scalar_order (secp256k1_scalar *num)
 
static void random_scalar_order_b32 (unsigned char *b32)
 
static void run_selftest_tests (void)
 
static int ecmult_gen_context_eq (const secp256k1_ecmult_gen_context *a, const secp256k1_ecmult_gen_context *b)
 
static int context_eq (const secp256k1_context *a, const secp256k1_context *b)
 
static void run_deprecated_context_flags_test (void)
 
static void run_ec_illegal_argument_tests (void)
 
static void run_static_context_tests (int use_prealloc)
 
static void run_proper_context_tests (int use_prealloc)
 
static void run_scratch_tests (void)
 
static void run_ctz_tests (void)
 
static void run_sha256_known_output_tests (void)
 
static void run_sha256_counter_tests (void)
 SHA256 counter tests. More...
 
static void run_hmac_sha256_tests (void)
 
static void run_rfc6979_hmac_sha256_tests (void)
 
static void run_tagged_sha256_tests (void)
 
static void test_rand_bits (int rand32, int bits)
 
static void test_rand_int (uint32_t range, uint32_t subrange)
 
static void run_rand_bits (void)
 
static void run_rand_int (void)
 
static uint64_t modinv2p64 (uint64_t x)
 
static void mulmod256 (uint16_t *out, const uint16_t *a, const uint16_t *b, const uint16_t *m)
 
static void uint16_to_signed30 (secp256k1_modinv32_signed30 *out, const uint16_t *in)
 
static void signed30_to_uint16 (uint16_t *out, const secp256k1_modinv32_signed30 *in)
 
static void mutate_sign_signed30 (secp256k1_modinv32_signed30 *x)
 
static void test_modinv32_uint16 (uint16_t *out, const uint16_t *in, const uint16_t *mod)
 
static int coprime (const uint16_t *a, const uint16_t *b)
 
static void run_modinv_tests (void)
 
static void scalar_test (void)
 
static void run_scalar_set_b32_seckey_tests (void)
 
static void run_scalar_tests (void)
 
static void random_fe (secp256k1_fe *x)
 
static void random_fe_test (secp256k1_fe *x)
 
static void random_fe_non_zero (secp256k1_fe *nz)
 
static void random_fe_non_square (secp256k1_fe *ns)
 
static int check_fe_equal (const secp256k1_fe *a, const secp256k1_fe *b)
 
static void run_field_convert (void)
 
static int fe_identical (const secp256k1_fe *a, const secp256k1_fe *b)
 
static void run_field_half (void)
 
static void run_field_misc (void)
 
static void test_fe_mul (const secp256k1_fe *a, const secp256k1_fe *b, int use_sqr)
 
static void run_fe_mul (void)
 
static void run_sqr (void)
 
static void test_sqrt (const secp256k1_fe *a, const secp256k1_fe *k)
 
static void run_sqrt (void)
 
static void test_inverse_scalar (secp256k1_scalar *out, const secp256k1_scalar *x, int var)
 
static void test_inverse_field (secp256k1_fe *out, const secp256k1_fe *x, int var)
 
static void run_inverse_tests (void)
 
static void ge_equals_ge (const secp256k1_ge *a, const secp256k1_ge *b)
 
static int gej_xyz_equals_gej (const secp256k1_gej *a, const secp256k1_gej *b)
 
static void ge_equals_gej (const secp256k1_ge *a, const secp256k1_gej *b)
 
static void test_ge (void)
 
static void test_intialized_inf (void)
 
static void test_add_neg_y_diff_x (void)
 
static void run_ge (void)
 
static void test_gej_cmov (const secp256k1_gej *a, const secp256k1_gej *b)
 
static void run_gej (void)
 
static void test_ec_combine (void)
 
static void run_ec_combine (void)
 
static void test_group_decompress (const secp256k1_fe *x)
 
static void run_group_decompress (void)
 
static void test_pre_g_table (const secp256k1_ge_storage *pre_g, size_t n)
 
static void run_ecmult_pre_g (void)
 
static void run_ecmult_chain (void)
 
static void test_point_times_order (const secp256k1_gej *point)
 
static void test_ecmult_target (const secp256k1_scalar *target, int mode)
 
static void run_ecmult_near_split_bound (void)
 
static void run_point_times_order (void)
 
static void ecmult_const_random_mult (void)
 
static void ecmult_const_commutativity (void)
 
static void ecmult_const_mult_zero_one (void)
 
static void ecmult_const_chain_multiply (void)
 
static void run_ecmult_const_tests (void)
 
static int ecmult_multi_callback (secp256k1_scalar *sc, secp256k1_ge *pt, size_t idx, void *cbdata)
 
static int ecmult_multi_false_callback (secp256k1_scalar *sc, secp256k1_ge *pt, size_t idx, void *cbdata)
 
static void test_ecmult_multi (secp256k1_scratch *scratch, secp256k1_ecmult_multi_func ecmult_multi)
 
static int test_ecmult_multi_random (secp256k1_scratch *scratch)
 
static void test_ecmult_multi_batch_single (secp256k1_ecmult_multi_func ecmult_multi)
 
static void test_secp256k1_pippenger_bucket_window_inv (void)
 
static void test_ecmult_multi_pippenger_max_points (void)
 Probabilistically test the function returning the maximum number of possible points for a given scratch space. More...
 
static void test_ecmult_multi_batch_size_helper (void)
 
static void test_ecmult_multi_batching (void)
 Run secp256k1_ecmult_multi_var with num points and a scratch space restricted to 1 <= i <= num points. More...
 
static void run_ecmult_multi_tests (void)
 
static void test_wnaf (const secp256k1_scalar *number, int w)
 
static void test_constant_wnaf_negate (const secp256k1_scalar *number)
 
static void test_constant_wnaf (const secp256k1_scalar *number, int w)
 
static void test_fixed_wnaf (const secp256k1_scalar *number, int w)
 
static void test_fixed_wnaf_small_helper (int *wnaf, int *wnaf_expected, int w)
 
static void test_fixed_wnaf_small (void)
 
static void run_wnaf (void)
 
static int test_ecmult_accumulate_cb (secp256k1_scalar *sc, secp256k1_ge *pt, size_t idx, void *data)
 
static void test_ecmult_accumulate (secp256k1_sha256 *acc, const secp256k1_scalar *x, secp256k1_scratch *scratch)
 
static void test_ecmult_constants_2bit (void)
 
static void test_ecmult_constants_sha (uint32_t prefix, size_t iter, const unsigned char *expected32)
 
static void run_ecmult_constants (void)
 
static void test_ecmult_gen_blind (void)
 
static void test_ecmult_gen_blind_reset (void)
 
static void run_ecmult_gen_blind (void)
 
static void test_scalar_split (const secp256k1_scalar *full)
 
static void run_endomorphism_tests (void)
 
static void ec_pubkey_parse_pointtest (const unsigned char *input, int xvalid, int yvalid)
 
static void run_ec_pubkey_parse_test (void)
 
static void run_eckey_edge_case_test (void)
 
static void run_eckey_negate_test (void)
 
static void random_sign (secp256k1_scalar *sigr, secp256k1_scalar *sigs, const secp256k1_scalar *key, const secp256k1_scalar *msg, int *recid)
 
static void test_ecdsa_sign_verify (void)
 
static void run_ecdsa_sign_verify (void)
 
static int precomputed_nonce_function (unsigned char *nonce32, const unsigned char *msg32, const unsigned char *key32, const unsigned char *algo16, void *data, unsigned int counter)
 Dummy nonce generation function that just uses a precomputed nonce, and fails if it is not accepted. More...
 
static int nonce_function_test_fail (unsigned char *nonce32, const unsigned char *msg32, const unsigned char *key32, const unsigned char *algo16, void *data, unsigned int counter)
 
static int nonce_function_test_retry (unsigned char *nonce32, const unsigned char *msg32, const unsigned char *key32, const unsigned char *algo16, void *data, unsigned int counter)
 
static int is_empty_signature (const secp256k1_ecdsa_signature *sig)
 
static void test_ecdsa_end_to_end (void)
 
static void test_random_pubkeys (void)
 
static void run_pubkey_comparison (void)
 
static void run_random_pubkeys (void)
 
static void run_ecdsa_end_to_end (void)
 
static int test_ecdsa_der_parse (const unsigned char *sig, size_t siglen, int certainly_der, int certainly_not_der)
 
static void assign_big_endian (unsigned char *ptr, size_t ptrlen, uint32_t val)
 
static void damage_array (unsigned char *sig, size_t *len)
 
static void random_ber_signature (unsigned char *sig, size_t *len, int *certainly_der, int *certainly_not_der)
 
static void run_ecdsa_der_parse (void)
 
static void test_ecdsa_edge_cases (void)
 
static void run_ecdsa_edge_cases (void)
 
static void run_secp256k1_memczero_test (void)
 
static void run_secp256k1_byteorder_tests (void)
 
static void int_cmov_test (void)
 
static void fe_cmov_test (void)
 
static void fe_storage_cmov_test (void)
 
static void scalar_cmov_test (void)
 
static void ge_storage_cmov_test (void)
 
static void run_cmov_tests (void)
 
int main (int argc, char **argv)
 

Variables

static int COUNT = 64
 
static secp256k1_contextCTX = NULL
 
static secp256k1_contextSTATIC_CTX = NULL
 
static const secp256k1_scalar scalar_minus_one
 
static const secp256k1_fe fe_minus_one
 
static const secp256k1_scalar scalars_near_split_bounds [20]
 

Macro Definition Documentation

◆ CHECK_ILLEGAL

#define CHECK_ILLEGAL (   ctx,
  expr 
)    CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))

Definition at line 64 of file tests.c.

◆ CHECK_ILLEGAL_VOID

#define CHECK_ILLEGAL_VOID (   ctx,
  expr_or_stmt 
)
Value:
do { \
int32_t _calls_to_illegal_callback = 0; \
secp256k1_callback _saved_illegal_cb = ctx->illegal_callback; \
secp256k1_context_set_illegal_callback(ctx, \
counting_illegal_callback_fn, &_calls_to_illegal_callback); \
{ expr_or_stmt; } \
ctx->illegal_callback = _saved_illegal_cb; \
CHECK(_calls_to_illegal_callback == 1); \
} while(0);
static void counting_illegal_callback_fn(const char *str, void *data)
Definition: tests.c:66

Definition at line 51 of file tests.c.

◆ CONDITIONAL_TEST

#define CONDITIONAL_TEST (   cnt,
  nam 
)    if (COUNT < (cnt)) { printf("Skipping %s (iteration count too low)\n", nam); } else

Definition at line 29 of file tests.c.

◆ SECP256K1_EC_PARSE_TEST_NINVALID

#define SECP256K1_EC_PARSE_TEST_NINVALID   (7)

◆ SECP256K1_EC_PARSE_TEST_NVALID

#define SECP256K1_EC_PARSE_TEST_NVALID   (12)

◆ SECP256K1_EC_PARSE_TEST_NXVALID

#define SECP256K1_EC_PARSE_TEST_NXVALID   (4)

Function Documentation

◆ all_bytes_equal()

static int all_bytes_equal ( const void *  s,
unsigned char  value,
size_t  n 
)
static

Definition at line 35 of file tests.c.

Here is the caller graph for this function:

◆ assign_big_endian()

static void assign_big_endian ( unsigned char *  ptr,
size_t  ptrlen,
uint32_t  val 
)
static

Definition at line 6719 of file tests.c.

Here is the caller graph for this function:

◆ check_fe_equal()

static int check_fe_equal ( const secp256k1_fe a,
const secp256k1_fe b 
)
static

Definition at line 2992 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ context_eq()

static int context_eq ( const secp256k1_context a,
const secp256k1_context b 
)
static

Definition at line 186 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ coprime()

static int coprime ( const uint16_t *  a,
const uint16_t *  b 
)
static

Definition at line 1167 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ counting_illegal_callback_fn()

static void counting_illegal_callback_fn ( const char *  str,
void *  data 
)
static

Definition at line 66 of file tests.c.

Here is the caller graph for this function:

◆ damage_array()

static void damage_array ( unsigned char *  sig,
size_t *  len 
)
static

Definition at line 6731 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ec_pubkey_parse_pointtest()

static void ec_pubkey_parse_pointtest ( const unsigned char *  input,
int  xvalid,
int  yvalid 
)
static

Definition at line 5604 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ecmult_const_chain_multiply()

static void ecmult_const_chain_multiply ( void  )
static

Definition at line 4455 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ecmult_const_commutativity()

static void ecmult_const_commutativity ( void  )
static

Definition at line 4412 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ecmult_const_mult_zero_one()

static void ecmult_const_mult_zero_one ( void  )
static

Definition at line 4433 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ecmult_const_random_mult()

static void ecmult_const_random_mult ( void  )
static

Definition at line 4385 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ecmult_gen_context_eq()

static int ecmult_gen_context_eq ( const secp256k1_ecmult_gen_context a,
const secp256k1_ecmult_gen_context b 
)
static

Definition at line 180 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ecmult_multi_callback()

static int ecmult_multi_callback ( secp256k1_scalar sc,
secp256k1_ge pt,
size_t  idx,
void *  cbdata 
)
static

Definition at line 4493 of file tests.c.

Here is the caller graph for this function:

◆ ecmult_multi_false_callback()

static int ecmult_multi_false_callback ( secp256k1_scalar sc,
secp256k1_ge pt,
size_t  idx,
void *  cbdata 
)
static

Definition at line 4500 of file tests.c.

Here is the caller graph for this function:

◆ fe_cmov_test()

static void fe_cmov_test ( void  )
static

Definition at line 7378 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_identical()

static int fe_identical ( const secp256k1_fe a,
const secp256k1_fe b 
)
static

Definition at line 3031 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_storage_cmov_test()

static void fe_storage_cmov_test ( void  )
static

Definition at line 7408 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_equals_ge()

static void ge_equals_ge ( const secp256k1_ge a,
const secp256k1_ge b 
)
static

Definition at line 3636 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_equals_gej()

static void ge_equals_gej ( const secp256k1_ge a,
const secp256k1_gej b 
)
static

Definition at line 3667 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_storage_cmov_test()

static void ge_storage_cmov_test ( void  )
static

Definition at line 7468 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gej_xyz_equals_gej()

static int gej_xyz_equals_gej ( const secp256k1_gej a,
const secp256k1_gej b 
)
static

Definition at line 3646 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ int_cmov_test()

static void int_cmov_test ( void  )
static

Definition at line 7353 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_empty_signature()

static int is_empty_signature ( const secp256k1_ecdsa_signature sig)
static

Definition at line 6386 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 7508 of file tests.c.

◆ modinv2p64()

static uint64_t modinv2p64 ( uint64_t  x)
static

Definition at line 882 of file tests.c.

Here is the caller graph for this function:

◆ mulmod256()

static void mulmod256 ( uint16_t *  out,
const uint16_t *  a,
const uint16_t *  b,
const uint16_t *  m 
)
static

Definition at line 899 of file tests.c.

Here is the caller graph for this function:

◆ mutate_sign_signed30()

static void mutate_sign_signed30 ( secp256k1_modinv32_signed30 x)
static

Definition at line 1001 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nonce_function_test_fail()

static int nonce_function_test_fail ( unsigned char *  nonce32,
const unsigned char *  msg32,
const unsigned char *  key32,
const unsigned char *  algo16,
void *  data,
unsigned int  counter 
)
static

Definition at line 6348 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nonce_function_test_retry()

static int nonce_function_test_retry ( unsigned char *  nonce32,
const unsigned char *  msg32,
const unsigned char *  key32,
const unsigned char *  algo16,
void *  data,
unsigned int  counter 
)
static

Definition at line 6356 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ precomputed_nonce_function()

static int precomputed_nonce_function ( unsigned char *  nonce32,
const unsigned char *  msg32,
const unsigned char *  key32,
const unsigned char *  algo16,
void *  data,
unsigned int  counter 
)
static

Dummy nonce generation function that just uses a precomputed nonce, and fails if it is not accepted.

Use only for testing.

Definition at line 6340 of file tests.c.

Here is the caller graph for this function:

◆ random_ber_signature()

static void random_ber_signature ( unsigned char *  sig,
size_t *  len,
int *  certainly_der,
int *  certainly_not_der 
)
static

Definition at line 6758 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_fe()

static void random_fe ( secp256k1_fe x)
static

Definition at line 2951 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_fe_non_square()

static void random_fe_non_square ( secp256k1_fe ns)
static

Definition at line 2984 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_fe_non_zero()

static void random_fe_non_zero ( secp256k1_fe nz)
static

Definition at line 2971 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_fe_test()

static void random_fe_test ( secp256k1_fe x)
static

Definition at line 2961 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_field_element_magnitude()

static void random_field_element_magnitude ( secp256k1_fe fe)
static

Definition at line 94 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_field_element_test()

static void random_field_element_test ( secp256k1_fe fe)
static

Definition at line 84 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_gej_test()

static void random_gej_test ( secp256k1_gej gej)
static

Definition at line 137 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_group_element_jacobian_test()

static void random_group_element_jacobian_test ( secp256k1_gej gej,
const secp256k1_ge ge 
)
static

Definition at line 122 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_group_element_test()

static void random_group_element_test ( secp256k1_ge ge)
static

Definition at line 110 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_scalar_order()

static void random_scalar_order ( secp256k1_scalar num)
static

Definition at line 156 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_scalar_order_b32()

static void random_scalar_order_b32 ( unsigned char *  b32)
static

Definition at line 169 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_scalar_order_test()

static void random_scalar_order_test ( secp256k1_scalar num)
static

Definition at line 143 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_sign()

static void random_sign ( secp256k1_scalar sigr,
secp256k1_scalar sigs,
const secp256k1_scalar key,
const secp256k1_scalar msg,
int *  recid 
)
static

Definition at line 6298 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_cmov_tests()

static void run_cmov_tests ( void  )
static

Definition at line 7500 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ctz_tests()

static void run_ctz_tests ( void  )
static

Definition at line 512 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_deprecated_context_flags_test()

static void run_deprecated_context_flags_test ( void  )
static

Definition at line 195 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ec_combine()

static void run_ec_combine ( void  )
static

Definition at line 4063 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ec_illegal_argument_tests()

static void run_ec_illegal_argument_tests ( void  )
static

Definition at line 213 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ec_pubkey_parse_test()

static void run_ec_pubkey_parse_test ( void  )
static

Definition at line 5679 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ecdsa_der_parse()

static void run_ecdsa_der_parse ( void  )
static

Definition at line 6904 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ecdsa_edge_cases()

static void run_ecdsa_edge_cases ( void  )
static

Definition at line 7305 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ecdsa_end_to_end()

static void run_ecdsa_end_to_end ( void  )
static

Definition at line 6652 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ecdsa_sign_verify()

static void run_ecdsa_sign_verify ( void  )
static

Definition at line 6332 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_eckey_edge_case_test()

static void run_eckey_edge_case_test ( void  )
static

Definition at line 6007 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_eckey_negate_test()

static void run_eckey_negate_test ( void  )
static

Definition at line 6263 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ecmult_chain()

static void run_ecmult_chain ( void  )
static

Definition at line 4190 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ecmult_const_tests()

static void run_ecmult_const_tests ( void  )
static

Definition at line 4481 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ecmult_constants()

static void run_ecmult_constants ( void  )
static

Definition at line 5478 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ecmult_gen_blind()

static void run_ecmult_gen_blind ( void  )
static

Definition at line 5547 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ecmult_multi_tests()

static void run_ecmult_multi_tests ( void  )
static

Definition at line 5087 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ecmult_near_split_bound()

static void run_ecmult_near_split_bound ( void  )
static

Definition at line 4352 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ecmult_pre_g()

static void run_ecmult_pre_g ( void  )
static

Definition at line 4166 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_endomorphism_tests()

static void run_endomorphism_tests ( void  )
static

Definition at line 5583 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_fe_mul()

static void run_fe_mul ( void  )
static

Definition at line 3235 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_field_convert()

static void run_field_convert ( void  )
static

Definition at line 3000 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_field_half()

static void run_field_half ( void  )
static

Definition at line 3042 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_field_misc()

static void run_field_misc ( void  )
static

Definition at line 3091 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_ge()

static void run_ge ( void  )
static

Definition at line 3982 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_gej()

static void run_gej ( void  )
static

Definition at line 3999 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_group_decompress()

static void run_group_decompress ( void  )
static

Definition at line 4105 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_hmac_sha256_tests()

static void run_hmac_sha256_tests ( void  )
static

Definition at line 692 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_inverse_tests()

static void run_inverse_tests ( void  )
static

Definition at line 3388 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_modinv_tests()

static void run_modinv_tests ( void  )
static

Definition at line 1197 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_point_times_order()

static void run_point_times_order ( void  )
static

Definition at line 4364 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_proper_context_tests()

static void run_proper_context_tests ( int  use_prealloc)
static

Definition at line 306 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_pubkey_comparison()

static void run_pubkey_comparison ( void  )
static

Definition at line 6596 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_rand_bits()

static void run_rand_bits ( void  )
static

Definition at line 860 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_rand_int()

static void run_rand_int ( void  )
static

Definition at line 868 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_random_pubkeys()

static void run_random_pubkeys ( void  )
static

Definition at line 6645 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_rfc6979_hmac_sha256_tests()

static void run_rfc6979_hmac_sha256_tests ( void  )
static

Definition at line 736 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_scalar_set_b32_seckey_tests()

static void run_scalar_set_b32_seckey_tests ( void  )
static

Definition at line 2326 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_scalar_tests()

static void run_scalar_tests ( void  )
static

Definition at line 2343 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_scratch_tests()

static void run_scratch_tests ( void  )
static

Definition at line 428 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_secp256k1_byteorder_tests()

static void run_secp256k1_byteorder_tests ( void  )
static

Definition at line 7340 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_secp256k1_memczero_test()

static void run_secp256k1_memczero_test ( void  )
static

Definition at line 7325 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_selftest_tests()

static void run_selftest_tests ( void  )
static

Definition at line 175 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_sha256_counter_tests()

static void run_sha256_counter_tests ( void  )
static

SHA256 counter tests.

The tests verify that the SHA256 counter doesn't wrap around at message length 2^i bytes for i = 20, ..., 33. This wide range aims at being independent of the implementation of the counter and it catches multiple natural 32-bit overflows (e.g., counting bits, counting bytes, counting blocks, ...).

The test vectors have been generated using following Python script which relies on https://github.com/cloudtools/sha256/ (v0.3 on Python v3.10.2).

from sha256 import sha256
from copy import copy
def midstate_c_definition(hasher):
ret = ' {{0x' + hasher.state[0].hex('_', 4).replace('_', ', 0x') + '},\n'
ret += ' {0x00}, ' + str(hex(hasher.state[1])) + '}'
def output_c_literal(hasher):
return '{0x' + hasher.digest().hex('_').replace('_', ', 0x') + '}'
MESSAGE = b'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmno'
assert(len(MESSAGE) == 64)
BYTE_BOUNDARIES = [(2**b)//len(MESSAGE) - 1 for b in range(20, 34)]
midstates = []
digests = []
hasher = sha256()
for i in range(BYTE_BOUNDARIES[-1] + 1):
if i in BYTE_BOUNDARIES:
midstates.append(midstate_c_definition(hasher))
hasher_copy = copy(hasher)
hasher_copy.update(MESSAGE)
digests.append(output_c_literal(hasher_copy))
hasher.update(MESSAGE)
for x in midstates:
print(x + ',')
for x in digests:
print(x + ',')
int ret
if(!SetupNetworking())
return(AppInit(node, argc, argv) ? EXIT_SUCCESS :EXIT_FAILURE)
Internal SHA-256 implementation.
Definition: sha256.cpp:67
for(const CTxIn &txin :tx.vin)
Definition: validation.cpp:399
assert(!tx.IsCoinBase())

Definition at line 634 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_sha256_known_output_tests()

static void run_sha256_known_output_tests ( void  )
static

Definition at line 533 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_sqr()

static void run_sqr ( void  )
static

Definition at line 3256 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_sqrt()

static void run_sqrt ( void  )
static

Definition at line 3286 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_static_context_tests()

static void run_static_context_tests ( int  use_prealloc)
static

Definition at line 265 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_tagged_sha256_tests()

static void run_tagged_sha256_tests ( void  )
static

Definition at line 777 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_wnaf()

static void run_wnaf ( void  )
static

Definition at line 5304 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scalar_cmov_test()

static void scalar_cmov_test ( void  )
static

Definition at line 7438 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scalar_test()

static void scalar_test ( void  )
static

Definition at line 2161 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ signed30_to_uint16()

static void signed30_to_uint16 ( uint16_t *  out,
const secp256k1_modinv32_signed30 in 
)
static

Definition at line 992 of file tests.c.

Here is the caller graph for this function:

◆ test_add_neg_y_diff_x()

static void test_add_neg_y_diff_x ( void  )
static

Definition at line 3915 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_constant_wnaf()

static void test_constant_wnaf ( const secp256k1_scalar number,
int  w 
)
static

Definition at line 5163 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_constant_wnaf_negate()

static void test_constant_wnaf_negate ( const secp256k1_scalar number)
static

Definition at line 5148 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ec_combine()

static void test_ec_combine ( void  )
static

Definition at line 4038 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecdsa_der_parse()

static int test_ecdsa_der_parse ( const unsigned char *  sig,
size_t  siglen,
int  certainly_der,
int  certainly_not_der 
)
static

Definition at line 6659 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecdsa_edge_cases()

static void test_ecdsa_edge_cases ( void  )
static

Definition at line 6936 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecdsa_end_to_end()

static void test_ecdsa_end_to_end ( void  )
static

Definition at line 6391 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecdsa_sign_verify()

static void test_ecdsa_sign_verify ( void  )
static

Definition at line 6305 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecmult_accumulate()

static void test_ecmult_accumulate ( secp256k1_sha256 acc,
const secp256k1_scalar x,
secp256k1_scratch scratch 
)
static

Definition at line 5358 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecmult_accumulate_cb()

static int test_ecmult_accumulate_cb ( secp256k1_scalar sc,
secp256k1_ge pt,
size_t  idx,
void *  data 
)
static

Definition at line 5350 of file tests.c.

Here is the caller graph for this function:

◆ test_ecmult_constants_2bit()

static void test_ecmult_constants_2bit ( void  )
static

Definition at line 5391 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecmult_constants_sha()

static void test_ecmult_constants_sha ( uint32_t  prefix,
size_t  iter,
const unsigned char *  expected32 
)
static

Definition at line 5435 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecmult_gen_blind()

static void test_ecmult_gen_blind ( void  )
static

Definition at line 5512 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecmult_gen_blind_reset()

static void test_ecmult_gen_blind_reset ( void  )
static

Definition at line 5535 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecmult_multi()

static void test_ecmult_multi ( secp256k1_scratch scratch,
secp256k1_ecmult_multi_func  ecmult_multi 
)
static

Definition at line 4508 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecmult_multi_batch_single()

static void test_ecmult_multi_batch_single ( secp256k1_ecmult_multi_func  ecmult_multi)
static

Definition at line 4899 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecmult_multi_batch_size_helper()

static void test_ecmult_multi_batch_size_helper ( void  )
static

Definition at line 4972 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecmult_multi_batching()

static void test_ecmult_multi_batching ( void  )
static

Run secp256k1_ecmult_multi_var with num points and a scratch space restricted to 1 <= i <= num points.

Definition at line 5020 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecmult_multi_pippenger_max_points()

static void test_ecmult_multi_pippenger_max_points ( void  )
static

Probabilistically test the function returning the maximum number of possible points for a given scratch space.

Definition at line 4939 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecmult_multi_random()

static int test_ecmult_multi_random ( secp256k1_scratch scratch)
static

Definition at line 4733 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_ecmult_target()

static void test_ecmult_target ( const secp256k1_scalar target,
int  mode 
)
static

Definition at line 4313 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_fe_mul()

static void test_fe_mul ( const secp256k1_fe a,
const secp256k1_fe b,
int  use_sqr 
)
static

Definition at line 3192 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_fixed_wnaf()

static void test_fixed_wnaf ( const secp256k1_scalar number,
int  w 
)
static

Definition at line 5203 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_fixed_wnaf_small()

static void test_fixed_wnaf_small ( void  )
static

Definition at line 5250 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_fixed_wnaf_small_helper()

static void test_fixed_wnaf_small_helper ( int *  wnaf,
int *  wnaf_expected,
int  w 
)
static

Definition at line 5240 of file tests.c.

Here is the caller graph for this function:

◆ test_ge()

static void test_ge ( void  )
static

Definition at line 3684 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_gej_cmov()

static void test_gej_cmov ( const secp256k1_gej a,
const secp256k1_gej b 
)
static

Definition at line 3991 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_group_decompress()

static void test_group_decompress ( const secp256k1_fe x)
static

Definition at line 4070 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_intialized_inf()

static void test_intialized_inf ( void  )
static

Definition at line 3883 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_inverse_field()

static void test_inverse_field ( secp256k1_fe out,
const secp256k1_fe x,
int  var 
)
static

Definition at line 3363 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_inverse_scalar()

static void test_inverse_scalar ( secp256k1_scalar out,
const secp256k1_scalar x,
int  var 
)
static

Definition at line 3341 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_modinv32_uint16()

static void test_modinv32_uint16 ( uint16_t *  out,
const uint16_t *  in,
const uint16_t *  mod 
)
static

Definition at line 1016 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_point_times_order()

static void test_point_times_order ( const secp256k1_gej point)
static

Definition at line 4249 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_pre_g_table()

static void test_pre_g_table ( const secp256k1_ge_storage pre_g,
size_t  n 
)
static

Definition at line 4116 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_rand_bits()

static void test_rand_bits ( int  rand32,
int  bits 
)
static

Definition at line 809 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_rand_int()

static void test_rand_int ( uint32_t  range,
uint32_t  subrange 
)
static

Definition at line 844 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_random_pubkeys()

static void test_random_pubkeys ( void  )
static

Definition at line 6536 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_scalar_split()

static void test_scalar_split ( const secp256k1_scalar full)
static

Definition at line 5556 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_secp256k1_pippenger_bucket_window_inv()

static void test_secp256k1_pippenger_bucket_window_inv ( void  )
static

Definition at line 4919 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_sqrt()

static void test_sqrt ( const secp256k1_fe a,
const secp256k1_fe k 
)
static

Definition at line 3272 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_wnaf()

static void test_wnaf ( const secp256k1_scalar number,
int  w 
)
static

Definition at line 5114 of file tests.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ uint16_to_signed30()

static void uint16_to_signed30 ( secp256k1_modinv32_signed30 out,
const uint16_t *  in 
)
static

Definition at line 983 of file tests.c.

Here is the caller graph for this function:

◆ uncounting_illegal_callback_fn()

static void uncounting_illegal_callback_fn ( const char *  str,
void *  data 
)
static

Definition at line 75 of file tests.c.

Here is the caller graph for this function:

Variable Documentation

◆ COUNT

int COUNT = 64
static

Definition at line 31 of file tests.c.

◆ CTX

secp256k1_context* CTX = NULL
static

Definition at line 32 of file tests.c.

◆ fe_minus_one

const secp256k1_fe fe_minus_one
static
Initial value:
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE, 0xFFFFFC2E
)
#define SECP256K1_FE_CONST(d7, d6, d5, d4, d3, d2, d1, d0)
Definition: field_10x26.h:40

Definition at line 3329 of file tests.c.

◆ scalar_minus_one

const secp256k1_scalar scalar_minus_one
static
Initial value:
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE,
0xBAAEDCE6, 0xAF48A03B, 0xBFD25E8C, 0xD0364140
)
#define SECP256K1_SCALAR_CONST(d7, d6, d5, d4, d3, d2, d1, d0)
Definition: scalar_4x64.h:17

Definition at line 3324 of file tests.c.

◆ scalars_near_split_bounds

const secp256k1_scalar scalars_near_split_bounds[20]
static
Initial value:
= {
SECP256K1_SCALAR_CONST(0xd938a566, 0x7f479e3e, 0xb5b3c7fa, 0xefdb3749, 0x3aa0585c, 0xc5ea2367, 0xe1b660db, 0x0209e6fc),
SECP256K1_SCALAR_CONST(0xd938a566, 0x7f479e3e, 0xb5b3c7fa, 0xefdb3749, 0x3aa0585c, 0xc5ea2367, 0xe1b660db, 0x0209e6fd),
SECP256K1_SCALAR_CONST(0xd938a566, 0x7f479e3e, 0xb5b3c7fa, 0xefdb3749, 0x3aa0585c, 0xc5ea2367, 0xe1b660db, 0x0209e6fe),
SECP256K1_SCALAR_CONST(0xd938a566, 0x7f479e3e, 0xb5b3c7fa, 0xefdb3749, 0x3aa0585c, 0xc5ea2367, 0xe1b660db, 0x0209e6ff),
SECP256K1_SCALAR_CONST(0x2c9c52b3, 0x3fa3cf1f, 0x5ad9e3fd, 0x77ed9ba5, 0xb294b893, 0x3722e9a5, 0x00e698ca, 0x4cf7632d),
SECP256K1_SCALAR_CONST(0x2c9c52b3, 0x3fa3cf1f, 0x5ad9e3fd, 0x77ed9ba5, 0xb294b893, 0x3722e9a5, 0x00e698ca, 0x4cf7632e),
SECP256K1_SCALAR_CONST(0x2c9c52b3, 0x3fa3cf1f, 0x5ad9e3fd, 0x77ed9ba5, 0xb294b893, 0x3722e9a5, 0x00e698ca, 0x4cf7632f),
SECP256K1_SCALAR_CONST(0x2c9c52b3, 0x3fa3cf1f, 0x5ad9e3fd, 0x77ed9ba5, 0xb294b893, 0x3722e9a5, 0x00e698ca, 0x4cf76330),
SECP256K1_SCALAR_CONST(0x7fffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xd576e735, 0x57a4501d, 0xdfe92f46, 0x681b209f),
SECP256K1_SCALAR_CONST(0x7fffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xd576e735, 0x57a4501d, 0xdfe92f46, 0x681b20a0),
SECP256K1_SCALAR_CONST(0x7fffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xd576e735, 0x57a4501d, 0xdfe92f46, 0x681b20a1),
SECP256K1_SCALAR_CONST(0x7fffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xd576e735, 0x57a4501d, 0xdfe92f46, 0x681b20a2),
SECP256K1_SCALAR_CONST(0xd363ad4c, 0xc05c30e0, 0xa5261c02, 0x88126459, 0xf85915d7, 0x7825b696, 0xbeebc5c2, 0x833ede11),
SECP256K1_SCALAR_CONST(0xd363ad4c, 0xc05c30e0, 0xa5261c02, 0x88126459, 0xf85915d7, 0x7825b696, 0xbeebc5c2, 0x833ede12),
SECP256K1_SCALAR_CONST(0xd363ad4c, 0xc05c30e0, 0xa5261c02, 0x88126459, 0xf85915d7, 0x7825b696, 0xbeebc5c2, 0x833ede13),
SECP256K1_SCALAR_CONST(0xd363ad4c, 0xc05c30e0, 0xa5261c02, 0x88126459, 0xf85915d7, 0x7825b696, 0xbeebc5c2, 0x833ede14),
SECP256K1_SCALAR_CONST(0x26c75a99, 0x80b861c1, 0x4a4c3805, 0x1024c8b4, 0x704d760e, 0xe95e7cd3, 0xde1bfdb1, 0xce2c5a42),
SECP256K1_SCALAR_CONST(0x26c75a99, 0x80b861c1, 0x4a4c3805, 0x1024c8b4, 0x704d760e, 0xe95e7cd3, 0xde1bfdb1, 0xce2c5a43),
SECP256K1_SCALAR_CONST(0x26c75a99, 0x80b861c1, 0x4a4c3805, 0x1024c8b4, 0x704d760e, 0xe95e7cd3, 0xde1bfdb1, 0xce2c5a44),
}

Definition at line 4290 of file tests.c.

◆ STATIC_CTX

secp256k1_context* STATIC_CTX = NULL
static

Definition at line 33 of file tests.c.