StreamPoly1305

Struct StreamPoly1305 

Source
pub struct StreamPoly1305 { /* private fields */ }
Available on crate feature allow-non-fips only.
Expand description

Represents an ongoing streaming MAC computation, allowing incremental updates.

§Example

use wolf_crypto::{mac::{Poly1305, poly1305::Key}, aead::Tag};

let key: Key = [42u8; 32].into();
let tag = Poly1305::new(key.as_ref())
    .update(b"chunk1")?
    .update(b"chunk2")?
    .update(b"chunk3")?
    .finalize();

Implementations§

Source§

impl StreamPoly1305

Source

pub fn update(self, input: &[u8]) -> Result<Self, Self>

Updates the streaming MAC computation with additional input.

§Arguments
  • input - A byte slice representing the additional data to include.
§Errors

The length of the input was greater than u32::MAX.

§Example
use wolf_crypto::{mac::{Poly1305, poly1305::Key}, aead::Tag};

let key: Key = [42u8; 32].into();

let tag = Poly1305::new(key.as_ref())
    .update(b"chunk1")?
    .update(b"chunk2")?
    .update(b"chunk3")?
    .finalize();
Source

pub fn finalize(self) -> Tag

Finalizes the streaming MAC computation and returns the resulting Tag.

§Returns

The associated authentication Tag.

§Example
use wolf_crypto::{mac::{Poly1305, poly1305::Key}, aead::Tag};

let key: Key = [42u8; 32].into();

let tag = Poly1305::new(key.as_ref())
    .update(b"chunk1")?
    .update(b"chunk2")?
    .update(b"chunk3")?
    .finalize();
Source

pub fn finalize_no_padding(self) -> Tag

Finalizes the constant-time streaming MAC computation and returns the resulting Tag.

§Note

It is far more common in practice to use to pad the finalize method. This is only here for XSalsa20Poly1305.

§Returns

The associated authentication Tag representing all updates and the total length of the updates.

§Example
use wolf_crypto::{mac::{Poly1305, poly1305::Key}, aead::Tag};

let key: Key = [42u8; 32].into();
let tag = Poly1305::new(key.as_ref())
    .update(b"chunk1").unwrap()
    .update(b"chunk2").unwrap()
    .finalize_no_padding();

Trait Implementations§

Source§

impl Debug for StreamPoly1305

Source§

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

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

impl From<StreamPoly1305> for Unspecified

Source§

fn from(value: StreamPoly1305) -> Self

Converts to this type from the input type.

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.