diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-10-22 12:25:18 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-10-22 12:25:18 (GMT) |
| commit | ab6fc07f69ec94ac2715dc652fb15c6e9fe8d15b (patch) | |
| tree | 8eba01a20b18583dc9d0fca0245c55e29c40c235 /generic/tclStubInit.c | |
| parent | 39a95d7e5228e8d79a9323a01e4f30832af68193 (diff) | |
| parent | 03475f06485c403570643f9b359d100d9a6f9ced (diff) | |
| download | tcl-ab6fc07f69ec94ac2715dc652fb15c6e9fe8d15b.zip tcl-ab6fc07f69ec94ac2715dc652fb15c6e9fe8d15b.tar.gz tcl-ab6fc07f69ec94ac2715dc652fb15c6e9fe8d15b.tar.bz2 | |
Merge 8.6
Diffstat (limited to 'generic/tclStubInit.c')
| -rw-r--r-- | generic/tclStubInit.c | 76 |
1 files changed, 67 insertions, 9 deletions
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index 1c3f094..ef49ca9 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -10,7 +10,7 @@ */ #include "tclInt.h" -#include "tommath.h" +#include "tommath_private.h" #ifdef __CYGWIN__ # include <wchar.h> @@ -82,6 +82,34 @@ static int TclSockMinimumBuffersOld(int sock, int size) } #endif +MP_SET_UNSIGNED(mp_set_ull, Tcl_WideUInt) +MP_GET_MAG(mp_get_mag_ull, Tcl_WideUInt) + +mp_err TclBN_mp_set_int(mp_int *a, unsigned long i) +{ + TclBN_mp_set_ul(a, i); + return MP_OKAY; +} + +mp_err TclBN_mp_init_set_int(mp_int *a, unsigned long i) +{ + mp_init(a); + TclBN_mp_set_ul(a, i); + return MP_OKAY; +} +static mp_err TclBN_mp_set_long(mp_int *a, unsigned long i) +{ + TclBN_mp_set_ul(a, i); + return MP_OKAY; +} + +#define TclBN_mp_set_ul (void (*)(mp_int *a, unsigned long i))TclBN_mp_set_long + +int TclBN_mp_expt_d_ex(const mp_int *a, mp_digit b, mp_int *c, int fast) +{ + return mp_expt_u32(a, b, c); +} + #if defined(TCL_NO_DEPRECATED) || TCL_MAJOR_VERSION > 8 # define TclSetStartupScriptPath 0 # define TclGetStartupScriptPath 0 @@ -117,7 +145,7 @@ static int TclSockMinimumBuffersOld(int sock, int size) #define TclBNInitBignumFromLong initBignumFromLong static void TclBNInitBignumFromLong(mp_int *a, long b) { - TclInitBignumFromWideInt(a, b); + TclBNInitBignumFromWideInt(a, b); } #define TclSetStartupScriptPath setStartupScriptPath static void TclSetStartupScriptPath(Tcl_Obj *path) @@ -167,8 +195,6 @@ TclWinGetPlatformId(void) #define TclWinResetInterfaces doNothing #define TclWinSetInterfaces (void (*) (int)) doNothing #endif -# define TclBNInitBignumFromWideUInt TclInitBignumFromWideUInt -# define TclBNInitBignumFromWideInt TclInitBignumFromWideInt #endif /* TCL_NO_DEPRECATED */ #ifdef _WIN32 @@ -479,6 +505,38 @@ tellOld( #define Tcl_WinTCharToUtf 0 #endif +mp_err mp_to_unsigned_bin(const mp_int *a, unsigned char *b) +{ + return mp_to_ubin(a, b, INT_MAX, NULL); +} + +mp_err mp_to_unsigned_bin_n(const mp_int *a, unsigned char *b, unsigned long *outlen) +{ + size_t n = mp_ubin_size(a); + if (*outlen < (unsigned long)n) { + return MP_VAL; + } + *outlen = (unsigned long)n; + return mp_to_ubin(a, b, n, NULL); +} + +mp_err mp_toradix_n(const mp_int *a, char *str, int radix, int maxlen) +{ + if (maxlen < 0) { + return MP_VAL; + } + return mp_to_radix(a, str, (size_t)maxlen, NULL, radix); +} +#undef TclBN_mp_unsigned_bin_size +#define TclBN_mp_unsigned_bin_size (int (*)(const mp_int *a)) mp_ubin_size + +void bn_reverse(unsigned char *s, int len) +{ + if (len > 0) { + s_mp_reverse(s, (size_t)len); + } +} + /* * WARNING: The contents of this file is automatically generated by the * tools/genStubs.tcl script. Any modifications to the function declarations @@ -951,11 +1009,11 @@ const TclTomMathStubs tclTomMathStubs = { TclBNInitBignumFromWideInt, /* 65 */ TclBNInitBignumFromWideUInt, /* 66 */ TclBN_mp_expt_d_ex, /* 67 */ - TclBN_mp_set_long_long, /* 68 */ - TclBN_mp_get_long_long, /* 69 */ - TclBN_mp_set_long, /* 70 */ - TclBN_mp_get_long, /* 71 */ - TclBN_mp_get_int, /* 72 */ + TclBN_mp_set_ull, /* 68 */ + TclBN_mp_get_mag_ull, /* 69 */ + TclBN_mp_set_ul, /* 70 */ + TclBN_mp_get_mag_ul, /* 71 */ + 0, /* 72 */ TclBN_mp_tc_and, /* 73 */ TclBN_mp_tc_or, /* 74 */ TclBN_mp_tc_xor, /* 75 */ |
