pub trait KeyInit: Sized + KeySizeUser {
// Required method
fn new(key: &GenericArray<u8, Self::KeySize>) -> Self;
// Provided methods
fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength> { ... }
fn generate_key(
rng: impl CryptoRng + RngCore,
) -> GenericArray<u8, Self::KeySize> { ... }
}
Expand description
Types which can be initialized from key.
Required Methods§
Sourcefn new(key: &GenericArray<u8, Self::KeySize>) -> Self
fn new(key: &GenericArray<u8, Self::KeySize>) -> Self
Create new value from fixed size key.
Provided Methods§
Sourcefn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength>
fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength>
Create new value from variable size key.
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
.
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 KeyInit for Aes128
impl KeyInit for Aes128
fn new(key: &GenericArray<u8, <Aes128 as KeySizeUser>::KeySize>) -> Aes128
Source§impl KeyInit for Aes128Dec
impl KeyInit for Aes128Dec
fn new(key: &GenericArray<u8, <Aes128Dec as KeySizeUser>::KeySize>) -> Aes128Dec
Source§impl KeyInit for Aes128Enc
impl KeyInit for Aes128Enc
fn new(key: &GenericArray<u8, <Aes128Enc as KeySizeUser>::KeySize>) -> Aes128Enc
Source§impl KeyInit for Aes192
impl KeyInit for Aes192
fn new(key: &GenericArray<u8, <Aes192 as KeySizeUser>::KeySize>) -> Aes192
Source§impl KeyInit for Aes192Dec
impl KeyInit for Aes192Dec
fn new(key: &GenericArray<u8, <Aes192Dec as KeySizeUser>::KeySize>) -> Aes192Dec
Source§impl KeyInit for Aes192Enc
impl KeyInit for Aes192Enc
fn new(key: &GenericArray<u8, <Aes192Enc as KeySizeUser>::KeySize>) -> Aes192Enc
Source§impl KeyInit for Aes256
impl KeyInit for Aes256
fn new(key: &GenericArray<u8, <Aes256 as KeySizeUser>::KeySize>) -> Aes256
Source§impl KeyInit for Aes256Dec
impl KeyInit for Aes256Dec
fn new(key: &GenericArray<u8, <Aes256Dec as KeySizeUser>::KeySize>) -> Aes256Dec
Source§impl KeyInit for Aes256Enc
impl KeyInit for Aes256Enc
fn new(key: &GenericArray<u8, <Aes256Enc as KeySizeUser>::KeySize>) -> Aes256Enc
Source§impl KeyInit for GHash
impl KeyInit for GHash
Source§fn new(h: &GenericArray<u8, <GHash as KeySizeUser>::KeySize>) -> GHash
fn new(h: &GenericArray<u8, <GHash as KeySizeUser>::KeySize>) -> GHash
Initialize GHASH with the given H
field element
Source§impl KeyInit for Polyval
impl KeyInit for Polyval
Source§fn new(h: &GenericArray<u8, <Polyval as KeySizeUser>::KeySize>) -> Polyval
fn new(h: &GenericArray<u8, <Polyval as KeySizeUser>::KeySize>) -> Polyval
Initialize POLYVAL with the given H
field element