add HMAC support to libcrypto