pub trait IsEllipticCurve {
    type BaseField: IsField + Clone + Debug;
    type PointRepresentation: IsGroup + FromAffine<Self::BaseField>;

    // Required method
    fn generator() -> Self::PointRepresentation;

    // Provided method
    fn create_point_from_affine(
        x: FieldElement<Self::BaseField>,
        y: FieldElement<Self::BaseField>,
    ) -> Result<Self::PointRepresentation, EllipticCurveError> { ... }
}

Required Associated Types§

source

type BaseField: IsField + Clone + Debug

BaseField is the field used for each of the coordinates of a point p belonging to the curve.

source

type PointRepresentation: IsGroup + FromAffine<Self::BaseField>

The representation of the point. For example it can be projective coordinates, affine coordinates, XYZZ, depending on the curve and its possible optimizations.

Required Methods§

source

fn generator() -> Self::PointRepresentation

Returns the generator of the main subgroup.

Provided Methods§

Object Safety§

This trait is not object safe.

Implementors§

source§

impl IsEllipticCurve for BandersnatchCurve

source§

impl IsEllipticCurve for Ed448Goldilocks

source§

impl IsEllipticCurve for TinyJubJubEdwards

source§

impl IsEllipticCurve for TinyJubJubMontgomery

source§

impl IsEllipticCurve for BLS12377Curve

source§

impl IsEllipticCurve for BLS12381Curve

source§

impl IsEllipticCurve for BLS12381TwistCurve

source§

impl IsEllipticCurve for BN254Curve

source§

impl IsEllipticCurve for BN254TwistCurve

source§

impl IsEllipticCurve for GrumpkinCurve

source§

impl IsEllipticCurve for PallasCurve

source§

impl IsEllipticCurve for StarkCurve

source§

impl IsEllipticCurve for TestCurve1

source§

impl IsEllipticCurve for TestCurve2

source§

impl IsEllipticCurve for VestaCurve