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