pub trait KeyInit: KeySizeUser + Sized {
    // 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§

source

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

Create new value from fixed size key.

Provided Methods§

source

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

Create new value from variable size key.

source

fn generate_key( rng: impl CryptoRng + RngCore ) -> GenericArray<u8, Self::KeySize>

Generate random key using the provided CryptoRng.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl KeyInit for Aes128

source§

impl KeyInit for Aes128Dec

source§

impl KeyInit for Aes128Enc

source§

impl KeyInit for Aes192

source§

impl KeyInit for Aes192Dec

source§

impl KeyInit for Aes192Enc

source§

impl KeyInit for Aes256

source§

impl KeyInit for Aes256Dec

source§

impl KeyInit for Aes256Enc

source§

impl KeyInit for Poly1305

source§

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

Initialize Poly1305 with the given key

source§

impl<C, M, N> KeyInit for Ccm<C, M, N>

source§

fn new( key: &GenericArray<u8, <Ccm<C, M, N> as KeySizeUser>::KeySize> ) -> Ccm<C, M, N>

source§

impl<C, N> KeyInit for ChaChaPoly1305<C, N>
where N: ArrayLength<u8>,

source§

impl<D> KeyInit for HmacCore<D>

source§

impl<D> KeyInit for SimpleHmac<D>
where D: Digest + BlockSizeUser,

source§

impl<T> KeyInit for StreamCipherCoreWrapper<T>

Implementors§