Struct bls12_381::G1Affine[][src]

pub struct G1Affine { /* fields omitted */ }
Expand description

This is an element of $\mathbb{G}_1$ represented in the affine coordinate space. It is ideal to keep elements in this representation to reduce memory usage and improve performance through the use of mixed curve model arithmetic.

Values of G1Affine are guaranteed to be in the $q$-order subgroup unless an “unchecked” API was misused.

Implementations

impl G1Affine[src]

pub fn identity() -> G1Affine[src]

Returns the identity of the group: the point at infinity.

pub fn generator() -> G1Affine[src]

Returns a fixed generator of the group. See notes::design for how this generator is chosen.

pub fn to_compressed(&self) -> [u8; 48][src]

Serializes this element into compressed form. See notes::serialization for details about how group elements are serialized.

pub fn to_uncompressed(&self) -> [u8; 96][src]

Serializes this element into uncompressed form. See notes::serialization for details about how group elements are serialized.

pub fn from_uncompressed(bytes: &[u8; 96]) -> CtOption<Self>[src]

Attempts to deserialize an uncompressed element. See notes::serialization for details about how group elements are serialized.

pub fn from_uncompressed_unchecked(bytes: &[u8; 96]) -> CtOption<Self>[src]

Attempts to deserialize an uncompressed element, not checking if the element is on the curve and not checking if it is in the correct subgroup. This is dangerous to call unless you trust the bytes you are reading; otherwise, API invariants may be broken. Please consider using from_uncompressed() instead.

pub fn from_compressed(bytes: &[u8; 48]) -> CtOption<Self>[src]

Attempts to deserialize a compressed element. See notes::serialization for details about how group elements are serialized.

pub fn from_compressed_unchecked(bytes: &[u8; 48]) -> CtOption<Self>[src]

Attempts to deserialize an uncompressed element, not checking if the element is in the correct subgroup. This is dangerous to call unless you trust the bytes you are reading; otherwise, API invariants may be broken. Please consider using from_compressed() instead.

pub fn is_identity(&self) -> Choice[src]

Returns true if this element is the identity (the point at infinity).

pub fn is_torsion_free(&self) -> Choice[src]

Returns true if this point is free of an $h$-torsion component, and so it exists within the $q$-order subgroup $\mathbb{G}_1$. This should always return true unless an “unchecked” API was used.

pub fn is_on_curve(&self) -> Choice[src]

Returns true if this point is on the curve. This should always return true unless an “unchecked” API was used.

Trait Implementations

impl<'a, 'b> Add<&'b G1Affine> for &'a G1Projective[src]

type Output = G1Projective

The resulting type after applying the + operator.

