pub struct G2Projective { /* private fields */ }
Expand description
G₂ projective point representation.
Implementations§
Source§impl G2Projective
impl G2Projective
Sourcepub fn identity() -> G2Projective
pub fn identity() -> G2Projective
Point at infinity.
Sourcepub fn generator() -> G2Projective
pub fn generator() -> G2Projective
Fixed generator.
Sourcepub fn msm_vartime(points: &[G2Affine], scalars: &[Scalar]) -> Result<Self>
pub fn msm_vartime(points: &[G2Affine], scalars: &[Scalar]) -> Result<Self>
Multi-scalar multiplication using a variable-time Pippenger’s algorithm.
This method is faster for non-sensitive operations where timing side-channels are not a concern, as it contains input-dependent branches.
§Panics
Panics if points.len() != scalars.len()
.
Sourcepub fn msm(points: &[G2Affine], scalars: &[Scalar]) -> Result<Self>
pub fn msm(points: &[G2Affine], scalars: &[Scalar]) -> Result<Self>
Multi-scalar multiplication using a constant-time Pippenger’s algorithm.
This method is suitable for cryptographic operations where resistance to timing side-channels is required.
§Panics
Panics if points.len() != scalars.len()
.
Sourcepub fn double(&self) -> G2Projective
pub fn double(&self) -> G2Projective
Point doubling.
Sourcepub fn add(&self, rhs: &G2Projective) -> G2Projective
pub fn add(&self, rhs: &G2Projective) -> G2Projective
Point addition.
Sourcepub fn add_mixed(&self, rhs: &G2Affine) -> G2Projective
pub fn add_mixed(&self, rhs: &G2Affine) -> G2Projective
Mixed addition with affine point.
Sourcepub fn clear_cofactor(&self) -> G2Projective
pub fn clear_cofactor(&self) -> G2Projective
Clear cofactor.
Sourcepub fn batch_normalize(p: &[Self], q: &mut [G2Affine])
pub fn batch_normalize(p: &[Self], q: &mut [G2Affine])
Batch conversion to affine.
Sourcepub fn is_identity(&self) -> Choice
pub fn is_identity(&self) -> Choice
Check if point at infinity.
Sourcepub fn is_on_curve(&self) -> Choice
pub fn is_on_curve(&self) -> Choice
Check if on curve y² = x³ + B.
Sourcepub fn from_bytes(bytes: &[u8; 96]) -> CtOption<Self>
pub fn from_bytes(bytes: &[u8; 96]) -> CtOption<Self>
Deserialize from compressed bytes.
Sourcepub fn from_bytes_unchecked(bytes: &[u8; 96]) -> CtOption<Self>
pub fn from_bytes_unchecked(bytes: &[u8; 96]) -> CtOption<Self>
Deserialize without validation.
Trait Implementations§
Source§impl<'a, 'b> Add<&'b G2Affine> for &'a G2Projective
impl<'a, 'b> Add<&'b G2Affine> for &'a G2Projective
Source§type Output = G2Projective
type Output = G2Projective
+
operator.Source§impl<'b> Add<&'b G2Affine> for G2Projective
impl<'b> Add<&'b G2Affine> for G2Projective
Source§type Output = G2Projective
type Output = G2Projective
+
operator.Source§impl<'a, 'b> Add<&'b G2Projective> for &'a G2Affine
impl<'a, 'b> Add<&'b G2Projective> for &'a G2Affine
Source§type Output = G2Projective
type Output = G2Projective
+
operator.Source§fn add(self, rhs: &'b G2Projective) -> G2Projective
fn add(self, rhs: &'b G2Projective) -> G2Projective
+
operation. Read moreSource§impl<'a, 'b> Add<&'b G2Projective> for &'a G2Projective
impl<'a, 'b> Add<&'b G2Projective> for &'a G2Projective
Source§type Output = G2Projective
type Output = G2Projective
+
operator.Source§fn add(self, rhs: &'b G2Projective) -> G2Projective
fn add(self, rhs: &'b G2Projective) -> G2Projective
+
operation. Read moreSource§impl<'b> Add<&'b G2Projective> for G2Affine
impl<'b> Add<&'b G2Projective> for G2Affine
Source§type Output = G2Projective
type Output = G2Projective
+
operator.Source§fn add(self, rhs: &'b G2Projective) -> G2Projective
fn add(self, rhs: &'b G2Projective) -> G2Projective
+
operation. Read moreSource§impl<'b> Add<&'b G2Projective> for G2Projective
impl<'b> Add<&'b G2Projective> for G2Projective
Source§type Output = G2Projective
type Output = G2Projective
+
operator.Source§fn add(self, rhs: &'b G2Projective) -> G2Projective
fn add(self, rhs: &'b G2Projective) -> G2Projective
+
operation. Read moreSource§impl<'a> Add<G2Affine> for &'a G2Projective
impl<'a> Add<G2Affine> for &'a G2Projective
Source§type Output = G2Projective
type Output = G2Projective
+
operator.Source§impl Add<G2Affine> for G2Projective
impl Add<G2Affine> for G2Projective
Source§type Output = G2Projective
type Output = G2Projective
+
operator.Source§impl<'a> Add<G2Projective> for &'a G2Affine
impl<'a> Add<G2Projective> for &'a G2Affine
Source§type Output = G2Projective
type Output = G2Projective
+
operator.Source§fn add(self, rhs: G2Projective) -> G2Projective
fn add(self, rhs: G2Projective) -> G2Projective
+
operation. Read moreSource§impl<'a> Add<G2Projective> for &'a G2Projective
impl<'a> Add<G2Projective> for &'a G2Projective
Source§type Output = G2Projective
type Output = G2Projective
+
operator.Source§fn add(self, rhs: G2Projective) -> G2Projective
fn add(self, rhs: G2Projective) -> G2Projective
+
operation. Read moreSource§impl Add<G2Projective> for G2Affine
impl Add<G2Projective> for G2Affine
Source§type Output = G2Projective
type Output = G2Projective
+
operator.Source§fn add(self, rhs: G2Projective) -> G2Projective
fn add(self, rhs: G2Projective) -> G2Projective
+
operation. Read moreSource§impl Add for G2Projective
impl Add for G2Projective
Source§type Output = G2Projective
type Output = G2Projective
+
operator.Source§fn add(self, rhs: G2Projective) -> G2Projective
fn add(self, rhs: G2Projective) -> G2Projective
+
operation. Read moreSource§impl<'b> AddAssign<&'b G2Affine> for G2Projective
impl<'b> AddAssign<&'b G2Affine> for G2Projective
Source§fn add_assign(&mut self, rhs: &'b G2Affine)
fn add_assign(&mut self, rhs: &'b G2Affine)
+=
operation. Read moreSource§impl<'b> AddAssign<&'b G2Projective> for G2Projective
impl<'b> AddAssign<&'b G2Projective> for G2Projective
Source§fn add_assign(&mut self, rhs: &'b G2Projective)
fn add_assign(&mut self, rhs: &'b G2Projective)
+=
operation. Read moreSource§impl AddAssign<G2Affine> for G2Projective
impl AddAssign<G2Affine> for G2Projective
Source§fn add_assign(&mut self, rhs: G2Affine)
fn add_assign(&mut self, rhs: G2Affine)
+=
operation. Read moreSource§impl AddAssign for G2Projective
impl AddAssign for G2Projective
Source§fn add_assign(&mut self, rhs: G2Projective)
fn add_assign(&mut self, rhs: G2Projective)
+=
operation. Read moreSource§impl Clone for G2Projective
impl Clone for G2Projective
Source§fn clone(&self) -> G2Projective
fn clone(&self) -> G2Projective
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl ConditionallySelectable for G2Projective
impl ConditionallySelectable for G2Projective
Source§fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self
fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self
Source§fn conditional_assign(&mut self, other: &Self, choice: Choice)
fn conditional_assign(&mut self, other: &Self, choice: Choice)
Source§fn conditional_swap(a: &mut Self, b: &mut Self, choice: Choice)
fn conditional_swap(a: &mut Self, b: &mut Self, choice: Choice)
self
and other
if choice == 1
; otherwise,
reassign both unto themselves. Read moreSource§impl ConstantTimeEq for G2Projective
impl ConstantTimeEq for G2Projective
Source§impl Debug for G2Projective
impl Debug for G2Projective
Source§impl Default for G2Projective
impl Default for G2Projective
Source§fn default() -> G2Projective
fn default() -> G2Projective
Source§impl Display for G2Projective
impl Display for G2Projective
Source§impl<'a> From<&'a G2Affine> for G2Projective
impl<'a> From<&'a G2Affine> for G2Projective
Source§fn from(p: &'a G2Affine) -> G2Projective
fn from(p: &'a G2Affine) -> G2Projective
Source§impl<'a> From<&'a G2Projective> for G2Affine
impl<'a> From<&'a G2Projective> for G2Affine
Source§fn from(p: &'a G2Projective) -> G2Affine
fn from(p: &'a G2Projective) -> G2Affine
Source§impl From<G2Affine> for G2Projective
impl From<G2Affine> for G2Projective
Source§fn from(p: G2Affine) -> G2Projective
fn from(p: G2Affine) -> G2Projective
Source§impl From<G2Projective> for G2Affine
impl From<G2Projective> for G2Affine
Source§fn from(p: G2Projective) -> G2Affine
fn from(p: G2Projective) -> G2Affine
Source§impl<'a, 'b> Mul<&'b G2Projective> for &'a Scalar
impl<'a, 'b> Mul<&'b G2Projective> for &'a Scalar
Source§type Output = G2Projective
type Output = G2Projective
*
operator.Source§impl<'b> Mul<&'b G2Projective> for Scalar
impl<'b> Mul<&'b G2Projective> for Scalar
Source§type Output = G2Projective
type Output = G2Projective
*
operator.Source§fn mul(self, rhs: &'b G2Projective) -> G2Projective
fn mul(self, rhs: &'b G2Projective) -> G2Projective
*
operation. Read moreSource§impl<'a, 'b> Mul<&'b Scalar> for &'a G2Projective
impl<'a, 'b> Mul<&'b Scalar> for &'a G2Projective
Source§impl<'b> Mul<&'b Scalar> for G2Projective
impl<'b> Mul<&'b Scalar> for G2Projective
Source§type Output = G2Projective
type Output = G2Projective
*
operator.Source§impl<'a> Mul<G2Projective> for &'a Scalar
impl<'a> Mul<G2Projective> for &'a Scalar
Source§type Output = G2Projective
type Output = G2Projective
*
operator.Source§fn mul(self, rhs: G2Projective) -> G2Projective
fn mul(self, rhs: G2Projective) -> G2Projective
*
operation. Read moreSource§impl Mul<G2Projective> for Scalar
impl Mul<G2Projective> for Scalar
Source§type Output = G2Projective
type Output = G2Projective
*
operator.Source§fn mul(self, rhs: G2Projective) -> G2Projective
fn mul(self, rhs: G2Projective) -> G2Projective
*
operation. Read moreSource§impl<'a> Mul<Scalar> for &'a G2Projective
impl<'a> Mul<Scalar> for &'a G2Projective
Source§type Output = G2Projective
type Output = G2Projective
*
operator.Source§impl Mul<Scalar> for G2Projective
impl Mul<Scalar> for G2Projective
Source§type Output = G2Projective
type Output = G2Projective
*
operator.Source§impl<'b> MulAssign<&'b Scalar> for G2Projective
impl<'b> MulAssign<&'b Scalar> for G2Projective
Source§fn mul_assign(&mut self, rhs: &'b Scalar)
fn mul_assign(&mut self, rhs: &'b Scalar)
*=
operation. Read moreSource§impl MulAssign<Scalar> for G2Projective
impl MulAssign<Scalar> for G2Projective
Source§fn mul_assign(&mut self, rhs: Scalar)
fn mul_assign(&mut self, rhs: Scalar)
*=
operation. Read moreSource§impl<'a> Neg for &'a G2Projective
impl<'a> Neg for &'a G2Projective
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§fn neg(self) -> G2Projective
fn neg(self) -> G2Projective
-
operation. Read moreSource§impl Neg for G2Projective
impl Neg for G2Projective
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§fn neg(self) -> G2Projective
fn neg(self) -> G2Projective
-
operation. Read moreSource§impl PartialEq for G2Projective
impl PartialEq for G2Projective
Source§impl<'a, 'b> Sub<&'b G2Affine> for &'a G2Projective
impl<'a, 'b> Sub<&'b G2Affine> for &'a G2Projective
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§impl<'b> Sub<&'b G2Affine> for G2Projective
impl<'b> Sub<&'b G2Affine> for G2Projective
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§impl<'a, 'b> Sub<&'b G2Projective> for &'a G2Affine
impl<'a, 'b> Sub<&'b G2Projective> for &'a G2Affine
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§fn sub(self, rhs: &'b G2Projective) -> G2Projective
fn sub(self, rhs: &'b G2Projective) -> G2Projective
-
operation. Read moreSource§impl<'a, 'b> Sub<&'b G2Projective> for &'a G2Projective
impl<'a, 'b> Sub<&'b G2Projective> for &'a G2Projective
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§fn sub(self, rhs: &'b G2Projective) -> G2Projective
fn sub(self, rhs: &'b G2Projective) -> G2Projective
-
operation. Read moreSource§impl<'b> Sub<&'b G2Projective> for G2Affine
impl<'b> Sub<&'b G2Projective> for G2Affine
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§fn sub(self, rhs: &'b G2Projective) -> G2Projective
fn sub(self, rhs: &'b G2Projective) -> G2Projective
-
operation. Read moreSource§impl<'b> Sub<&'b G2Projective> for G2Projective
impl<'b> Sub<&'b G2Projective> for G2Projective
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§fn sub(self, rhs: &'b G2Projective) -> G2Projective
fn sub(self, rhs: &'b G2Projective) -> G2Projective
-
operation. Read moreSource§impl<'a> Sub<G2Affine> for &'a G2Projective
impl<'a> Sub<G2Affine> for &'a G2Projective
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§impl Sub<G2Affine> for G2Projective
impl Sub<G2Affine> for G2Projective
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§impl<'a> Sub<G2Projective> for &'a G2Affine
impl<'a> Sub<G2Projective> for &'a G2Affine
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§fn sub(self, rhs: G2Projective) -> G2Projective
fn sub(self, rhs: G2Projective) -> G2Projective
-
operation. Read moreSource§impl<'a> Sub<G2Projective> for &'a G2Projective
impl<'a> Sub<G2Projective> for &'a G2Projective
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§fn sub(self, rhs: G2Projective) -> G2Projective
fn sub(self, rhs: G2Projective) -> G2Projective
-
operation. Read moreSource§impl Sub<G2Projective> for G2Affine
impl Sub<G2Projective> for G2Affine
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§fn sub(self, rhs: G2Projective) -> G2Projective
fn sub(self, rhs: G2Projective) -> G2Projective
-
operation. Read moreSource§impl Sub for G2Projective
impl Sub for G2Projective
Source§type Output = G2Projective
type Output = G2Projective
-
operator.Source§fn sub(self, rhs: G2Projective) -> G2Projective
fn sub(self, rhs: G2Projective) -> G2Projective
-
operation. Read moreSource§impl<'b> SubAssign<&'b G2Affine> for G2Projective
impl<'b> SubAssign<&'b G2Affine> for G2Projective
Source§fn sub_assign(&mut self, rhs: &'b G2Affine)
fn sub_assign(&mut self, rhs: &'b G2Affine)
-=
operation. Read moreSource§impl<'b> SubAssign<&'b G2Projective> for G2Projective
impl<'b> SubAssign<&'b G2Projective> for G2Projective
Source§fn sub_assign(&mut self, rhs: &'b G2Projective)
fn sub_assign(&mut self, rhs: &'b G2Projective)
-=
operation. Read moreSource§impl SubAssign<G2Affine> for G2Projective
impl SubAssign<G2Affine> for G2Projective
Source§fn sub_assign(&mut self, rhs: G2Affine)
fn sub_assign(&mut self, rhs: G2Affine)
-=
operation. Read moreSource§impl SubAssign for G2Projective
impl SubAssign for G2Projective
Source§fn sub_assign(&mut self, rhs: G2Projective)
fn sub_assign(&mut self, rhs: G2Projective)
-=
operation. Read more