added bidirectional HMAC.