pub struct Scalar<C: CurveWithScalar> {
pub(crate) scalar: U448,
curve: PhantomData<C>,
}Expand description
Shared scalar for Ed448 and Decaf448.
Use EdwardsScalar and DecafScalar directly.
This is the scalar field size = 4q = 2^446 - 0x8335dc163bb124b65129c96fde933d8d723a70aadc873d6d54a7bb0d We can therefore use 14 saturated 32-bit limbs
Fields§
§scalar: U448§curve: PhantomData<C>Implementations§
Source§impl Scalar<Decaf448>
impl Scalar<Decaf448>
Sourcepub fn from_bytes_mod_order_wide(input: &WideDecafScalarBytes) -> DecafScalar
pub fn from_bytes_mod_order_wide(input: &WideDecafScalarBytes) -> DecafScalar
Construct a Scalar by reducing a 896-bit little-endian integer
modulo the group order ℓ.
Source§impl Scalar<Ed448>
impl Scalar<Ed448>
Sourcepub fn to_bytes_rfc_8032(&self) -> EdwardsScalarBytes
pub fn to_bytes_rfc_8032(&self) -> EdwardsScalarBytes
Serialize the scalar into 57 bytes, per RFC 8032. Byte 56 will always be zero.
Sourcepub fn from_bytes_mod_order_wide(
input: &WideEdwardsScalarBytes,
) -> EdwardsScalar
pub fn from_bytes_mod_order_wide( input: &WideEdwardsScalarBytes, ) -> EdwardsScalar
Construct a Scalar by reducing a 912-bit little-endian integer
modulo the group order ℓ.
Source§impl<C: CurveWithScalar> Scalar<C>
impl<C: CurveWithScalar> Scalar<C>
pub(crate) const fn new(scalar: U448) -> Self
pub(crate) fn to_radix_16(self) -> [i8; 113]
Sourcepub const fn exp_vartime(&self, exp: &[u64]) -> Self
pub const fn exp_vartime(&self, exp: &[u64]) -> Self
Exponentiates self by exp, where exp is a little-endian order integer
exponent.
Sourcepub fn sqrt(&self) -> CtOption<Self>
pub fn sqrt(&self) -> CtOption<Self>
Return the square root of this scalar, if it is a quadratic residue.
Sourcepub fn from_canonical_bytes(
bytes: &Array<u8, <C as CurveWithScalar>::ReprSize>,
) -> CtOption<Self>
pub fn from_canonical_bytes( bytes: &Array<u8, <C as CurveWithScalar>::ReprSize>, ) -> CtOption<Self>
Attempt to construct a Scalar from a canonical byte representation.
§Return
Some(s), wheresis theScalarcorresponding tobytes, ifbytesis a canonical byte representation;Noneifbytesis not a canonical byte representation.
Sourcepub fn from_bytes_mod_order(
input: &Array<u8, <C as CurveWithScalar>::ReprSize>,
) -> Scalar<C>
pub fn from_bytes_mod_order( input: &Array<u8, <C as CurveWithScalar>::ReprSize>, ) -> Scalar<C>
Construct a Scalar by reducing a 448-bit little-endian integer modulo the group order ℓ
Trait Implementations§
Source§impl<C: CurveWithScalar> Add for Scalar<C>
impl<C: CurveWithScalar> Add for Scalar<C>
Source§impl<C: CurveWithScalar> AddAssign<&Scalar<C>> for Scalar<C>
impl<C: CurveWithScalar> AddAssign<&Scalar<C>> for Scalar<C>
Source§fn add_assign(&mut self, rhs: &Scalar<C>)
fn add_assign(&mut self, rhs: &Scalar<C>)
+= operation. Read moreSource§impl<C: CurveWithScalar> AddAssign for Scalar<C>
impl<C: CurveWithScalar> AddAssign for Scalar<C>
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
+= operation. Read moreSource§impl<C: CurveWithScalar> Clone for Scalar<C>
impl<C: CurveWithScalar> Clone for Scalar<C>
Source§impl<C: CurveWithScalar> ConditionallySelectable for Scalar<C>
impl<C: CurveWithScalar> ConditionallySelectable for Scalar<C>
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<C: CurveWithScalar> ConstantTimeEq for Scalar<C>
impl<C: CurveWithScalar> ConstantTimeEq for Scalar<C>
Source§impl<C: CurveWithScalar> CtEq for Scalar<C>
impl<C: CurveWithScalar> CtEq for Scalar<C>
Source§impl<C: CurveWithScalar> CtSelect for Scalar<C>
impl<C: CurveWithScalar> CtSelect for Scalar<C>
Source§impl<C: CurveWithScalar> Debug for Scalar<C>
impl<C: CurveWithScalar> Debug for Scalar<C>
Source§impl<C: CurveWithScalar> Default for Scalar<C>
impl<C: CurveWithScalar> Default for Scalar<C>
Source§impl<C: CurveWithScalar> Display for Scalar<C>
impl<C: CurveWithScalar> Display for Scalar<C>
Source§impl<C: CurveWithScalar> Field for Scalar<C>
impl<C: CurveWithScalar> Field for Scalar<C>
Source§fn try_random<R: TryRng + ?Sized>(rng: &mut R) -> Result<Self, R::Error>
fn try_random<R: TryRng + ?Sized>(rng: &mut R) -> Result<Self, R::Error>
Source§fn invert(&self) -> CtOption<Self>
fn invert(&self) -> CtOption<Self>
Source§fn sqrt_ratio(num: &Self, div: &Self) -> (Choice, Self)
fn sqrt_ratio(num: &Self, div: &Self) -> (Choice, Self)
Source§fn random<R>(rng: &mut R) -> Self
fn random<R>(rng: &mut R) -> Self
Source§fn is_zero_vartime(&self) -> bool
fn is_zero_vartime(&self) -> bool
Source§fn sqrt(&self) -> CtOption<Self>
fn sqrt(&self) -> CtOption<Self>
Source§impl<C: CurveWithScalar> From<&Scalar<C>> for Array<u8, <C as CurveWithScalar>::ReprSize>
impl<C: CurveWithScalar> From<&Scalar<C>> for Array<u8, <C as CurveWithScalar>::ReprSize>
Source§impl From<&Scalar<Decaf448>> for ScalarValue<Decaf448>
impl From<&Scalar<Decaf448>> for ScalarValue<Decaf448>
Source§fn from(scalar: &DecafScalar) -> ScalarValue<Decaf448>
fn from(scalar: &DecafScalar) -> ScalarValue<Decaf448>
Source§impl From<&Scalar<Ed448>> for ScalarValue<Ed448>
impl From<&Scalar<Ed448>> for ScalarValue<Ed448>
Source§fn from(scalar: &EdwardsScalar) -> ScalarValue<Ed448>
fn from(scalar: &EdwardsScalar) -> ScalarValue<Ed448>
Source§impl<C: CurveWithScalar> From<&Uint<crypto_bigint::::uint::U448::{constant#0}>> for Scalar<C>
impl<C: CurveWithScalar> From<&Uint<crypto_bigint::::uint::U448::{constant#0}>> for Scalar<C>
Source§impl<C: CurveWithScalar> From<Scalar<C>> for Array<u8, <C as CurveWithScalar>::ReprSize>
impl<C: CurveWithScalar> From<Scalar<C>> for Array<u8, <C as CurveWithScalar>::ReprSize>
Source§impl From<Scalar<Decaf448>> for ScalarValue<Decaf448>
impl From<Scalar<Decaf448>> for ScalarValue<Decaf448>
Source§fn from(scalar: DecafScalar) -> ScalarValue<Decaf448>
fn from(scalar: DecafScalar) -> ScalarValue<Decaf448>
Source§impl From<Scalar<Ed448>> for ScalarValue<Ed448>
impl From<Scalar<Ed448>> for ScalarValue<Ed448>
Source§fn from(scalar: EdwardsScalar) -> ScalarValue<Ed448>
fn from(scalar: EdwardsScalar) -> ScalarValue<Ed448>
Source§impl<C: CurveWithScalar> FromUintUnchecked for Scalar<C>
impl<C: CurveWithScalar> FromUintUnchecked for Scalar<C>
Source§impl<C: CurveWithScalar> Generate for Scalar<C>
impl<C: CurveWithScalar> Generate for Scalar<C>
Source§fn try_generate_from_rng<R: TryCryptoRng + ?Sized>(
rng: &mut R,
) -> Result<Self, R::Error>
fn try_generate_from_rng<R: TryCryptoRng + ?Sized>( rng: &mut R, ) -> Result<Self, R::Error>
TryCryptoRng. Read moreSource§fn generate_from_rng<R>(rng: &mut R) -> Self
fn generate_from_rng<R>(rng: &mut R) -> Self
CryptoRng.Source§impl<C: CurveWithScalar> Invert for Scalar<C>
impl<C: CurveWithScalar> Invert for Scalar<C>
Source§impl<C: CurveWithScalar> IsHigh for Scalar<C>
impl<C: CurveWithScalar> IsHigh for Scalar<C>
Source§impl<C: CurveWithScalar> LowerHex for Scalar<C>
impl<C: CurveWithScalar> LowerHex for Scalar<C>
Source§impl Mul<&Scalar<Decaf448>> for &AffinePoint
impl Mul<&Scalar<Decaf448>> for &AffinePoint
Source§type Output = DecafPoint
type Output = DecafPoint
* operator.Source§fn mul(self, scalar: &DecafScalar) -> DecafPoint
fn mul(self, scalar: &DecafScalar) -> DecafPoint
* operation. Read moreSource§impl Mul<&Scalar<Decaf448>> for &DecafPoint
Scalar Mul Operations
impl Mul<&Scalar<Decaf448>> for &DecafPoint
Scalar Mul Operations
Source§type Output = DecafPoint
type Output = DecafPoint
* operator.Source§fn mul(self, scalar: &DecafScalar) -> DecafPoint
fn mul(self, scalar: &DecafScalar) -> DecafPoint
* operation. Read moreSource§impl<'b> Mul<&'b Scalar<Decaf448>> for AffinePoint
impl<'b> Mul<&'b Scalar<Decaf448>> for AffinePoint
Source§type Output = DecafPoint
type Output = DecafPoint
* operator.Source§fn mul(self, rhs: &'b DecafScalar) -> DecafPoint
fn mul(self, rhs: &'b DecafScalar) -> DecafPoint
* operation. Read moreSource§impl<'b> Mul<&'b Scalar<Decaf448>> for DecafPoint
impl<'b> Mul<&'b Scalar<Decaf448>> for DecafPoint
Source§type Output = DecafPoint
type Output = DecafPoint
* operator.Source§fn mul(self, rhs: &'b DecafScalar) -> DecafPoint
fn mul(self, rhs: &'b DecafScalar) -> DecafPoint
* operation. Read moreSource§impl Mul<&Scalar<Ed448>> for &AffinePoint
impl Mul<&Scalar<Ed448>> for &AffinePoint
Source§type Output = EdwardsPoint
type Output = EdwardsPoint
* operator.Source§impl Mul<&Scalar<Ed448>> for &EdwardsPoint
impl Mul<&Scalar<Ed448>> for &EdwardsPoint
Source§fn mul(self, scalar: &EdwardsScalar) -> EdwardsPoint
fn mul(self, scalar: &EdwardsScalar) -> EdwardsPoint
Scalar multiplication: compute scalar * self.
Source§type Output = EdwardsPoint
type Output = EdwardsPoint
* operator.Source§impl Mul<&Scalar<Ed448>> for &MontgomeryPoint
impl Mul<&Scalar<Ed448>> for &MontgomeryPoint
Source§type Output = MontgomeryPoint
type Output = MontgomeryPoint
* operator.Source§fn mul(self, scalar: &EdwardsScalar) -> MontgomeryPoint
fn mul(self, scalar: &EdwardsScalar) -> MontgomeryPoint
* operation. Read moreSource§impl<'b> Mul<&'b Scalar<Ed448>> for AffinePoint
impl<'b> Mul<&'b Scalar<Ed448>> for AffinePoint
Source§type Output = EdwardsPoint
type Output = EdwardsPoint
* operator.Source§fn mul(self, rhs: &'b EdwardsScalar) -> EdwardsPoint
fn mul(self, rhs: &'b EdwardsScalar) -> EdwardsPoint
* operation. Read moreSource§impl<'b> Mul<&'b Scalar<Ed448>> for EdwardsPoint
impl<'b> Mul<&'b Scalar<Ed448>> for EdwardsPoint
Source§type Output = EdwardsPoint
type Output = EdwardsPoint
* operator.Source§fn mul(self, rhs: &'b EdwardsScalar) -> EdwardsPoint
fn mul(self, rhs: &'b EdwardsScalar) -> EdwardsPoint
* operation. Read moreSource§impl<'a> Mul<Scalar<Decaf448>> for &'a AffinePoint
impl<'a> Mul<Scalar<Decaf448>> for &'a AffinePoint
Source§type Output = DecafPoint
type Output = DecafPoint
* operator.Source§fn mul(self, rhs: DecafScalar) -> DecafPoint
fn mul(self, rhs: DecafScalar) -> DecafPoint
* operation. Read moreSource§impl<'a> Mul<Scalar<Decaf448>> for &'a DecafPoint
impl<'a> Mul<Scalar<Decaf448>> for &'a DecafPoint
Source§type Output = DecafPoint
type Output = DecafPoint
* operator.Source§fn mul(self, rhs: DecafScalar) -> DecafPoint
fn mul(self, rhs: DecafScalar) -> DecafPoint
* operation. Read moreSource§impl Mul<Scalar<Decaf448>> for AffinePoint
impl Mul<Scalar<Decaf448>> for AffinePoint
Source§type Output = DecafPoint
type Output = DecafPoint
* operator.Source§fn mul(self, rhs: DecafScalar) -> DecafPoint
fn mul(self, rhs: DecafScalar) -> DecafPoint
* operation. Read moreSource§impl Mul<Scalar<Decaf448>> for DecafPoint
impl Mul<Scalar<Decaf448>> for DecafPoint
Source§type Output = DecafPoint
type Output = DecafPoint
* operator.Source§fn mul(self, rhs: DecafScalar) -> DecafPoint
fn mul(self, rhs: DecafScalar) -> DecafPoint
* operation. Read moreSource§impl<'a> Mul<Scalar<Ed448>> for &'a AffinePoint
impl<'a> Mul<Scalar<Ed448>> for &'a AffinePoint
Source§type Output = EdwardsPoint
type Output = EdwardsPoint
* operator.Source§fn mul(self, rhs: EdwardsScalar) -> EdwardsPoint
fn mul(self, rhs: EdwardsScalar) -> EdwardsPoint
* operation. Read moreSource§impl<'a> Mul<Scalar<Ed448>> for &'a EdwardsPoint
impl<'a> Mul<Scalar<Ed448>> for &'a EdwardsPoint
Source§type Output = EdwardsPoint
type Output = EdwardsPoint
* operator.Source§fn mul(self, rhs: EdwardsScalar) -> EdwardsPoint
fn mul(self, rhs: EdwardsScalar) -> EdwardsPoint
* operation. Read moreSource§impl Mul<Scalar<Ed448>> for AffinePoint
impl Mul<Scalar<Ed448>> for AffinePoint
Source§type Output = EdwardsPoint
type Output = EdwardsPoint
* operator.Source§fn mul(self, rhs: EdwardsScalar) -> EdwardsPoint
fn mul(self, rhs: EdwardsScalar) -> EdwardsPoint
* operation. Read moreSource§impl Mul<Scalar<Ed448>> for EdwardsPoint
impl Mul<Scalar<Ed448>> for EdwardsPoint
Source§type Output = EdwardsPoint
type Output = EdwardsPoint
* operator.Source§fn mul(self, rhs: EdwardsScalar) -> EdwardsPoint
fn mul(self, rhs: EdwardsScalar) -> EdwardsPoint
* operation. Read moreSource§impl<C: CurveWithScalar> Mul for Scalar<C>
impl<C: CurveWithScalar> Mul for Scalar<C>
Source§impl<C: CurveWithScalar> MulAssign<&Scalar<C>> for Scalar<C>
impl<C: CurveWithScalar> MulAssign<&Scalar<C>> for Scalar<C>
Source§fn mul_assign(&mut self, rhs: &Scalar<C>)
fn mul_assign(&mut self, rhs: &Scalar<C>)
*= operation. Read moreSource§impl<'s> MulAssign<&'s Scalar<Decaf448>> for DecafPoint
impl<'s> MulAssign<&'s Scalar<Decaf448>> for DecafPoint
Source§fn mul_assign(&mut self, scalar: &'s DecafScalar)
fn mul_assign(&mut self, scalar: &'s DecafScalar)
*= operation. Read moreSource§impl<'b> MulAssign<&'b Scalar<Ed448>> for EdwardsPoint
impl<'b> MulAssign<&'b Scalar<Ed448>> for EdwardsPoint
Source§fn mul_assign(&mut self, scalar: &'b EdwardsScalar)
fn mul_assign(&mut self, scalar: &'b EdwardsScalar)
*= operation. Read moreSource§impl MulAssign<Scalar<Decaf448>> for DecafPoint
impl MulAssign<Scalar<Decaf448>> for DecafPoint
Source§fn mul_assign(&mut self, scalar: DecafScalar)
fn mul_assign(&mut self, scalar: DecafScalar)
*= operation. Read moreSource§impl MulAssign<Scalar<Ed448>> for EdwardsPoint
impl MulAssign<Scalar<Ed448>> for EdwardsPoint
Source§fn mul_assign(&mut self, rhs: EdwardsScalar)
fn mul_assign(&mut self, rhs: EdwardsScalar)
*= operation. Read moreSource§impl<C: CurveWithScalar> MulAssign for Scalar<C>
impl<C: CurveWithScalar> MulAssign for Scalar<C>
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
*= operation. Read moreSource§impl MulVartime<&Scalar<Decaf448>> for &AffinePoint
impl MulVartime<&Scalar<Decaf448>> for &AffinePoint
Source§fn mul_vartime(self, scalar: &DecafScalar) -> DecafPoint
fn mul_vartime(self, scalar: &DecafScalar) -> DecafPoint
self by rhs in variable-time.Source§impl MulVartime<&Scalar<Decaf448>> for &DecafPoint
impl MulVartime<&Scalar<Decaf448>> for &DecafPoint
Source§fn mul_vartime(self, scalar: &DecafScalar) -> DecafPoint
fn mul_vartime(self, scalar: &DecafScalar) -> DecafPoint
self by rhs in variable-time.Source§impl MulVartime<&Scalar<Decaf448>> for AffinePoint
impl MulVartime<&Scalar<Decaf448>> for AffinePoint
Source§fn mul_vartime(self, scalar: &DecafScalar) -> DecafPoint
fn mul_vartime(self, scalar: &DecafScalar) -> DecafPoint
self by rhs in variable-time.Source§impl MulVartime<&Scalar<Decaf448>> for DecafPoint
impl MulVartime<&Scalar<Decaf448>> for DecafPoint
Source§fn mul_vartime(self, scalar: &DecafScalar) -> DecafPoint
fn mul_vartime(self, scalar: &DecafScalar) -> DecafPoint
self by rhs in variable-time.Source§impl MulVartime<&Scalar<Ed448>> for &AffinePoint
impl MulVartime<&Scalar<Ed448>> for &AffinePoint
Source§fn mul_vartime(self, scalar: &EdwardsScalar) -> Self::Output
fn mul_vartime(self, scalar: &EdwardsScalar) -> Self::Output
self by rhs in variable-time.Source§impl MulVartime<&Scalar<Ed448>> for &EdwardsPoint
impl MulVartime<&Scalar<Ed448>> for &EdwardsPoint
Source§fn mul_vartime(self, scalar: &EdwardsScalar) -> EdwardsPoint
fn mul_vartime(self, scalar: &EdwardsScalar) -> EdwardsPoint
self by rhs in variable-time.Source§impl MulVartime<&Scalar<Ed448>> for AffinePoint
impl MulVartime<&Scalar<Ed448>> for AffinePoint
Source§fn mul_vartime(self, scalar: &EdwardsScalar) -> Self::Output
fn mul_vartime(self, scalar: &EdwardsScalar) -> Self::Output
self by rhs in variable-time.Source§impl MulVartime<&Scalar<Ed448>> for EdwardsPoint
impl MulVartime<&Scalar<Ed448>> for EdwardsPoint
Source§fn mul_vartime(self, scalar: &EdwardsScalar) -> EdwardsPoint
fn mul_vartime(self, scalar: &EdwardsScalar) -> EdwardsPoint
self by rhs in variable-time.Source§impl MulVartime<Scalar<Decaf448>> for AffinePoint
impl MulVartime<Scalar<Decaf448>> for AffinePoint
Source§fn mul_vartime(self, scalar: DecafScalar) -> DecafPoint
fn mul_vartime(self, scalar: DecafScalar) -> DecafPoint
self by rhs in variable-time.Source§impl MulVartime<Scalar<Decaf448>> for DecafPoint
impl MulVartime<Scalar<Decaf448>> for DecafPoint
Source§fn mul_vartime(self, scalar: DecafScalar) -> DecafPoint
fn mul_vartime(self, scalar: DecafScalar) -> DecafPoint
self by rhs in variable-time.Source§impl MulVartime<Scalar<Ed448>> for AffinePoint
impl MulVartime<Scalar<Ed448>> for AffinePoint
Source§fn mul_vartime(self, scalar: EdwardsScalar) -> Self::Output
fn mul_vartime(self, scalar: EdwardsScalar) -> Self::Output
self by rhs in variable-time.Source§impl MulVartime<Scalar<Ed448>> for EdwardsPoint
impl MulVartime<Scalar<Ed448>> for EdwardsPoint
Source§fn mul_vartime(self, scalar: EdwardsScalar) -> EdwardsPoint
fn mul_vartime(self, scalar: EdwardsScalar) -> EdwardsPoint
self by rhs in variable-time.Source§impl<C: CurveWithScalar> Neg for &Scalar<C>
impl<C: CurveWithScalar> Neg for &Scalar<C>
Source§impl<C: CurveWithScalar> Neg for Scalar<C>
impl<C: CurveWithScalar> Neg for Scalar<C>
Source§impl<C: CurveWithScalar> Ord for Scalar<C>
impl<C: CurveWithScalar> Ord for Scalar<C>
Source§impl<C: CurveWithScalar> PartialEq for Scalar<C>
impl<C: CurveWithScalar> PartialEq for Scalar<C>
Source§impl<C: CurveWithScalar> PartialOrd for Scalar<C>
impl<C: CurveWithScalar> PartialOrd for Scalar<C>
Source§impl<C: CurveWithScalar> PrimeField for Scalar<C>
impl<C: CurveWithScalar> PrimeField for Scalar<C>
Source§const MODULUS: &'static str = "3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3"
const MODULUS: &'static str = "3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3"
Source§const CAPACITY: u32
const CAPACITY: u32
Source§const MULTIPLICATIVE_GENERATOR: Self
const MULTIPLICATIVE_GENERATOR: Self
modulus - 1 order. This element must also be
a quadratic nonresidue. Read moreSource§const ROOT_OF_UNITY: Self
const ROOT_OF_UNITY: Self
2^s root of unity. Read moreSource§const ROOT_OF_UNITY_INV: Self
const ROOT_OF_UNITY_INV: Self
Self::ROOT_OF_UNITY.Source§type Repr = Array<u8, <C as CurveWithScalar>::ReprSize>
type Repr = Array<u8, <C as CurveWithScalar>::ReprSize>
Source§fn from_repr(repr: Self::Repr) -> CtOption<Self>
fn from_repr(repr: Self::Repr) -> CtOption<Self>
Source§fn to_repr(&self) -> Self::Repr
fn to_repr(&self) -> Self::Repr
Source§fn from_str_vartime(s: &str) -> Option<Self>
fn from_str_vartime(s: &str) -> Option<Self>
Source§impl<C: CurveWithScalar> Product for Scalar<C>
impl<C: CurveWithScalar> Product for Scalar<C>
Source§impl<C: CurveWithScalar> Reduce<Array<u8, <C as CurveWithScalar>::ReprSize>> for Scalar<C>
impl<C: CurveWithScalar> Reduce<Array<u8, <C as CurveWithScalar>::ReprSize>> for Scalar<C>
Source§impl<C: CurveWithScalar> Reduce<Uint<crypto_bigint::::uint::U448::{constant#0}>> for Scalar<C>
impl<C: CurveWithScalar> Reduce<Uint<crypto_bigint::::uint::U448::{constant#0}>> for Scalar<C>
Source§impl<C: CurveWithScalar> Reduce<Uint<crypto_bigint::::uint::U896::{constant#0}>> for Scalar<C>
impl<C: CurveWithScalar> Reduce<Uint<crypto_bigint::::uint::U896::{constant#0}>> for Scalar<C>
Source§impl<C: CurveWithScalar> ReduceNonZero<Array<u8, <C as CurveWithScalar>::ReprSize>> for Scalar<C>
impl<C: CurveWithScalar> ReduceNonZero<Array<u8, <C as CurveWithScalar>::ReprSize>> for Scalar<C>
Source§fn reduce_nonzero(bytes: &Array<u8, <C as CurveWithScalar>::ReprSize>) -> Self
fn reduce_nonzero(bytes: &Array<u8, <C as CurveWithScalar>::ReprSize>) -> Self
Source§impl<C: CurveWithScalar> ReduceNonZero<Uint<crypto_bigint::::uint::U448::{constant#0}>> for Scalar<C>
impl<C: CurveWithScalar> ReduceNonZero<Uint<crypto_bigint::::uint::U448::{constant#0}>> for Scalar<C>
Source§fn reduce_nonzero(bytes: &U448) -> Self
fn reduce_nonzero(bytes: &U448) -> Self
Source§impl<C: CurveWithScalar> ReduceNonZero<Uint<crypto_bigint::::uint::U896::{constant#0}>> for Scalar<C>
impl<C: CurveWithScalar> ReduceNonZero<Uint<crypto_bigint::::uint::U896::{constant#0}>> for Scalar<C>
Source§fn reduce_nonzero(bytes: &U896) -> Self
fn reduce_nonzero(bytes: &U896) -> Self
Source§impl<C: CurveWithScalar> Retrieve for Scalar<C>
impl<C: CurveWithScalar> Retrieve for Scalar<C>
Source§impl<C: CurveWithScalar> ShrAssign<usize> for Scalar<C>
impl<C: CurveWithScalar> ShrAssign<usize> for Scalar<C>
Source§fn shr_assign(&mut self, shift: usize)
fn shr_assign(&mut self, shift: usize)
>>= operation. Read moreSource§impl<C: CurveWithScalar> Sub for Scalar<C>
impl<C: CurveWithScalar> Sub for Scalar<C>
Source§impl<C: CurveWithScalar> SubAssign<&Scalar<C>> for Scalar<C>
impl<C: CurveWithScalar> SubAssign<&Scalar<C>> for Scalar<C>
Source§fn sub_assign(&mut self, rhs: &Scalar<C>)
fn sub_assign(&mut self, rhs: &Scalar<C>)
-= operation. Read moreSource§impl<C: CurveWithScalar> SubAssign for Scalar<C>
impl<C: CurveWithScalar> SubAssign for Scalar<C>
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
-= operation. Read moreSource§impl<C: CurveWithScalar> Sum for Scalar<C>
impl<C: CurveWithScalar> Sum for Scalar<C>
Source§impl<C: CurveWithScalar> TryFrom<&Vec<u8>> for Scalar<C>
Available on crate feature alloc only.
impl<C: CurveWithScalar> TryFrom<&Vec<u8>> for Scalar<C>
alloc only.Source§impl<C: CurveWithScalar> TryFrom<Box<[u8]>> for Scalar<C>
Available on crate feature alloc only.
impl<C: CurveWithScalar> TryFrom<Box<[u8]>> for Scalar<C>
alloc only.Source§impl TryFrom<Scalar<Decaf448>> for NonZeroScalar<Decaf448>
The constant-time alternative is available at
elliptic_curve::NonZeroScalar<Decaf448>::new().
impl TryFrom<Scalar<Decaf448>> for NonZeroScalar<Decaf448>
The constant-time alternative is available at
elliptic_curve::NonZeroScalar<Decaf448>::new().
Source§impl TryFrom<Scalar<Ed448>> for NonZeroScalar<Ed448>
The constant-time alternative is available at
elliptic_curve::NonZeroScalar<Ed448>::new().
impl TryFrom<Scalar<Ed448>> for NonZeroScalar<Ed448>
The constant-time alternative is available at
elliptic_curve::NonZeroScalar<Ed448>::new().
Source§impl<C: CurveWithScalar> TryFrom<Vec<u8>> for Scalar<C>
Available on crate feature alloc only.
impl<C: CurveWithScalar> TryFrom<Vec<u8>> for Scalar<C>
alloc only.