pub struct Sha3HasherCore<Rate, OutputSize, const PAD: u8, const ROUNDS: usize = F1600_ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,{ /* private fields */ }Expand description
Core Sha3 fixed output hasher state.
Trait Implementations§
Source§impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> AlgorithmName for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> AlgorithmName for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
Source§impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> BlockSizeUser for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> BlockSizeUser for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
Source§impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> BufferKindUser for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> BufferKindUser for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
Source§type BufferKind = Eager
type BufferKind = Eager
Block buffer kind over which type operates.
Source§impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Clone for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True> + Clone,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True> + Clone,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Clone for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True> + Clone,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True> + Clone,
Source§fn clone(&self) -> Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>
fn clone(&self) -> Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Debug for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Debug for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
Source§impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Default for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Default for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
Source§impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Drop for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Drop for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
Source§impl<Rate, const PAD: u8, const ROUNDS: usize> ExtendableOutputCore for Sha3HasherCore<Rate, U0, PAD, ROUNDS>
impl<Rate, const PAD: u8, const ROUNDS: usize> ExtendableOutputCore for Sha3HasherCore<Rate, U0, PAD, ROUNDS>
Source§type ReaderCore = Sha3ReaderCore<Rate, ROUNDS>
type ReaderCore = Sha3ReaderCore<Rate, ROUNDS>
XOF reader core state.
Source§fn finalize_xof_core(&mut self, buffer: &mut Buffer<Self>) -> Self::ReaderCore
fn finalize_xof_core(&mut self, buffer: &mut Buffer<Self>) -> Self::ReaderCore
Retrieve XOF reader using remaining data stored in the block buffer
and leave hasher in a dirty state.
Source§impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> FixedOutputCore for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> FixedOutputCore for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
Source§fn finalize_fixed_core(
&mut self,
buffer: &mut Buffer<Self>,
out: &mut Output<Self>,
)
fn finalize_fixed_core( &mut self, buffer: &mut Buffer<Self>, out: &mut Output<Self>, )
Finalize state using remaining data stored in the provided block buffer,
write result into provided array and leave
self in a dirty state.Source§impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> OutputSizeUser for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> OutputSizeUser for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
Source§type OutputSize = OutputSize
type OutputSize = OutputSize
Size of the output in bytes.
Source§fn output_size() -> usize
fn output_size() -> usize
Return output size in bytes.
Source§impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Reset for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Reset for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
Source§impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> SerializableState for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> SerializableState for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
Source§type SerializedStateSize = UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>, B0>, B0>, B0>
type SerializedStateSize = UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>, B0>, B0>, B0>
Size of serialized internal state.
Source§fn serialize(&self) -> SerializedState<Self>
fn serialize(&self) -> SerializedState<Self>
Serialize and return internal state.
Source§fn deserialize(
serialized_state: &SerializedState<Self>,
) -> Result<Self, DeserializeStateError>
fn deserialize( serialized_state: &SerializedState<Self>, ) -> Result<Self, DeserializeStateError>
Create an object from serialized internal state. Read more
Source§impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> UpdateCore for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> UpdateCore for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
Source§fn update_blocks(&mut self, blocks: &[Block<Self>])
fn update_blocks(&mut self, blocks: &[Block<Self>])
Update state using the provided data blocks.
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> HashMarker for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
Auto Trait Implementations§
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Freeze for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> RefUnwindSafe for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: RefUnwindSafe,
OutputSize: RefUnwindSafe,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Send for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Sync for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Unpin for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> UnsafeUnpin for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> UnwindSafe for Sha3HasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: UnwindSafe,
OutputSize: UnwindSafe,
Blanket Implementations§
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<T> SmallBlockSizeUser for T
impl<T> SmallBlockSizeUser for T
Source§type _BlockSize = <T as BlockSizeUser>::BlockSize
type _BlockSize = <T as BlockSizeUser>::BlockSize
Helper associated type equal to
<Self as BlockSizeUser>::BlockSize.