[CODEC-222] Fluent interface for HmacUtils (original) (raw)

As with DigestUtils, HmacUtils has lots of similar methods, differing only by their name.

To simplify this, and unify the API for current standard and new algorithms, a fluent approach is proposed. This still allows for using the enum values defined in HmacAlgorithms but does not require the use of a different API for algorithms that are not supported by the enum.

The design is as for DigestUtils: create an instance of HmacUtils containing the Mac to be updated, and provide chaining instance methods to update it and generate the output.