Added HMAC category on NSData.
Refactored out some validation logic.
Appropriate test cases.