Skip to main content

KeyIvInit

Trait KeyIvInit 

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

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

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

Required Methods§

Source

fn new(key: &Array<u8, Self::KeySize>, iv: &Array<u8, Self::IvSize>) -> 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.

§Errors

Returns InvalidLength in the event that key and/or iv are not the expected length.

Source

fn generate_key<R>(rng: &mut R) -> Array<u8, Self::KeySize>
where R: CryptoRng,

👎Deprecated since 0.2.0: use the Generate trait impl on Key instead

DEPRECATED: generate random key using the provided CryptoRng.

Instead, you can now use the Generate trait directly with the Key type:

let key = Key::generate_from_rng(rng);
Source

fn generate_iv<R>(rng: &mut R) -> Array<u8, Self::IvSize>
where R: CryptoRng,

👎Deprecated since 0.2.0: use the Generate trait impl on Iv instead

DEPRECATED: generate random IV using the provided CryptoRng.

Instead, you can now use the Generate trait directly with the Iv type:

let iv = Iv::generate_from_rng(rng);
Source

fn generate_key_iv<R>( rng: &mut R, ) -> (Array<u8, Self::KeySize>, Array<u8, Self::IvSize>)
where R: CryptoRng,

👎Deprecated since 0.2.0: use the Generate trait impls on Key and Iv instead

DEPRECATED: generate random key and IV using the provided CryptoRng.

Instead, you can now use the Generate trait directly with the Key and Iv types:

let key = Key::generate_from_rng(rng);
let iv = Iv::generate_from_rng(rng);

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.

Implementations on Foreign Types§

Source§

impl<T> KeyIvInit for StreamCipherCoreWrapper<T>

Implementors§