#include <string.h>
#include <stdlib.h>
#include <gmp.h>
#include "util.h"
#include "num.h"
Go to the source code of this file.
|
static void | secp256k1_num_copy (secp256k1_num *r, const secp256k1_num *a) |
|
static void | secp256k1_num_get_bin (unsigned char *r, unsigned int rlen, const secp256k1_num *a) |
|
static void | secp256k1_num_set_bin (secp256k1_num *r, const unsigned char *a, unsigned int alen) |
|
static void | secp256k1_num_add_abs (secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *b) |
|
static void | secp256k1_num_sub_abs (secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *b) |
|
static void | secp256k1_num_mod (secp256k1_num *r, const secp256k1_num *m) |
|
static void | secp256k1_num_mod_inverse (secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *m) |
|
static int | secp256k1_num_jacobi (const secp256k1_num *a, const secp256k1_num *b) |
|
static int | secp256k1_num_is_one (const secp256k1_num *a) |
|
static int | secp256k1_num_is_zero (const secp256k1_num *a) |
|
static int | secp256k1_num_is_neg (const secp256k1_num *a) |
|
static int | secp256k1_num_cmp (const secp256k1_num *a, const secp256k1_num *b) |
|
static int | secp256k1_num_eq (const secp256k1_num *a, const secp256k1_num *b) |
|
static void | secp256k1_num_subadd (secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *b, int bneg) |
|
static void | secp256k1_num_add (secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *b) |
|
static void | secp256k1_num_sub (secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *b) |
|
static void | secp256k1_num_mul (secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *b) |
|
static void | secp256k1_num_shift (secp256k1_num *r, int bits) |
|
static void | secp256k1_num_negate (secp256k1_num *r) |
|
◆ secp256k1_num_sanity
#define secp256k1_num_sanity |
( |
|
a | ) |
do { } while(0) |
◆ secp256k1_num_add()
◆ secp256k1_num_add_abs()
◆ secp256k1_num_cmp()
◆ secp256k1_num_copy()
◆ secp256k1_num_eq()
◆ secp256k1_num_get_bin()
static void secp256k1_num_get_bin |
( |
unsigned char * |
r, |
|
|
unsigned int |
rlen, |
|
|
const secp256k1_num * |
a |
|
) |
| |
|
static |
◆ secp256k1_num_is_neg()
◆ secp256k1_num_is_one()
◆ secp256k1_num_is_zero()
◆ secp256k1_num_jacobi()
◆ secp256k1_num_mod()
◆ secp256k1_num_mod_inverse()
mpn_gcdext computes: (G,S) = gcdext(U,V), where
- G = gcd(U,V)
- G = U*S + V*T
- U has equal or more limbs than V, and V has no padding If we set U to be (a padded version of) a, and V = m: G = a*S + m*T G = a*S mod m Assuming G=1: S = 1/a mod m
Definition at line 101 of file num_gmp_impl.h.
◆ secp256k1_num_mul()
◆ secp256k1_num_negate()
◆ secp256k1_num_set_bin()
static void secp256k1_num_set_bin |
( |
secp256k1_num * |
r, |
|
|
const unsigned char * |
a, |
|
|
unsigned int |
alen |
|
) |
| |
|
static |
◆ secp256k1_num_shift()
◆ secp256k1_num_sub()
◆ secp256k1_num_sub_abs()
◆ secp256k1_num_subadd()