Skip to content

Commit 8e1704d

Browse files
authored
Merge pull request #288 from libtom/deprecate-is-divisible
deprecate mp_prime_is_divisible and ltm_prime_tab
2 parents 50f0bd7 + bcec605 commit 8e1704d

15 files changed

+139
-183
lines changed

bn_deprecated.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ int mp_get_bit(const mp_int *a, int b)
1212
return (s_mp_get_bit(a, (unsigned int)b) == MP_YES) ? MP_YES : MP_NO;
1313
}
1414
#endif
15-
#ifdef BN_S_MP_JACOBI_C
16-
mp_err s_mp_jacobi(const mp_int *a, const mp_int *n, int *c)
15+
#ifdef BN_MP_JACOBI_C
16+
mp_err mp_jacobi(const mp_int *a, const mp_int *n, int *c)
1717
{
1818
if (a->sign == MP_NEG) {
1919
return MP_VAL;
@@ -24,12 +24,6 @@ mp_err s_mp_jacobi(const mp_int *a, const mp_int *n, int *c)
2424
return mp_kronecker(a, n, c);
2525
}
2626
#endif
27-
#ifdef BN_MP_JACOBI_C
28-
mp_err mp_jacobi(const mp_int *a, const mp_int *n, int *c)
29-
{
30-
return s_mp_jacobi(a, n, c);
31-
}
32-
#endif
3327
#ifdef BN_MP_PRIME_RANDOM_EX_C
3428
mp_err mp_prime_random_ex(mp_int *a, int t, int size, int flags, private_mp_prime_callback cb, void *dat)
3529
{
@@ -191,4 +185,10 @@ unsigned long long mp_get_long_long(const mp_int *a)
191185
return (unsigned long long)mp_get_mag64(a);
192186
}
193187
#endif
188+
#ifdef BN_MP_PRIME_IS_DIVISIBLE_C
189+
mp_err mp_prime_is_divisible(const mp_int *a, mp_bool *result)
190+
{
191+
return s_mp_prime_is_divisible(a, result);
192+
}
193+
#endif
194194
#endif

bn_mp_prime_is_prime.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,21 +51,21 @@ mp_err mp_prime_is_prime(const mp_int *a, int t, mp_bool *result)
5151
}
5252

