Trait darkfi_sdk::crypto::pasta_prelude::PrimeCurveAffine

pub trait PrimeCurveAffine: Sized + GroupEncoding + Copy + Clone + Send + Sync + Debug + PartialEq + Eq + 'static + Neg<Output = Self> + Mul<Self::Scalar, Output = Self::Curve, Output = Self::Curve> + for<'r> Mul<&'r Self::Scalar> {
    type Scalar: PrimeField;
    type Curve: PrimeCurve<Affine = Self, Scalar = Self::Scalar>;

    // Required methods
    fn identity() -> Self;
    fn generator() -> Self;
    fn is_identity(&self) -> Choice;
    fn to_curve(&self) -> Self::Curve;
}
Expand description

Affine representation of an elliptic curve point guaranteed to be in the correct prime order subgroup.

Required Associated Types§

type Scalar: PrimeField

type Curve: PrimeCurve<Affine = Self, Scalar = Self::Scalar>

Required Methods§

fn identity() -> Self

Returns the additive identity.

fn generator() -> Self

Returns a fixed generator of unknown exponent.

fn is_identity(&self) -> Choice

Determines if this point represents the point at infinity; the additive identity.

fn to_curve(&self) -> Self::Curve

Converts this element to its curve representation.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl PrimeCurveAffine for EpAffine

§

type Curve = Ep

§

type Scalar = Fq

§

fn generator() -> EpAffine

§

fn identity() -> EpAffine

§

fn is_identity(&self) -> Choice

§

fn to_curve(&self) -> <EpAffine as PrimeCurveAffine>::Curve

§

impl PrimeCurveAffine for EqAffine

§

type Curve = Eq

§

type Scalar = Fp

§

fn generator() -> EqAffine

§

fn identity() -> EqAffine

§

fn is_identity(&self) -> Choice

§

fn to_curve(&self) -> <EqAffine as PrimeCurveAffine>::Curve

Implementors§