cipher

Trait KeyIvInit

pub trait KeyIvInit:
    Sized
    + KeySizeUser
    + IvSizeUser {
    // Required method
    fn new(
        key: &GenericArray<u8, Self::KeySize>,
        iv: &GenericArray<u8, Self::IvSize>,
    ) -> Self;

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

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

Required Methods§

fn new( key: &GenericArray<u8, Self::KeySize>, iv: &GenericArray<u8, Self::IvSize>, ) -> Self

Create new value from fixed length key and nonce.

Provided Methods§

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

Create new value from variable length key and nonce.

fn generate_key( rng: impl CryptoRng + RngCore, ) -> GenericArray<u8, Self::KeySize>

Generate random key using the provided CryptoRng.

fn generate_iv(rng: impl CryptoRng + RngCore) -> GenericArray<u8, Self::IvSize>

Generate random IV using the provided CryptoRng.

fn generate_key_iv( rng: impl CryptoRng + RngCore, ) -> (GenericArray<u8, Self::KeySize>, GenericArray<u8, Self::IvSize>)

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§

§

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

Source§

impl<T: KeyIvInit + BlockSizeUser> KeyIvInit for StreamCipherCoreWrapper<T>