Skip to content

Commit b2ca59c

Browse files
committed
Turn the mp_todecimal macro into a function...
that uses MP_HAS to decide whether to use `mp_toradix` or `s_mp_todecimal_fast`.
1 parent 4accd98 commit b2ca59c

12 files changed

+90
-49
lines changed

bn_mp_todecimal.c

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#include "tommath_private.h"
2+
#ifdef BN_MP_TODECIMAL_C
3+
/* LibTomMath, multiple-precision integer library -- Tom St Denis */
4+
/* SPDX-License-Identifier: Unlicense */
5+
6+
/* stores a bignum as a decimal ASCII string, using Barrett
7+
* reduction if available.
8+
*/
9+
10+
mp_err mp_todecimal(const mp_int *a, char *str)
11+
{
12+
mp_err err;
13+
14+
if (MP_HAS(S_MP_TODECIMAL_FAST)) {
15+
err = s_mp_todecimal_fast(a, str);
16+
} else {
17+
err = mp_toradix(a, str, 10);
18+
}
19+
20+
return err;
21+
}
22+
23+
#endif

bn_mp_todecimal_fast.c bn_s_mp_todecimal_fast.c

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
#include "tommath_private.h"
22
#include <string.h>
3-
#ifdef BN_MP_TODECIMAL_FAST_C
3+
#ifdef BN_S_MP_TODECIMAL_FAST_C
44
/* LibTomMath, multiple-precision integer library -- Tom St Denis */
55
/* SPDX-License-Identifier: Unlicense */
66

