Moved the code for HMAC to it's own class.