Commit Graph

69 Commits

Author SHA1 Message Date
153d88237f Clean up (and make a lot more flexible) the code to translate to/from bytes. 2018-04-30 13:04:46 -07:00
5758b6e22b Factor out the gold testing infrastructure so we can use it elsewhere. 2018-04-23 20:31:02 -07:00
baa70a6ce6 Starting to include RSA crypto. 2018-04-14 10:45:11 -07:00
b5a5cbdd98 Serialization routines. 2018-04-14 07:56:03 -07:00
4985426e74 Prospective prime support. 2018-04-14 07:16:50 -07:00
c45235473a Support modular inverses. 2018-04-14 07:05:57 -07:00
b1c659087d Add a quick test to ensure that our GCD algorithm works. 2018-04-14 07:01:59 -07:00
0d08f53d70 Make sure we print 0. 2018-04-14 06:59:49 -07:00
109e23789a Support fast modular exponentiation for when your base is roughly the same order of magnitude as the modulo. 2018-04-13 11:51:39 -04:00
551ebeac3b Fix some println!() leavings. 2018-04-13 11:06:42 -04:00
017392ff6c Fix the conversion functions, make sure we can do usize, too. 2018-04-13 10:57:22 -04:00
d98baa1381 Fix Barrett reduction. 2018-04-13 10:56:59 -04:00
330dabe017 Shift the gold testing infrastructure into its own module, and add the Haskell program I used to generate the tests. 2018-04-13 10:56:42 -04:00
675f8adc7e [BROKEN] Division seems to be broken? Might need better test vectors. 2018-04-05 18:02:03 -07:00
5868553c74 First whack at prime numbers and such. 2018-04-04 17:27:07 -07:00
ceb1e9eb58 Fix some shifting issues. 2018-04-04 17:26:49 -07:00
3cd37a881d First whack at modular inverses. 2018-04-04 18:47:02 -04:00
2f16a45784 Quickcheck properties for signed numbers. 2018-04-04 18:28:01 -04:00
f06f83583f Whoops. Don't correct for rounding if there's no remainder on the division. 2018-04-04 18:13:50 -04:00
ae6a33f4b8 Support negation for signed numbers. 2018-04-04 18:12:30 -04:00
8a4693d30d Zero is a problem for me. 2018-04-04 17:57:11 -04:00
20592a3d65 I guess i128_type isn't stable in the beta after all. 2018-04-03 07:04:38 -04:00
acda294bac Signed numbers! 2018-04-02 16:36:28 -04:00
c4409d9c25 Fix some printlns and other bad bits. 2018-04-02 15:26:41 -04:00
ec0f0dc597 Add support for gold value testing, as well, and test some stuff. 2018-04-02 15:26:16 -04:00
80f57b9f22 Fix division by not returning a weirdly-shifted remainder when the quotient is zero. 2018-04-02 15:24:48 -04:00
fa33de88db Fix subtraction. 2018-04-02 15:23:38 -04:00
b92b47d971 [BROKEN] First crach at division. 2018-04-01 20:43:19 -07:00
a4e65fa35f Fix multiplication when either argument is zero. 2018-04-01 20:42:49 -07:00
30bff2a22f Multiplication. 2018-03-31 21:25:10 -07:00
185881df91 Addition and subtraction. 2018-03-31 18:03:17 -07:00
824718eafc Also now enable beta builds in the Travis file. 2018-03-29 21:45:14 -07:00
bfdede4241 Remove the i128 feature, as it's now good in nightlies. 2018-03-29 21:26:15 -07:00
d6c59b5037 Fix shifts! 2018-03-29 21:25:51 -07:00
fd9254a322 [BROKEN] Broken definitions of the shift operators. 2018-03-27 17:02:54 -07:00
f9b25ab03a Add lowercase hex formatting. 2018-03-25 20:18:13 -07:00
d53cdb6c97 And, or, and xor. 2018-03-25 20:14:25 -07:00
a595eb349d Negation. 2018-03-24 16:00:02 -07:00
03765c2ff6 Shrink to clean. 2018-03-24 15:56:02 -07:00
edd7c7fee3 Add a shrink function to clean up 0s at the end of numbers. 2018-03-24 13:06:50 -07:00
6b9783c69a Comparisons! 2018-03-24 12:03:29 -07:00
9c4ea7ae26 Start working variable-length numbers. 2018-03-23 22:12:34 -07:00
7a8bb7b4fd Nevermind on the whole fixed size thing? 2018-03-23 22:11:09 -07:00
667e32694e Start including both signed and unsigned numbers, and starting building in Signed traits.
The latter seems much harder (and wordier) than it should be.
2018-03-11 17:46:22 -07:00
8a8c85703a Start staging some extended math functionality, including primality bits. 2018-03-11 15:35:49 -07:00
0698272b2c Add bitsize/bytesize trait functions. 2018-03-11 15:34:18 -07:00
716a165007 Remove the divmod()-based tests. 2018-03-11 15:33:57 -07:00
ded93767ed Split the CryptoNum trait into pieces, in preparation for negative numbers. 2018-03-10 18:04:56 -08:00
17da7a43d6 Travis is fun? 2018-03-10 17:25:38 -08:00
4b90550225 Add support for Barrett reduction, which should be a faster way to do mods. 2018-03-10 17:20:33 -08:00