You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2016/05/14 00:17:26 UTC
svn commit: r1743770 - in /commons/proper/codec/trunk/src:
changes/changes.xml
main/java/org/apache/commons/codec/digest/DigestUtils.java
Author: ggregory
Date: Sat May 14 00:17:26 2016
New Revision: 1743770
URL: http://svn.apache.org/viewvc?rev=1743770&view=rev
Log:
[CODEC-208] Make some DigestUtils APIs public.
Modified:
commons/proper/codec/trunk/src/changes/changes.xml
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.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=1743770&r1=1743769&r2=1743770&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/changes/changes.xml (original)
+++ commons/proper/codec/trunk/src/changes/changes.xml Sat May 14 00:17:26 2016
@@ -46,6 +46,7 @@ The <action> type attribute can be add,u
<action dev="sebb" type="fix" issue="CODEC-200" due-to="Luciano Vernaschi">Base32.HEX_DECODE_TABLE contains the wrong value 32</action>
<action dev="ggregory" type="fix" issue="CODEC-207" due-to="Gary Gregory">Charsets Javadoc breaks build when using Java 8</action>
<action dev="ggregory" type="fix" issue="CODEC-199" due-to="Yossi Tamari">Bug in HW rule in Soundex</action>
+ <action dev="ggregory" type="add" issue="CODEC-208" due-to="Gary Gregory">Make some DigestUtils APIs public</action>
<action dev="ggregory" type="add" issue="CODEC-206" due-to="Gary Gregory">Add java.io.File APIs to DigestUtils</action>
<action dev="ggregory" type="add" issue="CODEC-183" due-to="Steven Wurster">BaseNCodecOutputStream only supports writing EOF on close()</action>
<action dev="ggregory" type="add" issue="CODEC-195" due-to="Gary Gregory">Support SHA-224 in DigestUtils on Java 8</action>
Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java?rev=1743770&r1=1743769&r2=1743770&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java Sat May 14 00:17:26 2016
@@ -42,15 +42,16 @@ public class DigestUtils {
/**
* Read through an ByteBuffer and returns the digest for the data
*
- * @param digest
+ * @param messageDigest
* The MessageDigest to use (e.g. MD5)
* @param data
* Data to digest
* @return the digest
* @throws IOException
* On error reading from the stream
+ * @since 1.11
*/
- private static byte[] digest(final MessageDigest messageDigest, final ByteBuffer data) {
+ public static byte[] digest(final MessageDigest messageDigest, final ByteBuffer data) {
messageDigest.update(data);
return messageDigest.digest();
}
@@ -58,31 +59,33 @@ public class DigestUtils {
/**
* Read through a File and returns the digest for the data
*
- * @param digest
+ * @param messageDigest
* The MessageDigest to use (e.g. MD5)
* @param data
* Data to digest
* @return the digest
* @throws IOException
* On error reading from the stream
+ * @since 1.11
*/
- private static byte[] digest(final MessageDigest digest, final File data) throws IOException {
- return updateDigest(digest, data).digest();
+ public static byte[] digest(final MessageDigest messageDigest, final File data) throws IOException {
+ return updateDigest(messageDigest, data).digest();
}
/**
* Read through an InputStream and returns the digest for the data
*
- * @param digest
+ * @param messageDigest
* The MessageDigest to use (e.g. MD5)
* @param data
* Data to digest
* @return the digest
* @throws IOException
* On error reading from the stream
+ * @since 1.11
*/
- private static byte[] digest(final MessageDigest digest, final InputStream data) throws IOException {
- return updateDigest(digest, data).digest();
+ public static byte[] digest(final MessageDigest messageDigest, final InputStream data) throws IOException {
+ return updateDigest(messageDigest, data).digest();
}
/**
@@ -106,6 +109,29 @@ public class DigestUtils {
}
}
+ /**
+ * Returns a <code>MessageDigest</code> for the given <code>algorithm</code> or a default if there is a problem getting the algorithm.
+ *
+ * @param algorithm
+ * the name of the algorithm requested. See <a
+ * href="http://docs.oracle.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA"
+ * >Appendix A in the Java Cryptography Architecture Reference Guide</a> for information about standard
+ * algorithm names.
+ * @param defaultMessageDigest The default MessageDigest.
+ * @return A digest instance.
+ * @see MessageDigest#getInstance(String)
+ * @throws IllegalArgumentException
+ * when a {@link NoSuchAlgorithmException} is caught.
+ * @since 1.11
+ */
+ public static MessageDigest getDigest(final String algorithm, MessageDigest defaultMessageDigest) {
+ try {
+ return MessageDigest.getInstance(algorithm);
+ } catch (final Exception e) {
+ return defaultMessageDigest;
+ }
+ }
+
/**
* Returns an MD2 MessageDigest.
*