5353
/* is the input equal to one of the primes in the table? */
54-
for (ix = 0; ix < MP_PRIME_SIZE; ix++) {
55-
if (mp_cmp_d(a, ltm_prime_tab[ix]) == MP_EQ) {
54+
for (ix = 0; ix < PRIVATE_MP_PRIME_TAB_SIZE; ix++) {
55+
if (mp_cmp_d(a, s_mp_prime_tab[ix]) == MP_EQ) {
5656
*result = MP_YES;
5757
return MP_OKAY;
5858
}
5959
}
6060
#ifdef MP_8BIT
6161
/* The search in the loop above was exhaustive in this case */
62-
if ((a->used == 1) && (MP_PRIME_SIZE >= 31)) {
62+
if ((a->used == 1) && (PRIVATE_MP_PRIME_TAB_SIZE >= 31)) {
6363
return MP_OKAY;
6464
}
6565
#endif
6666

6767
/* first perform trial division */
68-
if ((err = mp_prime_is_divisible(a, &res)) != MP_OKAY) {
68+
if ((err = s_mp_prime_is_divisible(a, &res)) != MP_OKAY) {
6969
return err;
7070
}
7171

@@ -173,7 +173,7 @@ mp_err mp_prime_is_prime(const mp_int *a, int t, mp_bool *result)
173173

174174
/* we did bases 2 and 3 already, skip them */
175175
for (ix = 2; ix < p_max; ix++) {
176-
mp_set(&b, ltm_prime_tab[ix]);
176+
mp_set(&b, s_mp_prime_tab[ix]);
177177
if ((err = mp_prime_miller_rabin(a, &b, &res)) != MP_OKAY) {
178178
goto LBL_B;
179179
}

bn_mp_prime_next_prime.c

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,35 +13,35 @@ mp_err mp_prime_next_prime(mp_int *a, int t, int bbs_style)
1313
int x, y;
1414
mp_err err;
1515
mp_bool res = MP_NO;
16-
mp_digit res_tab[MP_PRIME_SIZE], step, kstep;
16+
mp_digit res_tab[PRIVATE_MP_PRIME_TAB_SIZE], step, kstep;
1717
mp_int b;
1818

1919
/* force positive */
2020
a->sign = MP_ZPOS;
2121

2222
/* simple algo if a is less than the largest prime in the table */
23-
if (mp_cmp_d(a, ltm_prime_tab[MP_PRIME_SIZE-1]) == MP_LT) {
23+
if (mp_cmp_d(a, s_mp_prime_tab[PRIVATE_MP_PRIME_TAB_SIZE-1]) == MP_LT) {
2424
/* find which prime it is bigger than */
25-
for (x = MP_PRIME_SIZE - 2; x >= 0; x--) {
26-
if (mp_cmp_d(a, ltm_prime_tab[x]) != MP_LT) {
25+
for (x = PRIVATE_MP_PRIME_TAB_SIZE - 2; x >= 0; x--) {
26+
if (mp_cmp_d(a, s_mp_prime_tab[x]) != MP_LT) {
2727
if (bbs_style == 1) {
2828
/* ok we found a prime smaller or
2929
* equal [so the next is larger]
3030
*
3131
* however, the prime must be
3232
* congruent to 3 mod 4
3333
*/
34-
if ((ltm_prime_tab[x + 1] & 3u) != 3u) {
34+
if ((s_mp_prime_tab[x + 1] & 3u) != 3u) {
3535
/* scan upwards for a prime congruent to 3 mod 4 */
36-
for (y = x + 1; y < MP_PRIME_SIZE; y++) {
37-
if ((ltm_prime_tab[y] & 3u) == 3u) {
38-
mp_set(a, ltm_prime_tab[y]);
36+
for (y = x + 1; y < PRIVATE_MP_PRIME_TAB_SIZE; y++) {
37+
if ((s_mp_prime_tab[y] & 3u) == 3u) {
38+
mp_set(a, s_mp_prime_tab[y]);
3939
return MP_OKAY;
4040
}
4141
}
4242
}
4343
} else {
44-
mp_set(a, ltm_prime_tab[x + 1]);
44+
mp_set(a, s_mp_prime_tab[x + 1]);
4545
return MP_OKAY;
4646
}
4747
}
@@ -80,8 +80,8 @@ mp_err mp_prime_next_prime(mp_int *a, int t, int bbs_style)
8080
}
8181

8282
/* generate the restable */
83-
for (x = 1; x < MP_PRIME_SIZE; x++) {
84-
if ((err = mp_mod_d(a, ltm_prime_tab[x], res_tab + x)) != MP_OKAY) {
83+
for (x = 1; x < PRIVATE_MP_PRIME_TAB_SIZE; x++) {
84+
if ((err = mp_mod_d(a, s_mp_prime_tab[x], res_tab + x)) != MP_OKAY) {
8585
return err;
8686
}
8787
}
@@ -102,13 +102,13 @@ mp_err mp_prime_next_prime(mp_int *a, int t, int bbs_style)
102102
step += kstep;
103103

104104
/* compute the new residue without using division */
105-
for (x = 1; x < MP_PRIME_SIZE; x++) {
105+
for (x = 1; x < PRIVATE_MP_PRIME_TAB_SIZE; x++) {
106106
/* add the step to each residue */
107107
res_tab[x] += kstep;
108108

109109
/* subtract the modulus [instead of using division] */
110-
if (res_tab[x] >= ltm_prime_tab[x]) {
111-
res_tab[x] -= ltm_prime_tab[x];
110+
if (res_tab[x] >= s_mp_prime_tab[x]) {
111+
res_tab[x] -= s_mp_prime_tab[x];
112112
}
113113

114114
/* set flag if zero */

bn_prime_tab.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,19 @@ const mp_digit ltm_prime_tab[] = {
4343
0x062B, 0x062F, 0x063D, 0x0641, 0x0647, 0x0649, 0x064D, 0x0653
4444
#endif
4545
};
46+
47+
#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 301)
48+
#pragma GCC diagnostic push
49+
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
50+
const mp_digit *s_mp_prime_tab = ltm_prime_tab;
51+
#pragma GCC diagnostic pop
52+
#elif defined(_MSC_VER) && _MSC_VER >= 1500
53+
#pragma warning(push)
54+
#pragma warning(disable: 4996)
55+
const mp_digit *s_mp_prime_tab = ltm_prime_tab;
56+
#pragma warning(pop)
57+
#else
58+
const mp_digit *s_mp_prime_tab = ltm_prime_tab;
59+
#endif
60+
4661
#endif

bn_mp_prime_is_divisible.c renamed to bn_s_mp_prime_is_divisible.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
#include "tommath_private.h"
2-
#ifdef BN_MP_PRIME_IS_DIVISIBLE_C
2+
#ifdef BN_S_MP_PRIME_IS_DIVISIBLE_C
33
/* LibTomMath, multiple-precision integer library -- Tom St Denis */
44
/* SPDX-License-Identifier: Unlicense */
55

66
/* determines if an integers is divisible by one
7-
* of the first MP_PRIME_SIZE primes or not
7+
* of the first PRIME_SIZE primes or not
88
*
99
* sets result to 0 if not, 1 if yes
1010
*/
11-
mp_err mp_prime_is_divisible(const mp_int *a, mp_bool *result)
11+
mp_err s_mp_prime_is_divisible(const mp_int *a, mp_bool *result)
1212
{
1313
int ix;
1414
mp_err err;
@@ -17,9 +17,9 @@ mp_err mp_prime_is_divisible(const mp_int *a, mp_bool *result)
1717
/* default to not */
1818
*result = MP_NO;
1919

20-
for (ix = 0; ix < MP_PRIME_SIZE; ix++) {
20+
for (ix = 0; ix < PRIVATE_MP_PRIME_TAB_SIZE; ix++) {
2121
/* what is a mod LBL_prime_tab[ix] */
22-
if ((err = mp_mod_d(a, ltm_prime_tab[ix], &res)) != MP_OKAY) {
22+
if ((err = mp_mod_d(a, s_mp_prime_tab[ix], &res)) != MP_OKAY) {
2323
return err;
2424
}
2525

demo/test.c

Lines changed: 0 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -292,66 +292,6 @@ static int test_mp_rand(void)
292292
return err == MP_OKAY ? EXIT_SUCCESS : EXIT_FAILURE;
293293
}
294294

295-
static int test_s_mp_jacobi(void)
296-
{
297-
struct s_mp_jacobi_st {
298-
unsigned long n;
299-
int c[16];
300-
};
301-
302-
static struct s_mp_jacobi_st jacobi[] = {
303-
{ 3, { 1, -1, 0, 1, -1, 0, 1, -1, 0, 1, -1, 0, 1, -1, 0, 1 } },
304-
{ 5, { 0, 1, -1, -1, 1, 0, 1, -1, -1, 1, 0, 1, -1, -1, 1, 0 } },
305-
{ 7, { 1, -1, 1, -1, -1, 0, 1, 1, -1, 1, -1, -1, 0, 1, 1, -1 } },
306-
{ 9, { -1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1 } },
307-
};
308-
309-
int i, n, cnt;
310-
mp_err err, should;
311-
mp_int a, b;
312-
if (mp_init_multi(&a, &b, NULL)!= MP_OKAY) {
313-
return EXIT_FAILURE;
314-
}
315-
316-
mp_set_ul(&a, 0uL);
317-
mp_set_ul(&b, 1uL);
318-
if ((err = s_mp_jacobi(&a, &b, &i)) != MP_OKAY) {
319-
printf("Failed executing s_mp_jacobi(0 | 1) %s.\n", mp_error_to_string(err));
320-
goto LBL_ERR;
321-
}
322-
if (i != 1) {
323-
printf("Failed trivial s_mp_jacobi(0 | 1) %d != 1\n", i);
324-
goto LBL_ERR;
325-
}
326-
for (cnt = 0; cnt < (int)(sizeof(jacobi)/sizeof(jacobi[0])); ++cnt) {
327-
mp_set_ul(&b, jacobi[cnt].n);
328-
/* only test positive values of a */
329-
for (n = -5; n <= 10; ++n) {
330-
mp_set_ul(&a, (unsigned int)abs(n));
331-
should = MP_OKAY;
332-
if (n < 0) {
333-
mp_neg(&a, &a);
334-
/* Until #44 is fixed the negative a's must fail */
335-
should = MP_VAL;
336-
}
337-
if ((err = s_mp_jacobi(&a, &b, &i)) != should) {
338-
printf("Failed executing s_mp_jacobi(%d | %lu) %s.\n", n, jacobi[cnt].n, mp_error_to_string(err));
339-
goto LBL_ERR;
340-
}
341-
if ((err == MP_OKAY) && (i != jacobi[cnt].c[n + 5])) {
342-
printf("Failed trivial s_mp_jacobi(%d | %lu) %d != %d\n", n, jacobi[cnt].n, i, jacobi[cnt].c[n + 5]);
343-
goto LBL_ERR;
344-
}
345-
}
346-
}
347-
348-
mp_clear_multi(&a, &b, NULL);
349-
return EXIT_SUCCESS;
350-
LBL_ERR:
351-
mp_clear_multi(&a, &b, NULL);
352-
return EXIT_FAILURE;
353-
}
354-
355295
static int test_mp_kronecker(void)
356296
{
357297
struct mp_kronecker_st {
@@ -2175,7 +2115,6 @@ int unit_tests(int argc, char **argv)
21752115
T(mp_sqrtmod_prime),
21762116
T(mp_xor),
21772117
T(s_mp_balance_mul),
2178-
T(s_mp_jacobi),
21792118
T(s_mp_karatsuba_mul),
21802119
T(s_mp_karatsuba_sqr),
21812120
T(s_mp_toom_mul),

libtommath_VS2008.vcproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -600,10 +600,6 @@
600600
RelativePath="bn_mp_prime_frobenius_underwood.c"
601601
>
602602
</File>
603-
<File
604-
RelativePath="bn_mp_prime_is_divisible.c"
605-
>
606-
</File>
607603
<File
608604
RelativePath="bn_mp_prime_is_prime.c"
609605
>
@@ -832,6 +828,10 @@
832828
RelativePath="bn_s_mp_mul_high_digs_fast.c"
833829
>
834830
</File>
831+
<File
832+
RelativePath="bn_s_mp_prime_is_divisible.c"
833+
>
834+
</File>
835835
<File
836836
RelativePath="bn_s_mp_rand_jenkins.c"
837837
>

makefile

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,20 @@ bn_mp_init_multi.o bn_mp_init_set.o bn_mp_init_size.o bn_mp_invmod.o bn_mp_is_sq
3737
bn_mp_isodd.o bn_mp_kronecker.o bn_mp_lcm.o bn_mp_lshd.o bn_mp_mod.o bn_mp_mod_2d.o bn_mp_mod_d.o \
3838
bn_mp_montgomery_calc_normalization.o bn_mp_montgomery_reduce.o bn_mp_montgomery_setup.o bn_mp_mul.o \
3939
bn_mp_mul_2.o bn_mp_mul_2d.o bn_mp_mul_d.o bn_mp_mulmod.o bn_mp_n_root.o bn_mp_n_root_ex.o bn_mp_neg.o \
40-
bn_mp_or.o bn_mp_prime_fermat.o bn_mp_prime_frobenius_underwood.o bn_mp_prime_is_divisible.o \
41-
bn_mp_prime_is_prime.o bn_mp_prime_miller_rabin.o bn_mp_prime_next_prime.o \
42-
bn_mp_prime_rabin_miller_trials.o bn_mp_prime_rand.o bn_mp_prime_strong_lucas_selfridge.o \
43-
bn_mp_radix_size.o bn_mp_radix_smap.o bn_mp_rand.o bn_mp_read_radix.o bn_mp_read_signed_bin.o \
44-
bn_mp_read_unsigned_bin.o bn_mp_reduce.o bn_mp_reduce_2k.o bn_mp_reduce_2k_l.o bn_mp_reduce_2k_setup.o \
45-
bn_mp_reduce_2k_setup_l.o bn_mp_reduce_is_2k.o bn_mp_reduce_is_2k_l.o bn_mp_reduce_setup.o bn_mp_rshd.o \
46-
bn_mp_set.o bn_mp_set_double.o bn_mp_shrink.o bn_mp_signed_bin_size.o bn_mp_signed_rsh.o bn_mp_sqr.o \
47-
bn_mp_sqrmod.o bn_mp_sqrt.o bn_mp_sqrtmod_prime.o bn_mp_sub.o bn_mp_sub_d.o bn_mp_submod.o \
48-
bn_mp_to_signed_bin.o bn_mp_to_signed_bin_n.o bn_mp_to_unsigned_bin.o bn_mp_to_unsigned_bin_n.o \
49-
bn_mp_toradix.o bn_mp_toradix_n.o bn_mp_unsigned_bin_size.o bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o \
50-
bn_s_mp_add.o bn_s_mp_balance_mul.o bn_s_mp_exptmod.o bn_s_mp_exptmod_fast.o bn_s_mp_get_bit.o \
51-
bn_s_mp_invmod_fast.o bn_s_mp_invmod_slow.o bn_s_mp_karatsuba_mul.o bn_s_mp_karatsuba_sqr.o \
52-
bn_s_mp_montgomery_reduce_fast.o bn_s_mp_mul_digs.o bn_s_mp_mul_digs_fast.o bn_s_mp_mul_high_digs.o \
53-
bn_s_mp_mul_high_digs_fast.o bn_s_mp_rand_jenkins.o bn_s_mp_rand_platform.o bn_s_mp_reverse.o \
40+
bn_mp_or.o bn_mp_prime_fermat.o bn_mp_prime_frobenius_underwood.o bn_mp_prime_is_prime.o \
41+
bn_mp_prime_miller_rabin.o bn_mp_prime_next_prime.o bn_mp_prime_rabin_miller_trials.o \
42+
bn_mp_prime_rand.o bn_mp_prime_strong_lucas_selfridge.o bn_mp_radix_size.o bn_mp_radix_smap.o \
43+
bn_mp_rand.o bn_mp_read_radix.o bn_mp_read_signed_bin.o bn_mp_read_unsigned_bin.o bn_mp_reduce.o \
44+
bn_mp_reduce_2k.o bn_mp_reduce_2k_l.o bn_mp_reduce_2k_setup.o bn_mp_reduce_2k_setup_l.o \
45+
bn_mp_reduce_is_2k.o bn_mp_reduce_is_2k_l.o bn_mp_reduce_setup.o bn_mp_rshd.o bn_mp_set.o \
46+
bn_mp_set_double.o bn_mp_shrink.o bn_mp_signed_bin_size.o bn_mp_signed_rsh.o bn_mp_sqr.o bn_mp_sqrmod.o \
47+
bn_mp_sqrt.o bn_mp_sqrtmod_prime.o bn_mp_sub.o bn_mp_sub_d.o bn_mp_submod.o bn_mp_to_signed_bin.o \
48+
bn_mp_to_signed_bin_n.o bn_mp_to_unsigned_bin.o bn_mp_to_unsigned_bin_n.o bn_mp_toradix.o \
49+
bn_mp_toradix_n.o bn_mp_unsigned_bin_size.o bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o bn_s_mp_add.o \
50+
bn_s_mp_balance_mul.o bn_s_mp_exptmod.o bn_s_mp_exptmod_fast.o bn_s_mp_get_bit.o bn_s_mp_invmod_fast.o \
51+
bn_s_mp_invmod_slow.o bn_s_mp_karatsuba_mul.o bn_s_mp_karatsuba_sqr.o bn_s_mp_montgomery_reduce_fast.o \
52+
bn_s_mp_mul_digs.o bn_s_mp_mul_digs_fast.o bn_s_mp_mul_high_digs.o bn_s_mp_mul_high_digs_fast.o \
53+
bn_s_mp_prime_is_divisible.o bn_s_mp_rand_jenkins.o bn_s_mp_rand_platform.o bn_s_mp_reverse.o \
5454
bn_s_mp_sqr.o bn_s_mp_sqr_fast.o bn_s_mp_sub.o bn_s_mp_toom_mul.o bn_s_mp_toom_sqr.o
5555

5656
#END_INS

makefile.mingw

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,20 @@ bn_mp_init_multi.o bn_mp_init_set.o bn_mp_init_size.o bn_mp_invmod.o bn_mp_is_sq
4040
bn_mp_isodd.o bn_mp_kronecker.o bn_mp_lcm.o bn_mp_lshd.o bn_mp_mod.o bn_mp_mod_2d.o bn_mp_mod_d.o \
4141
bn_mp_montgomery_calc_normalization.o bn_mp_montgomery_reduce.o bn_mp_montgomery_setup.o bn_mp_mul.o \
4242
bn_mp_mul_2.o bn_mp_mul_2d.o bn_mp_mul_d.o bn_mp_mulmod.o bn_mp_n_root.o bn_mp_n_root_ex.o bn_mp_neg.o \
43-
bn_mp_or.o bn_mp_prime_fermat.o bn_mp_prime_frobenius_underwood.o bn_mp_prime_is_divisible.o \
44-
bn_mp_prime_is_prime.o bn_mp_prime_miller_rabin.o bn_mp_prime_next_prime.o \
45-
bn_mp_prime_rabin_miller_trials.o bn_mp_prime_rand.o bn_mp_prime_strong_lucas_selfridge.o \
46-
bn_mp_radix_size.o bn_mp_radix_smap.o bn_mp_rand.o bn_mp_read_radix.o bn_mp_read_signed_bin.o \
47-
bn_mp_read_unsigned_bin.o bn_mp_reduce.o bn_mp_reduce_2k.o bn_mp_reduce_2k_l.o bn_mp_reduce_2k_setup.o \
48-
bn_mp_reduce_2k_setup_l.o bn_mp_reduce_is_2k.o bn_mp_reduce_is_2k_l.o bn_mp_reduce_setup.o bn_mp_rshd.o \
49-
bn_mp_set.o bn_mp_set_double.o bn_mp_shrink.o bn_mp_signed_bin_size.o bn_mp_signed_rsh.o bn_mp_sqr.o \
50-
bn_mp_sqrmod.o bn_mp_sqrt.o bn_mp_sqrtmod_prime.o bn_mp_sub.o bn_mp_sub_d.o bn_mp_submod.o \
51-
bn_mp_to_signed_bin.o bn_mp_to_signed_bin_n.o bn_mp_to_unsigned_bin.o bn_mp_to_unsigned_bin_n.o \
52-
bn_mp_toradix.o bn_mp_toradix_n.o bn_mp_unsigned_bin_size.o bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o \
53-
bn_s_mp_add.o bn_s_mp_balance_mul.o bn_s_mp_exptmod.o bn_s_mp_exptmod_fast.o bn_s_mp_get_bit.o \
54-
bn_s_mp_invmod_fast.o bn_s_mp_invmod_slow.o bn_s_mp_karatsuba_mul.o bn_s_mp_karatsuba_sqr.o \
55-
bn_s_mp_montgomery_reduce_fast.o bn_s_mp_mul_digs.o bn_s_mp_mul_digs_fast.o bn_s_mp_mul_high_digs.o \
56-
bn_s_mp_mul_high_digs_fast.o bn_s_mp_rand_jenkins.o bn_s_mp_rand_platform.o bn_s_mp_reverse.o \
43+
bn_mp_or.o bn_mp_prime_fermat.o bn_mp_prime_frobenius_underwood.o bn_mp_prime_is_prime.o \
44+
bn_mp_prime_miller_rabin.o bn_mp_prime_next_prime.o bn_mp_prime_rabin_miller_trials.o \
45+
bn_mp_prime_rand.o bn_mp_prime_strong_lucas_selfridge.o bn_mp_radix_size.o bn_mp_radix_smap.o \
46+
bn_mp_rand.o bn_mp_read_radix.o bn_mp_read_signed_bin.o bn_mp_read_unsigned_bin.o bn_mp_reduce.o \
47+
bn_mp_reduce_2k.o bn_mp_reduce_2k_l.o bn_mp_reduce_2k_setup.o bn_mp_reduce_2k_setup_l.o \
48+
bn_mp_reduce_is_2k.o bn_mp_reduce_is_2k_l.o bn_mp_reduce_setup.o bn_mp_rshd.o bn_mp_set.o \
49+
bn_mp_set_double.o bn_mp_shrink.o bn_mp_signed_bin_size.o bn_mp_signed_rsh.o bn_mp_sqr.o bn_mp_sqrmod.o \
50+
bn_mp_sqrt.o bn_mp_sqrtmod_prime.o bn_mp_sub.o bn_mp_sub_d.o bn_mp_submod.o bn_mp_to_signed_bin.o \
51+
bn_mp_to_signed_bin_n.o bn_mp_to_unsigned_bin.o bn_mp_to_unsigned_bin_n.o bn_mp_toradix.o \
52+
bn_mp_toradix_n.o bn_mp_unsigned_bin_size.o bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o bn_s_mp_add.o \
53+
bn_s_mp_balance_mul.o bn_s_mp_exptmod.o bn_s_mp_exptmod_fast.o bn_s_mp_get_bit.o bn_s_mp_invmod_fast.o \
54+
bn_s_mp_invmod_slow.o bn_s_mp_karatsuba_mul.o bn_s_mp_karatsuba_sqr.o bn_s_mp_montgomery_reduce_fast.o \
55+
bn_s_mp_mul_digs.o bn_s_mp_mul_digs_fast.o bn_s_mp_mul_high_digs.o bn_s_mp_mul_high_digs_fast.o \
56+
bn_s_mp_prime_is_divisible.o bn_s_mp_rand_jenkins.o bn_s_mp_rand_platform.o bn_s_mp_reverse.o \
5757
bn_s_mp_sqr.o bn_s_mp_sqr_fast.o bn_s_mp_sub.o bn_s_mp_toom_mul.o bn_s_mp_toom_sqr.o
5858
bn_mp_set_double.o bn_mp_set_int.o bn_mp_set_long.o bn_mp_set_long_long.o bn_mp_shrink.o \
5959
bn_mp_signed_bin_size.o bn_mp_signed_rsh.o bn_mp_sqr.o bn_mp_sqrmod.o bn_mp_sqrt.o bn_mp_sqrtmod_prime.o \

makefile.msvc

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,20 @@ bn_mp_init_multi.obj bn_mp_init_set.obj bn_mp_init_size.obj bn_mp_invmod.obj bn_
3232
bn_mp_isodd.obj bn_mp_kronecker.obj bn_mp_lcm.obj bn_mp_lshd.obj bn_mp_mod.obj bn_mp_mod_2d.obj bn_mp_mod_d.obj \
3333
bn_mp_montgomery_calc_normalization.obj bn_mp_montgomery_reduce.obj bn_mp_montgomery_setup.obj bn_mp_mul.obj \
3434
bn_mp_mul_2.obj bn_mp_mul_2d.obj bn_mp_mul_d.obj bn_mp_mulmod.obj bn_mp_n_root.obj bn_mp_n_root_ex.obj bn_mp_neg.obj \
35-
bn_mp_or.obj bn_mp_prime_fermat.obj bn_mp_prime_frobenius_underwood.obj bn_mp_prime_is_divisible.obj \
36-
bn_mp_prime_is_prime.obj bn_mp_prime_miller_rabin.obj bn_mp_prime_next_prime.obj \
37-
bn_mp_prime_rabin_miller_trials.obj bn_mp_prime_rand.obj bn_mp_prime_strong_lucas_selfridge.obj \
38-
bn_mp_radix_size.obj bn_mp_radix_smap.obj bn_mp_rand.obj bn_mp_read_radix.obj bn_mp_read_signed_bin.obj \
39-
bn_mp_read_unsigned_bin.obj bn_mp_reduce.obj bn_mp_reduce_2k.obj bn_mp_reduce_2k_l.obj bn_mp_reduce_2k_setup.obj \
40-
bn_mp_reduce_2k_setup_l.obj bn_mp_reduce_is_2k.obj bn_mp_reduce_is_2k_l.obj bn_mp_reduce_setup.obj bn_mp_rshd.obj \
41-
bn_mp_set.obj bn_mp_set_double.obj bn_mp_shrink.obj bn_mp_signed_bin_size.obj bn_mp_signed_rsh.obj bn_mp_sqr.obj \
42-
bn_mp_sqrmod.obj bn_mp_sqrt.obj bn_mp_sqrtmod_prime.obj bn_mp_sub.obj bn_mp_sub_d.obj bn_mp_submod.obj \
43-
bn_mp_to_signed_bin.obj bn_mp_to_signed_bin_n.obj bn_mp_to_unsigned_bin.obj bn_mp_to_unsigned_bin_n.obj \
44-
bn_mp_toradix.obj bn_mp_toradix_n.obj bn_mp_unsigned_bin_size.obj bn_mp_xor.obj bn_mp_zero.obj bn_prime_tab.obj \
45-
bn_s_mp_add.obj bn_s_mp_balance_mul.obj bn_s_mp_exptmod.obj bn_s_mp_exptmod_fast.obj bn_s_mp_get_bit.obj \
46-
bn_s_mp_invmod_fast.obj bn_s_mp_invmod_slow.obj bn_s_mp_karatsuba_mul.obj bn_s_mp_karatsuba_sqr.obj \
47-
bn_s_mp_montgomery_reduce_fast.obj bn_s_mp_mul_digs.obj bn_s_mp_mul_digs_fast.obj bn_s_mp_mul_high_digs.obj \
48-
bn_s_mp_mul_high_digs_fast.obj bn_s_mp_rand_jenkins.obj bn_s_mp_rand_platform.obj bn_s_mp_reverse.obj \
35+
bn_mp_or.obj bn_mp_prime_fermat.obj bn_mp_prime_frobenius_underwood.obj bn_mp_prime_is_prime.obj \
36+
bn_mp_prime_miller_rabin.obj bn_mp_prime_next_prime.obj bn_mp_prime_rabin_miller_trials.obj \
37+
bn_mp_prime_rand.obj bn_mp_prime_strong_lucas_selfridge.obj bn_mp_radix_size.obj bn_mp_radix_smap.obj \
38+
bn_mp_rand.obj bn_mp_read_radix.obj bn_mp_read_signed_bin.obj bn_mp_read_unsigned_bin.obj bn_mp_reduce.obj \
39+
bn_mp_reduce_2k.obj bn_mp_reduce_2k_l.obj bn_mp_reduce_2k_setup.obj bn_mp_reduce_2k_setup_l.obj \
40+
bn_mp_reduce_is_2k.obj bn_mp_reduce_is_2k_l.obj bn_mp_reduce_setup.obj bn_mp_rshd.obj bn_mp_set.obj \
41+
bn_mp_set_double.obj bn_mp_shrink.obj bn_mp_signed_bin_size.obj bn_mp_signed_rsh.obj bn_mp_sqr.obj bn_mp_sqrmod.obj \
42+
bn_mp_sqrt.obj bn_mp_sqrtmod_prime.obj bn_mp_sub.obj bn_mp_sub_d.obj bn_mp_submod.obj bn_mp_to_signed_bin.obj \
43+
bn_mp_to_signed_bin_n.obj bn_mp_to_unsigned_bin.obj bn_mp_to_unsigned_bin_n.obj bn_mp_toradix.obj \
44+
bn_mp_toradix_n.obj bn_mp_unsigned_bin_size.obj bn_mp_xor.obj bn_mp_zero.obj bn_prime_tab.obj bn_s_mp_add.obj \
45+
bn_s_mp_balance_mul.obj bn_s_mp_exptmod.obj bn_s_mp_exptmod_fast.obj bn_s_mp_get_bit.obj bn_s_mp_invmod_fast.obj \
46+
bn_s_mp_invmod_slow.obj bn_s_mp_karatsuba_mul.obj bn_s_mp_karatsuba_sqr.obj bn_s_mp_montgomery_reduce_fast.obj \
47+
bn_s_mp_mul_digs.obj bn_s_mp_mul_digs_fast.obj bn_s_mp_mul_high_digs.obj bn_s_mp_mul_high_digs_fast.obj \
48+
bn_s_mp_prime_is_divisible.obj bn_s_mp_rand_jenkins.obj bn_s_mp_rand_platform.obj bn_s_mp_reverse.obj \
4949
bn_s_mp_sqr.obj bn_s_mp_sqr_fast.obj bn_s_mp_sub.obj bn_s_mp_toom_mul.obj bn_s_mp_toom_sqr.obj
5050
bn_mp_set_double.obj bn_mp_set_int.obj bn_mp_set_long.obj bn_mp_set_long_long.obj bn_mp_shrink.obj \
5151
bn_mp_signed_bin_size.obj bn_mp_signed_rsh.obj bn_mp_sqr.obj bn_mp_sqrmod.obj bn_mp_sqrt.obj bn_mp_sqrtmod_prime.obj \

0 commit comments

Comments
 (0)