fn_dsa

Struct SHAKE

Source
pub struct SHAKE<const SZ: usize> { /* private fields */ }
Expand description

SHAKE implementation.

The type parameter SZ must be either 128 or 256, for SHAKE128 and SHAKE256, respectively. An instance is, at any time, in “initial” or “flipped” state. The instance is created in input mode, and goes to output mode when flip() is called. In input mode, data can be injected with the inject() method. In output mode, data can be extracted with the extract() method. The reset() method sets back the instance to its starting state (input mode, and empty).

Instances are cloneable, which captures the current engine state.

Implementations§

Source§

impl<const SZ: usize> SHAKE<SZ>

Source

pub fn new() -> SHAKE<SZ>

Create a new instance.

Source

pub fn inject(&mut self, src: &[u8])

Inject some bytes into the engine.

This function can be called repeatedly. If the engine is in output mode, then a panic is triggered.

Source

pub fn flip(&mut self)

Flip the engine from input to output mode.

If the engine is already in output mode, then a panic is triggered.

Source

pub fn extract(&mut self, dst: &mut [u8])

Extract some bytes from the engine.

This function can be called repeatedly. If the engine is in input mode, then a panic is triggered.

Source

pub fn reset(&mut self)

Reset this engine to the initial state (empty, input mode).

Trait Implementations§

Source§

impl<const SZ: usize> Clone for SHAKE<SZ>

Source§

fn clone(&self) -> SHAKE<SZ>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<const SZ: usize> Debug for SHAKE<SZ>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<const SZ: usize> Copy for SHAKE<SZ>

Auto Trait Implementations§

§

impl<const SZ: usize> Freeze for SHAKE<SZ>

§

impl<const SZ: usize> RefUnwindSafe for SHAKE<SZ>

§

impl<const SZ: usize> Send for SHAKE<SZ>

§

impl<const SZ: usize> Sync for SHAKE<SZ>

§

impl<const SZ: usize> Unpin for SHAKE<SZ>

§

impl<const SZ: usize> UnwindSafe for SHAKE<SZ>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.