Trait KeyInit

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§

fn new(key: &GenericArray<u8, Self::KeySize>) -> Self

Create new value from fixed size key.

Provided Methods§

fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength>

Create new value from variable size key.

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.

Implementors§

§

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

Source§

impl<T: KeyInit + BlockSizeUser> KeyInit for StreamCipherCoreWrapper<T>

impl KeyInit for Aes128

impl KeyInit for Aes128Dec

impl KeyInit for Aes128Enc

impl KeyInit for Aes192

impl KeyInit for Aes192Dec

impl KeyInit for Aes192Enc

impl KeyInit for Aes256

impl KeyInit for Aes256Dec

impl KeyInit for Aes256Enc

impl<Aes, NonceSize, TagSize> KeyInit for AesGcm<Aes, NonceSize, TagSize>
where Aes: BlockSizeUser<BlockSize = U16> + BlockEncrypt + KeyInit, TagSize: TagSize,

impl<Aes> KeyInit for AesGcmSiv<Aes>
where Aes: BlockCipher<BlockSize = U16> + BlockEncrypt + KeyInit,

impl KeyInit for GHash

impl KeyInit for Polyval