Trait hmac::Mac [−][src]
pub trait Mac { type OutputSize: ArrayLength<u8>; type KeySize: ArrayLength<u8>; fn new(key: &GenericArray<u8, Self::KeySize>) -> Self; fn input(&mut self, data: &[u8]); fn result(&mut self) -> MacResult<Self::OutputSize>; fn new_varkey(key: &[u8]) -> Result<Self, InvalidKeyLength> { ... } fn verify(&mut self, code: &[u8]) -> Result<(), MacError> { ... } }
The Mac
trait defines methods for a Message Authentication algorithm.
Associated Types
type OutputSize: ArrayLength<u8>
type KeySize: ArrayLength<u8>
Required Methods
fn new(key: &GenericArray<u8, Self::KeySize>) -> Self
Create new MAC instance from key with fixed size.
fn input(&mut self, data: &[u8])
Process input data.
fn result(&mut self) -> MacResult<Self::OutputSize>
Obtain the result of a Mac
computation as a MacResult
and reset
Mac
instance.
Provided Methods
fn new_varkey(key: &[u8]) -> Result<Self, InvalidKeyLength>
Create new MAC instance from key with variable size.
Default implementation will accept only keys with length equal to
KeySize
, but some MACs can accept range of key lengths.
fn verify(&mut self, code: &[u8]) -> Result<(), MacError>
Check if code is correct for the processed input and reset
Mac
instance.
Implementors
impl<D> Mac for Hmac<D> where
D: Input + BlockInput + FixedOutput + Default + Clone,
D::BlockSize: ArrayLength<u8>,
D::OutputSize: ArrayLength<u8>, type OutputSize = D::OutputSize; type KeySize = D::BlockSize;