Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Part 1 implementation of BW6-761 from https://eprint.iacr.org/2020/351.pdf
The part 1 consists of
Endomorphisms (GLV, Frobenius, lattice decompositions) and pairings are left for subsequent PRs.
BW6-761 necessitated a complete refactor of the Elliptic affine/projective/jacobian type.
I had to add a new
OnTwist
dependent type/static enum as:Fp^(embedding_degree/twist_degree) = Fp^(6/6) = Fp
hence both G1 and G2 are defined on Fp (unlike BN and BLS12 where G1 is on Fp and G2 on Fp2).so we can't assume G1 or G2 from just the base field.