Struct halo2curves::pasta::Ep
[−]pub struct Ep { /* private fields */ }
Expand description
Represents a point in the projective coordinate space.
Implementations
impl Ep
impl Ep
pub const ISOGENY_CONSTANTS: [Fp; 13] = [Fp::from_raw([8601699592618814123, 4648127495027570523, 16397105843297379214,
1024819115206086200]),
Fp::from_raw([10157978567772011382, 1122443243690759317,
2773232183644471594, 3821779088573651086]),
Fp::from_raw([1060122375120397559, 4038304340256714089,
11009004948898250003, 1671569517922563923]),
Fp::from_raw([17203399185237628288, 9296254990055141046,
14347467612885206812, 2049638230412172401]),
Fp::from_raw([14159082716405749535, 11259925689524775296,
6512345579090692729, 2114209668171144447]),
Fp::from_raw([3072491917105915396, 13018774006862432284,
2095228440899924229, 3627202818062734801]),
Fp::from_raw([6546410549613050084, 8521567074217212626,
5465701947765793071, 1878835044544491368]),
Fp::from_raw([14302361320740781499, 561221621845379658,
1386616091822235797, 1910889544286825543]),
Fp::from_raw([207938023368012340, 1686009980496745336,
3472863331874480113, 4591859559573605085]),
Fp::from_raw([10656988635624578127, 774687915837928420,
8881765665119413741, 170803185867681033]),
Fp::from_raw([6496486009643680430, 6431601670475129267,
545146331781263286, 865471493043022719]),
Fp::from_raw([5589155712586625546, 15669918639048713757,
6285685322699772688, 1658236417333428595]),
Fp::from_raw([11037532056220335589, 2469829653914515739, 0,
4611686018427387904])]
pub const ISOGENY_CONSTANTS: [Fp; 13] = [Fp::from_raw([8601699592618814123, 4648127495027570523, 16397105843297379214, 1024819115206086200]), Fp::from_raw([10157978567772011382, 1122443243690759317, 2773232183644471594, 3821779088573651086]), Fp::from_raw([1060122375120397559, 4038304340256714089, 11009004948898250003, 1671569517922563923]), Fp::from_raw([17203399185237628288, 9296254990055141046, 14347467612885206812, 2049638230412172401]), Fp::from_raw([14159082716405749535, 11259925689524775296, 6512345579090692729, 2114209668171144447]), Fp::from_raw([3072491917105915396, 13018774006862432284, 2095228440899924229, 3627202818062734801]), Fp::from_raw([6546410549613050084, 8521567074217212626, 5465701947765793071, 1878835044544491368]), Fp::from_raw([14302361320740781499, 561221621845379658, 1386616091822235797, 1910889544286825543]), Fp::from_raw([207938023368012340, 1686009980496745336, 3472863331874480113, 4591859559573605085]), Fp::from_raw([10656988635624578127, 774687915837928420, 8881765665119413741, 170803185867681033]), Fp::from_raw([6496486009643680430, 6431601670475129267, 545146331781263286, 865471493043022719]), Fp::from_raw([5589155712586625546, 15669918639048713757, 6285685322699772688, 1658236417333428595]), Fp::from_raw([11037532056220335589, 2469829653914515739, 0, 4611686018427387904])]
Constants used for computing the isogeny from IsoEp to Ep.
Trait Implementations
impl<'b> AddAssign<&'b Ep> for Ep
impl<'b> AddAssign<&'b Ep> for Ep
fn add_assign(&mut self, rhs: &'b Ep)
fn add_assign(&mut self, rhs: &'b Ep)
Performs the
+=
operation. Read moreimpl<'b> AddAssign<&'b EpAffine> for Ep
impl<'b> AddAssign<&'b EpAffine> for Ep
fn add_assign(&mut self, rhs: &'b EpAffine)
fn add_assign(&mut self, rhs: &'b EpAffine)
Performs the
+=
operation. Read moreimpl AddAssign<EpAffine> for Ep
impl AddAssign<EpAffine> for Ep
fn add_assign(&mut self, rhs: EpAffine)
fn add_assign(&mut self, rhs: EpAffine)
Performs the
+=
operation. Read moreimpl CofactorGroup for Ep
impl CofactorGroup for Ep
type Subgroup = Ep
type Subgroup = Ep
The large prime-order subgroup in which cryptographic operations are performed.
If
Self
implements PrimeGroup
, then Self::Subgroup
may be Self
. Read morefn clear_cofactor(&self) -> Ep
fn clear_cofactor(&self) -> Ep
Maps
self
to the prime-order subgroup by multiplying this element by some
k
-multiple of the cofactor. Read morefn into_subgroup(self) -> CtOption<<Ep as CofactorGroup>::Subgroup>
fn into_subgroup(self) -> CtOption<<Ep as CofactorGroup>::Subgroup>
Returns
self
if it is contained in the prime-order subgroup. Read morefn is_torsion_free(&self) -> Choice
fn is_torsion_free(&self) -> Choice
Determines if this element is “torsion free”, i.e., is contained in the
prime-order subgroup. Read more
fn is_small_order(&self) -> Choice
fn is_small_order(&self) -> Choice
Determines if this element is of small order. Read more
impl ConditionallySelectable for Ep
impl ConditionallySelectable for Ep
fn conditional_select(a: &Ep, b: &Ep, choice: Choice) -> Ep
fn conditional_select(a: &Ep, b: &Ep, choice: Choice) -> Ep
sourcefn conditional_assign(&mut self, other: &Self, choice: Choice)
fn conditional_assign(&mut self, other: &Self, choice: Choice)
impl ConstantTimeEq for Ep
impl ConstantTimeEq for Ep
impl Curve for Ep
impl Curve for Ep
type AffineRepr = EpAffine
type AffineRepr = EpAffine
The affine representation for this elliptic curve.
fn batch_normalize(p: &[Ep], q: &mut [<Ep as Curve>::AffineRepr])
fn batch_normalize(p: &[Ep], q: &mut [<Ep as Curve>::AffineRepr])
Converts a batch of projective elements into affine elements. This function will
panic if
p.len() != q.len()
. Read moreimpl CurveExt for Ep
impl CurveExt for Ep
fn endo(&self) -> Ep
fn endo(&self) -> Ep
Apply the curve endomorphism by multiplying the x-coordinate by an element of multiplicative order 3.
fn hash_to_curve(domain_prefix: &'a str) -> Box<dyn Fn(&[u8]) + 'a, Global>
fn hash_to_curve(domain_prefix: &'a str) -> Box<dyn Fn(&[u8]) + 'a, Global>
Requests a hasher that accepts messages and returns near-uniformly
distributed elements in the group, given domain prefix
domain_prefix
. Read morefn new_jacobian(
x: <Ep as CurveExt>::Base,
y: <Ep as CurveExt>::Base,
z: <Ep as CurveExt>::Base
) -> CtOption<Ep>
fn new_jacobian(
x: <Ep as CurveExt>::Base,
y: <Ep as CurveExt>::Base,
z: <Ep as CurveExt>::Base
) -> CtOption<Ep>
Obtains a point given Jacobian coordinates $X : Y : Z$, failing
if the coordinates are not on the curve. Read more
fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)
fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)
Return the Jacobian coordinates of this point.
fn is_on_curve(&self) -> Choice
fn is_on_curve(&self) -> Choice
Returns whether or not this element is on the curve; should
always be true unless an “unchecked” API was used. Read more
impl Group for Ep
impl Group for Ep
impl Group for Ep
impl Group for Ep
type Scalar = Fq
type Scalar = Fq
The group is assumed to be of prime order $p$.
Scalar
is the
associated scalar field of size $p$. Read morefn group_zero() -> Ep
fn group_zero() -> Ep
Returns the additive identity of the group.
fn group_scale(&mut self, by: &<Ep as Group>::Scalar)
fn group_scale(&mut self, by: &<Ep as Group>::Scalar)
Scales this group element by a scalar.
impl GroupEncoding for Ep
impl GroupEncoding for Ep
fn from_bytes(bytes: &<Ep as GroupEncoding>::Repr) -> CtOption<Ep>
fn from_bytes(bytes: &<Ep as GroupEncoding>::Repr) -> CtOption<Ep>
Attempts to deserialize a group element from its encoding.
fn from_bytes_unchecked(bytes: &<Ep as GroupEncoding>::Repr) -> CtOption<Ep>
fn from_bytes_unchecked(bytes: &<Ep as GroupEncoding>::Repr) -> CtOption<Ep>
Attempts to deserialize a group element, not checking if the element is valid. Read more
impl<'b> MulAssign<&'b Fq> for Ep
impl<'b> MulAssign<&'b Fq> for Ep
fn mul_assign(&mut self, rhs: &'b Fq)
fn mul_assign(&mut self, rhs: &'b Fq)
Performs the
*=
operation. Read moreimpl<'b> SubAssign<&'b Ep> for Ep
impl<'b> SubAssign<&'b Ep> for Ep
fn sub_assign(&mut self, rhs: &'b Ep)
fn sub_assign(&mut self, rhs: &'b Ep)
Performs the
-=
operation. Read moreimpl<'b> SubAssign<&'b EpAffine> for Ep
impl<'b> SubAssign<&'b EpAffine> for Ep
fn sub_assign(&mut self, rhs: &'b EpAffine)
fn sub_assign(&mut self, rhs: &'b EpAffine)
Performs the
-=
operation. Read moreimpl SubAssign<EpAffine> for Ep
impl SubAssign<EpAffine> for Ep
fn sub_assign(&mut self, rhs: EpAffine)
fn sub_assign(&mut self, rhs: EpAffine)
Performs the
-=
operation. Read moreimpl WnafGroup for Ep
impl WnafGroup for Ep
fn recommended_wnaf_for_num_scalars(num_scalars: usize) -> usize
fn recommended_wnaf_for_num_scalars(num_scalars: usize) -> usize
Recommends a wNAF window size given the number of scalars you intend to multiply
a base by. Always returns a number between 2 and 22, inclusive. Read more
impl Copy for Ep
impl Eq for Ep
impl PrimeGroup for Ep
Auto Trait Implementations
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ConditionallyNegatable for Twhere
T: ConditionallySelectable,
&'a T: for<'a> Neg<Output = T>,
impl<T> ConditionallyNegatable for Twhere
T: ConditionallySelectable,
&'a T: for<'a> Neg<Output = T>,
sourcefn conditional_negate(&mut self, choice: Choice)
fn conditional_negate(&mut self, choice: Choice)
impl<T> FmtForward for T
impl<T> FmtForward for T
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
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,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
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,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
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) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read morefn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read morefn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
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) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
Borrows
self
, then passes self.deref()
into the pipe function.impl<T> Tap for T
impl<T> Tap for T
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Immutable access to the
Borrow<B>
of a value. Read morefn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Mutable access to the
BorrowMut<B>
of a value. Read morefn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Immutable access to the
AsRef<R>
view of a value. Read morefn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Mutable access to the
AsMut<R>
view of a value. Read morefn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Immutable access to the
Deref::Target
of a value. Read morefn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Mutable access to the
Deref::Target
of a value. Read morefn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
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
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 morefn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds. Read morefn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read morefn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Calls
.tap_ref()
only in debug builds, and is erased in release
builds. Read morefn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more