tommath.h


Log

Author Commit Date CI Message
Daniel Mendler 625defdc 2019-05-31T11:31:53 fix gcc version check for deprecations
Daniel Mendler ca89e9c0 2019-07-03T13:10:05 rename mp_root/mp_expt to mp_*_u32
Daniel Mendler 71696549 2019-05-29T20:36:18 deprecate mp_expt_d and mp_n_root in favor of mp_expt and mp_root
Joachim Breitner 6c35dd7e 2019-07-15T12: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.
nijtmans 0db64fc8 2019-07-03T14:45:14 Rename bn_get_magxx -> bn_get_mag_uxx. Documentation updated too
nijtmans db4afb3d 2019-06-12T13:11:58 Provide explicit symbols for bn_xxx_l and bn_xxx_ll functions.
nijtmans fde85249 2019-06-13T16:58:06 @minad 's suggestions
nijtmans a911999d 2019-05-28T14:26:41 Better interoperability between MSVC and mingw-w64, 3
nijtmans ab309de0 2019-06-05T14:50:12 Fix MSVC warning: bn_mp_rand.c(9): warning C4028: formal parameter 1 different from declaration
H.Merijn Brand - Tux f5b6cd07 2019-04-26T14: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';
Steffen Jaeckel 0ebc4f92 2019-06-05T09:20:25 fix MP_DEPRECATED for non-gcc, -clang or -msvc
Francois Perrad 25ff85d2 2019-05-23T18:00:21 move cast inside macro
Daniel Mendler c7314fa4 2019-05-25T06: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.
Daniel Mendler 4b475aca 2019-05-26T09:29:58 fixes for msvc
Daniel Mendler bcec605a 2019-05-22T15: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)
Daniel Mendler c7a7bd47 2019-05-23T16:37:34 MP_PREC is an internal macro, it should be defined in tommath_private.h
Daniel Mendler b0938d70 2019-05-24T11:48:27 remove obsolete comment
Daniel Mendler 9f607dd5 2019-05-23T17:00:47 disallow defining MP_DIGIT_BIT, only allow MP_8/16/31/32/64BIT
Daniel Mendler 0a9f5e9b 2019-05-24T10:21:54 use u32 i64 suffix
Daniel Mendler d7e1cb4a 2019-05-24T00:15:11 another proposal: use _ul and _l for the long macros
Daniel Mendler b58c9966 2019-05-23T23:39:47 use int32 and uint32 instead of sint and uint
Daniel Mendler d7959854 2019-05-23T11:12:30 improve comment in tommath.h, extend .gitignore
Daniel Mendler 3289c959 2019-05-20T10:41:06 introduce various mp_set_sint/mp_set_uint functions with precise types
Daniel Mendler 1af0de1f 2019-05-20T19: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)
Daniel Mendler 0dfa9da5 2019-05-19T12: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.
Daniel Mendler 0b840b78 2019-05-17T20: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.
Daniel Mendler a8239c24 2019-05-13T11: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.
Daniel Mendler 56e7a401 2019-05-13T02:46:11 deprecate mp_jacobi
Daniel Mendler 89bac3a7 2019-05-13T15:06:54 deprecate MP_RANGE
Daniel Mendler 4534056c 2019-05-13T00: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
Francois Perrad 38116079 2019-05-13T17:51:07 literal suffix
Francois Perrad 2d508723 2019-05-13T17:36:12 const parameter
Daniel Mendler 7365442a 2019-05-10T23: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
Daniel Mendler adf9605d 2019-05-09T03:28:49 add warn_unused_result, found one missing check!
Francois Perrad cc703a84 2019-05-11T12:09:59 add missing parameter name in prototype
Daniel Mendler 0669e92e 2019-05-08T20: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.
Daniel Mendler e05215a8 2019-05-09T04:06:12 deprecate old macros, deprecate mp_rand_digit
Daniel Mendler 9ddf1e58 2019-05-07T12: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
Daniel Mendler 290c28c1 2019-05-07T09:49:26 deprecate PRIME_SIZE in favor of MP_PRIME_SIZE
Daniel Mendler 44d03a6f 2019-05-07T09:45:38 deprecate LTM_PRIME_* macros in favor of MP_PRIME_*
Daniel Mendler e2ee39b5 2019-04-26T12:39:26 deprecate ltm_prime_callback
Daniel Mendler 80f5fac5 2019-04-26T12:35:39 rename LTM_NO_FILE to MP_NO_FILE
Daniel Mendler 0337d48b 2019-04-25T19:35:19 add MP_NULL_TERMINATED
Daniel Mendler 250751be 2019-05-07T09:32:59 tommath.h: do not expose stdlib.h
Daniel Mendler 818d8fb7 2019-05-03T17: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.
Daniel Mendler 90eccd57 2019-04-25T15:36:35 prefix private macros by PRIVATE_
Daniel Mendler 632601f4 2019-04-13T17:34:11 MP_WARRAY is an internal macro
Daniel Mendler e45f75fd 2019-04-13T08:46:57 deprecate DIGIT_BIT, use MP_DIGIT_BIT
Daniel Mendler a8c76138 2019-04-12T21:15:56 deprecate macros in tommath.h * move MP_DEPRECATED to tommath.h since we need it later * add MP_DEPRECATED_PRAGMA
Daniel Mendler 87292ed1 2019-04-09T12:19:40 move mp_balance_mul to tommath_private.h
czurnieden 35311aea 2019-04-03T23:50:57 added function mp_ilogb
czurnieden 27ca25cb 2019-04-06T18:55:43 added multiplcation balancing for the Toom-Cook algorithms
Daniel Mendler ff561404 2019-04-07T15:29:11 shorter headers
Daniel Mendler 70a30ae7 2019-04-07T02:29:28 remove footers
Daniel Mendler 5da4e0ac 2019-04-04T23: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.
czurnieden 769218cc 2019-04-03T18:59:09 additional functions mp_incr and mp_decr
nijtmans a3076677 2019-03-28T16:18:41 previous commit removed a little bit too much
nijtmans ef07da5b 2019-03-28T16:13:37 mp_min_u32 is not used anywhere anymore, so it can be removed
Daniel Mendler 8eb3bb28 2019-03-22T15:02:29 do not include stdio.h if LTM_NO_FILE is defined stdio.h might not be available on constraint environments
Francois Perrad 6ce271c4 2018-12-28T09:41:54 mp_iseven & mp_isodd becomes C functions
Steffen Jaeckel 1c8c5348 2019-01-15T18: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)
czurnieden 08eb995d 2019-01-13T20:21:36 implemented Steffen Jaeckels superior suggestion regarding MoarVM's problem
czurnieden aadb1efa 2019-01-13T01:07:42 changes for the Clang compiler
czurnieden b7216e89 2019-01-13T00:51:02 workaround for the MoarVM problem with MP_GEN_RAND et al.
Steffen Jaeckel 7ac11218 2018-12-26T15:19:07 clarify comment of ltm_rng()
Steffen Jaeckel 18355de6 2018-12-29T17:56:20 Update file headers [skip ci]
czurnieden f4449362 2018-05-26T01:39:03 fixes for MP_8BIT and mx32, prefinal design
czurnieden 08cee432 2018-05-21T22:54:55 Moved mp_mul_si() into bn_mp_prime_strong_lucas_selfridge.c as a local function
czurnieden a218ddce 2018-05-03T23:45:02 Added Fips 186.4 compliance, an additional strong Lucas-Selfridge (for BPSW) and a Frobenius (Paul UNderwood) test, both optional. With documentation.
Mikhail Novosyolov adbadc70 2018-11-18T01: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`.
Daniel Mendler 2ab527b7 2018-09-10T18:51:26 add mp_get_double, mp_set_double
Steffen Jaeckel 8b9f98ba 2018-09-23T21:37:58 auto-format by executing `make astyle`
Daniel Mendler eebbcf06 2018-09-10T18:48:58 add mp_complement, mp_tc_div_2d, mp_tc_and, mp_tc_or, mp_tc_xor
Karel Miko 92e8719b 2018-05-28T22:02:13 improved detection of MP_64BIT
czurnieden 22550d41 2018-05-02T22:01:09 Do not use tommath.h from the system for building
czurnieden 9034e712 2018-05-02T21:43:17 Do not use installed headers for building
Steffen Jaeckel ef6d85a1 2018-04-14T14:33:36 don't use rand() in mp_rand() This fixes #103
Steffen Jaeckel f51249b6 2018-02-02T12:07:21 clean-up file headers
Michael Shigorin 0bc75513 2018-02-26T09:32:12 add e2k/lcc support
Francois Perrad 43c26b3a 2015-12-09T19:16:30 use same parameter name between prototype declaration and definition
Francois Perrad bdbed000 2017-10-15T19:57:12 literal suffix
Steffen Jaeckel d1fc4a71 2017-10-03T15: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
Steffen Jaeckel 1346d983 2017-10-03T09:19:50 there's no __int128 on MSVC, fall back to 32bit MPI's
Francois Perrad d293ab66 2017-09-30T22:57:00 more constify
nijtmans f674018a 2017-09-20T16:59:43 constify remaining functions
nijtmans 41de5855 2017-09-19T13:35:15 Add 'const' keyword in various places. Adopted from Tcl
Francois Perrad f89cda03 2017-08-30T19:15:27 format with astyle (step 5)
Francois Perrad 82a2d385 2017-08-30T05:56:38 refactor indentation of preprocessor directives
Francois Perrad 378be117 2017-08-28T21:40:10 add missing space after comma
Kevin B Kenny 71e3024f 2005-05-10T17:20:39 fix mp_iseven
Steffen Jaeckel 6f212942 2017-08-28T16:27:26 replace SVN tags
Steffen Jaeckel 27115d4b 2017-05-09T14:00:26 use 64-bit detection code from libtomcrypt
Steffen Jaeckel c17c4771 2017-04-09T00:44:01 allow external define of MP_GEN_RANDOM
Steffen Jaeckel d5b0f1e9 2016-04-10T13:55:42 loop&shift until enough random data has been read
Tom St Denis f551dbc8 2016-02-03T13:07:27 Remove all traces of ulong64 as per comment by Karel M
Francois Perrad a0b8ce68 2015-11-13T17:47:30 use unsigned literal
Francois Perrad e6cfefc1 2015-11-19T21:53:32 more private stuff
Francois Perrad f771e317 2015-11-19T21:34:58 move standard includes
Steffen Jaeckel 4e3f1344 2015-11-12T01:49:07 provide tommath_private.h tommath.h contains declarations for the public part of the library. tommath_private.h contains the functions which are private to ltm and should not be exposed to the public.
Steffen Jaeckel bd39da23 2015-11-12T01:33:25 use correct value to compare to in mp_isneg() macro