//! The interfaces for HMAC.
usecrate::{crypto::Result, jwa};/// The common operations for an HMAC key.
pub(crate)traitKey: Sized {/// The signature type that is produced by this key.
typeSignature:AsRef<[u8]>;/// Creates a new key from the given data.
fnnew(variant:jwa::Hmac, key:&[u8])->Result<Self>;/// Signs the given data using this key.
////// This operation **must** be re-usable, meaning this method can be
/// called multiple times with different data to sign.
fnsign(&mutself, data:&[u8])->Result<Self::Signature>;}