Commit Graph

40 Commits

Author SHA1 Message Date
J. Ayo Akinyele 1431e97dd0 update rand dep to latest stable version and use of rand in bn 2018-07-20 01:10:29 -04:00
J. Ayo Akinyele 71c4dc8776 hack to make Gt serializable 2018-06-08 02:09:24 -04:00
Sean Bowe c85330e11c
Add test that y coordinate remains 1 in jacobian when G1/G2 are negated. 2017-04-02 13:49:44 -06:00
Sean Bowe 4e2096bedd
The point at infinity is only representable in the jacobian at y = 1. 2017-04-02 12:50:25 -06:00
Sean Bowe ef95df6caa
Ensure G2 elements are in the correct subgroup of the twisted curve. 2016-12-13 23:11:00 -07:00
Sean Bowe 207cf4eba2
Add 'normalize' to Group trait for converting something into affine. 2016-10-14 13:23:49 -06:00
Sean Bowe 90656b0bbf
Don't perform field inverse/squaring during affine conversion if point is already in affine. 2016-10-14 13:21:40 -06:00
Sean Bowe dab7fdf411
Use U512 division for Fp randomness, add Fr interpretation to API. 2016-09-18 11:22:53 -06:00
Sean Bowe b582ba749b
Split off U512 interpretation. 2016-09-18 11:04:18 -06:00
Sean Bowe fbefb710cf
Ensure divrem always returns remainder. 2016-09-18 10:23:59 -06:00
Sean Bowe 76344a7ae9
Fq2 serialization according to spec. 2016-09-18 05:04:19 -06:00
Sean Bowe b20157fef1
Clean up U256 serialization. 2016-09-18 04:08:56 -06:00
Sean Bowe fe3dfc3e29
Implement U512 from/divrem. 2016-09-18 03:28:15 -06:00
Sean Bowe 3e40981e3f
Make set_bit inform instead of asserting. 2016-09-18 01:47:54 -06:00
Sean Bowe 3e5b7179c1
Factor out get_bit. 2016-09-18 01:42:51 -06:00
Sean Bowe 3ebd527167
Use macros to instantiate finite fields. 2016-09-14 21:30:38 -06:00
Sean Bowe 0725e366fd
Make `Group` Sync. 2016-09-14 14:38:17 -06:00
Sean Bowe f40abe6dc3
More superclasses. 2016-09-12 14:02:21 -06:00
Sean Bowe 41ef5fdef0
Add more superclasses to Group. 2016-09-11 22:04:37 -06:00
Sean Bowe 03521652c5
Add `Group` trait, more methods to API, repr(C) everything. 2016-09-11 21:30:38 -06:00
Sean Bowe 9e458130a6
Public API, reorganize tests, benchmarks and shootout. 2016-09-11 12:58:18 -06:00
Sean Bowe b93e312eb0
Implementation of pairing. 2016-09-11 03:08:52 -06:00
Sean Bowe 72a722aa43
Various misc adjustments. 2016-09-09 17:50:42 -06:00
Sean Bowe b05ecd3bb0
Added G1/G2/Fq2 serialization and test vectors. 2016-09-09 01:12:25 -06:00
Sean Bowe cb2ff5c1ad
Added serialization and test vectors for U256 and Fp elements. 2016-09-07 16:45:55 -06:00
Sean Bowe 77df6c9ee5
Arithmetic cleanup and optimization. 2016-09-07 16:45:52 -06:00
Sean Bowe 671d112c9c
New arithmetic and G1/G2 implementations. 2016-09-04 03:50:46 -06:00
Sean Bowe 699e72ca7f
Performing reconstruction of the codebase. 2016-08-28 11:48:28 -06:00
Sean Bowe 3591426d44
Add test 2016-07-04 13:58:11 -06:00
Sean Bowe d38cd5e388
Fix small nits 2016-07-04 12:46:37 -06:00
Sean Bowe 38f1f7d21d
Add `Gt` type to API. 2016-07-04 12:46:36 -06:00
Sean Bowe bb4b97ccec
Pairing cryptography operations 2016-07-04 12:46:36 -06:00
Sean Bowe c8a0d56ba4
Remaining extension field tower 2016-07-04 12:46:33 -06:00
Sean Bowe 17416ed162
Curve instantiation on extension field 2016-07-04 12:46:29 -06:00
Sean Bowe ba73fdce48
Curve instantiation on base field 2016-07-04 11:57:48 -06:00
Sean Bowe 4b32ed6585
Abstract away field operations into `Field` trait 2016-07-04 11:57:47 -06:00
Sean Bowe 391fa61173
Add more tests for Fp arithmetic 2016-07-04 11:56:33 -06:00
Sean Bowe eaa0de2964
Arithmetic in Fp 2016-07-04 11:56:30 -06:00
Sean Bowe 7f515bbe1c
Foundation of finite field arithmetic 2016-06-28 23:50:38 -06:00
Sean Bowe b60f4f0db0
Initial commit. 2016-06-28 22:07:14 -06:00