Trait crypto_common::KeyInit

source ·
pub trait KeyInit: KeySizeUser + Sized {
    // Required method
    fn new(key: &Key<Self>) -> Self;

    // Provided methods
    fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength> { ... }
    fn generate_key(rng: impl CryptoRng + RngCore) -> Key<Self> { ... }
}
Expand description

Types which can be initialized from key.

Required Methods§

source

fn new(key: &Key<Self>) -> 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) -> Key<Self>

Generate random key using the provided CryptoRng.

Object Safety§

This trait is not object safe.

Implementors§

source§

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

impl KeyInit for Aes128

impl KeyInit for Aes192

impl KeyInit for Aes256

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

impl<OutSize> KeyInit for Blake2bMac<OutSize>
where OutSize: ArrayLength<u8> + IsLessOrEqual<U64>, LeEq<OutSize, U64>: NonZero,

impl<OutSize> KeyInit for Blake2sMac<OutSize>
where OutSize: ArrayLength<u8> + IsLessOrEqual<U32>, LeEq<OutSize, U32>: NonZero,

impl KeyInit for GHash

impl KeyInit for Polyval