Dash Core  0.12.2.1
P2P Digital Currency
tests.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "secp256k1.c"
#include "include/secp256k1.h"
#include "testrand_impl.h"
#include "contrib/lax_der_parsing.c"
#include "contrib/lax_der_privatekey_parsing.c"

Go to the source code of this file.

Macros

#define VG_UNDEF(x, y)
 
#define VG_CHECK(x, y)
 
#define SECP256K1_EC_PARSE_TEST_NVALID   (12)
 
#define SECP256K1_EC_PARSE_TEST_NXVALID   (4)
 
#define SECP256K1_EC_PARSE_TEST_NINVALID   (7)
 

Functions

static void counting_illegal_callback_fn (const char *str, void *data)
 
static void uncounting_illegal_callback_fn (const char *str, void *data)
 
void random_field_element_test (secp256k1_fe *fe)
 
void random_field_element_magnitude (secp256k1_fe *fe)
 
void random_group_element_test (secp256k1_ge *ge)
 
void random_group_element_jacobian_test (secp256k1_gej *gej, const secp256k1_ge *ge)
 
void random_scalar_order_test (secp256k1_scalar *num)
 
void random_scalar_order (secp256k1_scalar *num)
 
void run_context_tests (void)
 
void run_sha256_tests (void)
 
void run_hmac_sha256_tests (void)
 
void run_rfc6979_hmac_sha256_tests (void)
 
void test_rand_bits (int rand32, int bits)
 
void test_rand_int (uint32_t range, uint32_t subrange)
 
void run_rand_bits (void)
 
void run_rand_int (void)
 
void random_num_negate (secp256k1_num *num)
 
void random_num_order_test (secp256k1_num *num)
 
void random_num_order (secp256k1_num *num)
 
void test_num_negate (void)
 
void test_num_add_sub (void)
 
void run_num_smalltests (void)
 
void scalar_test (void)
 
void run_scalar_tests (void)
 
void random_fe (secp256k1_fe *x)
 
void random_fe_test (secp256k1_fe *x)
 
void random_fe_non_zero (secp256k1_fe *nz)
 
void random_fe_non_square (secp256k1_fe *ns)
 
int check_fe_equal (const secp256k1_fe *a, const secp256k1_fe *b)
 
int check_fe_inverse (const secp256k1_fe *a, const secp256k1_fe *ai)
 
void run_field_convert (void)
 
int fe_memcmp (const secp256k1_fe *a, const secp256k1_fe *b)
 
void run_field_misc (void)
 
void run_field_inv (void)
 
void run_field_inv_var (void)
 
void run_field_inv_all_var (void)
 
void run_sqr (void)
 
void test_sqrt (const secp256k1_fe *a, const secp256k1_fe *k)
 
void run_sqrt (void)
 
void ge_equals_ge (const secp256k1_ge *a, const secp256k1_ge *b)
 
int gej_xyz_equals_gej (const secp256k1_gej *a, const secp256k1_gej *b)
 
void ge_equals_gej (const secp256k1_ge *a, const secp256k1_gej *b)
 
void test_ge (void)
 
void test_add_neg_y_diff_x (void)
 
void run_ge (void)
 
void test_ec_combine (void)
 
void run_ec_combine (void)
 
void test_group_decompress (const secp256k1_fe *x)
 
void run_group_decompress (void)
 
void run_ecmult_chain (void)
 
void test_point_times_order (const secp256k1_gej *point)
 
void run_point_times_order (void)
 
void ecmult_const_random_mult (void)
 
void ecmult_const_commutativity (void)
 
void ecmult_const_mult_zero_one (void)
 
void ecmult_const_chain_multiply (void)
 
void run_ecmult_const_tests (void)
 
void test_wnaf (const secp256k1_scalar *number, int w)
 
void test_constant_wnaf_negate (const secp256k1_scalar *number)
 
void test_constant_wnaf (const secp256k1_scalar *number, int w)
 
void run_wnaf (void)
 
void test_ecmult_constants (void)
 
void run_ecmult_constants (void)
 
void test_ecmult_gen_blind (void)
 
void test_ecmult_gen_blind_reset (void)
 
void run_ecmult_gen_blind (void)
 
void ec_pubkey_parse_pointtest (const unsigned char *input, int xvalid, int yvalid)
 
void run_ec_pubkey_parse_test (void)
 
void run_eckey_edge_case_test (void)
 
void random_sign (secp256k1_scalar *sigr, secp256k1_scalar *sigs, const secp256k1_scalar *key, const secp256k1_scalar *msg, int *recid)
 
