Defines |
| #define | s_mp_mul(a, b, c) s_mp_mul_digs(a, b, c, (a)->used + (b)->used + 1) |
Functions |
| static void | mp_clamp (mp_int *a) |
| static int | mp_cmp_mag (const mp_int *a, const mp_int *b) |
| static int | mp_cnt_lsb (const mp_int *a) |
| static int | mp_montgomery_calc_normalization (mp_int *a, const mp_int *b) |
| static int | mp_montgomery_reduce (mp_int *a, const mp_int *m, mp_digit mp) |
| static int | mp_montgomery_setup (const mp_int *a, mp_digit *mp) |
| static int | mp_reduce (mp_int *a, const mp_int *b, const mp_int *c) |
| static int | mp_reduce_2k (mp_int *a, const mp_int *n, mp_digit d) |
| static int | mp_reduce_2k_setup (const mp_int *a, mp_digit *d) |
| static int | mp_reduce_setup (mp_int *a, const mp_int *b) |
| static void | mp_set (mp_int *a, mp_digit b) |
| static int | mp_sqr (const mp_int *a, mp_int *b) |
| static int | mp_sqrmod (const mp_int *a, mp_int *b, mp_int *c) |
| static void | bn_reverse (unsigned char *s, int len) |
| static int | s_mp_add (mp_int *a, mp_int *b, mp_int *c) |
| static int | s_mp_exptmod (const mp_int *G, const mp_int *X, mp_int *P, mp_int *Y) |
| static int | s_mp_mul_digs (const mp_int *a, const mp_int *b, mp_int *c, int digs) |
| static int | s_mp_mul_high_digs (const mp_int *a, const mp_int *b, mp_int *c, int digs) |
| static int | s_mp_sqr (const mp_int *a, mp_int *b) |
| static int | s_mp_sub (const mp_int *a, const mp_int *b, mp_int *c) |
| static int | mp_exptmod_fast (const mp_int *G, const mp_int *X, mp_int *P, mp_int *Y, int mode) |
| static int | mp_invmod_slow (const mp_int *a, mp_int *b, mp_int *c) |
| static int | mp_karatsuba_mul (const mp_int *a, const mp_int *b, mp_int *c) |
| static int | mp_karatsuba_sqr (const mp_int *a, mp_int *b) |
| static int | mp_grow (mp_int *a, int size) |
| static int | mp_div_2 (const mp_int *a, mp_int *b) |
| static void | mp_exch (mp_int *a, mp_int *b) |
| static int | mp_init (mp_int *a) |
| static int | mp_init_size (mp_int *a, int size) |
| static void | mp_clear (mp_int *a) |
| static void | mp_zero (mp_int *a) |
| static int | mp_abs (const mp_int *a, mp_int *b) |
| static int | fast_mp_invmod (const mp_int *a, mp_int *b, mp_int *c) |
| static int | fast_mp_montgomery_reduce (mp_int *x, const mp_int *n, mp_digit rho) |
| static int | fast_s_mp_mul_digs (const mp_int *a, const mp_int *b, mp_int *c, int digs) |
| static int | fast_s_mp_mul_high_digs (const mp_int *a, const mp_int *b, mp_int *c, int digs) |
| static int | fast_s_mp_sqr (const mp_int *a, mp_int *b) |
| static int | mp_2expt (mp_int *a, int b) |
| int | mp_add (mp_int *a, mp_int *b, mp_int *c) |
| static int | mp_add_d (mp_int *a, mp_digit b, mp_int *c) |
| void | mp_clear_multi (mp_int *mp,...) |
| int | mp_cmp (const mp_int *a, const mp_int *b) |
| int | mp_cmp_d (const mp_int *a, mp_digit b) |
| int | mp_copy (const mp_int *a, mp_int *b) |
| int | mp_count_bits (const mp_int *a) |
| static int | mp_mod_2d (const mp_int *a, int b, mp_int *c) |
| static void | mp_rshd (mp_int *a, int b) |
| static int | mp_div_2d (const mp_int *a, int b, mp_int *c, mp_int *d) |
| static int | mp_lshd (mp_int *a, int b) |
| static int | mp_mul_2d (const mp_int *a, int b, mp_int *c) |
| static int | mp_mul_d (const mp_int *a, mp_digit b, mp_int *c) |
| static int | mp_div (const mp_int *a, const mp_int *b, mp_int *c, mp_int *d) |
| static int | s_is_power_of_two (mp_digit b, int *p) |
| static int | mp_div_d (const mp_int *a, mp_digit b, mp_int *c, mp_digit *d) |
| static int | mp_dr_reduce (mp_int *x, const mp_int *n, mp_digit k) |
| static void | mp_dr_setup (const mp_int *a, mp_digit *d) |
| int | mp_exptmod (const mp_int *G, const mp_int *X, mp_int *P, mp_int *Y) |
| int | mp_gcd (const mp_int *a, const mp_int *b, mp_int *c) |
| unsigned long | mp_get_int (const mp_int *a) |
| int | mp_init_copy (mp_int *a, const mp_int *b) |
| int | mp_init_multi (mp_int *mp,...) |
| int | mp_invmod (const mp_int *a, mp_int *b, mp_int *c) |
| int | mp_lcm (const mp_int *a, const mp_int *b, mp_int *c) |
| int | mp_mod (const mp_int *a, mp_int *b, mp_int *c) |
| static int | mp_mod_d (const mp_int *a, mp_digit b, mp_digit *c) |
| static int | mp_mul_2 (const mp_int *a, mp_int *b) |
| int | mp_mul (const mp_int *a, const mp_int *b, mp_int *c) |
| int | mp_mulmod (const mp_int *a, const mp_int *b, mp_int *c, mp_int *d) |
| static int | mp_prime_is_divisible (const mp_int *a, int *result) |
| static int | mp_prime_miller_rabin (mp_int *a, const mp_int *b, int *result) |
| static int | mp_prime_is_prime (mp_int *a, int t, int *result) |
| int | mp_prime_rabin_miller_trials (int size) |
| int | mp_prime_random_ex (mp_int *a, int t, int size, int flags, ltm_prime_callback cb, void *dat) |
| int | mp_read_unsigned_bin (mp_int *a, const unsigned char *b, int c) |
| int | mp_set_int (mp_int *a, unsigned long b) |
| int | mp_shrink (mp_int *a) |
| int | mp_sub (mp_int *a, mp_int *b, mp_int *c) |
| int | mp_sub_d (mp_int *a, mp_digit b, mp_int *c) |
| int | mp_to_unsigned_bin (const mp_int *a, unsigned char *b) |
| int | mp_unsigned_bin_size (const mp_int *a) |
Variables |
| static const int | KARATSUBA_MUL_CUTOFF = 88 |
| static const int | KARATSUBA_SQR_CUTOFF = 128 |
| static const int | lnz [16] |
| static const mp_digit | __prime_tab [] |
| struct { |
| int k |
| int t |
| } | sizes [] |