This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-codec.git

commit a230916db8e404c5d7da7c12190b428e304ff73c
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Tue Oct 17 08:08:33 2023 -0400

    Refactor to narrow access to MessageDigest#getInstance(String)
---
 .../apache/commons/codec/digest/DigestUtils.java   | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/apache/commons/codec/digest/DigestUtils.java 
b/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
index 6f267c80..fead69af 100644
--- a/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
+++ b/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
@@ -60,8 +60,6 @@ public class DigestUtils {
 
     private static final int STREAM_BUFFER_LENGTH = 1024;
 
-    private final MessageDigest messageDigest;
-
     /**
      * Reads through a byte array and returns the digest for the data. 
Provided for symmetry with other methods.
      *
@@ -171,7 +169,7 @@ public class DigestUtils {
      */
     public static MessageDigest getDigest(final String algorithm) {
         try {
-            return MessageDigest.getInstance(algorithm);
+            return getMessageDigest(algorithm);
         } catch (final NoSuchAlgorithmException e) {
             throw new IllegalArgumentException(e);
         }
@@ -196,7 +194,7 @@ public class DigestUtils {
      */
     public static MessageDigest getDigest(final String algorithm, final 
MessageDigest defaultMessageDigest) {
         try {
-            return MessageDigest.getInstance(algorithm);
+            return getMessageDigest(algorithm);
         } catch (final Exception e) {
             return defaultMessageDigest;
         }
@@ -229,6 +227,20 @@ public class DigestUtils {
         return getDigest(MessageDigestAlgorithms.MD5);
     }
 
+    /**
+     * Returns a {@code MessageDigest} for the given {@code 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.
+     * @return A digest instance.
+     * @see MessageDigest#getInstance(String)
+     * @throws NoSuchAlgorithmException if no Provider supports a 
MessageDigestSpi implementation for the specified algorithm.
+     */
+    private static MessageDigest getMessageDigest(final String algorithm) 
throws NoSuchAlgorithmException {
+        return MessageDigest.getInstance(algorithm);
+    }
+
     /**
      * Returns an SHA-1 digest.
      *
@@ -1527,6 +1539,8 @@ public class DigestUtils {
         return messageDigest;
     }
 
+    private final MessageDigest messageDigest;
+
    /**
     * Preserves binary compatibility only.
     * As for previous versions does not provide useful behavior

Reply via email to