HMAC uses the HashContext. Does this actually need its own interface?