diff options
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.java | 29 |
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 |