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§
Sourcefn new(
key: &GenericArray<u8, Self::KeySize>,
iv: &GenericArray<u8, Self::IvSize>,
) -> Self
fn new( key: &GenericArray<u8, Self::KeySize>, iv: &GenericArray<u8, Self::IvSize>, ) -> Self
Create new value from fixed length key and nonce.
Provided Methods§
Sourcefn new_from_slices(key: &[u8], iv: &[u8]) -> Result<Self, InvalidLength>
fn new_from_slices(key: &[u8], iv: &[u8]) -> Result<Self, InvalidLength>
Create new value from variable length key and nonce.
Sourcefn generate_key(
rng: impl CryptoRng + RngCore,
) -> GenericArray<u8, Self::KeySize>
fn generate_key( rng: impl CryptoRng + RngCore, ) -> GenericArray<u8, Self::KeySize>
Generate random key using the provided CryptoRng.
Sourcefn generate_iv(rng: impl CryptoRng + RngCore) -> GenericArray<u8, Self::IvSize>
fn generate_iv(rng: impl CryptoRng + RngCore) -> GenericArray<u8, Self::IvSize>
Generate random IV using the provided CryptoRng.
Sourcefn generate_key_iv(
rng: impl CryptoRng + RngCore,
) -> (GenericArray<u8, Self::KeySize>, GenericArray<u8, Self::IvSize>)
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.