KeyInit

Trait KeyInit 

Source
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§

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.

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 GHash

Source§

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

Initialize GHASH with the given H field element

Source§

impl KeyInit for Mkv128128

Source§

impl KeyInit for Mkv128192

Source§

impl KeyInit for Mkv128256

Source§

impl KeyInit for Polyval

Source§

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>

Implementors§

Source§

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

Source§

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