HMAC-SHA-512 interface.
HMAC stands for keyed-hash message authentication code. It is specified in IETF RFC 2104.
We instantiate HMAC with the SHA-512 hash function, whose block size is 128 bytes and output size is 64 bytes according to FIPS 180-4.
See also:
Theorem:
(defthm byte-list-of-hmac-sha-512 (byte-listp (hmac-sha-512 key text)))
Theorem:
(defthm len-of-hmac-sha-512 (equal (len (hmac-sha-512 key text)) 64))
Theorem:
(defthm hmac-sha-512-of-byte-list-fix-key (equal (hmac-sha-512 (byte-list-fix key) text) (hmac-sha-512 key text)))
Theorem:
(defthm hmac-sha-512-byte-list-equiv-congruence-on-key (implies (byte-list-equiv key key-equiv) (equal (hmac-sha-512 key text) (hmac-sha-512 key-equiv text))) :rule-classes :congruence)
Theorem:
(defthm hmac-sha-512-of-byte-list-fix-text (equal (hmac-sha-512 key (byte-list-fix text)) (hmac-sha-512 key text)))
Theorem:
(defthm hmac-sha-512-byte-list-equiv-congruence-on-text (implies (byte-list-equiv text text-equiv) (equal (hmac-sha-512 key text) (hmac-sha-512 key text-equiv))) :rule-classes :congruence)
Theorem:
(defthm true-listp-of-hmac-sha-512 (true-listp (hmac-sha-512 key text)) :rule-classes :type-prescription)
Theorem:
(defthm consp-of-hmac-sha-512 (consp (hmac-sha-512 key text)) :rule-classes :type-prescription)
Theorem:
(defthm byte-list64p-of-hmac-sha-512 (byte-list64p (hmac-sha-512 key text)))