Commit Graph

522 Commits

Author SHA1 Message Date
Sean Bowe
931257599d
Refactor code for finding affine points from x-coordinates. 2017-10-04 11:43:42 -06:00
bmerge
f9d4c8b6aa Auto merge of #57 - ebfull:relic-interop, r=ebfull
RELIC interop

Closes #2

RELIC has changed the G2 generator to match ours: 25aafecbec

RELIC will not have the same serialization as us.

One last difference is that RELIC conjugates the pairing result to account for the negative curve parameter. It doesn't matter for BLS curves but it's strictly more correct.
2017-10-04 15:51:28 +00:00
Sean Bowe
60887521b6
Derive Clone for {G1|G2}{Uncompressed|Compressed}. 2017-10-03 14:35:00 -06:00
Sean Bowe
18c75f11ab
Account for negative curve parameter to be compatible with RELIC. 2017-10-03 14:27:01 -06:00
bmerge
a8bf8362da Auto merge of #54 - ebfull:version-bump-0.12.0, r=ebfull
Bump version to 0.12.0.
2017-09-28 23:39:17 +00:00
Sean Bowe
67f5fbc94c
More modifications to satisfy clippy. 2017-09-28 17:37:54 -06:00
Sean Bowe
05339414cc
Update clippy and compensate for new lints. 2017-09-28 17:10:06 -06:00
Sean Bowe
927febe4e8
Bump version to 0.12.0. 2017-09-28 16:52:12 -06:00
bmerge
3e1562445a Auto merge of #53 - ebfull:assoc-consts, r=ebfull
Use associated constants for simple constants like these.