fn add(self, rhs: &'b G1Affine) -> G1Projective[src]

Performs the + operation. Read more

impl<'b> Add<&'b G1Affine> for G1Projective[src]

type Output = G1Projective

The resulting type after applying the + operator.

fn add(self, rhs: &'b G1Affine) -> G1Projective[src]

Performs the + operation. Read more

impl<'a, 'b> Add<&'b G1Projective> for &'a G1Affine[src]

type Output = G1Projective

The resulting type after applying the + operator.

fn add(self, rhs: &'b G1Projective) -> G1Projective[src]

Performs the + operation. Read more

impl<'b> Add<&'b G1Projective> for G1Affine[src]

type Output = G1Projective

The resulting type after applying the + operator.

fn add(self, rhs: &'b G1Projective) -> G1Projective[src]

Performs the + operation. Read more

impl<'a> Add<G1Affine> for &'a G1Projective[src]

type Output = G1Projective

The resulting type after applying the + operator.

fn add(self, rhs: G1Affine) -> G1Projective[src]

Performs the + operation. Read more

impl Add<G1Affine> for G1Projective[src]

type Output = G1Projective

The resulting type after applying the + operator.

fn add(self, rhs: G1Affine) -> G1Projective[src]

Performs the + operation. Read more

impl<'a> Add<G1Projective> for &'a G1Affine[src]

type Output = G1Projective

The resulting type after applying the + operator.

fn add(self, rhs: G1Projective) -> G1Projective[src]

Performs the + operation. Read more

impl Add<G1Projective> for G1Affine[src]

type Output = G1Projective

The resulting type after applying the + operator.

fn add(self, rhs: G1Projective) -> G1Projective[src]

Performs the + operation. Read more

impl<'b> AddAssign<&'b G1Affine> for G1Projective[src]

fn add_assign(&mut self, rhs: &'b G1Affine)[src]

Performs the += operation. Read more

impl AddAssign<G1Affine> for G1Projective[src]

fn add_assign(&mut self, rhs: G1Affine)[src]

Performs the += operation. Read more

impl Clone for G1Affine[src]

fn clone(&self) -> G1Affine[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl ConditionallySelectable for G1Affine[src]

fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self[src]

Select a or b according to choice. Read more

fn conditional_assign(&mut self, other: &Self, choice: Choice)[src]

Conditionally assign other to self, according to choice. Read more

fn conditional_swap(a: &mut Self, b: &mut Self, choice: Choice)[src]

Conditionally swap self and other if choice == 1; otherwise, reassign both unto themselves. Read more

impl ConstantTimeEq for G1Affine[src]

fn ct_eq(&self, other: &Self) -> Choice[src]

Determine if two items are equal. Read more

impl Debug for G1Affine[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Default for G1Affine[src]

fn default() -> G1Affine[src]

Returns the “default value” for a type. Read more

impl Display for G1Affine[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl<'a> From<&'a G1Affine> for G1Projective[src]

fn from(p: &'a G1Affine) -> G1Projective[src]

Performs the conversion.

impl<'a> From<&'a G1Projective> for G1Affine[src]

fn from(p: &'a G1Projective) -> G1Affine[src]

Performs the conversion.

impl From<G1Affine> for G1Projective[src]

fn from(p: G1Affine) -> G1Projective[src]

Performs the conversion.

impl From<G1Projective> for G1Affine[src]

fn from(p: G1Projective) -> G1Affine[src]

Performs the conversion.

impl GroupEncoding for G1Affine[src]

type Repr = G1Compressed

The encoding of group elements. Read more

fn from_bytes(bytes: &Self::Repr) -> CtOption<Self>[src]

Attempts to deserialize a group element from its encoding.

fn from_bytes_unchecked(bytes: &Self::Repr) -> CtOption<Self>[src]

Attempts to deserialize a group element, not checking if the element is valid. Read more

fn to_bytes(&self) -> Self::Repr[src]

Converts this element into its byte encoding. This may or may not support encoding the identity. Read more

impl<'a, 'b> Mul<&'b Scalar> for &'a G1Affine[src]

type Output = G1Projective

The resulting type after applying the * operator.

fn mul(self, other: &'b Scalar) -> Self::Output[src]

Performs the * operation. Read more

impl<'b> Mul<&'b Scalar> for G1Affine[src]

type Output = G1Projective

The resulting type after applying the * operator.

fn mul(self, rhs: &'b Scalar) -> G1Projective[src]

Performs the * operation. Read more

impl<'a> Mul<Scalar> for &'a G1Affine[src]

type Output = G1Projective

The resulting type after applying the * operator.

fn mul(self, rhs: Scalar) -> G1Projective[src]

Performs the * operation. Read more

impl Mul<Scalar> for G1Affine[src]

type Output = G1Projective

The resulting type after applying the * operator.

fn mul(self, rhs: Scalar) -> G1Projective[src]

Performs the * operation. Read more

impl<'a> Neg for &'a G1Affine[src]

type Output = G1Affine

The resulting type after applying the - operator.

fn neg(self) -> G1Affine[src]

Performs the unary - operation. Read more

impl Neg for G1Affine[src]

type Output = G1Affine

The resulting type after applying the - operator.

fn neg(self) -> G1Affine[src]

Performs the unary - operation. Read more

impl PairingCurveAffine for G1Affine[src]

type Pair = G2Affine

type PairingResult = Gt

fn pairing_with(&self, other: &Self::Pair) -> Self::PairingResult[src]

Perform a pairing

impl PartialEq<G1Affine> for G1Affine[src]

fn eq(&self, other: &Self) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PrimeCurveAffine for G1Affine[src]

type Scalar = Scalar

type Curve = G1Projective

fn identity() -> Self[src]

Returns the additive identity.

fn generator() -> Self[src]

Returns a fixed generator of unknown exponent.

fn is_identity(&self) -> Choice[src]

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

fn to_curve(&self) -> Self::Curve[src]

Converts this element to its curve representation.

impl<'a, 'b> Sub<&'b G1Affine> for &'a G1Projective[src]

type Output = G1Projective

The resulting type after applying the - operator.

fn sub(self, rhs: &'b G1Affine) -> G1Projective[src]

Performs the - operation. Read more

impl<'b> Sub<&'b G1Affine> for G1Projective[src]

type Output = G1Projective

The resulting type after applying the - operator.

fn sub(self, rhs: &'b G1Affine) -> G1Projective[src]

Performs the - operation. Read more

impl<'a, 'b> Sub<&'b G1Projective> for &'a G1Affine[src]

type Output = G1Projective

The resulting type after applying the - operator.

fn sub(self, rhs: &'b G1Projective) -> G1Projective[src]

Performs the - operation. Read more

impl<'b> Sub<&'b G1Projective> for G1Affine[src]

type Output = G1Projective

The resulting type after applying the - operator.

fn sub(self, rhs: &'b G1Projective) -> G1Projective[src]

Performs the - operation. Read more

impl<'a> Sub<G1Affine> for &'a G1Projective[src]

type Output = G1Projective

The resulting type after applying the - operator.

fn sub(self, rhs: G1Affine) -> G1Projective[src]

Performs the - operation. Read more

impl Sub<G1Affine> for G1Projective[src]

type Output = G1Projective

The resulting type after applying the - operator.

fn sub(self, rhs: G1Affine) -> G1Projective[src]

Performs the - operation. Read more

impl<'a> Sub<G1Projective> for &'a G1Affine[src]

type Output = G1Projective

The resulting type after applying the - operator.

fn sub(self, rhs: G1Projective) -> G1Projective[src]

Performs the - operation. Read more

impl Sub<G1Projective> for G1Affine[src]

type Output = G1Projective

The resulting type after applying the - operator.

fn sub(self, rhs: G1Projective) -> G1Projective[src]

Performs the - operation. Read more

impl<'b> SubAssign<&'b G1Affine> for G1Projective[src]

fn sub_assign(&mut self, rhs: &'b G1Affine)[src]

Performs the -= operation. Read more

impl SubAssign<G1Affine> for G1Projective[src]

fn sub_assign(&mut self, rhs: G1Affine)[src]

Performs the -= operation. Read more

impl UncompressedEncoding for G1Affine[src]

type Uncompressed = G1Uncompressed

fn from_uncompressed(bytes: &Self::Uncompressed) -> CtOption<Self>[src]

Attempts to deserialize an element from its uncompressed encoding.

fn from_uncompressed_unchecked(bytes: &Self::Uncompressed) -> CtOption<Self>[src]

Attempts to deserialize an uncompressed element, not checking if the element is in the correct subgroup. Read more

fn to_uncompressed(&self) -> Self::Uncompressed[src]

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

impl Copy for G1Affine[src]

impl Eq for G1Affine[src]

Auto Trait Implementations

impl Send for G1Affine

impl Sync for G1Affine

impl Unpin for G1Affine

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> ConditionallyNegatable for T where
    T: ConditionallySelectable,
    &'a T: for<'a> Neg,
    <&'a T as Neg>::Output == T, 
[src]

pub fn conditional_negate(&mut self, choice: Choice)[src]

Negate self if choice == Choice(1); otherwise, leave it unchanged. Read more

impl<T> Conv for T

fn conv<T>(self) -> T where
    Self: Into<T>, 

Converts self into T using Into<T>. Read more

impl<T> FmtForward for T

fn fmt_binary(self) -> FmtBinary<Self> where
    Self: Binary

Causes self to use its Binary implementation when Debug-formatted.

fn fmt_display(self) -> FmtDisplay<Self> where
    Self: Display

Causes self to use its Display implementation when Debug-formatted. Read more

fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
    Self: LowerExp

Causes self to use its LowerExp implementation when Debug-formatted. Read more

fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
    Self: LowerHex

Causes self to use its LowerHex implementation when Debug-formatted. Read more

fn fmt_octal(self) -> FmtOctal<Self> where
    Self: Octal

Causes self to use its Octal implementation when Debug-formatted.

fn fmt_pointer(self) -> FmtPointer<Self> where
    Self: Pointer

Causes self to use its Pointer implementation when Debug-formatted. Read more

fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
    Self: UpperExp

Causes self to use its UpperExp implementation when Debug-formatted. Read more

fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
    Self: UpperHex

Causes self to use its UpperHex implementation when Debug-formatted. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Pipe for T where
    T: ?Sized

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R

Pipes by value. This is generally the method you want to use. Read more

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
    R: 'a, 

Borrows self and passes that borrow into the pipe function. Read more

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R where
    R: 'a, 

Mutably borrows self and passes that borrow into the pipe function. Read more

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R where
    Self: Borrow<B>,
    R: 'a,
    B: 'a + ?Sized

Borrows self, then passes self.borrow() into the pipe function. Read more

fn pipe_borrow_mut<'a, B, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut B) -> R
) -> R where
    Self: BorrowMut<B>,
    R: 'a,
    B: 'a + ?Sized

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R where
    Self: AsRef<U>,
    R: 'a,
    U: 'a + ?Sized

Borrows self, then passes self.as_ref() into the pipe function.

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R where
    Self: AsMut<U>,
    R: 'a,
    U: 'a + ?Sized

Mutably borrows self, then passes self.as_mut() into the pipe function. Read more

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
    Self: Deref<Target = T>,
    R: 'a,
    T: 'a + ?Sized

Borrows self, then passes self.deref() into the pipe function.

fn pipe_deref_mut<'a, T, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut T) -> R
) -> R where
    Self: DerefMut<Target = T> + Deref,
    R: 'a,
    T: 'a + ?Sized

Mutably borrows self, then passes self.deref_mut() into the pipe function. Read more

impl<T> Tap for T

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self where
    Self: Borrow<B>,
    B: ?Sized

Immutable access to the Borrow<B> of a value. Read more

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self where
    Self: BorrowMut<B>,
    B: ?Sized

Mutable access to the BorrowMut<B> of a value. Read more

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self where
    Self: AsRef<R>,
    R: ?Sized

Immutable access to the AsRef<R> view of a value. Read more

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self where
    Self: AsMut<R>,
    R: ?Sized

Mutable access to the AsMut<R> view of a value. Read more

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self where
    Self: Deref<Target = T>,
    T: ?Sized

Immutable access to the Deref::Target of a value. Read more

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self where
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized

Mutable access to the Deref::Target of a value. Read more

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds. Read more

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self where
    Self: Borrow<B>,
    B: ?Sized

Calls .tap_borrow() only in debug builds, and is erased in release builds. Read more

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self where
    Self: BorrowMut<B>,
    B: ?Sized

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds. Read more

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self where
    Self: AsRef<R>,
    R: ?Sized

Calls .tap_ref() only in debug builds, and is erased in release builds. Read more

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self where
    Self: AsMut<R>,
    R: ?Sized

Calls .tap_ref_mut() only in debug builds, and is erased in release builds. Read more

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self where
    Self: Deref<Target = T>,
    T: ?Sized

Calls .tap_deref() only in debug builds, and is erased in release builds. Read more

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self where
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized

Calls .tap_deref_mut() only in debug builds, and is erased in release builds. Read more

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T> ToString for T where
    T: Display + ?Sized
[src]

pub default fn to_string(&self) -> String[src]

Converts the given value to a String. Read more

impl<T> TryConv for T

fn try_conv<T>(self) -> Result<T, Self::Error> where
    Self: TryInto<T>, 

Attempts to convert self into T using TryInto<T>. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.