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 weak_key_test(
        _key: &Array<u8, Self::KeySize>,
    ) -> Result<(), WeakKeyError> { ... }
    fn new_checked(
        key: &Array<u8, Self::KeySize>,
        iv: &Array<u8, Self::IvSize>,
    ) -> Result<Self, WeakKeyError> { ... }
    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 weak_key_test(_key: &Array<u8, Self::KeySize>) -> Result<(), WeakKeyError>

Check if the key might be considered weak.

Source

fn new_checked( key: &Array<u8, Self::KeySize>, iv: &Array<u8, Self::IvSize>, ) -> Result<Self, WeakKeyError>

Create new value from fixed length key and nonce after checking the key for weakness.

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<R>(rng: &mut R) -> Array<u8, Self::KeySize>
where R: CryptoRng,

👎Deprecated since 0.2.0: use the Generate trait impl on Key instead
Available on crate feature rand_core only.

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
Available on crate feature rand_core only.

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
Available on crate feature rand_core only.

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.

Implementors§

Source§

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

Source§

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

Available on crate feature stream-wrapper only.