Commit Graph

74 Commits

Author SHA1 Message Date
Daniel Mendler
3289c9590b
introduce various mp_set_sint/mp_set_uint functions with precise types 2019-05-24 00:15:57 +02:00
Daniel Mendler
18f6e4648b
add MP_STATIC_ASSERT 2019-05-23 16:00:31 +02:00
Francois Perrad
330b980d49 literal char 2019-05-21 20:23:16 +02:00
Francois Perrad
8d73e158df literal suffix 2019-05-21 20:23:16 +02:00
Francois Perrad
a4f9818b71 more cast 2019-05-21 20:23:16 +02:00
Daniel Mendler
bd8f7e55e6
introduce MP_PRIVATE to hide symbols (opt-in for now) 2019-05-21 18:08:02 +02:00
Daniel Mendler
0dfa9da5a6
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.
2019-05-21 18:01:17 +02:00
Daniel Mendler
6631d42664
remove __cplusplus stuff from tommath_private.h
tommath_private.h is an internal header which won't be included
by a C++ source file.
2019-05-21 15:58:06 +02:00
Daniel Mendler
0b840b78a3
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.
2019-05-21 15:34:04 +02:00
Daniel Mendler
a8239c2465
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.
2019-05-18 10:03:47 +02:00
Daniel Mendler
56e7a40123
deprecate mp_jacobi 2019-05-18 10:03:46 +02:00
Daniel Mendler
75e85a7341
move mp_prime_random_ex to bn_deprecated.c 2019-05-18 10:03:46 +02:00
Daniel Mendler
668cda01e8
remove unnecessary duplication of multiplication 2019-05-13 19:18:09 +02:00
Daniel Mendler
334c32e034
fix signature 2019-05-13 19:15:59 +02:00
Daniel Mendler
0b73dab69f
MP_FREE_DIGITS: add missing cast 2019-05-13 19:15:14 +02:00
Daniel Mendler
4534056c28
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
2019-05-13 19:15:14 +02:00
Francois Perrad
38116079e4 literal suffix 2019-05-13 17:53:10 +02:00
Francois Perrad
3c5afa9115 add missing parameter name in prototype 2019-05-13 17:52:56 +02:00
Francois Perrad
fa2d86af95 explicit operator precedence 2019-05-13 17:52:34 +02:00
Francois Perrad
07aaa4c381 explicit condition 2019-05-13 17:52:34 +02:00
Francois Perrad
783e3cdf82 format block macros 2019-05-13 17:52:34 +02:00
Daniel Mendler
2a2e2716c2
move jenkins prng to bn_s_mp_rand_jenkins.c 2019-05-12 23:45:36 +02:00
Daniel Mendler
c8cc3657e7
mov s_mp_rand_source_platform to separate file 2019-05-12 23:45:36 +02:00
Daniel Mendler
7365442ace
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
2019-05-12 13:04:45 +02:00
Daniel Mendler
61d9e528a4
hardening: add MP_ZERO_BUFFER, MP_ZERO_DIGITS
* (!) Always zero buffer before freeing if MP_NO_ZERO_ON_FREE is not defined
* Add MP_NO_ZERO_ON_FREE to disable hardening
* Add MP_ZERO_BUFFER, MP_ZERO_DIGITS, MP_FREE_BUFFFER, MP_FREE_DIGITS
* Never use MP_FREE directly, use MP_FREE_DIGITS or MP_FREE_BUFFER
* Add MP_USE_MEMSET to use memset instead of loop
* Disable astyle backups which are annonying in the times of git
2019-05-12 01:01:03 +02:00
Daniel Mendler
adf9605d6c
add warn_unused_result, found one missing check! 2019-05-11 19:26:58 +02:00
Francois Perrad
cc703a849b add missing parameter name in prototype 2019-05-11 16:57:04 +02:00
Francois Perrad
7d4e8363e0 refactor with new private macro MP_MAXFAST 2019-05-11 12:05:38 +02:00
Francois Perrad
556219aa5b refactor with new private macro MP_SIZEOF_BITS
CHAR_BIT is no longer directly used
2019-05-11 12:05:38 +02:00
Daniel Mendler
0669e92e78
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.
2019-05-11 00:48:48 +02:00
Daniel Mendler
250751be46
tommath.h: do not expose stdlib.h 2019-05-07 09:32:59 +02:00
Daniel Mendler
818d8fb7f5
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.
2019-05-04 13:08:37 +02:00
Daniel Mendler
90eccd5768
prefix private macros by PRIVATE_ 2019-04-25 15:36:35 +02:00
Daniel Mendler
632601f405
MP_WARRAY is an internal macro 2019-04-25 13:39:50 +02:00
Daniel Mendler
e45f75fddb
deprecate DIGIT_BIT, use MP_DIGIT_BIT 2019-04-25 13:39:50 +02:00
Daniel Mendler
a8c76138f9
deprecate macros in tommath.h
* move MP_DEPRECATED to tommath.h since we need it later
* add MP_DEPRECATED_PRAGMA
2019-04-25 13:39:50 +02:00
Daniel Mendler
fbfcb66184
apply rename 2019-04-12 14:56:29 +02:00
Daniel Mendler
7469e852f1
add rename script 2019-04-12 14:55:09 +02:00
Daniel Mendler
87292ed10a
move mp_balance_mul to tommath_private.h 2019-04-12 14:55:09 +02:00
Daniel Mendler
df8fcb0e4b
add MP_DEPRECATED macro 2019-04-12 14:55:09 +02:00
Daniel Mendler
e09a5c99bc
remove s_mp_mul which is only used once 2019-04-12 14:55:09 +02:00
Daniel Mendler
c4fb2241dc
rename macros in tommath_private to use MP_* prefix 2019-04-12 14:55:08 +02:00
Francois Perrad
42193f8914 explicit operator precedence 2019-04-09 20:26:08 +02:00
Daniel Mendler
ff56140462
shorter headers 2019-04-07 17:26:31 +02:00
Daniel Mendler
70a30ae7a7
remove footers 2019-04-07 17:26:31 +02:00
Steffen Jaeckel
a3651cbd79 apply modifications to XCALLOC according to #192 2019-04-06 23:41:24 +02:00
Steffen Jaeckel
d01b531897 Revert "Merge pull request #188 from libtom/unused_xcalloc"
This reverts commit 27417b85c7, reversing
changes made to d449bd44c0.
2019-04-06 23:41:24 +02:00
Daniel Mendler
db9a47d514
allocation functions: pass size to XREALLOC and XFREE
This is similar to the signatures of the custom allocation functions provided by GMP.
The allocation sizes are useful if the allocator has no easy way to access the allocation size.
2019-04-05 10:58:07 +02:00
Daniel Mendler
77143c33ea
remove mp_set_long specialization 2019-04-04 23:03:25 +02:00
Daniel Mendler
28e61778b9 remove OPT_CAST
The explicit cast does not hurt in C. Furthermore the explicit cast is needed
if tommath is compiled as C with strict warning settings.
2019-03-29 10:38:43 +01:00