Skip to main content

HmacVariant

Trait HmacVariant 

Source
pub trait HmacVariant<const KEY_LENGTH: usize, const MAC_LENGTH: usize> {
    type State;
    type Mac: NewByteArray<MAC_LENGTH> + Zeroize;

    // Required methods
    fn compute(mac: &mut [u8; MAC_LENGTH], input: &[u8], key: &[u8; KEY_LENGTH]);
    fn verify(
        mac: &[u8; MAC_LENGTH],
        input: &[u8],
        key: &[u8; KEY_LENGTH],
    ) -> Result<(), Error>;
    fn init(key: &[u8; KEY_LENGTH]) -> Self::State;
    fn update(state: &mut Self::State, input: &[u8]);
    fn finalize(state: Self::State, mac: &mut [u8; MAC_LENGTH]);
}
Expand description

HMAC algorithm variant used by Hmac.

Required Associated Types§

Source

type State

Incremental state for this HMAC variant.

Source

type Mac: NewByteArray<MAC_LENGTH> + Zeroize

Default stack-allocated MAC type used by verification.

Required Methods§

Source

fn compute(mac: &mut [u8; MAC_LENGTH], input: &[u8], key: &[u8; KEY_LENGTH])

Computes a MAC in one shot.

Source

fn verify( mac: &[u8; MAC_LENGTH], input: &[u8], key: &[u8; KEY_LENGTH], ) -> Result<(), Error>

Verifies a MAC in one shot.

§Errors

Returns an error if mac does not authenticate input under key.

Source

fn init(key: &[u8; KEY_LENGTH]) -> Self::State

Initializes incremental authentication.

Source

fn update(state: &mut Self::State, input: &[u8])

Updates incremental authentication.

Source

fn finalize(state: Self::State, mac: &mut [u8; MAC_LENGTH])

Finalizes incremental authentication.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl HmacVariant<CRYPTO_AUTH_HMACSHA256_KEYBYTES, CRYPTO_AUTH_HMACSHA256_BYTES> for HmacSha256Variant

Source§

type Mac = StackByteArray<CRYPTO_AUTH_HMACSHA256_BYTES>

Source§

type State = HmacSha256State

Source§

impl HmacVariant<CRYPTO_AUTH_HMACSHA512_KEYBYTES, CRYPTO_AUTH_HMACSHA512_BYTES> for HmacSha512Variant

Source§

type Mac = StackByteArray<CRYPTO_AUTH_HMACSHA512_BYTES>

Source§

type State = HmacSha512State

Source§

impl HmacVariant<CRYPTO_AUTH_HMACSHA512256_KEYBYTES, CRYPTO_AUTH_HMACSHA512256_BYTES> for HmacSha512256Variant

Source§

type Mac = StackByteArray<CRYPTO_AUTH_HMACSHA512256_BYTES>

Source§

type State = HmacSha512State