Dash Core Source Documentation (0.16.0.1)
Find detailed information regarding the Dash Core source code.
#include "num.h"
Go to the source code of this file.
Functions | |
static void | secp256k1_scalar_clear (secp256k1_scalar *r) |
Clear a scalar to prevent the leak of sensitive data. More... | |
static unsigned int | secp256k1_scalar_get_bits (const secp256k1_scalar *a, unsigned int offset, unsigned int count) |
Access bits from a scalar. More... | |
static unsigned int | secp256k1_scalar_get_bits_var (const secp256k1_scalar *a, unsigned int offset, unsigned int count) |
Access bits from a scalar. More... | |
static void | secp256k1_scalar_set_b32 (secp256k1_scalar *r, const unsigned char *bin, int *overflow) |
Set a scalar from a big endian byte array. More... | |
static void | secp256k1_scalar_set_int (secp256k1_scalar *r, unsigned int v) |
Set a scalar to an unsigned integer. More... | |
static void | secp256k1_scalar_get_b32 (unsigned char *bin, const secp256k1_scalar *a) |
Convert a scalar to a byte array. More... | |
static int | secp256k1_scalar_add (secp256k1_scalar *r, const secp256k1_scalar *a, const secp256k1_scalar *b) |
Add two scalars together (modulo the group order). More... | |
static void | secp256k1_scalar_cadd_bit (secp256k1_scalar *r, unsigned int bit, int flag) |
Conditionally add a power of two to a scalar. More... | |
static void | secp256k1_scalar_mul (secp256k1_scalar *r, const secp256k1_scalar *a, const secp256k1_scalar *b) |
Multiply two scalars (modulo the group order). More... | |
static int | secp256k1_scalar_shr_int (secp256k1_scalar *r, int n) |
Shift a scalar right by some amount strictly between 0 and 16, returning the low bits that were shifted off. More... | |
static void | secp256k1_scalar_sqr (secp256k1_scalar *r, const secp256k1_scalar *a) |
Compute the square of a scalar (modulo the group order). More... | |
static void | secp256k1_scalar_inverse (secp256k1_scalar *r, const secp256k1_scalar *a) |
Compute the inverse of a scalar (modulo the group order). More... | |
static void | secp256k1_scalar_inverse_var (secp256k1_scalar *r, const secp256k1_scalar *a) |
Compute the inverse of a scalar (modulo the group order), without constant-time guarantee. More... | |
static void | secp256k1_scalar_negate (secp256k1_scalar *r, const secp256k1_scalar *a) |
Compute the complement of a scalar (modulo the group order). More... | |
static int | secp256k1_scalar_is_zero (const secp256k1_scalar *a) |
Check whether a scalar equals zero. More... | |
static int | secp256k1_scalar_is_one (const secp256k1_scalar *a) |
Check whether a scalar equals one. More... | |
static int | secp256k1_scalar_is_even (const secp256k1_scalar *a) |
Check whether a scalar, considered as an nonnegative integer, is even. More... | |
static int | secp256k1_scalar_is_high (const secp256k1_scalar *a) |
Check whether a scalar is higher than the group order divided by 2. More... | |
static int | secp256k1_scalar_cond_negate (secp256k1_scalar *a, int flag) |
Conditionally negate a number, in constant time. More... | |
static void | secp256k1_scalar_get_num (secp256k1_num *r, const secp256k1_scalar *a) |
Convert a scalar to a number. More... | |
static void | secp256k1_scalar_order_get_num (secp256k1_num *r) |
Get the order of the group as a number. More... | |
static int | secp256k1_scalar_eq (const secp256k1_scalar *a, const secp256k1_scalar *b) |
Compare two scalars. More... | |
static void | secp256k1_scalar_mul_shift_var (secp256k1_scalar *r, const secp256k1_scalar *a, const secp256k1_scalar *b, unsigned int shift) |
Multiply a and b (without taking the modulus!), divide by 2**shift, and round to the nearest integer. More... | |
Function Documentation
◆ secp256k1_scalar_add()
|
static |
Add two scalars together (modulo the group order).
Returns whether it overflowed.
Referenced by bench_ecmult_wnaf(), bench_scalar_add(), bench_scalar_inverse(), bench_scalar_inverse_var(), bench_wnaf_const(), main(), run_ecmult_chain(), run_scalar_tests(), run_test(), scalar_test(), secp256k1_ecdsa_sig_sign(), secp256k1_eckey_privkey_tweak_add(), secp256k1_ecmult_gen(), test_constant_wnaf(), test_ec_combine(), test_ecdsa_sign_verify(), test_ecmult_multi(), test_exhaustive_verify(), test_fixed_wnaf(), and test_wnaf().
◆ secp256k1_scalar_cadd_bit()
|
static |
Conditionally add a power of two to a scalar.
The result is not allowed to overflow.
Referenced by scalar_test(), secp256k1_wnaf_const(), test_constant_wnaf(), and test_fixed_wnaf().
◆ secp256k1_scalar_clear()
|
static |
Clear a scalar to prevent the leak of sensitive data.
Referenced by secp256k1_ec_privkey_tweak_add(), secp256k1_ec_privkey_tweak_mul(), secp256k1_ec_pubkey_create(), secp256k1_ec_seckey_verify(), secp256k1_ecdh(), secp256k1_ecdsa_sig_sign(), secp256k1_ecdsa_sign(), secp256k1_ecdsa_sign_recoverable(), secp256k1_ecmult_gen(), secp256k1_ecmult_gen_blind(), secp256k1_ecmult_gen_context_clear(), secp256k1_ecmult_pippenger_batch(), and test_ecmult_multi().
◆ secp256k1_scalar_cond_negate()
|
static |
Conditionally negate a number, in constant time.
Returns -1 if the number was negated, 1 otherwise
Referenced by run_wnaf(), secp256k1_wnaf_const(), test_constant_wnaf_negate(), and test_ecmult_multi().
◆ secp256k1_scalar_eq()
|
static |
Compare two scalars.
Referenced by run_scalar_tests(), scalar_test(), secp256k1_ecdsa_sig_verify(), test_constant_wnaf(), test_constant_wnaf_negate(), test_ecdsa_edge_cases(), test_ecmult_gen_blind(), test_ecmult_gen_blind_reset(), test_exhaustive_verify(), test_fixed_wnaf(), and test_wnaf().
◆ secp256k1_scalar_get_b32()
|
static |
Convert a scalar to a byte array.
Referenced by scalar_test(), secp256k1_ec_privkey_negate(), secp256k1_ec_privkey_tweak_add(), secp256k1_ec_privkey_tweak_mul(), secp256k1_ecdsa_recoverable_signature_save(), secp256k1_ecdsa_recoverable_signature_serialize_compact(), secp256k1_ecdsa_sig_recover(), secp256k1_ecdsa_sig_serialize(), secp256k1_ecdsa_sig_verify(), secp256k1_ecdsa_signature_save(), secp256k1_ecdsa_signature_serialize_compact(), secp256k1_ecmult_gen_blind(), secp256k1_nonce_function_smallint(), secp256k1_scalar_get_num(), secp256k1_scalar_inverse_var(), test_bad_scalar(), test_ecdh_generator_basepoint(), test_ecdsa_end_to_end(), test_ecdsa_recovery_end_to_end(), test_exhaustive_sign(), and test_exhaustive_verify().
◆ secp256k1_scalar_get_bits()
|
static |
Access bits from a scalar.
All requested bits must belong to the same 32-bit limb.
Referenced by scalar_test(), secp256k1_ecmult_gen(), secp256k1_ecmult_wnaf(), and test_constant_wnaf_negate().
◆ secp256k1_scalar_get_bits_var()
|
static |
Access bits from a scalar.
Not constant time.
Referenced by scalar_test(), secp256k1_ecmult_wnaf(), and secp256k1_wnaf_fixed().
◆ secp256k1_scalar_get_num()
|
static |
Convert a scalar to a number.
Referenced by bench_num_jacobi(), random_num_order(), random_num_order_test(), scalar_test(), test_num_add_sub(), test_num_jacobi(), and test_num_mod().
◆ secp256k1_scalar_inverse()
|
static |
Compute the inverse of a scalar (modulo the group order).
Referenced by bench_scalar_inverse(), run_scalar_tests(), scalar_test(), secp256k1_ecdsa_sig_sign(), and test_ecdsa_edge_cases().
◆ secp256k1_scalar_inverse_var()
|
static |
Compute the inverse of a scalar (modulo the group order), without constant-time guarantee.
Referenced by bench_scalar_inverse_var(), run_scalar_tests(), secp256k1_ecdsa_sig_recover(), secp256k1_ecdsa_sig_verify(), and test_ecdsa_edge_cases().
◆ secp256k1_scalar_is_even()
|
static |
Check whether a scalar, considered as an nonnegative integer, is even.
Referenced by secp256k1_wnaf_const(), secp256k1_wnaf_fixed(), and test_constant_wnaf_negate().
◆ secp256k1_scalar_is_high()
|
static |
Check whether a scalar is higher than the group order divided by 2.
Referenced by scalar_test(), secp256k1_ecdsa_sig_sign(), secp256k1_ecdsa_signature_normalize(), secp256k1_ecdsa_verify(), secp256k1_wnaf_const(), and test_exhaustive_verify().
◆ secp256k1_scalar_is_one()
|
static |
Check whether a scalar equals one.
Referenced by run_scalar_tests(), scalar_test(), secp256k1_scalar_inverse_var(), and secp256k1_wnaf_const().
◆ secp256k1_scalar_is_zero()
|
static |
Check whether a scalar equals zero.
Referenced by random_scalar_order(), random_scalar_order_test(), run_scalar_tests(), run_wnaf(), scalar_test(), secp256k1_ec_pubkey_create(), secp256k1_ec_seckey_verify(), secp256k1_ecdh(), secp256k1_ecdsa_sig_recover(), secp256k1_ecdsa_sig_sign(), secp256k1_ecdsa_sig_verify(), secp256k1_ecdsa_sign(), secp256k1_ecdsa_sign_recoverable(), secp256k1_eckey_privkey_tweak_add(), secp256k1_eckey_privkey_tweak_mul(), secp256k1_eckey_pubkey_tweak_mul(), secp256k1_ecmult_gen_blind(), secp256k1_ecmult_pippenger_wnaf(), secp256k1_ecmult_strauss_wnaf(), secp256k1_wnaf_const(), and secp256k1_wnaf_fixed().
◆ secp256k1_scalar_mul()
|
static |
Multiply two scalars (modulo the group order).
Referenced by bench_scalar_mul(), run_ecmult_chain(), run_scalar_tests(), run_test(), scalar_test(), secp256k1_ecdsa_sig_recover(), secp256k1_ecdsa_sig_sign(), secp256k1_ecdsa_sig_verify(), secp256k1_eckey_privkey_tweak_mul(), secp256k1_scalar_inverse_var(), test_constant_wnaf(), test_ecmult_multi(), test_exhaustive_verify(), test_fixed_wnaf(), test_num_jacobi(), and test_wnaf().
◆ secp256k1_scalar_mul_shift_var()
|
static |
Multiply a and b (without taking the modulus!), divide by 2**shift, and round to the nearest integer.
Shift must be at least 256.
Referenced by scalar_test().
◆ secp256k1_scalar_negate()
|
static |
Compute the complement of a scalar (modulo the group order).
Referenced by bench_scalar_negate(), ecmult_const_mult_zero_one(), run_scalar_tests(), run_test(), scalar_test(), secp256k1_ec_privkey_negate(), secp256k1_ecdsa_sig_recover(), secp256k1_ecdsa_sig_sign(), secp256k1_ecdsa_signature_normalize(), secp256k1_ecmult_gen_blind(), secp256k1_ecmult_wnaf(), secp256k1_wnaf_const(), test_constant_wnaf(), test_constant_wnaf_negate(), test_ecdsa_edge_cases(), test_ecdsa_end_to_end(), test_ecmult_constants(), test_ecmult_multi(), test_fixed_wnaf(), test_point_times_order(), and test_wnaf().
◆ secp256k1_scalar_order_get_num()
|
static |
Get the order of the group as a number.
Referenced by bench_num_jacobi(), run_scalar_tests(), scalar_test(), and test_num_jacobi().
◆ secp256k1_scalar_set_b32()
|
static |
Set a scalar from a big endian byte array.
Referenced by bench_setup(), generate_scalar(), r_from_k(), random_scalar_order(), random_scalar_order_test(), run_scalar_tests(), secp256k1_der_parse_integer(), secp256k1_ec_privkey_negate(), secp256k1_ec_privkey_tweak_add(), secp256k1_ec_privkey_tweak_mul(), secp256k1_ec_pubkey_create(), secp256k1_ec_pubkey_tweak_add(), secp256k1_ec_pubkey_tweak_mul(), secp256k1_ec_seckey_verify(), secp256k1_ecdh(), secp256k1_ecdsa_recover(), secp256k1_ecdsa_recoverable_signature_load(), secp256k1_ecdsa_recoverable_signature_parse_compact(), secp256k1_ecdsa_sig_sign(), secp256k1_ecdsa_sig_verify(), secp256k1_ecdsa_sign(), secp256k1_ecdsa_sign_recoverable(), secp256k1_ecdsa_signature_load(), secp256k1_ecdsa_signature_parse_compact(), secp256k1_ecdsa_verify(), secp256k1_ecmult_gen_blind(), secp256k1_scalar_inverse_var(), and test_ecdsa_edge_cases().
◆ secp256k1_scalar_set_int()
|
static |
Set a scalar to an unsigned integer.
Referenced by main(), run_scalar_tests(), run_wnaf(), scalar_test(), secp256k1_der_parse_integer(), secp256k1_eckey_pubkey_tweak_add(), secp256k1_eckey_pubkey_tweak_mul(), secp256k1_ecmult_gen_blind(), secp256k1_ecmult_multi_simple_var(), secp256k1_ecmult_multi_var(), secp256k1_nonce_function_smallint(), test_constant_wnaf(), test_ecdsa_edge_cases(), test_ecdsa_sign_verify(), test_ecmult_constants(), test_ecmult_multi(), test_ecmult_multi_batching(), test_exhaustive_ecmult(), test_exhaustive_ecmult_multi(), test_exhaustive_sign(), test_exhaustive_verify(), test_fixed_wnaf(), test_fixed_wnaf_small(), test_num_add_sub(), test_num_jacobi(), test_num_mod(), and test_wnaf().
◆ secp256k1_scalar_shr_int()
|
static |
Shift a scalar right by some amount strictly between 0 and 16, returning the low bits that were shifted off.
Referenced by scalar_test(), secp256k1_wnaf_const(), test_constant_wnaf(), and test_fixed_wnaf().
◆ secp256k1_scalar_sqr()
|
static |
Compute the square of a scalar (modulo the group order).
Referenced by bench_scalar_sqr(), run_scalar_tests(), scalar_test(), and test_num_jacobi().