Skip to main content
This is unreleased documentation for the main (development) branch of crypto-glue.

Generate

Trait Generate 

Source
pub trait Generate: Sized {
    // Required method
    fn try_generate_from_rng<R>(
        rng: &mut R,
    ) -> Result<Self, <R as TryRng>::Error>
       where R: TryCryptoRng + ?Sized;

    // Provided methods
    fn generate_from_rng<R>(rng: &mut R) -> Self
       where R: CryptoRng + ?Sized { ... }
    fn try_generate() -> Result<Self, Error> { ... }
    fn generate() -> Self { ... }
}
Expand description

Secure random generation.

Required Methods§

Source

fn try_generate_from_rng<R>(rng: &mut R) -> Result<Self, <R as TryRng>::Error>
where R: TryCryptoRng + ?Sized,

Generate random key using the provided TryCryptoRng.

§Errors

Returns R::Error in the event the provided RNG R experiences an internal failure.

Provided Methods§

Source

fn generate_from_rng<R>(rng: &mut R) -> Self
where R: CryptoRng + ?Sized,

Generate random key using the provided CryptoRng.

Source

fn try_generate() -> Result<Self, Error>

Randomly generate a value of this type using the system’s ambient cryptographically secure random number generator.

§Errors

Returns getrandom::Error in the event the system’s ambient RNG experiences an internal failure.

Source

fn generate() -> Self

Randomly generate a value of this type using the system’s ambient cryptographically secure random number generator.

§Panics

This method will panic in the event the system’s ambient RNG experiences an internal failure.

This shouldn’t happen on most modern operating systems.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl Generate for Scalar

Source§

impl Generate for Scalar

Source§

impl Generate for Scalar

Source§

impl Generate for u32

Source§

impl Generate for u64

Source§

impl<C> Generate for AffinePoint<C>

Source§

impl<C> Generate for EphemeralSecret<C>
where C: CurveArithmetic,

Source§

impl<C> Generate for NonZeroScalar<C>
where C: CurveArithmetic,

Source§

impl<C> Generate for ProjectivePoint<C>

Source§

impl<C> Generate for ScalarValue<C>
where C: Curve,

Source§

impl<C> Generate for SecretKey<C>
where C: Curve,

Source§

impl<C> Generate for SigningKey<C>

Source§

impl<MOD, const LIMBS: usize> Generate for MontyFieldElement<MOD, LIMBS>
where MOD: MontyFieldParams<LIMBS>, Array<u8, <MOD as MontyFieldParams<LIMBS>>::ByteSize>: Copy, Uint<LIMBS>: ArrayEncoding,

Source§

fn try_generate_from_rng<R>( rng: &mut R, ) -> Result<MontyFieldElement<MOD, LIMBS>, <R as TryRng>::Error>
where R: TryCryptoRng + ?Sized,

Source§

impl<P> Generate for NonIdentity<P>

Source§

impl<U> Generate for Array<u8, U>
where U: ArraySize,

Source§

fn try_generate_from_rng<R>( rng: &mut R, ) -> Result<Array<u8, U>, <R as TryRng>::Error>
where R: TryCryptoRng + ?Sized,

Source§

impl<U> Generate for Array<u32, U>
where U: ArraySize,

Source§

fn try_generate_from_rng<R>( rng: &mut R, ) -> Result<Array<u32, U>, <R as TryRng>::Error>
where R: TryCryptoRng + ?Sized,

Source§

impl<U> Generate for Array<u64, U>
where U: ArraySize,

Source§

fn try_generate_from_rng<R>( rng: &mut R, ) -> Result<Array<u64, U>, <R as TryRng>::Error>
where R: TryCryptoRng + ?Sized,

Source§

impl<const N: usize> Generate for [u8; N]

Source§

fn try_generate_from_rng<R>( rng: &mut R, ) -> Result<[u8; N], <R as TryRng>::Error>
where R: TryCryptoRng + ?Sized,

Implementors§