Trait pairing::CurveAffine [] [src]

pub trait CurveAffine: Copy + Clone + Sized + Send + Sync + Debug + Display + PartialEq + Eq + 'static {
    type Engine: Engine<Fr = Self::Scalar>;
    type Scalar: PrimeField + SqrtField;
    type Base: SqrtField;
    type Projective: CurveProjective<Affine = Self, Scalar = Self::Scalar>;
    type Prepared: Clone + Send + Sync + 'static;
    type Uncompressed: EncodedPoint<Affine = Self>;
    type Compressed: EncodedPoint<Affine = Self>;
    type Pair: CurveAffine<Pair = Self>;
    type PairingResult: Field;
    fn zero() -> Self;
fn one() -> Self;
fn is_zero(&self) -> bool;
fn negate(&mut self);
fn mul<S: Into<<Self::Scalar as PrimeField>::Repr>>(
        &self,
        other: S
    ) -> Self::Projective;
fn prepare(&self) -> Self::Prepared;
fn pairing_with(&self, other: &Self::Pair) -> Self::PairingResult;
fn into_projective(&self) -> Self::Projective; fn into_compressed(&self) -> Self::Compressed { ... }
fn into_uncompressed(&self) -> Self::Uncompressed { ... } }

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

Associated Types

Required Methods

Returns the additive identity.

Returns a fixed generator of unknown exponent.

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

Negates this element.

Performs scalar multiplication of this element with mixed addition.

Prepares this element for pairing purposes.

Perform a pairing

Converts this element into its affine representation.

Provided Methods

Converts this element into its compressed encoding, so long as it's not the point at infinity.

Converts this element into its uncompressed encoding, so long as it's not the point at infinity.

Implementors