Skip to main content

KeyInit

Trait KeyInit 

pub trait KeyInit: Sized + KeySizeUser {
    // Required method
    fn new(key: &Array<u8, Self::KeySize>) -> Self;

    // Provided methods
    fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength> { ... }
    fn generate_key<R>(rng: &mut R) -> Array<u8, Self::KeySize>
       where R: CryptoRng { ... }
}
Expand description

Types which can be initialized from a key.

Required Methods§

fn new(key: &Array<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.

§Errors

Returns [InvalidLength] in the event the length of the provided slice is not equal to <Self as KeySizeUser>::KeySize::USIZE.

fn generate_key<R>(rng: &mut R) -> Array<u8, Self::KeySize>
where R: CryptoRng,

👎Deprecated since 0.2.0:

use the Generate trait impl on Key instead

DEPRECATED: generate random key using the provided [CryptoRng].

Instead, you can now use the [Generate] trait directly with the Key type:

let key = Key::generate_from_rng(rng);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl KeyInit for Aes128

Source§

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

Source§

impl KeyInit for Aes192

Source§

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

Source§

impl KeyInit for Aes256

Source§

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

Source§

impl KeyInit for Aes128Dec

Source§

impl KeyInit for Aes128Enc

Source§

impl KeyInit for Aes192Dec

Source§

impl KeyInit for Aes192Enc

Source§

impl KeyInit for Aes256Dec

Source§

impl KeyInit for Aes256Enc

Source§

impl KeyInit for Polyval

Source§

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

Source§

impl<T> KeyInit for StreamCipherCoreWrapper<T>
where T: KeyInit + StreamCipherCore, <T as BlockSizeUser>::BlockSize: BlockSizes,

Implementors§

Source§

impl<Aes> KeyInit for AesGcmSiv<Aes>
where Aes: BlockSizeUser<BlockSize = U16> + BlockCipherEncrypt + KeyInit,

§

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