Skip to main content

Shake256

Struct Shake256 

Source
pub struct Shake256 { /* private fields */ }
Expand description

Incremental SHAKE256 context for multi-part absorb and squeeze.

This is the primary hash interface used by the SLH-DSA hash wrappers in super::hash. Data is absorbed in parts via absorb, then the final output is obtained via finalize (which consumes the context) or squeeze (which allows multiple squeeze calls).

Implementations§

Source§

impl Shake256

Source

pub fn new() -> Self

Create a new SHAKE256 context ready for absorbing.

Source

pub fn absorb(&mut self, data: &[u8])

Absorb input data. Can be called multiple times before squeezing.

Source

pub fn squeeze(&mut self, out: &mut [u8])

Squeeze output bytes. Can be called multiple times for streaming output.

Source

pub fn finalize(self, out_len: usize) -> Vec<u8>

Finalize and return exactly out_len bytes of output, consuming the context.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.