pub type Scalar = Fr;
Expand description
Represents an element of the scalar field $\mathbb{F}_r$ of the Jubjub elliptic curve construction.
Aliased Type§
struct Scalar(/* private fields */);
Implementations
Source§impl Fr
impl Fr
Sourcepub fn from_bytes(bytes: &[u8; 32]) -> CtOption<Fr>
pub fn from_bytes(bytes: &[u8; 32]) -> CtOption<Fr>
Attempts to convert a little-endian byte representation of
a field element into an element of Fr
, failing if the input
is not canonical (is not smaller than r).
Sourcepub fn to_bytes(&self) -> [u8; 32]
pub fn to_bytes(&self) -> [u8; 32]
Converts an element of Fr
into a byte representation in
little-endian byte order.
Sourcepub fn from_bytes_wide(bytes: &[u8; 64]) -> Fr
pub fn from_bytes_wide(bytes: &[u8; 64]) -> Fr
Converts a 512-bit little endian integer into an element of Fr by reducing modulo r.
Sourcepub const fn from_raw(val: [u64; 4]) -> Self
pub const fn from_raw(val: [u64; 4]) -> Self
Converts from an integer represented in little endian
into its (congruent) Fr
representation.
Sourcepub fn pow(&self, by: &[u64; 4]) -> Self
pub fn pow(&self, by: &[u64; 4]) -> Self
Exponentiates self
by by
, where by
is a
little-endian order integer exponent.
Sourcepub fn pow_vartime(&self, by: &[u64; 4]) -> Self
pub fn pow_vartime(&self, by: &[u64; 4]) -> Self
Exponentiates self
by by
, where by
is a
little-endian order integer exponent.
This operation is variable time with respect to the exponent. If the exponent is fixed, this operation is effectively constant time.
Trait Implementations
Source§impl<'b> AddAssign<&'b Fr> for Fr
impl<'b> AddAssign<&'b Fr> for Fr
Source§fn add_assign(&mut self, rhs: &'b Fr)
fn add_assign(&mut self, rhs: &'b Fr)
+=
operation. Read moreSource§impl AddAssign for Fr
impl AddAssign for Fr
Source§fn add_assign(&mut self, rhs: Fr)
fn add_assign(&mut self, rhs: Fr)
+=
operation. Read moreSource§impl ConditionallySelectable for Fr
impl ConditionallySelectable for Fr
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 Fr
impl ConstantTimeEq for Fr
Source§impl Field for Fr
impl Field for Fr
Source§fn random(rng: impl RngCore) -> Self
fn random(rng: impl RngCore) -> Self
Source§fn invert(&self) -> CtOption<Self>
fn invert(&self) -> CtOption<Self>
Source§fn sqrt(&self) -> CtOption<Self>
fn sqrt(&self) -> CtOption<Self>
Source§fn is_zero_vartime(&self) -> bool
fn is_zero_vartime(&self) -> bool
Source§impl<'b> MulAssign<&'b Fr> for Fr
impl<'b> MulAssign<&'b Fr> for Fr
Source§fn mul_assign(&mut self, rhs: &'b Fr)
fn mul_assign(&mut self, rhs: &'b Fr)
*=
operation. Read moreSource§impl MulAssign for Fr
impl MulAssign for Fr
Source§fn mul_assign(&mut self, rhs: Fr)
fn mul_assign(&mut self, rhs: Fr)
*=
operation. Read moreSource§impl PrimeField for Fr
impl PrimeField for Fr
Source§const CAPACITY: u32 = 251u32
const CAPACITY: u32 = 251u32
Source§type Repr = [u8; 32]
type Repr = [u8; 32]
Source§fn from_repr(r: Self::Repr) -> CtOption<Self>
fn from_repr(r: Self::Repr) -> CtOption<Self>
Source§fn to_repr(&self) -> Self::Repr
fn to_repr(&self) -> Self::Repr
Source§fn multiplicative_generator() -> Self
fn multiplicative_generator() -> Self
modulus - 1
order. This element must
also be a quadratic nonresidue. Read moreSource§fn root_of_unity() -> Self
fn root_of_unity() -> Self
2^s
root of unity. Read moreSource§fn from_str_vartime(s: &str) -> Option<Self>
fn from_str_vartime(s: &str) -> Option<Self>
Source§impl PrimeFieldBits for Fr
impl PrimeFieldBits for Fr
Source§fn to_le_bits(&self) -> FieldBits<Self::ReprBits>
fn to_le_bits(&self) -> FieldBits<Self::ReprBits>
Source§fn char_le_bits() -> FieldBits<Self::ReprBits>
fn char_le_bits() -> FieldBits<Self::ReprBits>
Source§impl<'b> SubAssign<&'b Fr> for Fr
impl<'b> SubAssign<&'b Fr> for Fr
Source§fn sub_assign(&mut self, rhs: &'b Fr)
fn sub_assign(&mut self, rhs: &'b Fr)
-=
operation. Read moreSource§impl SubAssign for Fr
impl SubAssign for Fr
Source§fn sub_assign(&mut self, rhs: Fr)
fn sub_assign(&mut self, rhs: Fr)
-=
operation. Read more