Trait snarkvm_curves::traits::pairing_engine::AffineCurve[][src]

pub trait AffineCurve: Group + Sized + CanonicalSerialize + ConstantSerializedSize + CanonicalDeserialize + From<Self::Projective> {
    type BaseField: Field;
    type Projective: ProjectiveCurve<Affine = Self, ScalarField = Self::ScalarField> + From<Self> + Into<Self>;
Show methods fn prime_subgroup_generator() -> Self;
fn from_x_coordinate(x: Self::BaseField, greatest: bool) -> Option<Self>;
fn from_y_coordinate(y: Self::BaseField, greatest: bool) -> Option<Self>;
fn mul_by_cofactor_to_projective(&self) -> Self::Projective;
fn into_projective(&self) -> Self::Projective;
fn from_random_bytes(bytes: &[u8]) -> Option<Self>;
fn mul_bits<S: AsRef<[u64]>>(
        &self,
        bits: BitIteratorBE<S>
    ) -> Self::Projective;
fn mul_by_cofactor_inv(&self) -> Self;
fn is_in_correct_subgroup_assuming_on_curve(&self) -> bool;
fn to_x_coordinate(&self) -> Self::BaseField;
fn to_y_coordinate(&self) -> Self::BaseField;
fn is_on_curve(&self) -> bool; fn mul_by_cofactor(&self) -> Self { ... }
}
Expand description

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

Associated Types

Required methods

Returns a fixed generator of unknown exponent.

Attempts to construct an affine point given an x-coordinate. The point is not guaranteed to be in the prime order subgroup.

If and only if greatest is set will the lexicographically largest y-coordinate be selected.

Attempts to construct an affine point given a y-coordinate. The point is not guaranteed to be in the prime order subgroup.

If and only if greatest is set will the lexicographically largest y-coordinate be selected.

Multiply this element by the cofactor and output the resulting projective element.

Converts this element into its projective representation.

Returns a group element if the set of bytes forms a valid group element, otherwise returns None. This function is primarily intended for sampling random group elements from a hash-function or RNG output.

Multiply this element by a scalar field element in BigInteger form.

Multiply this element by the inverse of the cofactor modulo the size of Self::ScalarField.

Checks that the point is in the prime order subgroup given the point on the curve.

Returns the x-coordinate of the point.

Returns the y-coordinate of the point.

Checks that the current point is on the elliptic curve.

Provided methods

Multiply this element by the cofactor.

Implementors