diff --git a/bn_mp_balance_mul.c b/bn_mp_balance_mul.c index 8f1daab..dcbb933 100644 --- a/bn_mp_balance_mul.c +++ b/bn_mp_balance_mul.c @@ -16,13 +16,13 @@ */ /* c = |a| * |b| using balancing multiplication. - * If |a| is much less than |b|, - * we firstly split b into chunks such that length of each one is + * If |a| is much less than |b|, + * we firstly split b into chunks such that length of each one is * roughly equal to that of |a|. */ int mp_balance_mul (mp_int * a, mp_int * b, mp_int * c) { - /* the following algorithm is taken from + /* the following algorithm is taken from * Ruby core; namely, function 'bigmul1_balance' * from 'bignum.c' */ @@ -86,7 +86,7 @@ int mp_balance_mul (mp_int * a, mp_int * b, mp_int * c) } } *tmpcn++ = u; - + bn -= r; n += r; } diff --git a/callgraph.txt b/callgraph.txt index 329e1e5..04149cf 100644 --- a/callgraph.txt +++ b/callgraph.txt @@ -10,6 +10,7 @@ BN_MP_SQRT_C | | +--->BN_MP_GROW_C | +--->BN_MP_EXPT_D_C | | +--->BN_MP_INIT_COPY_C +| | | +--->BN_MP_INIT_SIZE_C | | +--->BN_MP_MUL_C | | | +--->BN_MP_TOOM_MUL_C | | | | +--->BN_MP_INIT_MULTI_C @@ -80,6 +81,10 @@ BN_MP_SQRT_C | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_MP_EXCH_C | | | | +--->BN_MP_CLEAR_C +| | | +--->BN_MP_BALANCE_MUL_C +| | | | +--->BN_MP_GROW_C +| | | | +--->BN_MP_INIT_SIZE_C +| | | | +--->BN_MP_CLAMP_C | | +--->BN_MP_CLEAR_C | | +--->BN_MP_SQR_C | | | +--->BN_MP_TOOM_SQR_C @@ -214,6 +219,10 @@ BN_MP_SQRT_C | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_EXCH_C | | | +--->BN_MP_CLEAR_C +| | +--->BN_MP_BALANCE_MUL_C +| | | +--->BN_MP_GROW_C +| | | +--->BN_MP_INIT_SIZE_C +| | | +--->BN_MP_CLAMP_C | +--->BN_MP_SUB_C | | +--->BN_S_MP_ADD_C | | | +--->BN_MP_GROW_C @@ -274,6 +283,7 @@ BN_MP_SQRT_C | +--->BN_MP_CLEAR_C +--->BN_MP_ZERO_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_RSHD_C @@ -454,6 +464,7 @@ BN_MP_IS_SQUARE_C | | | +--->BN_MP_GROW_C | | +--->BN_MP_EXPT_D_C | | | +--->BN_MP_INIT_COPY_C +| | | | +--->BN_MP_INIT_SIZE_C | | | +--->BN_MP_MUL_C | | | | +--->BN_MP_TOOM_MUL_C | | | | | +--->BN_MP_INIT_MULTI_C @@ -524,6 +535,10 @@ BN_MP_IS_SQUARE_C | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_MP_EXCH_C | | | | | +--->BN_MP_CLEAR_C +| | | | +--->BN_MP_BALANCE_MUL_C +| | | | | +--->BN_MP_GROW_C +| | | | | +--->BN_MP_INIT_SIZE_C +| | | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_CLEAR_C | | | +--->BN_MP_SQR_C | | | | +--->BN_MP_TOOM_SQR_C @@ -658,6 +673,10 @@ BN_MP_IS_SQUARE_C | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_MP_EXCH_C | | | | +--->BN_MP_CLEAR_C +| | | +--->BN_MP_BALANCE_MUL_C +| | | | +--->BN_MP_GROW_C +| | | | +--->BN_MP_INIT_SIZE_C +| | | | +--->BN_MP_CLAMP_C | | +--->BN_MP_SUB_C | | | +--->BN_S_MP_ADD_C | | | | +--->BN_MP_GROW_C @@ -718,6 +737,7 @@ BN_MP_IS_SQUARE_C | | +--->BN_MP_CLEAR_C | +--->BN_MP_ZERO_C | +--->BN_MP_INIT_COPY_C +| | +--->BN_MP_INIT_SIZE_C | | +--->BN_MP_COPY_C | | | +--->BN_MP_GROW_C | +--->BN_MP_RSHD_C @@ -1109,6 +1129,7 @@ BN_MP_EXPTMOD_C | | | +--->BN_MP_CLAMP_C | +--->BN_MP_REDUCE_C | | +--->BN_MP_INIT_COPY_C +| | | +--->BN_MP_INIT_SIZE_C | | | +--->BN_MP_COPY_C | | | | +--->BN_MP_GROW_C | | +--->BN_MP_RSHD_C @@ -1177,6 +1198,10 @@ BN_MP_EXPTMOD_C | | | | +--->BN_MP_INIT_SIZE_C | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_MP_EXCH_C +| | | +--->BN_MP_BALANCE_MUL_C +| | | | +--->BN_MP_GROW_C +| | | | +--->BN_MP_INIT_SIZE_C +| | | | +--->BN_MP_CLAMP_C | | +--->BN_S_MP_MUL_HIGH_DIGS_C | | | +--->BN_FAST_S_MP_MUL_HIGH_DIGS_C | | | | +--->BN_MP_GROW_C @@ -1310,6 +1335,10 @@ BN_MP_EXPTMOD_C | | | | +--->BN_MP_INIT_SIZE_C | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_MP_EXCH_C +| | | +--->BN_MP_BALANCE_MUL_C +| | | | +--->BN_MP_GROW_C +| | | | +--->BN_MP_INIT_SIZE_C +| | | | +--->BN_MP_CLAMP_C | | +--->BN_S_MP_ADD_C | | | +--->BN_MP_GROW_C | | | +--->BN_MP_CLAMP_C @@ -1499,6 +1528,10 @@ BN_MP_EXPTMOD_C | | | +--->BN_MP_INIT_SIZE_C | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_EXCH_C +| | +--->BN_MP_BALANCE_MUL_C +| | | +--->BN_MP_GROW_C +| | | +--->BN_MP_INIT_SIZE_C +| | | +--->BN_MP_CLAMP_C | +--->BN_MP_SET_C | | +--->BN_MP_ZERO_C | +--->BN_MP_EXCH_C @@ -1657,6 +1690,10 @@ BN_MP_EXPTMOD_C | | | | +--->BN_MP_INIT_SIZE_C | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_MP_EXCH_C +| | | +--->BN_MP_BALANCE_MUL_C +| | | | +--->BN_MP_GROW_C +| | | | +--->BN_MP_INIT_SIZE_C +| | | | +--->BN_MP_CLAMP_C | | +--->BN_MP_MOD_C | | | +--->BN_MP_DIV_C | | | | +--->BN_MP_CMP_MAG_C @@ -1894,11 +1931,16 @@ BN_MP_EXPTMOD_C | | | +--->BN_MP_INIT_SIZE_C | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_EXCH_C +| | +--->BN_MP_BALANCE_MUL_C +| | | +--->BN_MP_GROW_C +| | | +--->BN_MP_INIT_SIZE_C +| | | +--->BN_MP_CLAMP_C | +--->BN_MP_EXCH_C BN_MP_OR_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_CLAMP_C @@ -2159,6 +2201,7 @@ BN_MP_PRIME_FERMAT_C | | | | +--->BN_MP_CLAMP_C | | +--->BN_MP_REDUCE_C | | | +--->BN_MP_INIT_COPY_C +| | | | +--->BN_MP_INIT_SIZE_C | | | | +--->BN_MP_COPY_C | | | | | +--->BN_MP_GROW_C | | | +--->BN_MP_RSHD_C @@ -2227,6 +2270,10 @@ BN_MP_PRIME_FERMAT_C | | | | | +--->BN_MP_INIT_SIZE_C | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_MP_EXCH_C +| | | | +--->BN_MP_BALANCE_MUL_C +| | | | | +--->BN_MP_GROW_C +| | | | | +--->BN_MP_INIT_SIZE_C +| | | | | +--->BN_MP_CLAMP_C | | | +--->BN_S_MP_MUL_HIGH_DIGS_C | | | | +--->BN_FAST_S_MP_MUL_HIGH_DIGS_C | | | | | +--->BN_MP_GROW_C @@ -2359,6 +2406,10 @@ BN_MP_PRIME_FERMAT_C | | | | | +--->BN_MP_INIT_SIZE_C | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_MP_EXCH_C +| | | | +--->BN_MP_BALANCE_MUL_C +| | | | | +--->BN_MP_GROW_C +| | | | | +--->BN_MP_INIT_SIZE_C +| | | | | +--->BN_MP_CLAMP_C | | | +--->BN_S_MP_ADD_C | | | | +--->BN_MP_GROW_C | | | | +--->BN_MP_CLAMP_C @@ -2548,6 +2599,10 @@ BN_MP_PRIME_FERMAT_C | | | | +--->BN_MP_INIT_SIZE_C | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_MP_EXCH_C +| | | +--->BN_MP_BALANCE_MUL_C +| | | | +--->BN_MP_GROW_C +| | | | +--->BN_MP_INIT_SIZE_C +| | | | +--->BN_MP_CLAMP_C | | +--->BN_MP_SET_C | | | +--->BN_MP_ZERO_C | | +--->BN_MP_EXCH_C @@ -2706,6 +2761,10 @@ BN_MP_PRIME_FERMAT_C | | | | | +--->BN_MP_INIT_SIZE_C | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_MP_EXCH_C +| | | | +--->BN_MP_BALANCE_MUL_C +| | | | | +--->BN_MP_GROW_C +| | | | | +--->BN_MP_INIT_SIZE_C +| | | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_MOD_C | | | | +--->BN_MP_DIV_C | | | | | +--->BN_MP_CMP_MAG_C @@ -2943,12 +3002,79 @@ BN_MP_PRIME_FERMAT_C | | | | +--->BN_MP_INIT_SIZE_C | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_MP_EXCH_C +| | | +--->BN_MP_BALANCE_MUL_C +| | | | +--->BN_MP_GROW_C +| | | | +--->BN_MP_INIT_SIZE_C +| | | | +--->BN_MP_CLAMP_C | | +--->BN_MP_EXCH_C +--->BN_MP_CMP_C | +--->BN_MP_CMP_MAG_C +--->BN_MP_CLEAR_C +BN_MP_BALANCE_MUL_C ++--->BN_MP_GROW_C ++--->BN_MP_INIT_SIZE_C +| +--->BN_MP_INIT_C ++--->BN_MP_MUL_C +| +--->BN_MP_TOOM_MUL_C +| | +--->BN_MP_INIT_MULTI_C +| | | +--->BN_MP_INIT_C +| | | +--->BN_MP_CLEAR_C +| | +--->BN_MP_MOD_2D_C +| | | +--->BN_MP_ZERO_C +| | | +--->BN_MP_COPY_C +| | | +--->BN_MP_CLAMP_C +| | +--->BN_MP_COPY_C +| | +--->BN_MP_RSHD_C +| | | +--->BN_MP_ZERO_C +| | +--->BN_MP_MUL_2_C +| | +--->BN_MP_ADD_C +| | | +--->BN_S_MP_ADD_C +| | | | +--->BN_MP_CLAMP_C +| | | +--->BN_MP_CMP_MAG_C +| | | +--->BN_S_MP_SUB_C +| | | | +--->BN_MP_CLAMP_C +| | +--->BN_MP_SUB_C +| | | +--->BN_S_MP_ADD_C +| | | | +--->BN_MP_CLAMP_C +| | | +--->BN_MP_CMP_MAG_C +| | | +--->BN_S_MP_SUB_C +| | | | +--->BN_MP_CLAMP_C +| | +--->BN_MP_DIV_2_C +| | | +--->BN_MP_CLAMP_C +| | +--->BN_MP_MUL_2D_C +| | | +--->BN_MP_LSHD_C +| | | +--->BN_MP_CLAMP_C +| | +--->BN_MP_MUL_D_C +| | | +--->BN_MP_CLAMP_C +| | +--->BN_MP_DIV_3_C +| | | +--->BN_MP_CLAMP_C +| | | +--->BN_MP_EXCH_C +| | | +--->BN_MP_CLEAR_C +| | +--->BN_MP_LSHD_C +| | +--->BN_MP_CLEAR_MULTI_C +| | | +--->BN_MP_CLEAR_C +| +--->BN_MP_KARATSUBA_MUL_C +| | +--->BN_MP_CLAMP_C +| | +--->BN_S_MP_ADD_C +| | +--->BN_MP_ADD_C +| | | +--->BN_MP_CMP_MAG_C +| | | +--->BN_S_MP_SUB_C +| | +--->BN_S_MP_SUB_C +| | +--->BN_MP_LSHD_C +| | | +--->BN_MP_RSHD_C +| | | | +--->BN_MP_ZERO_C +| | +--->BN_MP_CLEAR_C +| +--->BN_FAST_S_MP_MUL_DIGS_C +| | +--->BN_MP_CLAMP_C +| +--->BN_S_MP_MUL_DIGS_C +| | +--->BN_MP_CLAMP_C +| | +--->BN_MP_EXCH_C +| | +--->BN_MP_CLEAR_C ++--->BN_MP_CLAMP_C + + BN_MP_SUBMOD_C +--->BN_MP_INIT_C +--->BN_MP_SUB_C @@ -3021,6 +3147,7 @@ BN_MP_MOD_2D_C BN_MP_TORADIX_N_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_DIV_D_C @@ -3055,6 +3182,7 @@ BNCORE_C BN_MP_TORADIX_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_DIV_D_C @@ -3426,6 +3554,7 @@ BN_MP_INVMOD_C BN_MP_AND_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_CLAMP_C @@ -3440,6 +3569,7 @@ BN_MP_MUL_D_C BN_MP_EXPORT_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_COUNT_BITS_C @@ -3554,6 +3684,7 @@ BN_MP_FWRITE_C +--->BN_MP_RADIX_SIZE_C | +--->BN_MP_COUNT_BITS_C | +--->BN_MP_INIT_COPY_C +| | +--->BN_MP_INIT_SIZE_C | | +--->BN_MP_COPY_C | | | +--->BN_MP_GROW_C | +--->BN_MP_DIV_D_C @@ -3579,6 +3710,7 @@ BN_MP_FWRITE_C | +--->BN_MP_CLEAR_C +--->BN_MP_TORADIX_C | +--->BN_MP_INIT_COPY_C +| | +--->BN_MP_INIT_SIZE_C | | +--->BN_MP_COPY_C | | | +--->BN_MP_GROW_C | +--->BN_MP_DIV_D_C @@ -3620,6 +3752,7 @@ BN_MP_N_ROOT_C | +--->BN_MP_GROW_C +--->BN_MP_EXPT_D_C | +--->BN_MP_INIT_COPY_C +| | +--->BN_MP_INIT_SIZE_C | +--->BN_MP_MUL_C | | +--->BN_MP_TOOM_MUL_C | | | +--->BN_MP_INIT_MULTI_C @@ -3690,6 +3823,10 @@ BN_MP_N_ROOT_C | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_EXCH_C | | | +--->BN_MP_CLEAR_C +| | +--->BN_MP_BALANCE_MUL_C +| | | +--->BN_MP_GROW_C +| | | +--->BN_MP_INIT_SIZE_C +| | | +--->BN_MP_CLAMP_C | +--->BN_MP_CLEAR_C | +--->BN_MP_SQR_C | | +--->BN_MP_TOOM_SQR_C @@ -3824,6 +3961,10 @@ BN_MP_N_ROOT_C | | +--->BN_MP_CLAMP_C | | +--->BN_MP_EXCH_C | | +--->BN_MP_CLEAR_C +| +--->BN_MP_BALANCE_MUL_C +| | +--->BN_MP_GROW_C +| | +--->BN_MP_INIT_SIZE_C +| | +--->BN_MP_CLAMP_C +--->BN_MP_SUB_C | +--->BN_S_MP_ADD_C | | +--->BN_MP_GROW_C @@ -3890,6 +4031,7 @@ BN_MP_PRIME_RABIN_MILLER_TRIALS_C BN_MP_RADIX_SIZE_C +--->BN_MP_COUNT_BITS_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_DIV_D_C @@ -3969,6 +4111,7 @@ BN_MP_PRIME_RANDOM_EX_C | | +--->BN_MP_ZERO_C | +--->BN_MP_PRIME_MILLER_RABIN_C | | +--->BN_MP_INIT_COPY_C +| | | +--->BN_MP_INIT_SIZE_C | | | +--->BN_MP_COPY_C | | | | +--->BN_MP_GROW_C | | +--->BN_MP_SUB_D_C @@ -4263,6 +4406,10 @@ BN_MP_PRIME_RANDOM_EX_C | | | | | | | +--->BN_MP_INIT_SIZE_C | | | | | | | +--->BN_MP_CLAMP_C | | | | | | | +--->BN_MP_EXCH_C +| | | | | | +--->BN_MP_BALANCE_MUL_C +| | | | | | | +--->BN_MP_GROW_C +| | | | | | | +--->BN_MP_INIT_SIZE_C +| | | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_S_MP_MUL_HIGH_DIGS_C | | | | | | +--->BN_FAST_S_MP_MUL_HIGH_DIGS_C | | | | | | | +--->BN_MP_GROW_C @@ -4384,6 +4531,10 @@ BN_MP_PRIME_RANDOM_EX_C | | | | | | | +--->BN_MP_INIT_SIZE_C | | | | | | | +--->BN_MP_CLAMP_C | | | | | | | +--->BN_MP_EXCH_C +| | | | | | +--->BN_MP_BALANCE_MUL_C +| | | | | | | +--->BN_MP_GROW_C +| | | | | | | +--->BN_MP_INIT_SIZE_C +| | | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_S_MP_ADD_C | | | | | | +--->BN_MP_GROW_C | | | | | | +--->BN_MP_CLAMP_C @@ -4565,6 +4716,10 @@ BN_MP_PRIME_RANDOM_EX_C | | | | | | +--->BN_MP_INIT_SIZE_C | | | | | | +--->BN_MP_CLAMP_C | | | | | | +--->BN_MP_EXCH_C +| | | | | +--->BN_MP_BALANCE_MUL_C +| | | | | | +--->BN_MP_GROW_C +| | | | | | +--->BN_MP_INIT_SIZE_C +| | | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_MP_EXCH_C | | | +--->BN_MP_DR_IS_MODULUS_C | | | +--->BN_MP_REDUCE_IS_2K_C @@ -4701,6 +4856,10 @@ BN_MP_PRIME_RANDOM_EX_C | | | | | | | +--->BN_MP_INIT_SIZE_C | | | | | | | +--->BN_MP_CLAMP_C | | | | | | | +--->BN_MP_EXCH_C +| | | | | | +--->BN_MP_BALANCE_MUL_C +| | | | | | | +--->BN_MP_GROW_C +| | | | | | | +--->BN_MP_INIT_SIZE_C +| | | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_MP_MOD_C | | | | | | +--->BN_MP_DIV_C | | | | | | | +--->BN_MP_CMP_MAG_C @@ -4921,6 +5080,10 @@ BN_MP_PRIME_RANDOM_EX_C | | | | | | +--->BN_MP_INIT_SIZE_C | | | | | | +--->BN_MP_CLAMP_C | | | | | | +--->BN_MP_EXCH_C +| | | | | +--->BN_MP_BALANCE_MUL_C +| | | | | | +--->BN_MP_GROW_C +| | | | | | +--->BN_MP_INIT_SIZE_C +| | | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_MP_EXCH_C | | +--->BN_MP_CMP_C | | | +--->BN_MP_CMP_MAG_C @@ -5127,6 +5290,7 @@ BN_MP_KARATSUBA_SQR_C BN_MP_INIT_COPY_C ++--->BN_MP_INIT_SIZE_C +--->BN_MP_COPY_C | +--->BN_MP_GROW_C @@ -5316,6 +5480,11 @@ BN_MP_TOOM_MUL_C | | +--->BN_MP_CLAMP_C | | +--->BN_MP_EXCH_C | | +--->BN_MP_CLEAR_C +| +--->BN_MP_BALANCE_MUL_C +| | +--->BN_MP_GROW_C +| | +--->BN_MP_INIT_SIZE_C +| | | +--->BN_MP_INIT_C +| | +--->BN_MP_CLAMP_C +--->BN_MP_MUL_2_C | +--->BN_MP_GROW_C +--->BN_MP_ADD_C @@ -5388,6 +5557,7 @@ BN_MP_PRIME_IS_PRIME_C | +--->BN_MP_ZERO_C +--->BN_MP_PRIME_MILLER_RABIN_C | +--->BN_MP_INIT_COPY_C +| | +--->BN_MP_INIT_SIZE_C | | +--->BN_MP_COPY_C | | | +--->BN_MP_GROW_C | +--->BN_MP_SUB_D_C @@ -5682,6 +5852,10 @@ BN_MP_PRIME_IS_PRIME_C | | | | | | +--->BN_MP_INIT_SIZE_C | | | | | | +--->BN_MP_CLAMP_C | | | | | | +--->BN_MP_EXCH_C +| | | | | +--->BN_MP_BALANCE_MUL_C +| | | | | | +--->BN_MP_GROW_C +| | | | | | +--->BN_MP_INIT_SIZE_C +| | | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_S_MP_MUL_HIGH_DIGS_C | | | | | +--->BN_FAST_S_MP_MUL_HIGH_DIGS_C | | | | | | +--->BN_MP_GROW_C @@ -5803,6 +5977,10 @@ BN_MP_PRIME_IS_PRIME_C | | | | | | +--->BN_MP_INIT_SIZE_C | | | | | | +--->BN_MP_CLAMP_C | | | | | | +--->BN_MP_EXCH_C +| | | | | +--->BN_MP_BALANCE_MUL_C +| | | | | | +--->BN_MP_GROW_C +| | | | | | +--->BN_MP_INIT_SIZE_C +| | | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_S_MP_ADD_C | | | | | +--->BN_MP_GROW_C | | | | | +--->BN_MP_CLAMP_C @@ -5984,6 +6162,10 @@ BN_MP_PRIME_IS_PRIME_C | | | | | +--->BN_MP_INIT_SIZE_C | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_MP_EXCH_C +| | | | +--->BN_MP_BALANCE_MUL_C +| | | | | +--->BN_MP_GROW_C +| | | | | +--->BN_MP_INIT_SIZE_C +| | | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_EXCH_C | | +--->BN_MP_DR_IS_MODULUS_C | | +--->BN_MP_REDUCE_IS_2K_C @@ -6120,6 +6302,10 @@ BN_MP_PRIME_IS_PRIME_C | | | | | | +--->BN_MP_INIT_SIZE_C | | | | | | +--->BN_MP_CLAMP_C | | | | | | +--->BN_MP_EXCH_C +| | | | | +--->BN_MP_BALANCE_MUL_C +| | | | | | +--->BN_MP_GROW_C +| | | | | | +--->BN_MP_INIT_SIZE_C +| | | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_MP_MOD_C | | | | | +--->BN_MP_DIV_C | | | | | | +--->BN_MP_CMP_MAG_C @@ -6340,6 +6526,10 @@ BN_MP_PRIME_IS_PRIME_C | | | | | +--->BN_MP_INIT_SIZE_C | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_MP_EXCH_C +| | | | +--->BN_MP_BALANCE_MUL_C +| | | | | +--->BN_MP_GROW_C +| | | | | +--->BN_MP_INIT_SIZE_C +| | | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_EXCH_C | +--->BN_MP_CMP_C | | +--->BN_MP_CMP_MAG_C @@ -6623,6 +6813,10 @@ BN_MP_EXPTMOD_FAST_C | | | +--->BN_MP_INIT_SIZE_C | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_EXCH_C +| | +--->BN_MP_BALANCE_MUL_C +| | | +--->BN_MP_GROW_C +| | | +--->BN_MP_INIT_SIZE_C +| | | +--->BN_MP_CLAMP_C | +--->BN_MP_MOD_C | | +--->BN_MP_DIV_C | | | +--->BN_MP_CMP_MAG_C @@ -6866,11 +7060,16 @@ BN_MP_EXPTMOD_FAST_C | | +--->BN_MP_INIT_SIZE_C | | +--->BN_MP_CLAMP_C | | +--->BN_MP_EXCH_C +| +--->BN_MP_BALANCE_MUL_C +| | +--->BN_MP_GROW_C +| | +--->BN_MP_INIT_SIZE_C +| | +--->BN_MP_CLAMP_C +--->BN_MP_EXCH_C BN_MP_TO_UNSIGNED_BIN_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_DIV_2D_C @@ -7078,6 +7277,10 @@ BN_MP_MULMOD_C | | +--->BN_MP_CLAMP_C | | +--->BN_MP_EXCH_C | | +--->BN_MP_CLEAR_C +| +--->BN_MP_BALANCE_MUL_C +| | +--->BN_MP_GROW_C +| | +--->BN_MP_INIT_SIZE_C +| | +--->BN_MP_CLAMP_C +--->BN_MP_CLEAR_C +--->BN_MP_MOD_C | +--->BN_MP_DIV_C @@ -7186,6 +7389,7 @@ BN_S_MP_MUL_DIGS_C BN_MP_XOR_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_CLAMP_C @@ -7279,6 +7483,7 @@ BN_MP_PRIME_NEXT_PRIME_C | +--->BN_MP_CLAMP_C +--->BN_MP_PRIME_MILLER_RABIN_C | +--->BN_MP_INIT_COPY_C +| | +--->BN_MP_INIT_SIZE_C | | +--->BN_MP_COPY_C | | | +--->BN_MP_GROW_C | +--->BN_MP_CNT_LSB_C @@ -7568,6 +7773,10 @@ BN_MP_PRIME_NEXT_PRIME_C | | | | | | +--->BN_MP_INIT_SIZE_C | | | | | | +--->BN_MP_CLAMP_C | | | | | | +--->BN_MP_EXCH_C +| | | | | +--->BN_MP_BALANCE_MUL_C +| | | | | | +--->BN_MP_GROW_C +| | | | | | +--->BN_MP_INIT_SIZE_C +| | | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_S_MP_MUL_HIGH_DIGS_C | | | | | +--->BN_FAST_S_MP_MUL_HIGH_DIGS_C | | | | | | +--->BN_MP_GROW_C @@ -7689,6 +7898,10 @@ BN_MP_PRIME_NEXT_PRIME_C | | | | | | +--->BN_MP_INIT_SIZE_C | | | | | | +--->BN_MP_CLAMP_C | | | | | | +--->BN_MP_EXCH_C +| | | | | +--->BN_MP_BALANCE_MUL_C +| | | | | | +--->BN_MP_GROW_C +| | | | | | +--->BN_MP_INIT_SIZE_C +| | | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_S_MP_ADD_C | | | | | +--->BN_MP_GROW_C | | | | | +--->BN_MP_CLAMP_C @@ -7870,6 +8083,10 @@ BN_MP_PRIME_NEXT_PRIME_C | | | | | +--->BN_MP_INIT_SIZE_C | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_MP_EXCH_C +| | | | +--->BN_MP_BALANCE_MUL_C +| | | | | +--->BN_MP_GROW_C +| | | | | +--->BN_MP_INIT_SIZE_C +| | | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_EXCH_C | | +--->BN_MP_DR_IS_MODULUS_C | | +--->BN_MP_REDUCE_IS_2K_C @@ -8006,6 +8223,10 @@ BN_MP_PRIME_NEXT_PRIME_C | | | | | | +--->BN_MP_INIT_SIZE_C | | | | | | +--->BN_MP_CLAMP_C | | | | | | +--->BN_MP_EXCH_C +| | | | | +--->BN_MP_BALANCE_MUL_C +| | | | | | +--->BN_MP_GROW_C +| | | | | | +--->BN_MP_INIT_SIZE_C +| | | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_MP_MOD_C | | | | | +--->BN_MP_DIV_C | | | | | | +--->BN_MP_CMP_MAG_C @@ -8226,6 +8447,10 @@ BN_MP_PRIME_NEXT_PRIME_C | | | | | +--->BN_MP_INIT_SIZE_C | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_MP_EXCH_C +| | | | +--->BN_MP_BALANCE_MUL_C +| | | | | +--->BN_MP_GROW_C +| | | | | +--->BN_MP_INIT_SIZE_C +| | | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_EXCH_C | +--->BN_MP_CMP_C | | +--->BN_MP_CMP_MAG_C @@ -8466,6 +8691,7 @@ BN_MP_LCM_C | | +--->BN_MP_COPY_C | | | +--->BN_MP_GROW_C | +--->BN_MP_INIT_COPY_C +| | +--->BN_MP_INIT_SIZE_C | | +--->BN_MP_COPY_C | | | +--->BN_MP_GROW_C | +--->BN_MP_CNT_LSB_C @@ -8617,6 +8843,11 @@ BN_MP_LCM_C | | +--->BN_MP_CLAMP_C | | +--->BN_MP_EXCH_C | | +--->BN_MP_CLEAR_C +| +--->BN_MP_BALANCE_MUL_C +| | +--->BN_MP_GROW_C +| | +--->BN_MP_INIT_SIZE_C +| | | +--->BN_MP_INIT_C +| | +--->BN_MP_CLAMP_C +--->BN_MP_CLEAR_MULTI_C | +--->BN_MP_CLEAR_C @@ -8708,6 +8939,10 @@ BN_MP_REDUCE_2K_L_C | | +--->BN_MP_CLAMP_C | | +--->BN_MP_EXCH_C | | +--->BN_MP_CLEAR_C +| +--->BN_MP_BALANCE_MUL_C +| | +--->BN_MP_GROW_C +| | +--->BN_MP_INIT_SIZE_C +| | +--->BN_MP_CLAMP_C +--->BN_S_MP_ADD_C | +--->BN_MP_GROW_C | +--->BN_MP_CLAMP_C @@ -8757,6 +8992,7 @@ BN_MP_GCD_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_CNT_LSB_C @@ -8898,6 +9134,7 @@ BN_ERROR_C BN_MP_EXPT_D_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_SET_C @@ -8976,6 +9213,10 @@ BN_MP_EXPT_D_C | | +--->BN_MP_CLAMP_C | | +--->BN_MP_EXCH_C | | +--->BN_MP_CLEAR_C +| +--->BN_MP_BALANCE_MUL_C +| | +--->BN_MP_GROW_C +| | +--->BN_MP_INIT_SIZE_C +| | +--->BN_MP_CLAMP_C +--->BN_MP_CLEAR_C +--->BN_MP_SQR_C | +--->BN_MP_TOOM_SQR_C @@ -9102,6 +9343,7 @@ BN_S_MP_EXPTMOD_C | | +--->BN_MP_CLAMP_C +--->BN_MP_REDUCE_C | +--->BN_MP_INIT_COPY_C +| | +--->BN_MP_INIT_SIZE_C | | +--->BN_MP_COPY_C | | | +--->BN_MP_GROW_C | +--->BN_MP_RSHD_C @@ -9171,6 +9413,10 @@ BN_S_MP_EXPTMOD_C | | | +--->BN_MP_INIT_SIZE_C | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_EXCH_C +| | +--->BN_MP_BALANCE_MUL_C +| | | +--->BN_MP_GROW_C +| | | +--->BN_MP_INIT_SIZE_C +| | | +--->BN_MP_CLAMP_C | +--->BN_S_MP_MUL_HIGH_DIGS_C | | +--->BN_FAST_S_MP_MUL_HIGH_DIGS_C | | | +--->BN_MP_GROW_C @@ -9305,6 +9551,10 @@ BN_S_MP_EXPTMOD_C | | | +--->BN_MP_INIT_SIZE_C | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_EXCH_C +| | +--->BN_MP_BALANCE_MUL_C +| | | +--->BN_MP_GROW_C +| | | +--->BN_MP_INIT_SIZE_C +| | | +--->BN_MP_CLAMP_C | +--->BN_S_MP_ADD_C | | +--->BN_MP_GROW_C | | +--->BN_MP_CLAMP_C @@ -9498,6 +9748,10 @@ BN_S_MP_EXPTMOD_C | | +--->BN_MP_INIT_SIZE_C | | +--->BN_MP_CLAMP_C | | +--->BN_MP_EXCH_C +| +--->BN_MP_BALANCE_MUL_C +| | +--->BN_MP_GROW_C +| | +--->BN_MP_INIT_SIZE_C +| | +--->BN_MP_CLAMP_C +--->BN_MP_SET_C | +--->BN_MP_ZERO_C +--->BN_MP_EXCH_C @@ -9532,6 +9786,7 @@ BN_MP_SUB_D_C BN_MP_TO_SIGNED_BIN_C +--->BN_MP_TO_UNSIGNED_BIN_C | +--->BN_MP_INIT_COPY_C +| | +--->BN_MP_INIT_SIZE_C | | +--->BN_MP_COPY_C | | | +--->BN_MP_GROW_C | +--->BN_MP_DIV_2D_C @@ -9740,6 +9995,7 @@ BN_MP_TO_SIGNED_BIN_N_C +--->BN_MP_TO_SIGNED_BIN_C | +--->BN_MP_TO_UNSIGNED_BIN_C | | +--->BN_MP_INIT_COPY_C +| | | +--->BN_MP_INIT_SIZE_C | | | +--->BN_MP_COPY_C | | | | +--->BN_MP_GROW_C | | +--->BN_MP_DIV_2D_C @@ -9790,6 +10046,7 @@ BN_MP_TO_UNSIGNED_BIN_N_C | +--->BN_MP_COUNT_BITS_C +--->BN_MP_TO_UNSIGNED_BIN_C | +--->BN_MP_INIT_COPY_C +| | +--->BN_MP_INIT_SIZE_C | | +--->BN_MP_COPY_C | | | +--->BN_MP_GROW_C | +--->BN_MP_DIV_2D_C @@ -9866,6 +10123,7 @@ BN_MP_REDUCE_C | | +--->BN_MP_CLAMP_C | | +--->BN_MP_CLEAR_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_RSHD_C @@ -9940,6 +10198,10 @@ BN_MP_REDUCE_C | | +--->BN_MP_CLAMP_C | | +--->BN_MP_EXCH_C | | +--->BN_MP_CLEAR_C +| +--->BN_MP_BALANCE_MUL_C +| | +--->BN_MP_GROW_C +| | +--->BN_MP_INIT_SIZE_C +| | +--->BN_MP_CLAMP_C +--->BN_S_MP_MUL_HIGH_DIGS_C | +--->BN_FAST_S_MP_MUL_HIGH_DIGS_C | | +--->BN_MP_GROW_C @@ -10009,6 +10271,7 @@ BN_MP_GET_INT_C BN_MP_JACOBI_C +--->BN_MP_CMP_D_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_CNT_LSB_C @@ -10161,6 +10424,18 @@ BN_MP_MUL_C | +--->BN_MP_CLAMP_C | +--->BN_MP_EXCH_C | +--->BN_MP_CLEAR_C ++--->BN_MP_BALANCE_MUL_C +| +--->BN_MP_GROW_C +| +--->BN_MP_INIT_SIZE_C +| | +--->BN_MP_INIT_C +| +--->BN_MP_CLAMP_C + + +BN_MP_DR_REDUCE_C ++--->BN_MP_GROW_C ++--->BN_MP_CLAMP_C ++--->BN_MP_CMP_MAG_C ++--->BN_S_MP_SUB_C BN_MP_EXTEUCLID_C @@ -10291,6 +10566,11 @@ BN_MP_EXTEUCLID_C | | +--->BN_MP_CLAMP_C | | +--->BN_MP_EXCH_C | | +--->BN_MP_CLEAR_C +| +--->BN_MP_BALANCE_MUL_C +| | +--->BN_MP_GROW_C +| | +--->BN_MP_INIT_SIZE_C +| | | +--->BN_MP_INIT_C +| | +--->BN_MP_CLAMP_C +--->BN_MP_SUB_C | +--->BN_S_MP_ADD_C | | +--->BN_MP_GROW_C @@ -10305,13 +10585,6 @@ BN_MP_EXTEUCLID_C | +--->BN_MP_CLEAR_C -BN_MP_DR_REDUCE_C -+--->BN_MP_GROW_C -+--->BN_MP_CLAMP_C -+--->BN_MP_CMP_MAG_C -+--->BN_S_MP_SUB_C - - BN_MP_FREAD_C +--->BN_MP_ZERO_C +--->BN_MP_MUL_D_C @@ -10451,6 +10724,11 @@ BN_MP_KARATSUBA_MUL_C | | +--->BN_MP_CLAMP_C | | +--->BN_MP_EXCH_C | | +--->BN_MP_CLEAR_C +| +--->BN_MP_BALANCE_MUL_C +| | +--->BN_MP_GROW_C +| | +--->BN_MP_INIT_SIZE_C +| | | +--->BN_MP_INIT_C +| | +--->BN_MP_CLAMP_C +--->BN_MP_INIT_SIZE_C | +--->BN_MP_INIT_C +--->BN_MP_CLAMP_C @@ -10478,6 +10756,7 @@ BN_MP_LSHD_C BN_MP_PRIME_MILLER_RABIN_C +--->BN_MP_CMP_D_C +--->BN_MP_INIT_COPY_C +| +--->BN_MP_INIT_SIZE_C | +--->BN_MP_COPY_C | | +--->BN_MP_GROW_C +--->BN_MP_SUB_D_C @@ -10779,6 +11058,10 @@ BN_MP_PRIME_MILLER_RABIN_C | | | | | +--->BN_MP_INIT_SIZE_C | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_MP_EXCH_C +| | | | +--->BN_MP_BALANCE_MUL_C +| | | | | +--->BN_MP_GROW_C +| | | | | +--->BN_MP_INIT_SIZE_C +| | | | | +--->BN_MP_CLAMP_C | | | +--->BN_S_MP_MUL_HIGH_DIGS_C | | | | +--->BN_FAST_S_MP_MUL_HIGH_DIGS_C | | | | | +--->BN_MP_GROW_C @@ -10902,6 +11185,10 @@ BN_MP_PRIME_MILLER_RABIN_C | | | | | +--->BN_MP_INIT_SIZE_C | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_MP_EXCH_C +| | | | +--->BN_MP_BALANCE_MUL_C +| | | | | +--->BN_MP_GROW_C +| | | | | +--->BN_MP_INIT_SIZE_C +| | | | | +--->BN_MP_CLAMP_C | | | +--->BN_S_MP_ADD_C | | | | +--->BN_MP_GROW_C | | | | +--->BN_MP_CLAMP_C @@ -11084,6 +11371,10 @@ BN_MP_PRIME_MILLER_RABIN_C | | | | +--->BN_MP_INIT_SIZE_C | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_MP_EXCH_C +| | | +--->BN_MP_BALANCE_MUL_C +| | | | +--->BN_MP_GROW_C +| | | | +--->BN_MP_INIT_SIZE_C +| | | | +--->BN_MP_CLAMP_C | | +--->BN_MP_SET_C | | | +--->BN_MP_ZERO_C | | +--->BN_MP_EXCH_C @@ -11224,6 +11515,10 @@ BN_MP_PRIME_MILLER_RABIN_C | | | | | +--->BN_MP_INIT_SIZE_C | | | | | +--->BN_MP_CLAMP_C | | | | | +--->BN_MP_EXCH_C +| | | | +--->BN_MP_BALANCE_MUL_C +| | | | | +--->BN_MP_GROW_C +| | | | | +--->BN_MP_INIT_SIZE_C +| | | | | +--->BN_MP_CLAMP_C | | | +--->BN_MP_MOD_C | | | | +--->BN_MP_DIV_C | | | | | +--->BN_MP_CMP_MAG_C @@ -11447,6 +11742,10 @@ BN_MP_PRIME_MILLER_RABIN_C | | | | +--->BN_MP_INIT_SIZE_C | | | | +--->BN_MP_CLAMP_C | | | | +--->BN_MP_EXCH_C +| | | +--->BN_MP_BALANCE_MUL_C +| | | | +--->BN_MP_GROW_C +| | | | +--->BN_MP_INIT_SIZE_C +| | | | +--->BN_MP_CLAMP_C | | +--->BN_MP_EXCH_C +--->BN_MP_CMP_C | +--->BN_MP_CMP_MAG_C diff --git a/tommath_class.h b/tommath_class.h index 36e5962..238e72d 100644 --- a/tommath_class.h +++ b/tommath_class.h @@ -211,6 +211,13 @@ #define BN_MP_CLEAR_C #endif +#if defined(BN_MP_BALANCE_MUL_C) + #define BN_MP_GROW_C + #define BN_MP_INIT_SIZE_C + #define BN_MP_MUL_C + #define BN_MP_CLAMP_C +#endif + #if defined(BN_MP_CLAMP_C) #endif @@ -423,6 +430,7 @@ #endif #if defined(BN_MP_INIT_COPY_C) + #define BN_MP_INIT_SIZE_C #define BN_MP_COPY_C #endif @@ -569,12 +577,12 @@ #endif #if defined(BN_MP_MUL_C) - #define BN_MP_BALANCE_MUL_C #define BN_MP_TOOM_MUL_C #define BN_MP_KARATSUBA_MUL_C #define BN_FAST_S_MP_MUL_DIGS_C #define BN_S_MP_MUL_C #define BN_S_MP_MUL_DIGS_C + #define BN_MP_BALANCE_MUL_C #endif #if defined(BN_MP_MUL_2_C)