PRP

Trait PRP 

Source
pub trait PRP: BlockSizeUser {
    // Required methods
    fn forward(&self, data: &mut Block<Self>);
    fn inverse(&self, data: &mut Block<Self>);
}
Expand description

Pseudo-random permutation (PRP)

Required Methods§

Source

fn forward(&self, data: &mut Block<Self>)

Forward permutation

Source

fn inverse(&self, data: &mut Block<Self>)

Inverse permutation

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.

Implementors§

Source§

impl<H: Digest + KeyInit, S: StreamCipher + KeyIvInit, B> PRP for Lioness<H, S, B>
where H::OutputSize: IsEqual<<S as KeySizeUser>::KeySize, Output = B1> + Mul<U4>, H::KeySize: IsEqual<S::KeySize, Output = B1>, B: IsGreater<<S as KeySizeUser>::KeySize, Output = B1> + Sub<<S as KeySizeUser>::KeySize> + ArrayLength<u8>, <B as Sub<<S as KeySizeUser>::KeySize>>::Output: ArrayLength<u8>, <S as IvSizeUser>::IvSize: Mul<U2>, <H::OutputSize as Mul<U4>>::Output: ArrayLength<u8>, <<S as IvSizeUser>::IvSize as Mul<U2>>::Output: ArrayLength<u8>,