void test_ecdsa_sign_verify (void)
 
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)
 
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)
 
int is_empty_signature (const secp256k1_ecdsa_signature *sig)
 
void test_ecdsa_end_to_end (void)
 
void test_random_pubkeys (void)
 
void run_random_pubkeys (void)
 
void run_ecdsa_end_to_end (void)
 
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)
 
void run_ecdsa_der_parse (void)
 
void test_ecdsa_edge_cases (void)
 
void run_ecdsa_edge_cases (void)
 
int main (int argc, char **argv)
 

Variables

static int count = 64
 
static secp256k1_contextctx = NULL
 

Macro Definition Documentation

◆ 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)

◆ VG_CHECK

#define VG_CHECK (   x,
 
)

◆ VG_UNDEF

#define VG_UNDEF (   x,
 
)

Function Documentation

◆ assign_big_endian()

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

Definition at line 3595 of file tests.c.

Referenced by random_ber_signature().

◆ check_fe_equal()

int check_fe_equal ( const secp256k1_fe a,
const secp256k1_fe b 
)

◆ check_fe_inverse()

int check_fe_inverse ( const secp256k1_fe a,
const secp256k1_fe ai 
)

Definition at line 1462 of file tests.c.

Referenced by run_field_inv(), run_field_inv_all_var(), and run_field_inv_var().

◆ counting_illegal_callback_fn()

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

◆ damage_array()

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

Definition at line 3607 of file tests.c.

Referenced by run_ecdsa_der_parse().

◆ ec_pubkey_parse_pointtest()

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

Definition at line 2561 of file tests.c.

Referenced by run_ec_pubkey_parse_test().

◆ ecmult_const_chain_multiply()

void ecmult_const_chain_multiply ( void  )

Definition at line 2300 of file tests.c.

Referenced by run_ecmult_const_tests().

◆ ecmult_const_commutativity()

void ecmult_const_commutativity ( void  )

Definition at line 2257 of file tests.c.

Referenced by run_ecmult_const_tests().

◆ ecmult_const_mult_zero_one()

void ecmult_const_mult_zero_one ( void  )

Definition at line 2278 of file tests.c.

Referenced by run_ecmult_const_tests().

◆ ecmult_const_random_mult()

void ecmult_const_random_mult ( void  )

Definition at line 2230 of file tests.c.

Referenced by run_ecmult_const_tests().

◆ fe_memcmp()

int fe_memcmp ( const secp256k1_fe a,
const secp256k1_fe b 
)

Definition at line 1499 of file tests.c.

Referenced by run_field_misc().

◆ ge_equals_ge()

void ge_equals_ge ( const secp256k1_ge a,
const secp256k1_ge b 
)

◆ ge_equals_gej()

◆ gej_xyz_equals_gej()

int gej_xyz_equals_gej ( const secp256k1_gej a,
const secp256k1_gej b 
)

Definition at line 1702 of file tests.c.

Referenced by test_ecmult_gen_blind(), and test_ecmult_gen_blind_reset().

◆ is_empty_signature()

int is_empty_signature ( const secp256k1_ecdsa_signature sig)

Definition at line 3283 of file tests.c.

Referenced by test_ecdsa_edge_cases().

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 4252 of file tests.c.

◆ 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 3245 of file tests.c.

Referenced by test_ecdsa_edge_cases().

◆ 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 3253 of file tests.c.

Referenced by test_ecdsa_edge_cases().

◆ 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 3237 of file tests.c.

Referenced by test_ecdsa_edge_cases().

◆ 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 3634 of file tests.c.

Referenced by run_ecdsa_der_parse().

◆ random_fe()

void random_fe ( secp256k1_fe x)

Definition at line 1413 of file tests.c.

Referenced by random_fe_non_zero(), run_field_misc(), and run_sqrt().

◆ random_fe_non_square()

void random_fe_non_square ( secp256k1_fe ns)

Definition at line 1446 of file tests.c.

Referenced by run_sqrt().

◆ random_fe_non_zero()

void random_fe_non_zero ( secp256k1_fe nz)

◆ random_fe_test()

void random_fe_test ( secp256k1_fe x)

Definition at line 1423 of file tests.c.

Referenced by run_group_decompress().

◆ random_field_element_magnitude()

void random_field_element_magnitude ( secp256k1_fe fe)

Definition at line 70 of file tests.c.

Referenced by test_ge().

◆ random_field_element_test()

void random_field_element_test ( secp256k1_fe fe)

