pub struct SpongeHasherCore<Rate, OutputSize, const PAD: u8, const ROUNDS: usize = DEFAULT_ROUND_COUNT>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,{ /* private fields */ }Expand description
Sponge (Keccak-p) hasher core: rate, output width, padding nibble, round count.
Trait Implementations§
Source§impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> AlgorithmName for SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True> + Clone,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True> + Clone,
Source§fn clone(&self) -> SpongeHasherCore<Rate, OutputSize, PAD, ROUNDS>
fn clone(&self) -> SpongeHasherCore<Rate, OutputSize, PAD, ROUNDS>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<Rate, U0, PAD, ROUNDS>
impl<Rate, const PAD: u8, const ROUNDS: usize> ExtendableOutputCore for SpongeHasherCore<Rate, U0, PAD, ROUNDS>
Source§type ReaderCore = SpongeReaderCore<Rate, ROUNDS>
type ReaderCore = SpongeReaderCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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 SpongeHasherCore<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> ZeroizeOnDrop for SpongeHasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: BlockSizes + IsLessOrEqual<U200, Output = True>,
OutputSize: ArraySize + IsLessOrEqual<U200, Output = True>,
Available on crate feature
zeroize only.Auto Trait Implementations§
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Freeze for SpongeHasherCore<Rate, OutputSize, PAD, ROUNDS>
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> RefUnwindSafe for SpongeHasherCore<Rate, OutputSize, PAD, ROUNDS>where
Rate: RefUnwindSafe,
OutputSize: RefUnwindSafe,
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Send for SpongeHasherCore<Rate, OutputSize, PAD, ROUNDS>
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Sync for SpongeHasherCore<Rate, OutputSize, PAD, ROUNDS>
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> Unpin for SpongeHasherCore<Rate, OutputSize, PAD, ROUNDS>
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> UnsafeUnpin for SpongeHasherCore<Rate, OutputSize, PAD, ROUNDS>
impl<Rate, OutputSize, const PAD: u8, const ROUNDS: usize> UnwindSafe for SpongeHasherCore<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.