ESP uses HMAC-MD5, HMAC-SHA, HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512, and AES-XCBC-MAC algorithms to provide authentication functions. Each of the algorithms take variable-length input data and a secret key to produce fixed-length output data (called a hash or MAC value).