Trait pairing_ce::CurveAffine
source · pub trait CurveAffine: Copy + Clone + Sized + Send + Sync + Debug + Display + PartialEq + Eq + 'static + Serialize + DeserializeOwned {
type Engine: Engine<Fr = Self::Scalar>;
type Scalar: PrimeField + SqrtField;
type Base: SqrtField;
type Projective: CurveProjective<Affine = Self, Scalar = Self::Scalar, Base = Self::Base>;
type Prepared: Clone + Send + Sync + 'static;
type Uncompressed: EncodedPoint<Affine = Self>;
type Compressed: EncodedPoint<Affine = Self>;
type Pair: CurveAffine<Pair = Self>;
type PairingResult: Field;
Show 16 methods
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 as_xy(&self) -> (&Self::Base, &Self::Base);
fn into_xy_unchecked(self) -> (Self::Base, Self::Base);
fn from_xy_unchecked(x: Self::Base, y: Self::Base) -> Self;
fn from_xy_checked(
x: Self::Base,
y: Self::Base
) -> Result<Self, GroupDecodingError>;
fn a_coeff() -> Self::Base;
fn b_coeff() -> Self::Base;
fn into_compressed(&self) -> Self::Compressed { ... }
fn into_uncompressed(&self) -> Self::Uncompressed { ... }
}
Expand description
Affine representation of an elliptic curve point guaranteed to be in the correct prime order subgroup.
Required Associated Types§
type Engine: Engine<Fr = Self::Scalar>
type Scalar: PrimeField + SqrtField
type Base: SqrtField
type Projective: CurveProjective<Affine = Self, Scalar = Self::Scalar, Base = Self::Base>
type Prepared: Clone + Send + Sync + 'static
type Uncompressed: EncodedPoint<Affine = Self>
type Compressed: EncodedPoint<Affine = Self>
type Pair: CurveAffine<Pair = Self>
type PairingResult: Field
Required Methods§
sourcefn is_zero(&self) -> bool
fn is_zero(&self) -> bool
Determines if this point represents the point at infinity; the additive identity.
sourcefn mul<S: Into<<Self::Scalar as PrimeField>::Repr>>(
&self,
other: S
) -> Self::Projective
fn mul<S: Into<<Self::Scalar as PrimeField>::Repr>>(
&self,
other: S
) -> Self::Projective
Performs scalar multiplication of this element with mixed addition.
sourcefn pairing_with(&self, other: &Self::Pair) -> Self::PairingResult
fn pairing_with(&self, other: &Self::Pair) -> Self::PairingResult
Perform a pairing
sourcefn into_projective(&self) -> Self::Projective
fn into_projective(&self) -> Self::Projective
Converts this element into its affine representation.
sourcefn as_xy(&self) -> (&Self::Base, &Self::Base)
fn as_xy(&self) -> (&Self::Base, &Self::Base)
Returns references to underlying X and Y coordinates. Users should check for infinity outside of this call
sourcefn into_xy_unchecked(self) -> (Self::Base, Self::Base)
fn into_xy_unchecked(self) -> (Self::Base, Self::Base)
Returns underlying X and Y coordinates. Users should check for infinity outside of this call
sourcefn from_xy_unchecked(x: Self::Base, y: Self::Base) -> Self
fn from_xy_unchecked(x: Self::Base, y: Self::Base) -> Self
Creates a point from raw X and Y coordinates. Point of infinity is encoded as (0,0) by default. On-curve check is NOT performed
sourcefn from_xy_checked(
x: Self::Base,
y: Self::Base
) -> Result<Self, GroupDecodingError>
fn from_xy_checked(
x: Self::Base,
y: Self::Base
) -> Result<Self, GroupDecodingError>
Creates a point from raw X and Y coordinates. Point of infinity is encoded as (0,0) by default. On-curve check is performed
Provided Methods§
sourcefn into_compressed(&self) -> Self::Compressed
fn into_compressed(&self) -> Self::Compressed
Converts this element into its compressed encoding, so long as it’s not the point at infinity.
sourcefn into_uncompressed(&self) -> Self::Uncompressed
fn into_uncompressed(&self) -> Self::Uncompressed
Converts this element into its uncompressed encoding, so long as it’s not the point at infinity.