Definition at line 60 of file tests.c.

Referenced by random_group_element_jacobian_test(), random_group_element_test(), and test_ge().

◆ random_group_element_jacobian_test()

void random_group_element_jacobian_test ( secp256k1_gej gej,
const secp256k1_ge ge 
)

Definition at line 95 of file tests.c.

Referenced by test_ge().

◆ random_group_element_test()

void random_group_element_test ( secp256k1_ge ge)

Definition at line 84 of file tests.c.

Referenced by ecmult_const_mult_zero_one(), and test_ge().

◆ random_num_negate()

void random_num_negate ( secp256k1_num num)

Definition at line 437 of file tests.c.

Referenced by test_num_add_sub(), and test_num_negate().

◆ random_num_order()

void random_num_order ( secp256k1_num num)

Definition at line 449 of file tests.c.

◆ random_num_order_test()

void random_num_order_test ( secp256k1_num num)

Definition at line 443 of file tests.c.

Referenced by test_num_add_sub(), and test_num_negate().

◆ random_scalar_order()

void random_scalar_order ( secp256k1_scalar num)

◆ random_scalar_order_test()

◆ random_sign()

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

Definition at line 3199 of file tests.c.

Referenced by test_ecdsa_sign_verify().

◆ run_context_tests()

void run_context_tests ( void  )

Definition at line 136 of file tests.c.

Referenced by main().

◆ run_ec_combine()

void run_ec_combine ( void  )

Definition at line 2044 of file tests.c.

Referenced by main().

◆ run_ec_pubkey_parse_test()

void run_ec_pubkey_parse_test ( void  )

Definition at line 2636 of file tests.c.

Referenced by main().

◆ run_ecdsa_der_parse()

void run_ecdsa_der_parse ( void  )

Definition at line 3780 of file tests.c.

Referenced by main().

◆ run_ecdsa_edge_cases()

void run_ecdsa_edge_cases ( void  )

Definition at line 4180 of file tests.c.

Referenced by main().

◆ run_ecdsa_end_to_end()

void run_ecdsa_end_to_end ( void  )

Definition at line 3478 of file tests.c.

Referenced by main().

◆ run_ecdsa_sign_verify()

void run_ecdsa_sign_verify ( void  )

Definition at line 3229 of file tests.c.

Referenced by main().

◆ run_eckey_edge_case_test()

void run_eckey_edge_case_test ( void  )

Definition at line 2963 of file tests.c.

Referenced by main().

◆ run_ecmult_chain()

void run_ecmult_chain ( void  )

Definition at line 2109 of file tests.c.

Referenced by main().

◆ run_ecmult_const_tests()

void run_ecmult_const_tests ( void  )

Definition at line 2326 of file tests.c.

Referenced by main().

◆ run_ecmult_constants()

void run_ecmult_constants ( void  )

Definition at line 2484 of file tests.c.

Referenced by main().

◆ run_ecmult_gen_blind()

void run_ecmult_gen_blind ( void  )

Definition at line 2523 of file tests.c.

Referenced by main().

◆ run_field_convert()

void run_field_convert ( void  )

Definition at line 1469 of file tests.c.

Referenced by main().

◆ run_field_inv()

void run_field_inv ( void  )

Definition at line 1580 of file tests.c.

Referenced by main().

◆ run_field_inv_all_var()

void run_field_inv_all_var ( void  )

Definition at line 1604 of file tests.c.

Referenced by main().

◆ run_field_inv_var()

void run_field_inv_var ( void  )

Definition at line 1592 of file tests.c.

Referenced by main().

◆ run_field_misc()

void run_field_misc ( void  )

Definition at line 1508 of file tests.c.

Referenced by main().

◆ run_ge()

void run_ge ( void  )

Definition at line 2011 of file tests.c.

Referenced by main().

◆ run_group_decompress()

void run_group_decompress ( void  )

Definition at line 2098 of file tests.c.

Referenced by main().

◆ run_hmac_sha256_tests()

void run_hmac_sha256_tests ( void  )

Definition at line 277 of file tests.c.

Referenced by main().

◆ run_num_smalltests()

void run_num_smalltests ( void  )

Definition at line 503 of file tests.c.

Referenced by main().

◆ run_point_times_order()

void run_point_times_order ( void  )

Definition at line 2208 of file tests.c.

Referenced by main().

◆ run_rand_bits()

void run_rand_bits ( void  )

Definition at line 415 of file tests.c.

Referenced by main().

◆ run_rand_int()

