Struct blake2b_simd::State
source · pub struct State { /* private fields */ }
Expand description
An incremental hasher for BLAKE2b.
To construct a State
with non-default parameters, see Params::to_state
.
§Example
use blake2b_simd::{State, blake2b};
let mut state = blake2b_simd::State::new();
state.update(b"foo");
assert_eq!(blake2b(b"foo"), state.finalize());
state.update(b"bar");
assert_eq!(blake2b(b"foobar"), state.finalize());
Implementations§
source§impl State
impl State
sourcepub fn update(&mut self, input: &[u8]) -> &mut Self
pub fn update(&mut self, input: &[u8]) -> &mut Self
Add input to the hash. You can call update
any number of times.
sourcepub fn finalize(&self) -> Hash
pub fn finalize(&self) -> Hash
Finalize the state and return a Hash
. This method is idempotent, and calling it multiple
times will give the same result. It’s also possible to update
with more input in between.
sourcepub fn set_last_node(&mut self, last_node: bool) -> &mut Self
pub fn set_last_node(&mut self, last_node: bool) -> &mut Self
Set a flag indicating that this is the last node of its level in a tree hash. This is
equivalent to Params::last_node
, except that it can be set at any time before calling
finalize
. That allows callers to begin hashing a node without knowing ahead of time
whether it’s the last in its level. For more details about the intended use of this flag
the BLAKE2 spec.
Trait Implementations§
source§impl Write for State
impl Write for State
source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Write a buffer into this writer, returning how many bytes were written. Read more
source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations§
impl Freeze for State
impl RefUnwindSafe for State
impl Send for State
impl Sync for State
impl Unpin for State
impl UnwindSafe for State
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)