Author: sebb
Date: Mon May 23 12:30:06 2016
New Revision: 1745174
URL: http://svn.apache.org/viewvc?rev=1745174&view=rev
Log:
CODEC-218 Refactor HmacUtils methods into the HmacAlgorithms enum
Reverted, because not all algorithms can be supported by the enum
Modified:
commons/proper/codec/trunk/src/changes/changes.xml
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/HmacAlgorithms.java
Modified: commons/proper/codec/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/changes/changes.xml?rev=1745174&r1=1745173&r2=1745174&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/changes/changes.xml (original)
+++ commons/proper/codec/trunk/src/changes/changes.xml Mon May 23 12:30:06 2016
@@ -53,7 +53,6 @@ The <action> type attribute can be add,u
<action issue="CODEC-199" dev="ggregory" type="fix" due-to="Yossi
Tamari">Bug in HW rule in Soundex</action>
<action issue="CODEC-209" dev="ggregory" type="fix" due-to="Gary
Gregory">Javadoc for SHA-224 DigestUtils methods should mention Java 1.8.0
restriction instead of 1.4.0.</action>
<action issue="CODEC-219" dev="ggregory" type="fix" due-to="Gary
Gregory, Sebb">Don't deprecate Charsets Charset constants in favor of Java 7's
java.nio.charset.StandardCharsets</action>
- <action issue="CODEC-218" dev="ggregory" type="add" due-to="Gary
Gregory">Refactor HmacUtils methods into the HmacAlgorithms enum</action>
<action issue="CODEC-217" dev="ggregory" type="add" due-to="Gary
Gregory">Add HmacAlgorithms.HMAC_SHA_224 (Java 8 only)</action>
<action issue="CODEC-213" dev="ggregory" type="add" due-to="Gary
Gregory">Support JEP 287: SHA-3 Hash Algorithms</action>
<action issue="CODEC-212" dev="ggregory" type="add" due-to="Gary
Gregory">Create a minimal Digest command line utility:
org.apache.commons.codec.digest.Digest</action>
Modified:
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/HmacAlgorithms.java
URL:
http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/HmacAlgorithms.java?rev=1745174&r1=1745173&r2=1745174&view=diff
==============================================================================
---
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/HmacAlgorithms.java
(original)
+++
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/HmacAlgorithms.java
Mon May 23 12:30:06 2016
@@ -17,16 +17,6 @@
package org.apache.commons.codec.digest;
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.Key;
-import java.security.NoSuchAlgorithmException;
-
-import javax.crypto.Mac;
-
-import org.apache.commons.codec.binary.Hex;
-import org.apache.commons.codec.binary.StringUtils;
-
/**
* Standard {@link HmacUtils} algorithm names from the <cite>Java Cryptography
Architecture Standard Algorithm Name
* Documentation</cite>.
@@ -102,25 +92,6 @@ public enum HmacAlgorithms {
}
/**
- * Returns an initialized <code>Mac</code> for the this algorithm.
- * <p>
- * Every implementation of the Java platform is required to support this
standard Mac algorithm.
- * </p>
- *
- * @param key
- * The key for the keyed digest (must not be null)
- * @return A Mac instance initialized with the given key.
- * @see Mac#getInstance(String)
- * @see Mac#init(Key)
- * @throws IllegalArgumentException
- * when a {@link NoSuchAlgorithmException} is caught or key is
null or key is invalid.
- * @since 1.11
- */
- public Mac getHmac(final byte[] key) {
- return HmacUtils.getInitializedMac(name, key);
- }
-
- /**
* Gets the algorithm name.
*
* @return the algorithm name.
@@ -131,127 +102,6 @@ public enum HmacAlgorithms {
}
/**
- * Returns a keyed-Hash Message Authentication Code (HMAC) for the given
key and value.
- *
- * @param key
- * The key for the keyed digest (must not be null)
- * @param valueToDigest
- * The value (data) to digest (maybe empty or null)
- * @return HMAC for the given key and value
- * @throws IllegalArgumentException
- * when a {@link NoSuchAlgorithmException} is caught or key is
null or key is invalid.
- * @since 1.11
- */
- public byte[] hmac(final byte[] key, final byte[] valueToDigest) {
- try {
- return getHmac(key).doFinal(valueToDigest);
- } catch (final IllegalStateException e) {
- // cannot happen
- throw new IllegalArgumentException(e);
- }
- }
-
- /**
- * Returns a keyed-Hash Message Authentication Code (HMAC) for the given
key and value.
- *
- * @param key
- * The key for the keyed digest (must not be null)
- * @param valueToDigest
- * The value (data) to digest. The InputStream must not be null
and will not be closed.
- * @return HMAC for the given key and value
- * @throws IOException
- * If an I/O error occurs.
- * @throws IllegalArgumentException
- * when a {@link NoSuchAlgorithmException} is caught or key is
null or key is invalid.
- * @since 1.11
- */
- public byte[] hmac(final byte[] key, final InputStream valueToDigest)
throws IOException {
- return HmacUtils.updateHmac(getHmac(key), valueToDigest).doFinal();
- }
-
- /**
- * Returns a keyed-Hash Message Authentication Code (HMAC) for the given
key and value.
- * The Strings are converted to bytes using the UTF-8 charset.
- *
- * @param key
- * The key for the keyed digest (must not be null)
- * @param valueToDigest
- * The value (data) to digest (maybe empty or null)
- * @return HMAC for the given key and value
- * @throws IllegalArgumentException
- * when a {@link NoSuchAlgorithmException} is caught or key is
null or key is invalid.
- * @since 1.11
- */
- public byte[] hmac(final String key, final String valueToDigest) {
- return hmac(StringUtils.getBytesUtf8(key),
StringUtils.getBytesUtf8(valueToDigest));
- }
-
- /**
- * Returns a keyed-Hash Message Authentication Code (HMAC) as a hex string
(lowercase) for the given key and value.
- *
- * @param key
- * The key for the keyed digest (must not be null)
- * @param valueToDigest
- * The value (data) to digest (maybe empty or null)
- * @return HMAC for the given key and value as a hex string (lowercase)
- * @throws IllegalArgumentException
- * when a {@link NoSuchAlgorithmException} is caught or key is
null or key is invalid.
- * @since 1.11
- */
- public String hmacHex(final byte[] key, final byte[] valueToDigest) {
- return Hex.encodeHexString(hmac(key, valueToDigest));
- }
-
- /**
- * Returns a keyed-Hash Message Authentication Code (HMAC) as a hex string
(lowercase) for the given key and value.
- *
- * @param key
- * The key for the keyed digest (must not be null)
- * @param valueToDigest
- * The value (data) to digest. The InputStream must not be null
and will not be closed.
- * @return HMAC for the given key and value as a hex string (lowercase)
- * @throws IOException
- * If an I/O error occurs.
- * @throws IllegalArgumentException
- * when a {@link NoSuchAlgorithmException} is caught or key is
null or key is invalid.
- * @since 1.11
- */
- public String hmacHex(final byte[] key, final InputStream valueToDigest)
throws IOException {
- return Hex.encodeHexString(hmac(key, valueToDigest));
- }
-
- /**
- * Returns a keyed-Hash Message Authentication Code (HMAC) as a hex string
(lowercase) for the given key and value.
- *
- * @param key
- * The key for the keyed digest (must not be null)
- * @param valueToDigest
- * The value (data) to digest (maybe empty or null)
- * @return HMAC for the given key and value as a hex string (lowercase)
- * @throws IllegalArgumentException
- * when a {@link NoSuchAlgorithmException} is caught or key is
null or key is invalid.
- * @since 1.11
- */
- public String hmacHex(final String key, final String valueToDigest) {
- return Hex.encodeHexString(hmac(key, valueToDigest));
- }
-
- /**
- * Returns whether this algorithm is available
- *
- * @return whether this algorithm is available
- * @since 1.11
- */
- public boolean isAvailable() {
- try {
- Mac.getInstance(name);
- return true;
- } catch (NoSuchAlgorithmException e) {
- return false;
- }
- }
-
- /**
* The algorithm name
*
* @see <a
href="http://docs.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html#SunJCEProvider">