void run_rand_int ( void  )

Definition at line 423 of file tests.c.

Referenced by main().

◆ run_random_pubkeys()

void run_random_pubkeys ( void  )

Definition at line 3471 of file tests.c.

Referenced by main().

◆ run_rfc6979_hmac_sha256_tests()

void run_rfc6979_hmac_sha256_tests ( void  )

Definition at line 321 of file tests.c.

Referenced by main().

◆ run_scalar_tests()

void run_scalar_tests ( void  )

Definition at line 799 of file tests.c.

Referenced by main().

◆ run_sha256_tests()

void run_sha256_tests ( void  )

Definition at line 241 of file tests.c.

Referenced by main().

◆ run_sqr()

void run_sqr ( void  )

Definition at line 1626 of file tests.c.

Referenced by main().

◆ run_sqrt()

void run_sqrt ( void  )

Definition at line 1656 of file tests.c.

Referenced by main().

◆ run_wnaf()

void run_wnaf ( void  )

Definition at line 2427 of file tests.c.

Referenced by main().

◆ scalar_test()

void scalar_test ( void  )

Definition at line 514 of file tests.c.

Referenced by run_scalar_tests().

◆ test_add_neg_y_diff_x()

void test_add_neg_y_diff_x ( void  )

Definition at line 1944 of file tests.c.

Referenced by run_ge().

◆ test_constant_wnaf()

void test_constant_wnaf ( const secp256k1_scalar number,
int  w 
)

Definition at line 2382 of file tests.c.

Referenced by run_wnaf().

◆ test_constant_wnaf_negate()

void test_constant_wnaf_negate ( const secp256k1_scalar number)

Definition at line 2367 of file tests.c.

Referenced by run_wnaf().

◆ test_ec_combine()

void test_ec_combine ( void  )

Definition at line 2019 of file tests.c.

Referenced by run_ec_combine().

◆ test_ecdsa_der_parse()

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

Definition at line 3485 of file tests.c.

Referenced by run_ecdsa_der_parse().

◆ test_ecdsa_edge_cases()

void test_ecdsa_edge_cases ( void  )

Definition at line 3811 of file tests.c.

Referenced by run_ecdsa_edge_cases().

◆ test_ecdsa_end_to_end()

void test_ecdsa_end_to_end ( void  )

Definition at line 3288 of file tests.c.

Referenced by run_ecdsa_end_to_end().

◆ test_ecdsa_sign_verify()

void test_ecdsa_sign_verify ( void  )

Definition at line 3206 of file tests.c.

Referenced by run_ecdsa_sign_verify().

◆ test_ecmult_constants()

void test_ecmult_constants ( void  )

Definition at line 2451 of file tests.c.

Referenced by run_ecmult_constants().

◆ test_ecmult_gen_blind()

void test_ecmult_gen_blind ( void  )

Definition at line 2488 of file tests.c.

Referenced by run_ecmult_gen_blind().

◆ test_ecmult_gen_blind_reset()

void test_ecmult_gen_blind_reset ( void  )

Definition at line 2511 of file tests.c.

Referenced by run_ecmult_gen_blind().

◆ test_ge()

void test_ge ( void  )

Definition at line 1740 of file tests.c.

Referenced by run_ge().

◆ test_group_decompress()

void test_group_decompress ( const secp256k1_fe x)

Definition at line 2051 of file tests.c.

Referenced by run_group_decompress().

◆ test_num_add_sub()

void test_num_add_sub ( void  )

Definition at line 475 of file tests.c.

Referenced by run_num_smalltests().

◆ test_num_negate()

void test_num_negate ( void  )

Definition at line 455 of file tests.c.

Referenced by run_num_smalltests().

◆ test_point_times_order()

void test_point_times_order ( const secp256k1_gej point)

Definition at line 2173 of file tests.c.

Referenced by run_point_times_order().

◆ test_rand_bits()

void test_rand_bits ( int  rand32,
int  bits 
)

Definition at line 364 of file tests.c.

Referenced by run_rand_bits().

◆ test_rand_int()

void test_rand_int ( uint32_t  range,
uint32_t  subrange 
)

Definition at line 399 of file tests.c.

Referenced by run_rand_int().

◆ test_random_pubkeys()

void test_random_pubkeys ( void  )

Definition at line 3411 of file tests.c.

Referenced by run_random_pubkeys().

◆ test_sqrt()

void test_sqrt ( const secp256k1_fe a,
const secp256k1_fe k 
)

Definition at line 1642 of file tests.c.

