KeyInit

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.

Implementations on Foreign Types§

Source§

impl KeyInit for Aes128

Source§

fn new(key: &GenericArray<u8, <Aes128 as KeySizeUser>::KeySize>) -> Aes128

Source§

impl KeyInit for Aes128Dec

Source§

fn new(key: &GenericArray<u8, <Aes128Dec as KeySizeUser>::KeySize>) -> Aes128Dec

Source§

impl KeyInit for Aes128Enc

Source§

fn new(key: &GenericArray<u8, <Aes128Enc as KeySizeUser>::KeySize>) -> Aes128Enc

Source§

impl KeyInit for Aes192

Source§

fn new(key: &GenericArray<u8, <Aes192 as KeySizeUser>::KeySize>) -> Aes192

Source§

impl KeyInit for Aes192Dec

Source§

fn new(key: &GenericArray<u8, <Aes192Dec as KeySizeUser>::KeySize>) -> Aes192Dec

Source§

impl KeyInit for Aes192Enc

Source§

fn new(key: &GenericArray<u8, <Aes192Enc as KeySizeUser>::KeySize>) -> Aes192Enc

Source§

impl KeyInit for Aes256

Source§

fn new(key: &GenericArray<u8, <Aes256 as KeySizeUser>::KeySize>) -> Aes256

Source§

impl KeyInit for Aes256Dec

Source§

fn new(key: &GenericArray<u8, <Aes256Dec as KeySizeUser>::KeySize>) -> Aes256Dec

Source§

impl KeyInit for Aes256Enc

Source§

fn new(key: &GenericArray<u8, <Aes256Enc as KeySizeUser>::KeySize>) -> Aes256Enc

Source§

impl KeyInit for GHash

Source§

fn new(h: &GenericArray<u8, <GHash as KeySizeUser>::KeySize>) -> GHash

Initialize GHASH with the given H field element

§

impl KeyInit for Polyval

§

fn new(h: &GenericArray<u8, <Polyval as KeySizeUser>::KeySize>) -> Polyval

Initialize POLYVAL with the given H field element

Source§

impl<T> KeyInit for StreamCipherCoreWrapper<T>
where T: KeyInit + BlockSizeUser, <T as BlockSizeUser>::BlockSize: IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>, <<T as BlockSizeUser>::BlockSize as IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>>::Output: NonZero,

Implementors§

Source§

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

§

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