aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/apache/commons/io/input/MessageDigestCalculatingInputStream.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/apache/commons/io/input/MessageDigestCalculatingInputStream.java')
-rw-r--r--src/main/java/org/apache/commons/io/input/MessageDigestCalculatingInputStream.java29
1 files changed, 23 insertions, 6 deletions
diff --git a/src/main/java/org/apache/commons/io/input/MessageDigestCalculatingInputStream.java b/src/main/java/org/apache/commons/io/input/MessageDigestCalculatingInputStream.java
index 7aed4185..97d7ff59 100644
--- a/src/main/java/org/apache/commons/io/input/MessageDigestCalculatingInputStream.java
+++ b/src/main/java/org/apache/commons/io/input/MessageDigestCalculatingInputStream.java
@@ -21,12 +21,13 @@ import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.Provider;
+import java.util.Objects;
import org.apache.commons.io.build.AbstractStreamBuilder;
/**
* This class is an example for using an {@link ObservableInputStream}. It creates its own {@link org.apache.commons.io.input.ObservableInputStream.Observer},
- * which calculates a checksum using a MessageDigest, for example an MD5 sum.
+ * which calculates a checksum using a {@link MessageDigest}, for example, a SHA-512 sum.
* <p>
* To build an instance, see {@link Builder}.
* </p>
@@ -35,12 +36,11 @@ import org.apache.commons.io.build.AbstractStreamBuilder;
* Cryptography Architecture Standard Algorithm Name Documentation</a> for information about standard algorithm names.
* </p>
* <p>
- * <em>Note</em>: Neither {@link ObservableInputStream}, nor {@link MessageDigest}, are thread safe. So is {@link MessageDigestCalculatingInputStream}.
- * </p>
- * <p>
- * TODO Rename to MessageDigestInputStream in 3.0.
+ * <em>Note</em>: Neither {@link ObservableInputStream}, nor {@link MessageDigest}, are thread safe, so is {@link MessageDigestCalculatingInputStream}.
* </p>
+ * @deprecated Use {@link MessageDigestInputStream}.
*/
+@Deprecated
public class MessageDigestCalculatingInputStream extends ObservableInputStream {
/**
@@ -61,6 +61,9 @@ public class MessageDigestCalculatingInputStream extends ObservableInputStream {
private MessageDigest messageDigest;
+ /**
+ * Constructs a new Builder.
+ */
public Builder() {
try {
this.messageDigest = getDefaultMessageDigest();
@@ -92,6 +95,9 @@ public class MessageDigestCalculatingInputStream extends ObservableInputStream {
/**
* Sets the message digest.
+ * <p>
+ * The MD5 cryptographic algorithm is weak and should not be used.
+ * </p>
*
* @param messageDigest the message digest.
*/
@@ -101,6 +107,9 @@ public class MessageDigestCalculatingInputStream extends ObservableInputStream {
/**
* Sets the name of the name of the message digest algorithm.
+ * <p>
+ * The MD5 cryptographic algorithm is weak and should not be used.
+ * </p>
*
* @param algorithm the name of the algorithm. See the MessageDigest section in the
* <a href= "https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#MessageDigest"> Java Cryptography
@@ -123,9 +132,10 @@ public class MessageDigestCalculatingInputStream extends ObservableInputStream {
* Constructs an MessageDigestMaintainingObserver for the given MessageDigest.
*
* @param messageDigest the message digest to use
+ * @throws NullPointerException if messageDigest is null.
*/
public MessageDigestMaintainingObserver(final MessageDigest messageDigest) {
- this.messageDigest = messageDigest;
+ this.messageDigest = Objects.requireNonNull(messageDigest, "messageDigest");
}
@Override
@@ -187,9 +197,13 @@ public class MessageDigestCalculatingInputStream extends ObservableInputStream {
/**
* Constructs a new instance, which calculates a signature on the given stream, using the given {@link MessageDigest}.
+ * <p>
+ * The MD5 cryptographic algorithm is weak and should not be used.
+ * </p>
*
* @param inputStream the stream to calculate the message digest for
* @param messageDigest the message digest to use
+ * @throws NullPointerException if messageDigest is null.
* @deprecated Use {@link #builder()}, {@link Builder}, and {@link Builder#get()}.
*/
@Deprecated
@@ -200,6 +214,9 @@ public class MessageDigestCalculatingInputStream extends ObservableInputStream {
/**
* Constructs a new instance, which calculates a signature on the given stream, using a {@link MessageDigest} with the given algorithm.
+ * <p>
+ * The MD5 cryptographic algorithm is weak and should not be used.
+ * </p>
*
* @param inputStream the stream to calculate the message digest for
* @param algorithm the name of the algorithm requested. See the MessageDigest section in the