aes_gcm

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§

§

impl KeyInit for Aes128

§

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

§

impl KeyInit for Aes192

§

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

§

impl KeyInit for Aes256

§

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

§

impl KeyInit for Aes128Dec

§

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

§

impl KeyInit for Aes128Enc

§

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

§

impl KeyInit for Aes192Dec

§

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

§

impl KeyInit for Aes192Enc

§

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

§

impl KeyInit for Aes256Dec

§

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

§

impl KeyInit for Aes256Enc

§

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

§

impl KeyInit for GHash

§

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

§

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,

§

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

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,