summaryrefslogtreecommitdiffstats
path: root/generic/tclStubInit.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2019-10-22 12:25:18 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2019-10-22 12:25:18 (GMT)
commitab6fc07f69ec94ac2715dc652fb15c6e9fe8d15b (patch)
tree8eba01a20b18583dc9d0fca0245c55e29c40c235 /generic/tclStubInit.c
parent39a95d7e5228e8d79a9323a01e4f30832af68193 (diff)
parent03475f06485c403570643f9b359d100d9a6f9ced (diff)
downloadtcl-ab6fc07f69ec94ac2715dc652fb15c6e9fe8d15b.zip
tcl-ab6fc07f69ec94ac2715dc652fb15c6e9fe8d15b.tar.gz
tcl-ab6fc07f69ec94ac2715dc652fb15c6e9fe8d15b.tar.bz2
Merge 8.6
Diffstat (limited to 'generic/tclStubInit.c')
-rw-r--r--generic/tclStubInit.c76
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 */