[ 
https://issues.apache.org/jira/browse/CODEC-222?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15295775#comment-15295775
 ] 

Sebb commented on CODEC-222:
----------------------------

The code now looks like:

byte[] hmac = HmacUtils.use(HmacAlgorithms.HMAC_MD5, key).hmac(valueToDigest);
If the enum is statically imported this becomes:
byte[] hmac = HmacUtils.use(HMAC_MD5, key).hmac(valueToDigest);

This is to be compared with the orginal:

byte[] hmac HmacUtils.hmacMd5(key, valueToDigest);

Similarly for Hex output:

String hmac = HmacUtils.use(HMAC_MD5, key).hmacHex(valueToDigest);
versus
String hmac = HmacUtils.hmacMd5Hex(key, valueToDigest);


> Fluent interface for HmacUtils
> ------------------------------
>
>                 Key: CODEC-222
>                 URL: https://issues.apache.org/jira/browse/CODEC-222
>             Project: Commons Codec
>          Issue Type: New Feature
>            Reporter: Sebb
>
> 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.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to