2617609bf6
Fix conversions and modinv.
2020-02-09 17:12:23 -06:00
d8a2e66e7c
Sort out signed shifts.
2020-02-07 16:59:15 -06:00
6dd32647b5
Fix signed addition and subtraction.
2020-02-07 16:03:49 -06:00
89c297525a
Improve the state of building, moving towards addition working for signed numbers.
2020-01-23 16:09:11 -08:00
ac01aad415
Unnecessary concurrency and terminal silliness.
2020-01-18 10:33:07 -08:00
b3fcd4715e
All the infrastructure to eventually to modinv. Don't try to use any of this yet.
2020-01-17 20:44:41 -08:00
e46cfe56d1
Support generating signed numbers.
2020-01-14 12:13:40 -10:00
4383b67c44
Unsigned modular operations.
2020-01-10 09:05:11 -10:00
4b8d0b3f09
Better support for conversions between number types.
2020-01-10 09:04:47 -10:00
8c5f18cb7c
Commit the start of the work on modular X before I worry about From.
2020-01-08 15:19:34 -10:00
3e82008189
Clean up an import.
2020-01-08 08:55:07 -10:00
2888164814
Division / modulus!
2020-01-07 18:51:29 -10:00
c1d2922ab2
Fix number printing again.
2020-01-07 18:51:07 -10:00
00e59673f7
Support scaling values by primitive types.
2020-01-06 13:16:11 -08:00
a35d0df6da
Multiply works!
2020-01-06 12:25:38 -08:00
d8c752fad3
Start working on generating multiplies via Karatsuba.
2019-12-30 20:38:28 -08:00
e5fa103db0
Support subtraction.
2019-11-27 16:23:52 -08:00
4d724a5a6e
Fix printing.
2019-11-27 16:23:13 -08:00
14ccd6c2b9
add a project, since the language-rust extensions haven't been released.
2019-11-27 16:23:00 -08:00
cf80930854
Support addition.
2019-11-27 15:16:15 -08:00
e223950c9f
Remove an unnecessary clone.
2019-11-23 21:05:23 -08:00
430401ba54
Fix right shift.
2019-11-23 20:59:21 -08:00
8c4b369911
Fix left shift.
2019-11-23 20:36:21 -08:00
ba587cb37f
Start trying to generate shift code.
2019-11-04 17:08:16 -08:00
ed07a0855d
Tests, that work!
2019-10-31 18:56:10 -04:00
c52dadcf22
Some commits in the way of cleaning up the Rust and generating module lists.
2019-10-31 16:39:00 -04:00
3b0bd25dfa
Clean out the old testdata work.
2019-10-31 16:36:19 -04:00
0dec5815dc
Fix a bunch of build errors.
2019-10-24 08:46:42 -07:00
620048bce6
Complete the shift over to language-rust.
2019-10-22 22:06:34 -07:00
2400b10fbc
Start working on switching to language-rust as a generator, for fun.
2019-10-22 20:12:08 -07:00
d7665acf64
Add a bunch of QuickCheck properties for binary operators.
2019-07-30 18:24:49 -07:00
1d8907539d
Get back to basics, with some basic tests working.
2019-07-30 16:23:14 -07:00
203c23e277
Add from_bytes() and to_bytes() to CryptoNum, and do a basic implementation of from_bytes().
2019-07-23 21:05:20 -07:00
aff88eb2f0
Support a more complete (and simple) requirements gathering mechanism,
...
and add support for binary operations.
This version of requirements generation simply generates every numeric
size within a provided range, and then will reject trait implementations
that rely on values outside this range. It should be a little more easy
to reason about, and easier to make local changes as I (inevitably) need
to modify rules.
2019-07-22 08:14:40 -07:00
ab465296f2
The basic binary operations.
2019-07-15 21:00:12 -07:00
fa872c951a
Start experimenting with full generation of all of the numeric types.
...
Previously, we used a little bit of generation to drive a lot of Rust
macros. This works, but it's a little confusing to read and write. In
addition, we used a lot of implementations with variable timings based
on their input, which isn't great for crypto. This is the start of an
attempt to just generate all of the relevant Rust code directly, and to
use timing-channel resistant implementations for most of the routines.
2019-07-15 17:39:06 -07:00
666378b14b
Add support for bitwise and and or on unsigned numbers.
2019-05-27 21:41:05 -07:00
83ed5bc0ba
Remove an unnecessary #[macro_use]
2019-05-14 21:49:24 -07:00
cac39b0e50
Always generate Arbitrary instances, not just with cfg(test)
2019-04-03 19:47:07 -07:00
037413ad15
Start tracking the TODO list.
2019-02-11 16:36:11 -05:00
fbee1f2729
Add modular multiplication suppor for U384 and U576.
2019-02-11 12:34:59 -08:00
2d70341a58
Remove a cabal config file that seems to have been accidentally captured.
2019-02-10 17:43:05 -08:00
d49c85538c
Remove a bunch of test data we don't appear to be using.
2019-02-10 17:41:41 -08:00
10b70139f2
Some additional helpers for ECDSA signing.
2019-02-04 17:23:45 -08:00
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