77
/* store a bignum as a decimal ASCII string */
8-
mp_err mp_todecimal_fast_rec(mp_int *number, mp_int *nL, mp_int *shiftL, mp_int *mL, int precalc_array_index, int left,
9-
char **result)
8+
mp_err s_mp_todecimal_fast_rec(const mp_int *number, mp_int *nL, mp_int *shiftL, mp_int *mL, int precalc_array_index,
9+
int left,
10+
char **result)
1011
{
1112
mp_int q, nLq, r;
1213
mp_err err;
@@ -47,14 +48,14 @@ mp_err mp_todecimal_fast_rec(mp_int *number, mp_int *nL, mp_int *shiftL, mp_int
4748

4849
--precalc_array_index;
4950
if (left && mp_iszero(&q)) {
50-
if ((err = mp_todecimal_fast_rec(&r, nL, shiftL, mL, precalc_array_index, 1, result)) != MP_OKAY) {
51+
if ((err = s_mp_todecimal_fast_rec(&r, nL, shiftL, mL, precalc_array_index, 1, result)) != MP_OKAY) {
5152
goto LBL_ERR;
5253
}
5354
} else {
54-
if ((err = mp_todecimal_fast_rec(&q, nL, shiftL, mL, precalc_array_index, left, result)) != MP_OKAY) {
55+
if ((err = s_mp_todecimal_fast_rec(&q, nL, shiftL, mL, precalc_array_index, left, result)) != MP_OKAY) {
5556
goto LBL_ERR;
5657
}
57-
if ((err = mp_todecimal_fast_rec(&r, nL, shiftL, mL, precalc_array_index, 0, result)) != MP_OKAY) {
58+
if ((err = s_mp_todecimal_fast_rec(&r, nL, shiftL, mL, precalc_array_index, 0, result)) != MP_OKAY) {
5859
goto LBL_ERR;
5960
}
6061
}
@@ -66,7 +67,7 @@ mp_err mp_todecimal_fast_rec(mp_int *number, mp_int *nL, mp_int *shiftL, mp_int
6667
return err;
6768
}
6869

69-
mp_err mp_todecimal_fast(mp_int *number, char *result)
70+
mp_err s_mp_todecimal_fast(const mp_int *number, char *result)
7071
{
7172
mp_int n, shift, M, M2, M22, M4, M44;
7273
mp_int nL[20], shiftL[20], mL[20];
@@ -187,7 +188,7 @@ mp_err mp_todecimal_fast(mp_int *number, char *result)
187188
precalc_array_index++;
188189
}
189190

190-
if ((err = mp_todecimal_fast_rec(number, nL, shiftL, mL, precalc_array_index - 1, 1, result_addr)) != MP_OKAY) {
191+
if ((err = s_mp_todecimal_fast_rec(number, nL, shiftL, mL, precalc_array_index - 1, 1, result_addr)) != MP_OKAY) {
191192
goto LBL_ERR;
192193
}
193194

libtommath_VS2008.vcproj

+5-1
Original file line numberDiff line numberDiff line change
@@ -833,7 +833,7 @@
833833
>
834834
</File>
835835
<File
836-
RelativePath="bn_mp_todecimal_fast.c"
836+
RelativePath="bn_mp_todecimal.c"
837837
>
838838
</File>
839839
<File
@@ -944,6 +944,10 @@
944944
RelativePath="bn_s_mp_sub.c"
945945
>
946946
</File>
947+
<File
948+
RelativePath="bn_s_mp_todecimal_fast.c"
949+
>
950+
</File>
947951
<File
948952
RelativePath="bn_s_mp_toom_mul.c"
949953
>

makefile

+5-4
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,14 @@ bn_mp_set.o bn_mp_set_double.o bn_mp_set_i32.o bn_mp_set_i64.o bn_mp_set_l.o bn_
4949
bn_mp_set_u32.o bn_mp_set_u64.o bn_mp_set_ul.o bn_mp_set_ull.o bn_mp_shrink.o bn_mp_signed_bin_size.o \
5050
bn_mp_signed_rsh.o bn_mp_sqr.o bn_mp_sqrmod.o bn_mp_sqrt.o bn_mp_sqrtmod_prime.o bn_mp_sub.o bn_mp_sub_d.o \
5151
bn_mp_submod.o bn_mp_to_signed_bin.o bn_mp_to_signed_bin_n.o bn_mp_to_unsigned_bin.o \
52-
bn_mp_to_unsigned_bin_n.o bn_mp_todecimal_fast.o bn_mp_toradix.o bn_mp_toradix_n.o \
53-
bn_mp_unsigned_bin_size.o bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o bn_s_mp_add.o bn_s_mp_balance_mul.o \
54-
bn_s_mp_exptmod.o bn_s_mp_exptmod_fast.o bn_s_mp_get_bit.o bn_s_mp_invmod_fast.o bn_s_mp_invmod_slow.o \
52+
bn_mp_to_unsigned_bin_n.o bn_mp_todecimal.o bn_mp_toradix.o bn_mp_toradix_n.o bn_mp_unsigned_bin_size.o \
53+
bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o bn_s_mp_add.o bn_s_mp_balance_mul.o bn_s_mp_exptmod.o \
54+
bn_s_mp_exptmod_fast.o bn_s_mp_get_bit.o bn_s_mp_invmod_fast.o bn_s_mp_invmod_slow.o \
5555
bn_s_mp_karatsuba_mul.o bn_s_mp_karatsuba_sqr.o bn_s_mp_montgomery_reduce_fast.o bn_s_mp_mul_digs.o \
5656
bn_s_mp_mul_digs_fast.o bn_s_mp_mul_high_digs.o bn_s_mp_mul_high_digs_fast.o \
5757
bn_s_mp_prime_is_divisible.o bn_s_mp_rand_jenkins.o bn_s_mp_rand_platform.o bn_s_mp_reverse.o \
58-
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
58+
bn_s_mp_sqr.o bn_s_mp_sqr_fast.o bn_s_mp_sub.o bn_s_mp_todecimal_fast.o bn_s_mp_toom_mul.o \
59+
bn_s_mp_toom_sqr.o
5960

6061
#END_INS
6162

makefile.mingw

+5-4
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,14 @@ bn_mp_set.o bn_mp_set_double.o bn_mp_set_i32.o bn_mp_set_i64.o bn_mp_set_l.o bn_
5252
bn_mp_set_u32.o bn_mp_set_u64.o bn_mp_set_ul.o bn_mp_set_ull.o bn_mp_shrink.o bn_mp_signed_bin_size.o \
5353
bn_mp_signed_rsh.o bn_mp_sqr.o bn_mp_sqrmod.o bn_mp_sqrt.o bn_mp_sqrtmod_prime.o bn_mp_sub.o bn_mp_sub_d.o \
5454
bn_mp_submod.o bn_mp_to_signed_bin.o bn_mp_to_signed_bin_n.o bn_mp_to_unsigned_bin.o \
55-
bn_mp_to_unsigned_bin_n.o bn_mp_todecimal_fast.o bn_mp_toradix.o bn_mp_toradix_n.o \
56-
bn_mp_unsigned_bin_size.o bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o bn_s_mp_add.o bn_s_mp_balance_mul.o \
57-
bn_s_mp_exptmod.o bn_s_mp_exptmod_fast.o bn_s_mp_get_bit.o bn_s_mp_invmod_fast.o bn_s_mp_invmod_slow.o \
55+
bn_mp_to_unsigned_bin_n.o bn_mp_todecimal.o bn_mp_toradix.o bn_mp_toradix_n.o bn_mp_unsigned_bin_size.o \
56+
bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o bn_s_mp_add.o bn_s_mp_balance_mul.o bn_s_mp_exptmod.o \
57+
bn_s_mp_exptmod_fast.o bn_s_mp_get_bit.o bn_s_mp_invmod_fast.o bn_s_mp_invmod_slow.o \
5858
bn_s_mp_karatsuba_mul.o bn_s_mp_karatsuba_sqr.o bn_s_mp_montgomery_reduce_fast.o bn_s_mp_mul_digs.o \
5959
bn_s_mp_mul_digs_fast.o bn_s_mp_mul_high_digs.o bn_s_mp_mul_high_digs_fast.o \
6060
bn_s_mp_prime_is_divisible.o bn_s_mp_rand_jenkins.o bn_s_mp_rand_platform.o bn_s_mp_reverse.o \
61-
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
61+
bn_s_mp_sqr.o bn_s_mp_sqr_fast.o bn_s_mp_sub.o bn_s_mp_todecimal_fast.o bn_s_mp_toom_mul.o \
62+
bn_s_mp_toom_sqr.o
6263

6364
HEADERS_PUB=tommath.h
6465
HEADERS=tommath_private.h tommath_class.h tommath_superclass.h $(HEADERS_PUB)

makefile.msvc

+5-4
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,14 @@ bn_mp_set.obj bn_mp_set_double.obj bn_mp_set_i32.obj bn_mp_set_i64.obj bn_mp_set
4444
bn_mp_set_u32.obj bn_mp_set_u64.obj bn_mp_set_ul.obj bn_mp_set_ull.obj bn_mp_shrink.obj bn_mp_signed_bin_size.obj \
4545
bn_mp_signed_rsh.obj bn_mp_sqr.obj bn_mp_sqrmod.obj bn_mp_sqrt.obj bn_mp_sqrtmod_prime.obj bn_mp_sub.obj bn_mp_sub_d.obj \
4646
bn_mp_submod.obj bn_mp_to_signed_bin.obj bn_mp_to_signed_bin_n.obj bn_mp_to_unsigned_bin.obj \
47-
bn_mp_to_unsigned_bin_n.obj bn_mp_todecimal_fast.obj bn_mp_toradix.obj bn_mp_toradix_n.obj \
48-
bn_mp_unsigned_bin_size.obj bn_mp_xor.obj bn_mp_zero.obj bn_prime_tab.obj bn_s_mp_add.obj bn_s_mp_balance_mul.obj \
49-
bn_s_mp_exptmod.obj bn_s_mp_exptmod_fast.obj bn_s_mp_get_bit.obj bn_s_mp_invmod_fast.obj bn_s_mp_invmod_slow.obj \
47+
bn_mp_to_unsigned_bin_n.obj bn_mp_todecimal.obj bn_mp_toradix.obj bn_mp_toradix_n.obj bn_mp_unsigned_bin_size.obj \
48+
bn_mp_xor.obj bn_mp_zero.obj bn_prime_tab.obj bn_s_mp_add.obj bn_s_mp_balance_mul.obj bn_s_mp_exptmod.obj \
49+
bn_s_mp_exptmod_fast.obj bn_s_mp_get_bit.obj bn_s_mp_invmod_fast.obj bn_s_mp_invmod_slow.obj \
5050
bn_s_mp_karatsuba_mul.obj bn_s_mp_karatsuba_sqr.obj bn_s_mp_montgomery_reduce_fast.obj bn_s_mp_mul_digs.obj \
5151
bn_s_mp_mul_digs_fast.obj bn_s_mp_mul_high_digs.obj bn_s_mp_mul_high_digs_fast.obj \
5252
bn_s_mp_prime_is_divisible.obj bn_s_mp_rand_jenkins.obj bn_s_mp_rand_platform.obj bn_s_mp_reverse.obj \
53-
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
53+
bn_s_mp_sqr.obj bn_s_mp_sqr_fast.obj bn_s_mp_sub.obj bn_s_mp_todecimal_fast.obj bn_s_mp_toom_mul.obj \
54+
bn_s_mp_toom_sqr.obj
5455

5556
HEADERS_PUB=tommath.h
5657
HEADERS=tommath_private.h tommath_class.h tommath_superclass.h $(HEADERS_PUB)

makefile.shared

+5-4
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,14 @@ bn_mp_set.o bn_mp_set_double.o bn_mp_set_i32.o bn_mp_set_i64.o bn_mp_set_l.o bn_
4646
bn_mp_set_u32.o bn_mp_set_u64.o bn_mp_set_ul.o bn_mp_set_ull.o bn_mp_shrink.o bn_mp_signed_bin_size.o \
4747
bn_mp_signed_rsh.o bn_mp_sqr.o bn_mp_sqrmod.o bn_mp_sqrt.o bn_mp_sqrtmod_prime.o bn_mp_sub.o bn_mp_sub_d.o \
4848
bn_mp_submod.o bn_mp_to_signed_bin.o bn_mp_to_signed_bin_n.o bn_mp_to_unsigned_bin.o \
49-
bn_mp_to_unsigned_bin_n.o bn_mp_todecimal_fast.o bn_mp_toradix.o bn_mp_toradix_n.o \
50-
bn_mp_unsigned_bin_size.o bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o bn_s_mp_add.o bn_s_mp_balance_mul.o \
51-
bn_s_mp_exptmod.o bn_s_mp_exptmod_fast.o bn_s_mp_get_bit.o bn_s_mp_invmod_fast.o bn_s_mp_invmod_slow.o \
49+
bn_mp_to_unsigned_bin_n.o bn_mp_todecimal.o bn_mp_toradix.o bn_mp_toradix_n.o bn_mp_unsigned_bin_size.o \
50+
bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o bn_s_mp_add.o bn_s_mp_balance_mul.o bn_s_mp_exptmod.o \
51+
bn_s_mp_exptmod_fast.o bn_s_mp_get_bit.o bn_s_mp_invmod_fast.o bn_s_mp_invmod_slow.o \
5252
bn_s_mp_karatsuba_mul.o bn_s_mp_karatsuba_sqr.o bn_s_mp_montgomery_reduce_fast.o bn_s_mp_mul_digs.o \
5353
bn_s_mp_mul_digs_fast.o bn_s_mp_mul_high_digs.o bn_s_mp_mul_high_digs_fast.o \
5454
bn_s_mp_prime_is_divisible.o bn_s_mp_rand_jenkins.o bn_s_mp_rand_platform.o bn_s_mp_reverse.o \
55-
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
55+
bn_s_mp_sqr.o bn_s_mp_sqr_fast.o bn_s_mp_sub.o bn_s_mp_todecimal_fast.o bn_s_mp_toom_mul.o \
56+
bn_s_mp_toom_sqr.o
5657

5758
#END_INS
5859

makefile.unix

+5-4
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,14 @@ bn_mp_set.o bn_mp_set_double.o bn_mp_set_i32.o bn_mp_set_i64.o bn_mp_set_l.o bn_
5353
bn_mp_set_u32.o bn_mp_set_u64.o bn_mp_set_ul.o bn_mp_set_ull.o bn_mp_shrink.o bn_mp_signed_bin_size.o \
5454
bn_mp_signed_rsh.o bn_mp_sqr.o bn_mp_sqrmod.o bn_mp_sqrt.o bn_mp_sqrtmod_prime.o bn_mp_sub.o bn_mp_sub_d.o \
5555
bn_mp_submod.o bn_mp_to_signed_bin.o bn_mp_to_signed_bin_n.o bn_mp_to_unsigned_bin.o \
56-
bn_mp_to_unsigned_bin_n.o bn_mp_todecimal_fast.o bn_mp_toradix.o bn_mp_toradix_n.o \
57-
bn_mp_unsigned_bin_size.o bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o bn_s_mp_add.o bn_s_mp_balance_mul.o \
58-
bn_s_mp_exptmod.o bn_s_mp_exptmod_fast.o bn_s_mp_get_bit.o bn_s_mp_invmod_fast.o bn_s_mp_invmod_slow.o \
56+
bn_mp_to_unsigned_bin_n.o bn_mp_todecimal.o bn_mp_toradix.o bn_mp_toradix_n.o bn_mp_unsigned_bin_size.o \
57+
bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o bn_s_mp_add.o bn_s_mp_balance_mul.o bn_s_mp_exptmod.o \
58+
bn_s_mp_exptmod_fast.o bn_s_mp_get_bit.o bn_s_mp_invmod_fast.o bn_s_mp_invmod_slow.o \
5959
bn_s_mp_karatsuba_mul.o bn_s_mp_karatsuba_sqr.o bn_s_mp_montgomery_reduce_fast.o bn_s_mp_mul_digs.o \
6060
bn_s_mp_mul_digs_fast.o bn_s_mp_mul_high_digs.o bn_s_mp_mul_high_digs_fast.o \
6161
bn_s_mp_prime_is_divisible.o bn_s_mp_rand_jenkins.o bn_s_mp_rand_platform.o bn_s_mp_reverse.o \
62-
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
62+
bn_s_mp_sqr.o bn_s_mp_sqr_fast.o bn_s_mp_sub.o bn_s_mp_todecimal_fast.o bn_s_mp_toom_mul.o \
63+
bn_s_mp_toom_sqr.o
6364

6465
HEADERS_PUB=tommath.h
6566
HEADERS=tommath_private.h tommath_class.h tommath_superclass.h $(HEADERS_PUB)

tommath.def

+1-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ EXPORTS
140140
mp_to_signed_bin_n
141141
mp_to_unsigned_bin
142142
mp_to_unsigned_bin_n
143-
mp_todecimal_fast
143+
mp_todecimal
144144
mp_toradix
145145
mp_toradix_n
146146
mp_unsigned_bin_size

tommath.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -702,6 +702,7 @@ mp_err mp_read_radix(mp_int *a, const char *str, int radix) MP_WUR;
702702
mp_err mp_toradix(const mp_int *a, char *str, int radix) MP_WUR;
703703
mp_err mp_toradix_n(const mp_int *a, char *str, int radix, int maxlen) MP_WUR;
704704
mp_err mp_radix_size(const mp_int *a, int radix, int *size) MP_WUR;
705+
mp_err mp_todecimal(const mp_int *a, char *str) MP_WUR;
705706

706707
#ifndef MP_NO_FILE
707708
mp_err mp_fread(mp_int *a, int radix, FILE *stream) MP_WUR;
@@ -717,7 +718,6 @@ mp_err mp_fwrite(const mp_int *a, int radix, FILE *stream) MP_WUR;
717718

718719
#define mp_tobinary(M, S) mp_toradix((M), (S), 2)
719720
#define mp_tooctal(M, S) mp_toradix((M), (S), 8)
720-
#define mp_todecimal(M, S) mp_toradix((M), (S), 10)
721721
#define mp_tohex(M, S) mp_toradix((M), (S), 16)
722722

723723
#ifdef __cplusplus

tommath_class.h

+25-18
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
# define BN_MP_TO_SIGNED_BIN_N_C
142142
# define BN_MP_TO_UNSIGNED_BIN_C
143143
# define BN_MP_TO_UNSIGNED_BIN_N_C
144-
# define BN_MP_TODECIMAL_FAST_C
144+
# define BN_MP_TODECIMAL_C
145145
# define BN_MP_TORADIX_C
146146
# define BN_MP_TORADIX_N_C
147147
# define BN_MP_UNSIGNED_BIN_SIZE_C
@@ -169,6 +169,7 @@
169169
# define BN_S_MP_SQR_C
170170
# define BN_S_MP_SQR_FAST_C
171171
# define BN_S_MP_SUB_C
172+
# define BN_S_MP_TODECIMAL_FAST_C
172173
# define BN_S_MP_TOOM_MUL_C
173174
# define BN_S_MP_TOOM_SQR_C
174175
#endif
@@ -1072,23 +1073,10 @@
10721073
# define BN_MP_UNSIGNED_BIN_SIZE_C
10731074
#endif
10741075

1075-
#if defined(BN_MP_TODECIMAL_FAST_C)
1076-
# define BN_MP_ADD_C
1077-
# define BN_MP_ADD_D_C
1078-
# define BN_MP_CLEAR_MULTI_C
1079-
# define BN_MP_CMP_C
1080-
# define BN_MP_DIV_2D_C
1081-
# define BN_MP_GET_I32_C
1082-
# define BN_MP_INIT_COPY_C
1083-
# define BN_MP_INIT_MULTI_C
1084-
# define BN_MP_INIT_SET_C
1085-
# define BN_MP_MUL_2_C
1086-
# define BN_MP_MUL_C
1087-
# define BN_MP_NEG_C
1088-
# define BN_MP_SQR_C
1089-
# define BN_MP_SUB_C
1090-
# define BN_MP_SUB_D_C
1091-
# define BN_MP_TODECIMAL_FAST_REC_C
1076+
#if defined(BN_MP_TODECIMAL_C)
1077+
# define BN_MP_TORADIX_C
1078+
# define BN_S_MP_TODECIMAL_C
1079+
# define BN_S_MP_TODECIMAL_FAST_C
10921080
#endif
10931081

10941082
#if defined(BN_MP_TORADIX_C)
@@ -1286,6 +1274,25 @@
12861274
# define BN_MP_GROW_C
12871275
#endif
12881276

1277+
#if defined(BN_S_MP_TODECIMAL_FAST_C)
1278+
# define BN_MP_ADD_C
1279+
# define BN_MP_ADD_D_C
1280+
# define BN_MP_CLEAR_MULTI_C
1281+
# define BN_MP_CMP_C
1282+
# define BN_MP_DIV_2D_C
1283+
# define BN_MP_GET_I32_C
1284+
# define BN_MP_INIT_COPY_C
1285+
# define BN_MP_INIT_MULTI_C
1286+
# define BN_MP_INIT_SET_C
1287+
# define BN_MP_MUL_2_C
1288+
# define BN_MP_MUL_C
1289+
# define BN_MP_NEG_C
1290+
# define BN_MP_SQR_C
1291+
# define BN_MP_SUB_C
1292+
# define BN_MP_SUB_D_C
1293+
# define BN_S_MP_TODECIMAL_FAST_REC_C
1294+
#endif
1295+
12891296
#if defined(BN_S_MP_TOOM_MUL_C)
12901297
# define BN_MP_ADD_C
12911298
# define BN_MP_CLAMP_C

tommath_private.h

+1
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ MP_PRIVATE mp_err s_mp_rand_platform(void *p, size_t n) MP_WUR;
205205
MP_PRIVATE mp_err s_mp_prime_random_ex(mp_int *a, int t, int size, int flags, private_mp_prime_callback cb, void *dat);
206206
MP_PRIVATE void s_mp_reverse(unsigned char *s, int len);
207207
MP_PRIVATE mp_err s_mp_prime_is_divisible(const mp_int *a, mp_bool *result);
208+
MP_PRIVATE mp_err s_mp_todecimal_fast(mp_int *number, char *result) MP_WUR;
208209

209210
/* TODO: jenkins prng is not thread safe as of now */
210211
MP_PRIVATE mp_err s_mp_rand_jenkins(void *p, size_t n) MP_WUR;

0 commit comments

Comments
 (0)