Skip to content

Commit a230916

Browse files
committed
Refactor to narrow access to MessageDigest#getInstance(String)
1 parent b3506f2 commit a230916

1 file changed

Lines changed: 18 additions & 4 deletions

File tree

src/main/java/org/apache/commons/codec/digest/DigestUtils.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,6 @@ public class DigestUtils {
6060

6161
private static final int STREAM_BUFFER_LENGTH = 1024;
6262

63-
private final MessageDigest messageDigest;
64-
6563
/**
6664
* Reads through a byte array and returns the digest for the data. Provided for symmetry with other methods.
6765
*
@@ -171,7 +169,7 @@ public static byte[] digest(final MessageDigest messageDigest, final RandomAcces
171169
*/
172170
public static MessageDigest getDigest(final String algorithm) {
173171
try {
174-
return MessageDigest.getInstance(algorithm);
172+
return getMessageDigest(algorithm);
175173
} catch (final NoSuchAlgorithmException e) {
176174
throw new IllegalArgumentException(e);
177175
}
@@ -196,7 +194,7 @@ public static MessageDigest getDigest(final String algorithm) {
196194
*/
197195
public static MessageDigest getDigest(final String algorithm, final MessageDigest defaultMessageDigest) {
198196
try {
199-
return MessageDigest.getInstance(algorithm);
197+
return getMessageDigest(algorithm);
200198
} catch (final Exception e) {
201199
return defaultMessageDigest;
202200
}
@@ -229,6 +227,20 @@ public static MessageDigest getMd5Digest() {
229227
return getDigest(MessageDigestAlgorithms.MD5);
230228
}
231229

230+
/**
231+
* Returns a {@code MessageDigest} for the given {@code algorithm}.
232+
*
233+
* @param algorithm the name of the algorithm requested. See
234+
* <a href="http://docs.oracle.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA" > Appendix A in the Java
235+
* Cryptography Architecture Reference Guide</a> for information about standard algorithm names.
236+
* @return A digest instance.
237+
* @see MessageDigest#getInstance(String)
238+
* @throws NoSuchAlgorithmException if no Provider supports a MessageDigestSpi implementation for the specified algorithm.
239+
*/
240+
private static MessageDigest getMessageDigest(final String algorithm) throws NoSuchAlgorithmException {
241+
return MessageDigest.getInstance(algorithm);
242+
}
243+
232244
/**
233245
* Returns an SHA-1 digest.
234246
*
@@ -1527,6 +1539,8 @@ public static MessageDigest updateDigest(final MessageDigest messageDigest, fina
15271539
return messageDigest;
15281540
}
15291541

1542+
private final MessageDigest messageDigest;
1543+
15301544
/**
15311545
* Preserves binary compatibility only.
15321546
* As for previous versions does not provide useful behavior

0 commit comments

Comments
 (0)