|
static void | secp256k1_scalar_clear (secp256k1_scalar *r) |
| Clear a scalar to prevent the leak of sensitive data. More...
|
|
static uint32_t | secp256k1_scalar_get_bits_limb32 (const secp256k1_scalar *a, unsigned int offset, unsigned int count) |
| Access bits (1 < count <= 32) from a scalar. More...
|
|
static uint32_t | secp256k1_scalar_get_bits_var (const secp256k1_scalar *a, unsigned int offset, unsigned int count) |
| Access bits (1 < count <= 32) 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 int | secp256k1_scalar_set_b32_seckey (secp256k1_scalar *r, const unsigned char *bin) |
| Set a scalar from a big endian byte array and returns 1 if it is a valid seckey and 0 otherwise. 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 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 void | secp256k1_scalar_half (secp256k1_scalar *r, const secp256k1_scalar *a) |
| Multiply a scalar with the multiplicative inverse of 2. 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 int | secp256k1_scalar_eq (const secp256k1_scalar *a, const secp256k1_scalar *b) |
| Compare two scalars. More...
|
|
static void | secp256k1_scalar_split_128 (secp256k1_scalar *r1, secp256k1_scalar *r2, const secp256k1_scalar *k) |
| Find r1 and r2 such that r1+r2*2^128 = k. More...
|
|
static void | secp256k1_scalar_split_lambda (secp256k1_scalar *SECP256K1_RESTRICT r1, secp256k1_scalar *SECP256K1_RESTRICT r2, const secp256k1_scalar *SECP256K1_RESTRICT k) |
| Find r1 and r2 such that r1+r2*lambda = k, where r1 and r2 or their negations are maximum 128 bits long (see secp256k1_ge_mul_lambda). 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...
|
|
static void | secp256k1_scalar_cmov (secp256k1_scalar *r, const secp256k1_scalar *a, int flag) |
| If flag is true, set *r equal to *a; otherwise leave it. More...
|
|
static void | secp256k1_scalar_verify (const secp256k1_scalar *r) |
| Check invariants on a scalar (no-op unless VERIFY is enabled). More...
|
|