pub trait Reduce<UInt: Integer + ArrayEncoding>: Sized {
    // Required method
    fn from_uint_reduced(n: UInt) -> Self;

    // Provided methods
    fn from_be_bytes_reduced(bytes: ByteArray<UInt>) -> Self { ... }
    fn from_le_bytes_reduced(bytes: ByteArray<UInt>) -> Self { ... }
    fn from_be_digest_reduced<D>(digest: D) -> Self
       where D: FixedOutput<OutputSize = UInt::ByteSize> { ... }
    fn from_le_digest_reduced<D>(digest: D) -> Self
       where D: FixedOutput<OutputSize = UInt::ByteSize> { ... }
}
Expand description

Modular reduction.

Required Methods§

source

fn from_uint_reduced(n: UInt) -> Self

Perform a modular reduction, returning a field element.

Provided Methods§

source

fn from_be_bytes_reduced(bytes: ByteArray<UInt>) -> Self

Interpret the given byte array as a big endian integer and perform a modular reduction.

source

fn from_le_bytes_reduced(bytes: ByteArray<UInt>) -> Self

Interpret the given byte array as a little endian integer and perform a modular reduction.

source

fn from_be_digest_reduced<D>(digest: D) -> Selfwhere D: FixedOutput<OutputSize = UInt::ByteSize>,

Interpret a digest as a big endian integer and perform a modular reduction.

source

fn from_le_digest_reduced<D>(digest: D) -> Selfwhere D: FixedOutput<OutputSize = UInt::ByteSize>,

Interpret a digest as a little endian integer and perform a modular reduction.

Implementors§

source§

impl<C, I> Reduce<I> for NonZeroScalar<C>where C: Curve + ScalarArithmetic, I: Integer + ArrayEncoding, Scalar<C>: ReduceNonZero<I>,

Note: implementation is the same as ReduceNonZero