crypto::hmac
The hmac module computes the HMAC message authentication code algorithm defined
by RFC 2104.
This is a low-level module which implements cryptographic primitives. Direct use
of cryptographic primitives is not recommended for non-experts, as incorrect use
of these primitives can easily lead to the introduction of security
vulnerabilities. Non-experts are advised to use the high-level operations
available in the top-level crypto module.
Be advised that Hare's cryptography implementations have not been audited.
Index
Types
type sha1state;
type sha256state;
type state;
Functions
fn hmac(*hash::hash, const []u8, []u8) state;
fn sha1([]u8) sha1state;
fn sha256([]u8) sha256state;
Types
type sha1state
Show undocumented member
type sha1state = struct {
mac::mac,
h: sha1::state,
keypad: [sha1::BLOCKSIZE]u8,
};
type sha256state
Show undocumented member
type sha256state = struct {
mac::mac,
h: sha256::state,
keypad: [sha256::BLOCKSIZE]u8,
};
type state
Show undocumented member
type state = struct {
mac::mac,
h: *hash::hash,
keypad: []u8,
};
Functions
fn hmac
fn hmac(h: *hash::hash, key: const []u8, buf: []u8) state;
Creates a crypto::mac::mac that computes an HMAC using the provided hash
function 'h' with given 'key'. The caller must provide a 'buf' of
hash::bsz bytes. Use the BLOCKSIZE constant of the given hash function to
allocate the memory statically.
The caller must take extra care to call crypto::mac::finish when they are
finished using the MAC function, which, in addition to freeing state
associated with the MAC, will securely erase state which contains secret
information.
fn sha1
fn sha1(key: []u8) sha1state;
Creates a crypto::mac::mac that computes an HMAC with given 'key' using
SHA1 as underlying hash function.
The caller must take extra care to call crypto::mac::finish when they are
finished using the MAC function, which, in addition to freeing state
associated with the MAC, will securely erase state which contains secret
information.
fn sha256
fn sha256(key: []u8) sha256state;
Creates a crypto::mac::mac that computes an HMAC with given 'key' using
SHA256 as underlying hash function.
The caller must take extra care to call crypto::mac::finish when they are
finished using the MAC function, which, in addition to freeing state
associated with the MAC, will securely erase state which contains secret
information.