Referenced by run_sqrt().

◆ test_wnaf()

void test_wnaf ( const secp256k1_scalar number,
int  w 
)

Definition at line 2333 of file tests.c.

Referenced by run_wnaf().

◆ uncounting_illegal_callback_fn()

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

Definition at line 52 of file tests.c.

Referenced by run_ec_pubkey_parse_test().

Variable Documentation

◆ count

◆ ctx

secp256k1_context* ctx = NULL
static

Definition at line 42 of file tests.c.

Referenced by AddressTableModel::addRow(), CCrypter::Decrypt(), DecryptAES256(), ec_privkey_export_der(), ec_privkey_import_der(), ec_pubkey_parse_pointtest(), ECC_Start(), ECC_Stop(), ecdsa_signature_parse_der_lax(), CCrypter::Encrypt(), EncryptAES256(), TorControlConnection::eventcb(), PaymentRequestPlus::getMerchant(), http_request_done(), main(), SendCoinsDialog::on_sendButton_clicked(), SignVerifyMessageDialog::on_signMessageButton_SM_clicked(), MasternodeList::on_startAllButton_clicked(), MasternodeList::on_startButton_clicked(), MasternodeList::on_startMissingButton_clicked(), random_sign(), TorControlConnection::readcb(), run_ec_pubkey_parse_test(), run_eckey_edge_case_test(), run_ecmult_chain(), secp256k1_context_clone(), secp256k1_context_destroy(), secp256k1_context_randomize(), secp256k1_context_set_error_callback(), secp256k1_context_set_illegal_callback(), secp256k1_ec_privkey_tweak_add(), secp256k1_ec_privkey_tweak_mul(), secp256k1_ec_pubkey_combine(), secp256k1_ec_pubkey_create(), secp256k1_ec_pubkey_parse(), secp256k1_ec_pubkey_serialize(), secp256k1_ec_pubkey_tweak_add(), secp256k1_ec_pubkey_tweak_mul(), secp256k1_ec_seckey_verify(), secp256k1_ecdh(), secp256k1_ecdsa_recover(), secp256k1_ecdsa_recoverable_signature_convert(), secp256k1_ecdsa_recoverable_signature_load(), secp256k1_ecdsa_recoverable_signature_parse_compact(), secp256k1_ecdsa_recoverable_signature_serialize_compact(), secp256k1_ecdsa_sig_recover(), secp256k1_ecdsa_sig_sign(), secp256k1_ecdsa_sig_verify(), secp256k1_ecdsa_sign(), secp256k1_ecdsa_sign_recoverable(), secp256k1_ecdsa_signature_load(), secp256k1_ecdsa_signature_normalize(), secp256k1_ecdsa_signature_parse_compact(), secp256k1_ecdsa_signature_parse_der(), secp256k1_ecdsa_signature_serialize_compact(), secp256k1_ecdsa_signature_serialize_der(), secp256k1_ecdsa_verify(), secp256k1_eckey_pubkey_tweak_add(), secp256k1_eckey_pubkey_tweak_mul(), secp256k1_ecmult(), secp256k1_ecmult_context_build(), secp256k1_ecmult_context_clear(), secp256k1_ecmult_context_init(), secp256k1_ecmult_context_is_built(), secp256k1_ecmult_gen(), secp256k1_ecmult_gen_blind(), secp256k1_ecmult_gen_context_build(), secp256k1_ecmult_gen_context_clear(), secp256k1_ecmult_gen_context_init(), secp256k1_ecmult_gen_context_is_built(), secp256k1_schnorr_generate_nonce_pair(), secp256k1_schnorr_partial_sign(), secp256k1_schnorr_recover(), secp256k1_schnorr_sig_recover(), secp256k1_schnorr_sig_sign(), secp256k1_schnorr_sig_verify(), secp256k1_schnorr_sign(), secp256k1_schnorr_verify(), test_bad_scalar(), test_ec_combine(), test_ecdh_generator_basepoint(), test_ecdsa_der_parse(), test_ecdsa_edge_cases(), test_ecdsa_end_to_end(), test_ecdsa_recovery_edge_cases(), test_ecdsa_recovery_end_to_end(), test_ecdsa_sign_verify(), test_ecmult_constants(), test_ecmult_gen_blind(), test_ecmult_gen_blind_reset(), test_ge(), test_point_times_order(), test_schnorr_end_to_end(), test_schnorr_recovery(), test_schnorr_sign_verify(), test_schnorr_threshold(), and OverviewPage::togglePrivateSend().