Commit Graph

92 Commits

Author SHA1 Message Date
2d863c1907 Add support for directly defining unsigned values. 2019-02-04 17:23:27 -08:00
d189331312 Try to simplify the multiplication loop, to get better optimization, and add a bunch of missing test cases. 2019-01-30 20:34:38 -08:00
56fb154c90 Fix the QuickCheck logic for back conversion. 2019-01-08 09:48:28 -08:00
3b0e2a84d9 Support for squaring of signed numbers. 2019-01-08 09:48:11 -08:00
c5fa23c4bd Fix the requirements for ECDSA math. 2019-01-08 09:47:47 -08:00
4114db21be Add support for scaling numbers by primitive types. 2019-01-01 20:55:21 -08:00
69312c6a42 Update moddiv to use the new signed operators. 2019-01-01 20:48:48 -08:00
6268491168 Extra little conversion check. 2019-01-01 20:47:40 -08:00
a4ead1ec3d Add additional test files. 2018-12-30 17:54:08 -08:00
7da10f5fa4 Clean up requirements. 2018-12-30 17:51:22 -08:00
dc6732a875 Don't ignore assertions in the test files. (Whoops) 2018-12-30 17:15:18 -08:00
c55a1956d4 Add support for modular division with negative divisors. 2018-12-30 17:14:52 -08:00
130a87ef43 Add support for signed modular inversion. 2018-12-30 17:14:11 -08:00
a6a82773d3 Add additional support for GCD on signed numbers. 2018-12-30 17:13:01 -08:00
14fd156d3c Add the obvious conversion from u64 to signed values. 2018-12-30 17:09:48 -08:00
ae8266885b Support modular division of signed numbers. 2018-12-23 21:55:07 -08:00
2480bafe06 Remove some lingering debugging prints. 2018-12-23 21:45:51 -08:00
70a082363a Add a testbit() operationg. 2018-12-23 21:05:27 -08:00
85165c7f68 Address some missing operations for ECDSA. 2018-12-23 21:05:05 -08:00
6c40ee5109 Support signed multiplication and division, for ECDSA. 2018-12-23 20:24:20 -08:00
b52dd4d355 Support in-place division, multiplication, and modulos. 2018-12-23 20:23:36 -08:00
364b0d168b Update against deprecated API. 2018-12-23 20:22:27 -08:00
2b9f5ea7a2 Support unsigned integral square root computations. 2018-11-30 11:28:20 -08:00
0ec5f90d8e Ridiculously over-build the testing infrastructure. 2018-11-29 17:06:34 -08:00
60d7dd3af5 Add support for random numbers, and prime generation and testing. 2018-11-29 17:03:33 -08:00
62e36d79cb Add a bit length function that's handy for macros. 2018-11-14 21:33:58 -05:00
1a2f3aaa7a Open up the Barrett number construction / debugging a bit. 2018-11-06 21:54:32 -08:00
de5ff87f9e Add some property testing, and fix a bug it found. 2018-11-06 21:53:47 -08:00
ccde640f99 Clean up the operation dependency, to get a better approximation of the types/operations needed. 2018-11-06 21:52:51 -08:00
1cb77de521 Add some lightweight documentation. 2018-10-27 15:02:08 -07:00
0bec74b18c Clean up the code around zero handling. 2018-10-27 15:01:16 -07:00
45f7df00d8 Modular inverse computation. 2018-10-26 21:28:48 -07:00
89e2dfc6ef Base implementation of signed numbers and EGCD, with tests. 2018-10-15 19:16:25 -07:00
d43f0bcd42 Add the ability to ignore tests, so that day-to-day testing only takes a little while. 2018-10-08 20:34:36 -07:00
a251b7a294 Generate better tests, with fewer repeating results. 2018-10-08 20:32:51 -07:00
24ad31df0d Barrett versions of modsq/modmul/modexp, with tests. 2018-10-04 20:52:41 -07:00
fe43949684 Fix an issue in Barrett reduction. 2018-10-04 20:00:46 -07:00
78750598a5 Basic mathematics for unsigned integers ported over, tests pass. 2018-10-04 10:40:11 -07:00
3678ffdd6c Be a little bit more careful about what items we do and don't include, start adding modular math into the system. 2018-10-02 13:37:39 -07:00
19a298e56c Barrett reduction! And number formatting. 2018-09-28 18:46:01 -05:00
304d009a67 Now with tests for the basic algorithms. 2018-09-28 17:48:35 -05:00
3b68363b49 Initial commit! 2018-09-26 14:49:10 -05:00