This crate defines Elliptic Curve traits, curve models that follow these traits, and multi-scalar multiplications.
Implementations of particular curves using these curve models can be found in arkworks-rs/curves
.
The available elliptic curve traits are:
AffineCurve
- Interface for elliptic curve points in the 'canonical form' for serialization.ProjectiveCurve
- Interface for elliptic curve points in a representation that is more efficient for most computation.PairingEngine
- Pairing friendly elliptic curves (Contains the pairing function, and acts as a wrapper type on G1, G2, GT, and the relevant fields).CurveCycle
- Trait representing a cycle of elliptic curves.PairingFriendlyCycle
- Trait representing a cycle of pairing friendly elliptic curves.The elliptic curve models implemented are:
AffineCurve
in this case is in typical Short Weierstrass point representation, and the ProjectiveCurve
is using points in Jacobian Coordinates.AffineCurve
in this case is in standard Twisted Edwards curve representation, whereas the ProjectiveCurve
uses points in Extended Twisted Edwards Coordinates.