Continuing my study of Hare's cryptography library... Its "hmac" submodule includes:
Initializers which gathers an underlying hash function, data, & methods into a struct populating the hash with a possibly-padded key.
The write method defers to the underlying hash function.
The gensum method retrieves the hash's output, rehashes that with a given "keypad", & retrieves results.
The finalizer zeroes out the keypad & defers to the underlying hash function.
1/2?