Closes #39.
2017-09-28 22:10:55 +00:00
Sean Bowe
4fe3e1d6e3
Use associated constants for simple constants like these. (Closes #39.) 2017-09-28 16:08:56 -06:00
ebfull
abd48980ee Merge pull request #52 from ebfull/fix-copyright
Fix copyright/license information
2017-09-28 15:53:53 -06:00
Sean Bowe
8dbee41977
Add COPYRIGHT file to inform of conditions for contributing and license information. 2017-09-28 15:39:29 -06:00
Sean Bowe
35bf7f63ea
Modify the LICENSE-APACHE and LICENSE-MIT files.
This modifies the files so that they are exactly the same as the
Rust project's license files. This does not change the wording of
the license.
2017-09-28 15:29:58 -06:00
Sean Bowe
ce875c902b
LICENSE-MIT: Remove inaccurate (misattributed) copyright notice
LICENSE-MIT contains the line "Copyright (c) 2017 Sean Bowe", which
implies that an entity called "Sean Bowe" holds copyrights in the
pairing Rust library. Pairing library contributors retain their
copyrights, and do not assign them to anyone by contributing.
Remove the inaccurate notice.
2017-09-28 15:24:31 -06:00
bmerge
5bb8e3a841 Auto merge of #51 - ebfull:several-fixups, r=ebfull
Several fixups

Closes #50
Closes #48
Closes #46

Also, CI changes this PR will test:

Closes #43
Closes #44
2017-09-28 20:12:59 +00:00
Sean Bowe
4aa51bd3d4
Add security warnings and some instructions to README.md. 2017-09-28 13:32:34 -06:00
Sean Bowe
93e2a132b5
Mask rather than divn, closes #50. 2017-09-28 13:15:29 -06:00
Sean Bowe
291fa71914
This coercion doesn't take place on stable yet. 2017-09-28 13:03:01 -06:00
Sean Bowe
636a037bb1
Make u128-support feature opt-in rather than default. 2017-09-28 12:52:14 -06:00
bmerge
2540ab30fb Auto merge of #47 - ebfull:stable-wnaf, r=ebfull
Introduce a more typesafe wNAF API, and remove the unstable-wnaf feature

Closes #27.
2017-09-28 17:58:18 +00:00
Sean Bowe
6708878f4c
Elide these lifetimes. 2017-09-28 11:39:53 -06:00
bmerge
68b57b2ce4 Auto merge of #49 - ebfull:simplify-bench, r=ebfull
Simplify `pairing_benches`.
2017-09-28 17:33:23 +00:00
Sean Bowe
c38cb324f6
Simplify pairing_benches. 2017-09-28 11:31:46 -06:00
Sean Bowe
bda22db9d5
Always recommend a window table size. 2017-09-28 08:38:13 -06:00
Sean Bowe
894b44d034
These structures are no longer exported outside the crate, and these assertions are unnecessary now that the external API can enforce them. 2017-09-28 08:12:37 -06:00
Sean Bowe
06f6334679
Change to docs for satisfying clippy. 2017-09-27 20:06:51 -06:00
Sean Bowe
d230603190
Introduce a more typesafe wNAF API, and remove the unstable-wnaf feature. 2017-09-27 19:09:59 -06:00
bmerge
1398a32b3a Auto merge of #42 - str4d:36-tests-on-stable, r=ebfull
Move benchmarks under benches/ so tests compile on stable

Closes #36.
2017-09-27 17:04:05 +00:00
str4d
3ef34b750c
Move benchmarks under benches/ so tests compile on stable
Closes #36.
2017-09-27 17:45:24 +01:00
bmerge
9b6fb37533 Auto merge of #41 - str4d:23-debug-trait, r=ebfull
Force public structures to implement Debug

Closes #23.
2017-09-27 06:04:17 +00:00
str4d
39920186b3
Force public structures to implement Debug
Closes #23.
2017-09-26 15:59:50 +01:00
bmerge
57de78f4f1 Auto merge of #38 - mmaker:feature/legendre-symbol, r=ebfull
Add Legendre symbol.
2017-08-24 19:24:15 +00:00
Michele Orrù
9846ad2d17 Some (easy) cleanups as suggested from @ebfull.
Thanks!
2017-08-24 20:13:07 +02:00
Michele Orrù
2ac2d1213d Some (easy) cleanups as suggested from @daira.
Thanks!
2017-08-23 19:17:20 +02:00
Michele Orrù
a86d0b7270 s/Q/Quadratic/ in LegendreSymbol enum.
Proposed by @ebfull.
2017-08-23 19:10:34 +02:00
Michele Orrù
6feb0f802f Merge traits SqrtField and LegendreField into SqrtField. 2017-08-23 19:08:00 +02:00
Michele Orrù
2d3f498e75 Polish sqrt in fr.rs: use pattern matching with Legendre enums. 2017-08-23 19:07:44 +02:00
Michele Orrù
57b4e73627 Create enum for LegendreSymbol, fix test. 2017-08-23 19:06:43 +02:00
Michele Orrù
1b6cf85251 Add Legendre symbol for Fq and Fq2. 2017-08-23 19:04:56 +02:00
Sean Bowe
2042876fcf Disable default features for pairing. 2017-08-22 20:45:45 -06:00
Sean Bowe
3148662234 Reimplementation of groth16 using pairing library. 2017-08-22 16:03:04 -06:00
bmerge
c4c6e25bc0 Auto merge of #37 - ebfull:0.11-release, r=ebfull
Release 0.11.
2017-08-22 21:37:06 +00:00
Sean Bowe
1239b7648d
Release 0.11. 2017-08-22 15:35:02 -06:00
bmerge
dcbd0f3d0c Auto merge of #35 - ebfull:stable-arith, r=ebfull
Introduce stable arithmetic to avoid nightly/unstable features for some platforms

This PR allows the user to opt-out of the "u128-support" feature so that they can use the stable compiler and avoid the unstable `i128_type` feature in the Rust compiler. (Pass `--no-default-features` to opt out.)

This roughly triples the cost of everything in my experience, but it's necessary on some platforms (`arm-linux-androideabi`) which Rust/LLVM doesn't compile 128-bit integers for correctly yet.

**Before this can be merged the CI needs to test against this being enabled or disabled.**
2017-08-22 17:53:46 +00:00
bmerge
68747b4174 Auto merge of #34 - mmaker:fix/is_in_correct_subgroup, r=ebfull
s/is_in_correct_subgroup/is_in_correct_subgroup_assuming_on_curve/

I added a new method`is_in_correct_subgroup_assuming_on_curve` and added the method `is_in_correct_subgroup` for the `CurveAffine` trait.
2017-08-16 16:26:16 +00:00
Michele Orrù
ec49fcc638 s/is_in_correct_subgroup/is_in_correct_subgroup_assuming_on_curve/
Literelly run:
$ sed -i s/is_in_correct_subgroup/is_in_correct_subgroup_assuming_on_curve/g bls12_381/ec.rs
2017-08-16 12:08:52 +02:00
Sean Bowe
51b16c52b3
Only enable i128_type when necessary. 2017-08-15 13:54:51 -06:00
bmerge
3f55cda9d1 Auto merge of #33 - plutomonkey:fix-use, r=ebfull
Remove redundant `use`.
2017-08-15 19:06:15 +00:00
Sean Bowe
3908552fb9
Introduce stable arithmetic to avoid nightly/unstable features for some platforms. 2017-08-15 12:53:22 -06:00
Jason Davies
b893aa17ac Remove redundant use. 2017-08-14 22:15:24 +01:00