Core/Crypto: Refactored HmacHash to make it easier to use with different hash algorithms