kc3-lang/libtommath/tommath.h

Branch :


Log

Author Commit Date CI Message
thodg 008f3602 2025-11-01 13:55:05 ws
thodg 7d8a90cd 2025-10-31 23:50:48 fix tommath.h with our configure to match i386 target
f8e9bd27 2019-10-20 15:38:32 Merge pull request #387 from fperrad/20191019_lint some linting (cherry picked from commit 8095b3b61240628f052153d6c37539955632564e)
cb1b2dc8 2019-10-15 14:04:32 mp_log_u32: return uint32_t
c9d41fba 2019-10-15 10:40:40 rename mp_ilogb() to mp_log_u32()
e3eb13e4 2019-10-10 20:25:56 use same parameter name as in the prototype
fe2f91a1 2019-10-09 20:22:11 to_sbin/to_ubin/pack: don't write anything in case of buffer overflow
6e3dae56 2019-10-08 21:47:57 add MP_BUF error
b6813a41 2019-09-27 03:40:08 replace mp_export/import by mp_pack/unpack
71d1b7b9 2019-09-08 23:29:44 make mp_to_radix return the count of characters of the converted number
abdb0334 2019-09-25 00:29:19 Refactored functions to read and write binaries and added "maxlen"
6b0caef4 2019-09-09 15:55:45 add message that MP-8BIT is deprecated
bbe268eb 2019-09-03 10:53:40 Fix deprecation messages and unnecessary includes
684426b6 2019-09-02 14:40:10 add new conversion macros
f0e6ae59 2019-09-02 14:36:06 add `mp_to_radix()` ...a 100% copy&paste of `mp_toradix_n()` besides the changed API signature
625defdc 2019-05-31 11:31:53 fix gcc version check for deprecations
ca89e9c0 2019-07-03 13:10:05 rename mp_root/mp_expt to mp_*_u32
71696549 2019-05-29 20:36:18 deprecate mp_expt_d and mp_n_root in favor of mp_expt and mp_root
6c35dd7e 2019-07-15 12:15:10 Import stddef in tommath.h At least here (compiling for WebAssembly (`wasm32-unknown-unknown-wasm`), I need this, otherwise `size_t` is not available.
0db64fc8 2019-07-03 14:45:14 Rename bn_get_magxx -> bn_get_mag_uxx. Documentation updated too
fde85249 2019-06-13 16:58:06 @minad 's suggestions
db4afb3d 2019-06-12 13:11:58 Provide explicit symbols for bn_xxx_l and bn_xxx_ll functions.
a911999d 2019-05-28 14:26:41 Better interoperability between MSVC and mingw-w64, 3
ab309de0 2019-06-05 14:50:12 Fix MSVC warning: bn_mp_rand.c(9): warning C4028: formal parameter 1 different from declaration
f5b6cd07 2019-04-26 14:38:54 Fix building on HP-UX 11.11 / PA-RISC $ perl -v This is perl 5, version 28, subversion 2 (v5.28.2) built for PA-RISC2.0-thread-multi-LP64 $ perl Makefile.PL Checking if your kit is complete... Looks good Generating a Unix-style Makefile Writing Makefile for CryptX Writing MYMETA.yml and MYMETA.json $ make : : gcc64 -Iltm -Iltc/headers -DLTC_SOURCE -DLTC_NO_TEST -DLTC_NO_PROTOTYPES -DLTM_DESC -D_POSIX_C_SOURCE=199506L -D_REENTRANT -mpa-risc-2-0 -fPIC -D_HPUX_SOURCE -fwrapv -fno-strict-aliasing -pipe -I/usr/local/pa20_64/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -fPIC -g -O -DARGTYPE=4 -c ltc/math/ltm_desc.c -o ltc/math/ltm_desc.o In file included from ltc/math/ltm_desc.c:15:0: ltm/tommath.h:74:1: error: unable to emulate 'TI' make[1]: *** [ltc/math/ltm_desc.o] Error 1 make[1]: Leaving directory `/data/cpan-build/CryptX-0.063-0/src' make: *** [src/liballinone.a] Error 2 $ gcc64 --version gcc64 (GCC) 4.6.1 Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ perl -V:cppsymbols cppsymbols='_FILE_OFFSET_BITS=64 _HPUX_SOURCE=1 _LARGEFILE_SOURCE=1 _LFS64_LARGEFILE=1 _LFS_LARGEFILE=1 _LP64=1 _PA_RISC2_0=1 _POSIX_C_SOURCE=199506L _PROTOTYPES= _REENTRANT=1 _XOPEN_SOURCE_EXTENDED=1 _XPG4= _XPG4_EXTENDED= __BYTE_ORDER__=4321 __ELF__=1 __GNUC_MINOR__=6 __GNUC__=4 __LP64__=1 __PIC__=2 __STDC_EXT__=1 __STDC__=1 __hp9000s700=1 __hp9000s700__=1 __hp9000s800=1 __hp9000s800__=1 __hppa=1 __hppa__=1 __hpux=1 __hpux__=1 __pic__=2 __unix=1 __unix__=1';
0ebc4f92 2019-06-05 09:20:25 fix MP_DEPRECATED for non-gcc, -clang or -msvc
25ff85d2 2019-05-23 18:00:21 move cast inside macro
c7314fa4 2019-05-25 06:42:01 deprecate mp_n_root_ex and mp_expt_d_ex These functions were introduced to give some timing guarantees. However the guarantees are too weak to be useful. The functions seem to be unused essentially by downstream users.
4b475aca 2019-05-26 09:29:58 fixes for msvc
bcec605a 2019-05-22 15:34:49 deprecate mp_prime_is_divisible and ltm_prime_tab * it is an implementation detail used for prime testing * there is upcoming work by @czurnieden regarding a generalised prime sieve * furthermore remove jacobi test (replaced by kronecker)
c7a7bd47 2019-05-23 16:37:34 MP_PREC is an internal macro, it should be defined in tommath_private.h
b0938d70 2019-05-24 11:48:27 remove obsolete comment
9f607dd5 2019-05-23 17:00:47 disallow defining MP_DIGIT_BIT, only allow MP_8/16/31/32/64BIT
0a9f5e9b 2019-05-24 10:21:54 use u32 i64 suffix
d7e1cb4a 2019-05-24 00:15:11 another proposal: use _ul and _l for the long macros
b58c9966 2019-05-23 23:39:47 use int32 and uint32 instead of sint and uint
d7959854 2019-05-23 11:12:30 improve comment in tommath.h, extend .gitignore
3289c959 2019-05-20 10:41:06 introduce various mp_set_sint/mp_set_uint functions with precise types
1af0de1f 2019-05-20 19:11:25 deprecate mp_tc_(and|or|xor) in favor of mp_(and|or|xor) * same behavior for positive numbers * generalisation for negative numbers, treating them as two complement * improve algorithm, iterate once over the digits, manually perform two complement * simplify mp_add_d, mp_sub_d * functions are safe in case of a==c or b==c * renamed mp_tc_div_2d to mp_signed_rsh (signed right shift)
0dfa9da5 2019-05-19 12:53:49 make tommath_class.h and tommath_superclass.h private These headers are used for configuration during build time. Therefore they shouldn't be exposed as part of the public API.
0b840b78 2019-05-17 20:53:24 make mp_word private mp_word is an internal type and it is problematic if it is exposed in the public api. See for example #216 - MSVC does not support 128 bit mp_words. But it is perfectly ok to use those internally in the library, as long as the library is compiled with GCC.
a8239c24 2019-05-13 11:32:42 deprecate mp_get_bit The return type of mp_get_bit was imprecise (either mp_err or mp_bool), therefore this function is deprecated in favor of s_mp_get_bit for now. If we need s_mp_get_bit to be public, we should add it under a different name. However since mp_set_bit is not available, I don't think there any downstream users (ab)using mp_int as bitsets.
56e7a401 2019-05-13 02:46:11 deprecate mp_jacobi
89bac3a7 2019-05-13 15:06:54 deprecate MP_RANGE
4534056c 2019-05-13 00:22:18 use enums mp_err, mp_ord, mp_bool, mp_sign * MP_USE_ENUMS enables enums * Wc++-compat catches some implicit conversions if MP_USE_ENUMS is defined * 100% backwards compatible API/ABI if MP_USE_ENUMS is not defined
38116079 2019-05-13 17:51:07 literal suffix
2d508723 2019-05-13 17:36:12 const parameter
7365442a 2019-05-10 23:59:46 No grow necessary in mp_set_int* functions * mp_set_int* always return MP_OKAY * remove return checks for mp_set_int* * introduce MP_MIN_PREC
adf9605d 2019-05-09 03:28:49 add warn_unused_result, found one missing check!
cc703a84 2019-05-11 12:09:59 add missing parameter name in prototype
0669e92e 2019-05-08 20:18:53 deprecate mp_prime_random_ex in favor of mp_prime_rand We can use the internal mp_rand generator now, since it generates numbers which are safe for crypto purposes.
e05215a8 2019-05-09 04:06:12 deprecate old macros, deprecate mp_rand_digit
9ddf1e58 2019-05-07 12:26:46 support custom random data source via mp_rand_source * deprecate MP_PRNG_ENABLE_LTM_RNG * custom mp_rand_source is used always if set, which should be more aligned with user expectations * use custom source in tune.c * don't call random number generator once per digit, which is slow
290c28c1 2019-05-07 09:49:26 deprecate PRIME_SIZE in favor of MP_PRIME_SIZE
44d03a6f 2019-05-07 09:45:38 deprecate LTM_PRIME_* macros in favor of MP_PRIME_*
e2ee39b5 2019-04-26 12:39:26 deprecate ltm_prime_callback
80f5fac5 2019-04-26 12:35:39 rename LTM_NO_FILE to MP_NO_FILE
0337d48b 2019-04-25 19:35:19 add MP_NULL_TERMINATED
250751be 2019-05-07 09:32:59 tommath.h: do not expose stdlib.h
818d8fb7 2019-05-03 17:39:10 Rework handling of tunable cutoffs * In the default settings, a cutoff X can be modified at runtime by adjusting the corresponding X_CUTOFF variable. * Tunability of the library can be disabled at compile time by defining the MP_FIXED_CUTOFFS macro. * There is an additional file tommath_cutoffs.h, which defines the default cutoffs. These can be adjusted manually or by the autotuner.
90eccd57 2019-04-25 15:36:35 prefix private macros by PRIVATE_
632601f4 2019-04-13 17:34:11 MP_WARRAY is an internal macro
e45f75fd 2019-04-13 08:46:57 deprecate DIGIT_BIT, use MP_DIGIT_BIT
a8c76138 2019-04-12 21:15:56 deprecate macros in tommath.h * move MP_DEPRECATED to tommath.h since we need it later * add MP_DEPRECATED_PRAGMA
87292ed1 2019-04-09 12:19:40 move mp_balance_mul to tommath_private.h
35311aea 2019-04-03 23:50:57 added function mp_ilogb
27ca25cb 2019-04-06 18:55:43 added multiplcation balancing for the Toom-Cook algorithms
ff561404 2019-04-07 15:29:11 shorter headers
70a30ae7 2019-04-07 02:29:28 remove footers
5da4e0ac 2019-04-04 23:06:00 remove unnecessary size_t casts, fix Wconversion/Wsign-conversion issues Wconversion and Wsign-conversion is still not activated by default, since there are many issues in demo.c.
769218cc 2019-04-03 18:59:09 additional functions mp_incr and mp_decr
a3076677 2019-03-28 16:18:41 previous commit removed a little bit too much
ef07da5b 2019-03-28 16:13:37 mp_min_u32 is not used anywhere anymore, so it can be removed
8eb3bb28 2019-03-22 15:02:29 do not include stdio.h if LTM_NO_FILE is defined stdio.h might not be available on constraint environments
6ce271c4 2018-12-28 09:41:54 mp_iseven & mp_isodd becomes C functions
1c8c5348 2019-01-15 18:20:24 Merge pull request #147 from czurnieden/moarvm_workarounds workaround for the MoarVM problem with MP_GEN_RAND et al. (cherry picked from commit 11d6e0391421bc996b2cf780f3f4c3fa634001d0)
08eb995d 2019-01-13 20:21:36 implemented Steffen Jaeckels superior suggestion regarding MoarVM's problem
aadb1efa 2019-01-13 01:07:42 changes for the Clang compiler
b7216e89 2019-01-13 00:51:02 workaround for the MoarVM problem with MP_GEN_RAND et al.
7ac11218 2018-12-26 15:19:07 clarify comment of ltm_rng()
18355de6 2018-12-29 17:56:20 Update file headers [skip ci]
f4449362 2018-05-26 01:39:03 fixes for MP_8BIT and mx32, prefinal design
08cee432 2018-05-21 22:54:55 Moved mp_mul_si() into bn_mp_prime_strong_lucas_selfridge.c as a local function
a218ddce 2018-05-03 23:45:02 Added Fips 186.4 compliance, an additional strong Lucas-Selfridge (for BPSW) and a Frobenius (Paul UNderwood) test, both optional. With documentation.
adbadc70 2018-11-18 01:30:51 Fix includes Header files which are located in the same directory that the file from where it is included must be included using `" "`, not `< >`. Otherwise the compiler (gcc 5) cannot understand `#include <tommath_class.h>` in `/usr/include/tommath/tommath.h`.
2ab527b7 2018-09-10 18:51:26 add mp_get_double, mp_set_double
8b9f98ba 2018-09-23 21:37:58 auto-format by executing `make astyle`
eebbcf06 2018-09-10 18:48:58 add mp_complement, mp_tc_div_2d, mp_tc_and, mp_tc_or, mp_tc_xor
92e8719b 2018-05-28 22:02:13 improved detection of MP_64BIT
22550d41 2018-05-02 22:01:09 Do not use tommath.h from the system for building
9034e712 2018-05-02 21:43:17 Do not use installed headers for building
ef6d85a1 2018-04-14 14:33:36 don't use rand() in mp_rand() This fixes #103
0bc75513 2018-02-26 09:32:12 add e2k/lcc support
f51249b6 2018-02-02 12:07:21 clean-up file headers
43c26b3a 2015-12-09 19:16:30 use same parameter name between prototype declaration and definition
bdbed000 2017-10-15 19:57:12 literal suffix
d1fc4a71 2017-10-03 15:18:33 LLP64 indicates a windows environment as of [1] the only architecture using a LLP64 data model is windows [1]: https://en.wikipedia.org/wiki/64-bit_computing
1346d983 2017-10-03 09:19:50 there's no __int128 on MSVC, fall back to 32bit MPI's
d293ab66 2017-09-30 22:57:00 more constify
f674018a 2017-09-20 16:59:43 constify remaining functions