halo2curves

Trait CurveAffine

Source
pub trait CurveAffine:
    PrimeCurveAffine<Scalar = Self::ScalarExt, Curve = Self::CurveExt>
    + Default
    + Add<Output = Self::Curve>
    + Sub<Output = Self::Curve>
    + ConditionallySelectable
    + ConstantTimeEq
    + From<Self::Curve> {
    type ScalarExt: WithSmallOrderMulGroup<3> + Ord;
    type Base: WithSmallOrderMulGroup<3> + Ord;
    type CurveExt: CurveExt<AffineExt = Self, ScalarExt = Self::ScalarExt>;

    // Required methods
    fn coordinates(&self) -> CtOption<Coordinates<Self>>;
    fn from_xy(x: Self::Base, y: Self::Base) -> CtOption<Self>;
    fn is_on_curve(&self) -> Choice;
    fn a() -> Self::Base;
    fn b() -> Self::Base;
}
Expand description

This trait is the affine counterpart to Curve and is used for serialization, storage in memory, and inspection of $x$ and $y$ coordinates.

Requires the alloc feature flag because of hash_to_curve on CurveExt.

Required Associated Types§

Source

type ScalarExt: WithSmallOrderMulGroup<3> + Ord

The scalar field of this elliptic curve.

Source

type Base: WithSmallOrderMulGroup<3> + Ord

The base field over which this elliptic curve is constructed.

Source

type CurveExt: CurveExt<AffineExt = Self, ScalarExt = Self::ScalarExt>

The projective form of the curve

Required Methods§

Source

fn coordinates(&self) -> CtOption<Coordinates<Self>>

Gets the coordinates of this point.

Returns None if this is the identity.

Source

fn from_xy(x: Self::Base, y: Self::Base) -> CtOption<Self>

Obtains a point given $(x, y)$, failing if it is not on the curve.

Source

fn is_on_curve(&self) -> Choice

Returns whether or not this element is on the curve; should always be true unless an “unchecked” API was used.

Source

fn a() -> Self::Base

Returns the curve constant $a$.

Source

fn b() -> Self::Base

Returns the curve constant $b$.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl CurveAffine for halo2curves::bls12381::G1Affine

Source§

impl CurveAffine for halo2curves::bls12381::G2Affine

Source§

impl CurveAffine for halo2curves::bn256::G1Affine

Source§

impl CurveAffine for halo2curves::bn256::G2Affine

Source§

impl CurveAffine for halo2curves::grumpkin::G1Affine

Source§

impl CurveAffine for EpAffine

Source§

impl CurveAffine for EqAffine

Source§

impl CurveAffine for ErisAffine

Source§

impl CurveAffine for halo2curves::pluto_eris::G1Affine

Source§

impl CurveAffine for halo2curves::pluto_eris::G2Affine

Source§

impl CurveAffine for Secp256k1Affine

Source§

impl CurveAffine for Secp256r1Affine

Source§

impl CurveAffine for Secq256k1Affine