pub struct OnetimeAuth { /* private fields */ }Expand description
One-time authentication implementation based on Poly1305, compatible with
libsodium’s crypto_onetimeauth_* functions.
Implementations§
Source§impl OnetimeAuth
impl OnetimeAuth
Sourcepub fn compute<Key: ByteArray<CRYPTO_ONETIMEAUTH_KEYBYTES>, Input: Bytes, Output: NewByteArray<CRYPTO_ONETIMEAUTH_BYTES>>(
key: Key,
input: &Input,
) -> Output
pub fn compute<Key: ByteArray<CRYPTO_ONETIMEAUTH_KEYBYTES>, Input: Bytes, Output: NewByteArray<CRYPTO_ONETIMEAUTH_BYTES>>( key: Key, input: &Input, ) -> Output
Computes the message authentication code for input using key.
The key must not be used to authenticate any other message. It may be retained to verify the authentication code for this same message.
Sourcepub fn compute_to_vec<Key: ByteArray<CRYPTO_ONETIMEAUTH_KEYBYTES>, Input: Bytes>(
key: Key,
input: &Input,
) -> Vec<u8> ⓘ
pub fn compute_to_vec<Key: ByteArray<CRYPTO_ONETIMEAUTH_KEYBYTES>, Input: Bytes>( key: Key, input: &Input, ) -> Vec<u8> ⓘ
Computes the message authentication code and returns it as a Vec.
This is a convenience wrapper around OnetimeAuth::compute.
Sourcepub fn compute_and_verify<OtherMac: ByteArray<CRYPTO_ONETIMEAUTH_BYTES>, Key: ByteArray<CRYPTO_ONETIMEAUTH_KEYBYTES>, Input: Bytes>(
other_mac: &OtherMac,
key: Key,
input: &Input,
) -> Result<(), Error>
pub fn compute_and_verify<OtherMac: ByteArray<CRYPTO_ONETIMEAUTH_BYTES>, Key: ByteArray<CRYPTO_ONETIMEAUTH_KEYBYTES>, Input: Bytes>( other_mac: &OtherMac, key: Key, input: &Input, ) -> Result<(), Error>
Verifies that other_mac authenticates input under key.
§Errors
Returns an error if other_mac does not match the authentication code
computed from key and input.
Sourcepub fn new<Key: ByteArray<CRYPTO_ONETIMEAUTH_KEYBYTES>>(key: Key) -> Self
pub fn new<Key: ByteArray<CRYPTO_ONETIMEAUTH_KEYBYTES>>(key: Key) -> Self
Returns a new incremental one-time authenticator for key.
The key must not be used to authenticate any other message. It may be retained to verify the authentication code for this same message.
Sourcepub fn update<Input: Bytes>(&mut self, input: &Input)
pub fn update<Input: Bytes>(&mut self, input: &Input)
Updates the one-time authenticator at self with input.
Sourcepub fn finalize<Output: NewByteArray<CRYPTO_ONETIMEAUTH_BYTES>>(self) -> Output
pub fn finalize<Output: NewByteArray<CRYPTO_ONETIMEAUTH_BYTES>>(self) -> Output
Finalizes this one-time authenticator, returning the message authentication code.
Sourcepub fn finalize_to_vec(self) -> Vec<u8> ⓘ
pub fn finalize_to_vec(self) -> Vec<u8> ⓘ
Finalizes this one-time authenticator, returning the message
authentication code as a Vec. Convenience wrapper around
OnetimeAuth::finalize.
Sourcepub fn verify<OtherMac: ByteArray<CRYPTO_ONETIMEAUTH_BYTES>>(
self,
other_mac: &OtherMac,
) -> Result<(), Error>
pub fn verify<OtherMac: ByteArray<CRYPTO_ONETIMEAUTH_BYTES>>( self, other_mac: &OtherMac, ) -> Result<(), Error>
Finalizes this authenticator, and verifies that the computed code
matches other_mac using a constant-time comparison.
§Errors
Returns an error if other_mac does not match the authentication code
computed from the data passed to OnetimeAuth::update.