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.