pub struct Strobe { /* private fields */ }Expand description
Strobe v1.0.2 duplex-sponge protocol framework.
All cryptographic state is zeroized on drop.
Implementations§
Source§impl Strobe
impl Strobe
Sourcepub fn new(proto: &[u8]) -> Self
pub fn new(proto: &[u8]) -> Self
Initialize a new Strobe instance for proto at 256-bit security.
Sourcepub fn operate(&mut self, meta: bool, flags: u8, data: &mut [u8], more: bool)
pub fn operate(&mut self, meta: bool, flags: u8, data: &mut [u8], more: bool)
General-purpose operation dispatcher (used by the test harness).
Routes to duplex_mut when the caller needs output (cafter, or cbefore
with FLAG_I set); falls back to duplex for absorb-only operations.
pub fn ad(&mut self, data: &[u8], meta: bool)
pub fn key(&mut self, data: &[u8])
pub fn prf(&mut self, data: &mut [u8])
pub fn send_clr(&mut self, data: &[u8], meta: bool)
pub fn recv_clr(&mut self, data: &[u8], meta: bool)
pub fn send_enc(&mut self, data: &mut [u8], meta: bool)
pub fn recv_enc(&mut self, data: &mut [u8], meta: bool)
pub fn send_mac(&mut self, data: &mut [u8], meta: bool)
Sourcepub fn recv_mac<const N: usize>(
&mut self,
data: &mut [u8; N],
meta: bool,
) -> Result<(), StrobeError>
pub fn recv_mac<const N: usize>( &mut self, data: &mut [u8; N], meta: bool, ) -> Result<(), StrobeError>
Verify a received MAC tag. Comparison is constant-time.
pub fn ratchet(&mut self, data: &[u8])
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Strobe
impl RefUnwindSafe for Strobe
impl Send for Strobe
impl Sync for Strobe
impl Unpin for Strobe
impl UnsafeUnpin for Strobe
impl UnwindSafe for Strobe
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