Commit Graph

184 Commits

Author SHA1 Message Date
Daniel Mendler
0a9f5e9bc1
use u32 i64 suffix 2019-05-24 10:21:54 +02:00
Daniel Mendler
d7e1cb4a09
another proposal: use _ul and _l for the long macros 2019-05-24 00:15:57 +02:00
Daniel Mendler
b58c996686
use int32 and uint32 instead of sint and uint 2019-05-24 00:15:57 +02:00
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
1af0de1f91
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)
2019-05-21 18:28:11 +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
czurnieden
03ca7bcdae added tests for Karatsuba and Toom-Cook 3-way 2019-05-21 15:21:39 +02:00
Steffen Jaeckel
51cda5b82b use correct amount of MR trials in tests 2019-05-21 09:48:48 +02:00
Steffen Jaeckel
cb3ff8c28d improve coverage 2019-05-21 09:45:22 +02:00
Francois Perrad
150c47cce2 refactor literal suffix with u lowercase 2019-05-20 05:36:24 +02:00
Daniel Mendler
f55f0a9ef5
fix some usages of enum types 2019-05-18 10:03:47 +02:00
Daniel Mendler
56e7a40123
deprecate mp_jacobi 2019-05-18 10:03:46 +02:00
Daniel Mendler
198418ba5e
bugfix: don't revert to platform rand source, but to jenkins source! 2019-05-18 10:00:07 +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
Daniel Mendler
f85bd31e4e
fix undefined behavior in labs 2019-05-12 23:45:36 +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
8d71a9e33b
travis: add -fsanitize=undefined 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
adf9605d6c
add warn_unused_result, found one missing check! 2019-05-11 19:26:58 +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
Steffen Jaeckel
1a12486d4b add mp_rand test 2019-05-09 10:47:35 +02:00
Steffen Jaeckel
eedf1624f0 allow filtering of tests executed 2019-05-09 10:47:35 +02:00
Daniel Mendler
44d03a6f8b
deprecate LTM_PRIME_* macros in favor of MP_PRIME_* 2019-05-07 09:45:38 +02:00
Daniel Mendler
250751be46
tommath.h: do not expose stdlib.h 2019-05-07 09:32:59 +02:00
Daniel Mendler
e45f75fddb
deprecate DIGIT_BIT, use MP_DIGIT_BIT 2019-04-25 13:39:50 +02:00
Daniel Mendler
e8f56cc4e0
enable -Wconversion and -Wsign-conversion on travis
* no changes to the library code
* conversion issues in the demo testsuite fixed
* add CONV_WARNINGS and enable the warnings only for clang-7 (for now)
* disable Wsystem-headers if Wconversion is enabled, to avoid warnings from the system headers
2019-04-19 22:01:11 +02:00
Daniel Mendler
fbfcb66184
apply rename 2019-04-12 14:56:29 +02:00
czurnieden
35311aea49 added function mp_ilogb 2019-04-09 21:59:59 +02:00
czurnieden
27ca25cb82 added multiplcation balancing for the Toom-Cook algorithms 2019-04-07 22:15:09 +02:00
Daniel Mendler
70a30ae7a7
remove footers 2019-04-07 17:26:31 +02:00
czurnieden
984d3ff679 changed seed to make nth-root usable 2019-04-06 22:51:10 +02:00
czurnieden
0ed98cf1cd removed tracing 2019-04-04 12:55:39 +02:00
czurnieden
769218ccc7 additional functions mp_incr and mp_decr 2019-04-04 07:58:19 +02:00
Steffen Jaeckel
cb1eb16116 run make astyle
[skip ci]
2019-04-04 07:58:07 +02:00
Francois Perrad
036551277e parameter with name in prototype 2019-03-06 15:13:20 +01:00
Francois Perrad
15a1adc290 literal suffix 2019-03-06 15:13:18 +01:00
Daniel Mendler
00a1bcd657
demo: better ndraw 2019-03-04 02:00:28 +01:00
Daniel Mendler
1fc7d20dab
opponent/test.c: move ndraw to main.c 2019-03-04 01:56:06 +01:00
Daniel Mendler
12b41bbeb5
opponent.c: forgot missing printf("\n") from _cleanup. reason for test failures. 2019-03-04 01:42:05 +01:00
Daniel Mendler
03b319ca3e
opponent.c: get rid of global variables and remove cleanup 2019-03-04 01:11:54 +01:00
Daniel Mendler
3f42b6a799
test/opponent.c: add todo comments 2019-03-04 01:11:12 +01:00
Daniel Mendler
674fdddbfc
remove duplicate T(mp_tc_div_2d) 2019-03-04 01:10:20 +01:00
Daniel Mendler
cd1570bb88
split test suite 2019-03-04 01:02:22 +01:00
Steffen Jaeckel
fcea5e3c35 Merge pull request #149 from czurnieden/develop
Added overflow check in mp_prime_is_prime and some verbosity in demo.c
(cherry picked from commit 55a7af3d62)
2019-01-22 09:00:03 +01:00
Steffen Jaeckel
648fbcefc7 run make format 2018-12-31 12:08:12 +01:00
czurnieden
813963178f reg. #143 added test to demo.c 2018-12-30 22:35:03 +01:00
Francois Perrad
ab074176ab explicit condition 2018-12-27 09:44:59 +01:00
Francois Perrad
f1f6762616 conditional definition of FGETS 2018-12-27 09:44:57 +01:00
Francois Perrad
2bde5bb5d5 semicolon 2018-12-27 09:44:54 +01:00
Francois Perrad
c63ce5bf1f fix indentation 2018-12-27 09:44:51 +01:00
Francois Perrad
b6fa97c591 explicit operator precedence 2018-12-27 09:44:46 +01:00
Francois Perrad
ea44272d41 always use #if LTM_DEMO_TEST_VS_MTEST != 0 2018-12-27 09:44:43 +01:00
Francois Perrad
efda3c0e10 declare cnt only when useful 2018-12-27 09:44:41 +01:00
Francois Perrad
4f902d9f10 remove useless assignment of cnt 2018-12-27 09:44:37 +01:00
Steffen Jaeckel
3ed524048f make astyle + some manual adjustments 2018-12-25 15:17:12 +01:00
czurnieden
3ec93dab9e bugfix in bn_mp_kronecker.c, cleanup and formatting in div. files 2018-12-25 15:17:12 +01:00
Steffen Jaeckel
e6f353b48d add mp_prime_is_prime to timing demo...
... it's disabled per default for now...
2018-12-25 15:17:12 +01:00
czurnieden
a2e15e2d10 Added tests to demo.c, switched off Lucas-Selfridge because it failed a test, and changed MP_8BIT handling in mp_prime_is_prime 2018-12-25 15:17:03 +01:00
czurnieden
dc150614d9 renamed variables in demo/demo.c shadowning another one 2018-12-08 10:13:01 +01:00
Karel Miko
d7f124f563 avoid c++ comments 2018-12-02 13:12:30 +01:00
Steffen Jaeckel
17f382c549 change C++ comments to C style 2018-11-26 12:32:05 +01:00
Daniel Mendler
2ab527b7e0
add mp_get_double, mp_set_double 2018-11-22 12:05:16 +01:00
Steffen Jaeckel
a829b87b00 add testcase of #118 2018-09-22 16:36:56 +02:00
Daniel Mendler
eebbcf0644
add mp_complement, mp_tc_div_2d, mp_tc_and, mp_tc_or, mp_tc_xor 2018-09-10 18:48:58 +02:00
Steffen Jaeckel
bf61c0be58 fix timing & logs/*.png generation 2018-02-27 23:30:43 +01:00
Steffen Jaeckel
82376cb19b format output of timing demo 2018-02-27 23:30:43 +01:00
Francois Perrad
802d8294db fix type & cast 2018-02-13 19:04:31 +01:00
Francois Perrad
9960fe3fe8 literal suffix 2018-02-13 19:04:25 +01:00
Francois Perrad
e3598dc8b2 explicit condition 2018-02-02 17:54:50 +01:00
Francois Perrad
d051d6ba58 remove unused code 2018-02-02 17:54:49 +01:00
Francois Perrad
0dbea3b69f explicit precedence operator with parenthesis 2018-02-01 22:28:57 +01:00
Francois Perrad
f5876db051 fix format 2018-02-01 22:28:54 +01:00
Francois Perrad
31aac2cea7 const variable 2018-02-01 22:28:52 +01:00
Francois Perrad
987911bd61 const parameter 2018-02-01 22:28:49 +01:00
Francois Perrad
d74f3d741a static variable & function 2018-02-01 22:28:43 +01:00
Francois Perrad
8a8659f283 remove useless variable 2017-12-22 21:30:15 +01:00
Francois Perrad
2f35c79c00 refactor with FGETS 2017-12-06 16:31:03 +01:00
Francois Perrad
08741a141c run astyle 2017-12-06 16:30:45 +01:00
Steffen Jaeckel
1bc0088330 use correct printf format specifier in timing.c
This fixes #54
2017-10-15 12:01:38 +02:00
Steffen Jaeckel
6fa127b707 add testcase for #67 2017-10-15 12:01:04 +02:00
Steffen Jaeckel
6f21294212 replace SVN tags 2017-08-28 17:00:58 +02:00
Steffen Jaeckel
2e1446f936 Add testcase for mp_add_d('0',...)
This closes #65
2016-06-02 09:52:42 +02:00
Steffen Jaeckel
0b9e9b5b08 improve trivial tests 2016-06-02 09:40:05 +02:00
Tom St Denis
f551dbc8ac Remove all traces of ulong64 as per comment by Karel M 2016-02-03 13:07:27 -05:00
Steffen Jaeckel
3ae9d0fbd2 demo: verify that negative number handling in mp_jacobi works 2016-01-12 13:49:18 +01:00
Steffen Jaeckel
68a360ab7f timing: create reproducable results 2015-12-12 18:15:04 +01:00
Steffen Jaeckel
543ffc7a03 improve demo.c a bit
- fix mp_get_long_long() tests
- more verbose output of ndraw()
- use all output of rand()
- move montgomery to the end of the tests, it's slow
2015-12-03 00:10:06 +01:00
Steffen Jaeckel
1e7ca501fd fixup demo.c 2015-11-29 23:14:50 +01:00
Steffen Jaeckel
7176a8777a Add tests for mp_jacobi() 2015-11-29 22:43:52 +01:00
Francois Perrad
f771e317ff move standard includes 2015-11-19 21:34:58 +01:00
Steffen Jaeckel
25480d57b7 demo: test one big montgomery reduction
...only for coverage reasons...
2015-11-01 12:28:58 +01:00
Steffen Jaeckel
f82599933b timing: add compile-time option to disable logging 2015-11-01 12:28:49 +01:00
Steffen Jaeckel
b6d76643db timing: some changes
- also use toom-cook for mul and sqr
- don't test too huge numbers with invmod (takes too long)
- remove the goto and labels
2015-11-01 12:28:44 +01:00
Steffen Jaeckel
c4501e1eb5 work a bit on code coverage 2015-11-01 12:28:34 +01:00
Steffen Jaeckel
91df2129ec add minimal mp_sqrtmod_prime() tests to demo.c 2015-11-01 12:27:08 +01:00
Steffen Jaeckel
cb085f06cf demo: read from urandom if someone requests real random data 2015-04-18 15:06:28 +02:00
Steffen Jaeckel
35488c9e84 fix errors in demo/demo.c found by clang
CC='clang' CFLAGS='-fsanitize=address,undefined -O3 -g  -fPIC -I./'
2014-12-14 12:35:46 +01:00
Steffen Jaeckel
9d83fce77e add tests 2014-12-10 18:59:42 +01:00
Steffen Jaeckel
5d3ee880aa less noise plz 2014-12-10 18:27:03 +01:00
Steffen Jaeckel
158e326612 add tests for mp_set_long() and mp_get_long() 2014-12-10 17:20:15 +01:00