Commit Graph

151 Commits

Author SHA1 Message Date
Sean Bowe 44765a7ad4
Introduce utility functions for AffinePoint and ExtendedPoint. 2019-03-21 15:47:43 -06:00
Sean Bowe 9f0b177fb7
Introduce from_raw for field elements. 2019-03-20 23:44:31 -06:00
Sean Bowe 3612d77430
Bump minimum Rust version 2019-03-20 20:30:40 -06:00
Sean Bowe 0cc3d82d98
cargo fmt 2019-03-20 20:30:35 -06:00
Sean Bowe c0e7546f6f
Deny missing Debug implementations and documentation for public facing APIs. 2019-03-20 18:31:33 -06:00
Sean Bowe c70eac71f1
Avoid unnecessary subtraction of modulus during 512-bit reduction. 2019-03-20 18:28:24 -06:00
ebfull 1d2ea91cc7
Merge pull request #19 from zkcrypto/constant-time-everything
Constant time everything
2019-03-20 18:11:17 -06:00
Sean Bowe 62e20edcf5
Make inversion API return Maybe. 2019-03-20 18:03:35 -06:00
Sean Bowe e597b7ee08
Add tests for Maybe::map and Maybe::and_then. 2019-03-20 17:48:41 -06:00
Sean Bowe 08221918bc
Make Fq square root constant time.
Co-authored-by: Jack Grigg <jack@z.cash>
Co-authored-by: Eirik0 <eirik@z.cash>
2019-03-20 15:32:06 -06:00
Sean Bowe 71d5b5a1e8
Make Fr sqrt constant time. 2019-03-19 18:06:29 -06:00
Sean Bowe 8752e54904
Make field element deserialization constant time. 2019-03-19 17:57:12 -06:00
Sean Bowe c764c97c8e
Introduce "Maybe" abstraction. 2019-03-19 16:26:39 -06:00
Sean Bowe d197cb1988
Implementation of Tonelli-Shanks that actually matches the paper, and is more efficient. 2019-03-01 20:34:53 -07:00
Sean Bowe 51a5b6ae25
Fix typo in documentation. 2019-02-22 13:49:47 -07:00
Sean Bowe 96a05706aa
Do not enable the `std` feature of `subtle`. 2019-02-22 10:10:13 -07:00
Sean Bowe d502391eef
Add more documentation. 2019-02-22 10:04:15 -07:00
Sean Bowe fb863be161
Do not require byteorder/std as we do not need any of these features. 2019-02-21 21:43:23 -07:00
Sean Bowe 784670e648
Make new required Rust version 1.32. 2019-02-20 21:00:33 -07:00
Sean Bowe fd32165f1c
Various minor improvements. 2019-02-20 20:44:17 -07:00
ebfull b509191ca4
Merge pull request #16 from Eirik0/black-box-testing
Black box testing
2019-02-20 16:07:05 -07:00
Eirik0 b413f8b6c9 cargo fmt 2019-02-20 13:25:49 -07:00
Eirik0 27d6e94677 Add corner case tests for zero 2019-02-20 13:24:50 -07:00
Eirik0 c1e457ee37 Add black-box tests for Fq and Fr 2019-02-20 13:18:29 -07:00
ebfull 1aa0cdf63b
Merge pull request #15 from Eirik0/from-bytes-wide
From bytes wide
2019-02-19 19:52:25 -07:00
ebfull 23c10d7a02
Merge pull request #14 from Eirik0/edition-2018-fixes
Edition 2018 fixes
2019-02-19 19:50:16 -07:00
Eirik0 2da490cee3 Add from bytes wide for Fr 2019-02-10 23:09:15 -07:00
Eirik0 36a917965d Add from bytes wide for Fq 2019-02-10 22:56:57 -07:00
Eirik0 77775ece9e remove unneeded extern crate dependencies 2019-02-10 22:47:36 -07:00
Eirik0 43e451f103 cargo fmt 2019-02-10 22:47:36 -07:00
Sean Bowe 812ab51091
Updates for Rust 2018 edition. 2019-02-08 19:11:29 -07:00
ebfull a6601be5c5
Merge pull request #12 from Eirik0/scalar-field-fr
Scalar field Fr
2019-01-17 15:50:04 -07:00
Eirik Ogilvie-Wigley f3c44112e6 Add test and format 2019-01-09 15:50:16 -07:00
Eirik Ogilvie-Wigley c5495f5610 Update benchmarks 2019-01-09 15:25:37 -07:00
Eirik Ogilvie-Wigley 954e5dbbd8 Remove duplicate assert 2019-01-09 15:25:37 -07:00
Eirik Ogilvie-Wigley abc25f7677 Simplify square root function for Fr 2019-01-09 15:25:36 -07:00
Eirik Ogilvie-Wigley 774be1dea6 Add scalar field Fr 2019-01-09 15:25:36 -07:00
Sean Bowe 318693246d
Add test for batch normalization. 2019-01-09 10:40:30 -07:00
Sean Bowe 55f5f4b676
Test for point multiplication. 2019-01-08 11:29:38 -07:00
ebfull d61b6bc841
Merge pull request #11 from Eirik0/fq-cleanup
Remove some mutable variables and use multiplication operator
2019-01-07 21:43:34 -07:00
Sean Bowe 62270c04fd
Implementation of basic point multiplication 2019-01-07 20:12:25 -07:00
Sean Bowe bed8a7d369
Change from `cache` to `to_niels`. 2019-01-07 19:07:55 -07:00
Sean Bowe f467cd32f2
Bump minimum required Rust version. 2019-01-07 19:04:47 -07:00
Eirik Ogilvie-Wigley 2a6b8c10e6 Remove some mutable variables and use multiplication operator 2019-01-07 16:36:27 -07:00
ebfull 8d4b262d42
Merge pull request #6 from zkcrypto/arith-improvements
Arith improvements
2019-01-07 12:25:14 -07:00
Sean Bowe 6e186d12ee
Add get_u/get_v methods. 2019-01-07 11:59:03 -07:00
Sean Bowe e3f219ae84
Update to subtle 2.0 2019-01-06 22:54:43 -07:00
Sean Bowe a50b09caaa
Implementation of most of the point arithmetic API. 2019-01-05 21:45:25 -07:00
Sean Bowe e73eb9ed70
Improvements to Fq arithmetic. 2019-01-05 21:45:16 -07:00
Sean Bowe c68b050efb
Require Rust 2018 edition. 2019-01-05 21:44:41 -07:00