pub struct PallasConfig;Trait Implementations§
Source§impl Clone for PallasConfig
 
impl Clone for PallasConfig
Source§fn clone(&self) -> PallasConfig
 
fn clone(&self) -> PallasConfig
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moreSource§impl CurveConfig for PallasConfig
 
impl CurveConfig for PallasConfig
Source§const COFACTOR_INV: Fr = Fr::ONE
 
const COFACTOR_INV: Fr = Fr::ONE
COFACTOR_INV = 1
Source§type ScalarField = Fp<MontBackend<FrConfig, 4>, 4>
 
type ScalarField = Fp<MontBackend<FrConfig, 4>, 4>
Finite prime field corresponding to an appropriate prime-order subgroup
of the curve group.
fn cofactor_is_one() -> bool
Source§impl Default for PallasConfig
 
impl Default for PallasConfig
Source§fn default() -> PallasConfig
 
fn default() -> PallasConfig
Returns the “default value” for a type. Read more
Source§impl GLVConfig for PallasConfig
 
impl GLVConfig for PallasConfig
Source§const ENDO_COEFFS: &'static [Self::BaseField]
 
const ENDO_COEFFS: &'static [Self::BaseField]
Constants that are used to calculate 
phi(G) := lambda*G.
The coefficients of the endomorphismSource§const LAMBDA: Self::ScalarField
 
const LAMBDA: Self::ScalarField
The eigenvalue corresponding to the endomorphism.
Source§const SCALAR_DECOMP_COEFFS: [(bool, <Self::ScalarField as PrimeField>::BigInt); 4]
 
const SCALAR_DECOMP_COEFFS: [(bool, <Self::ScalarField as PrimeField>::BigInt); 4]
A 4-element vector representing a 2x2 matrix of coefficients the for scalar decomposition, s.t. k-th entry in the vector is at col i, row j in the matrix, with ij = BE binary decomposition of k.
The entries are the LLL-reduced bases.
The determinant of this matrix must equal 
ScalarField::characteristic().fn endomorphism(p: &Projective) -> Projective
fn endomorphism_affine(p: &Affine) -> Affine
Source§fn scalar_decomposition(
    k: Self::ScalarField,
) -> ((bool, Self::ScalarField), (bool, Self::ScalarField))
 
fn scalar_decomposition( k: Self::ScalarField, ) -> ((bool, Self::ScalarField), (bool, Self::ScalarField))
Decomposes a scalar s into k1, k2, s.t. s = k1 + lambda k2,
fn glv_mul_projective( p: Projective<Self>, k: Self::ScalarField, ) -> Projective<Self>
fn glv_mul_affine(p: Affine<Self>, k: Self::ScalarField) -> Affine<Self>
Source§impl PartialEq for PallasConfig
 
impl PartialEq for PallasConfig
Source§impl SWCurveConfig for PallasConfig
 
impl SWCurveConfig for PallasConfig
Source§fn mul_by_a(_: Self::BaseField) -> Self::BaseField
 
fn mul_by_a(_: Self::BaseField) -> Self::BaseField
Helper method for computing 
elem * Self::COEFF_A. Read moreSource§fn add_b(elem: Self::BaseField) -> Self::BaseField
 
fn add_b(elem: Self::BaseField) -> Self::BaseField
Helper method for computing 
elem + Self::COEFF_B. Read moreSource§fn is_in_correct_subgroup_assuming_on_curve(item: &Affine<Self>) -> bool
 
fn is_in_correct_subgroup_assuming_on_curve(item: &Affine<Self>) -> bool
Check if the provided curve point is in the prime-order subgroup. Read more
Source§fn clear_cofactor(item: &Affine<Self>) -> Affine<Self>
 
fn clear_cofactor(item: &Affine<Self>) -> Affine<Self>
Performs cofactor clearing.
The default method is simply to multiply by the cofactor.
Some curves can implement a more efficient algorithm.
Source§fn mul_projective(base: &Projective<Self>, scalar: &[u64]) -> Projective<Self>
 
fn mul_projective(base: &Projective<Self>, scalar: &[u64]) -> Projective<Self>
Default implementation of group multiplication for projective
coordinates
Source§fn mul_affine(base: &Affine<Self>, scalar: &[u64]) -> Projective<Self>
 
fn mul_affine(base: &Affine<Self>, scalar: &[u64]) -> Projective<Self>
Default implementation of group multiplication for affine
coordinates.
Source§fn msm(
    bases: &[Affine<Self>],
    scalars: &[Self::ScalarField],
) -> Result<Projective<Self>, usize>
 
fn msm( bases: &[Affine<Self>], scalars: &[Self::ScalarField], ) -> Result<Projective<Self>, usize>
Default implementation for multi scalar multiplication
Source§fn serialize_with_mode<W>(
    item: &Affine<Self>,
    writer: W,
    compress: Compress,
) -> Result<(), SerializationError>where
    W: Write,
 
fn serialize_with_mode<W>(
    item: &Affine<Self>,
    writer: W,
    compress: Compress,
) -> Result<(), SerializationError>where
    W: Write,
If uncompressed, serializes both x and y coordinates as well as a bit for whether it is
infinity. If compressed, serializes x coordinate with two bits to encode whether y is
positive, negative, or infinity.
Source§fn deserialize_with_mode<R>(
    reader: R,
    compress: Compress,
    validate: Validate,
) -> Result<Affine<Self>, SerializationError>where
    R: Read,
 
fn deserialize_with_mode<R>(
    reader: R,
    compress: Compress,
    validate: Validate,
) -> Result<Affine<Self>, SerializationError>where
    R: Read,
If 
validate is Yes, calls check() to make sure the element is valid.fn serialized_size(compress: Compress) -> usize
impl Copy for PallasConfig
impl Eq for PallasConfig
impl StructuralPartialEq for PallasConfig
Auto Trait Implementations§
impl Freeze for PallasConfig
impl RefUnwindSafe for PallasConfig
impl Send for PallasConfig
impl Sync for PallasConfig
impl Unpin for PallasConfig
impl UnwindSafe for PallasConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
 
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more