pub struct Symmetric<I, T>(/* private fields */);Expand description
SymmetricNetwork wrapper around an IntoIterator.
Implementations§
Source§impl<I, T: BitXor<Output = T>> Symmetric<I, T>
impl<I, T: BitXor<Output = T>> Symmetric<I, T>
Sourcepub fn new(rounds: I) -> Self
pub fn new(rounds: I) -> Self
Make a SymmetricNetwork out of an IntoIterator.
Trait Implementations§
Source§impl<I: IntoIterator, T> IntoIterator for Symmetric<I, T>
impl<I: IntoIterator, T> IntoIterator for Symmetric<I, T>
Source§impl<T: BitXor<Output = T>, I: IntoIterator<Item: Round<T, L = T>, IntoIter: DoubleEndedIterator>> SymmetricNetwork for Symmetric<I, T>
impl<T: BitXor<Output = T>, I: IntoIterator<Item: Round<T, L = T>, IntoIter: DoubleEndedIterator>> SymmetricNetwork for Symmetric<I, T>
impl<I: Copy, T> Copy for Symmetric<I, T>
Auto Trait Implementations§
impl<I, T> Freeze for Symmetric<I, T>where
I: Freeze,
impl<I, T> RefUnwindSafe for Symmetric<I, T>where
I: RefUnwindSafe,
T: RefUnwindSafe,
impl<I, T> Send for Symmetric<I, T>
impl<I, T> Sync for Symmetric<I, T>
impl<I, T> Unpin for Symmetric<I, T>
impl<I, T> UnwindSafe for Symmetric<I, T>where
I: UnwindSafe,
T: UnwindSafe,
Blanket Implementations§
Source§impl<T, L, R, I> ArrayNetwork for Iwhere
L: ArrayLength + Add<R>,
<L as Add<R>>::Output: ArrayLength + Sub<L, Output = R, Output = L> + Sub<R>,
R: ArrayLength + Add<L, Output = <L as Add<R>>::Output>,
T: BitXor,
I: Network<L = XorArray<T, L>, R = XorArray<T, R>>,
impl<T, L, R, I> ArrayNetwork for Iwhere
L: ArrayLength + Add<R>,
<L as Add<R>>::Output: ArrayLength + Sub<L, Output = R, Output = L> + Sub<R>,
R: ArrayLength + Add<L, Output = <L as Add<R>>::Output>,
T: BitXor,
I: Network<L = XorArray<T, L>, R = XorArray<T, R>>,
Source§fn array_encrypt(
self,
block: GenericArray<<Self as ArrayNetwork>::T, Sum<<Self as ArrayNetwork>::LN, <Self as ArrayNetwork>::RN>>,
) -> GenericArray<<Self as ArrayNetwork>::T, Sum<<Self as ArrayNetwork>::LN, <Self as ArrayNetwork>::RN>>
fn array_encrypt( self, block: GenericArray<<Self as ArrayNetwork>::T, Sum<<Self as ArrayNetwork>::LN, <Self as ArrayNetwork>::RN>>, ) -> GenericArray<<Self as ArrayNetwork>::T, Sum<<Self as ArrayNetwork>::LN, <Self as ArrayNetwork>::RN>>
Encrypt an array.
Source§fn array_decrypt(
self,
block: GenericArray<<Self as ArrayNetwork>::T, Sum<<Self as ArrayNetwork>::LN, <Self as ArrayNetwork>::RN>>,
) -> GenericArray<<Self as ArrayNetwork>::T, Sum<<Self as ArrayNetwork>::LN, <Self as ArrayNetwork>::RN>>
fn array_decrypt( self, block: GenericArray<<Self as ArrayNetwork>::T, Sum<<Self as ArrayNetwork>::LN, <Self as ArrayNetwork>::RN>>, ) -> GenericArray<<Self as ArrayNetwork>::T, Sum<<Self as ArrayNetwork>::LN, <Self as ArrayNetwork>::RN>>
Decrypt an array.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<I> Network for Iwhere
I: SymmetricNetwork,
impl<I> Network for Iwhere
I: SymmetricNetwork,
Source§type L = <I as SymmetricNetwork>::T
type L = <I as SymmetricNetwork>::T
The left half of a block.
Source§type R = <I as SymmetricNetwork>::T
type R = <I as SymmetricNetwork>::T
The right half of a block.
Source§fn forward(
block: (<I as Network>::R, <I as Network>::L),
) -> (<I as Network>::L, <I as Network>::R)
fn forward( block: (<I as Network>::R, <I as Network>::L), ) -> (<I as Network>::L, <I as Network>::R)
Rearrange halves coming from hashing and xoring the previous block into the next block. Read more
Source§fn backward(
block: (<I as Network>::L, <I as Network>::R),
) -> (<I as Network>::L, <I as Network>::R)
fn backward( block: (<I as Network>::L, <I as Network>::R), ) -> (<I as Network>::L, <I as Network>::R)
Inverse of
Network::forward.