add hmac support