crypto_common

Trait KeyIvInit

Source
pub trait KeyIvInit:
    KeySizeUser
    + IvSizeUser
    + Sized {
    // Required method
    fn new(key: &Key<Self>, iv: &Iv<Self>) -> Self;

    // Provided methods
    fn new_from_slices(key: &[u8], iv: &[u8]) -> Result<Self, InvalidLength> { ... }
    fn generate_key(rng: impl CryptoRng + RngCore) -> Key<Self> { ... }
    fn generate_iv(rng: impl CryptoRng + RngCore) -> Iv<Self> { ... }
    fn generate_key_iv(rng: impl CryptoRng + RngCore) -> (Key<Self>, Iv<Self>) { ... }
}
Expand description

Types which can be initialized from key and initialization vector (nonce).

Required Methods§

Source

fn new(key: &Key<Self>, iv: &Iv<Self>) -> Self

Create new value from fixed length key and nonce.

Provided Methods§

Source

fn new_from_slices(key: &[u8], iv: &[u8]) -> Result<Self, InvalidLength>

Create new value from variable length key and nonce.

Source

fn generate_key(rng: impl CryptoRng + RngCore) -> Key<Self>

Generate random key using the provided CryptoRng.

Source

fn generate_iv(rng: impl CryptoRng + RngCore) -> Iv<Self>

Generate random IV using the provided CryptoRng.

Source

fn generate_key_iv(rng: impl CryptoRng + RngCore) -> (Key<Self>, Iv<Self>)

Generate random key and nonce using the provided CryptoRng.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T> KeyIvInit for T
where T: InnerIvInit, T::Inner: KeyInit,