Skip to main content

KeyIvInit

Trait KeyIvInit 

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

    // Provided method
    fn new_from_slices(key: &[u8], iv: &[u8]) -> Result<Self, InvalidLength> { ... }
}
Expand description

Types which can be initialized from a key and initialization vector (nonce).

Required Methods§

fn new(key: &Array<u8, Self::KeySize>, iv: &Array<u8, Self::IvSize>) -> Self

Create new value from fixed length key and nonce.

Provided Methods§

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

Create new value from variable length key and nonce.

§Errors

Returns [InvalidLength] in the event that key and/or iv are not the expected length.

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<T> KeyIvInit for StreamCipherCoreWrapper<T>
where T: KeyIvInit + StreamCipherCore, <T as BlockSizeUser>::BlockSize: BlockSizes,

Source§

fn new( key: &Array<u8, <StreamCipherCoreWrapper<T> as KeySizeUser>::KeySize>, iv: &Array<u8, <StreamCipherCoreWrapper<T> as IvSizeUser>::IvSize>, ) -> StreamCipherCoreWrapper<T>

Implementors§

Source§

impl<R: Rounds> KeyIvInit for ChaChaCore<R, Ietf>

§

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