On 14 May 2016 at 13:41, sebb <seb...@gmail.com> wrote:
> On 14 May 2016 at 02:33,  <ggreg...@apache.org> wrote:
>> Author: ggregory
>> Date: Sat May 14 01:33:23 2016
>> New Revision: 1743778
>>
>> URL: http://svn.apache.org/viewvc?rev=1743778&view=rev
>> Log:
>> [CODEC-211] Create enum MessageDigestAlgorithm and deprecate class 
>> MessageDigestAlgorithms
>
> Sorry, but I have to vote
>
> -1

Withdrawn.

> As per my comments on CODEC-211, this does not add any value to Codec.
>
> The list of algorithms is not fixed, so an enum is not suitable here.
>
> The list of valid algorithms depends on looking up the valid
> providers, so may depend on the Java release and even the Java
> installation.

Oops, I see now that the enum is only intended for the names that are
included as standard.

However the list may still change between Java versions - e.g. SHA_224
is Java 8+.

So there is still some concern about how useful it is.

>
>> Added:
>>     
>> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/MessageDigestAlgorithm.java
>>     
>> commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/MessageDigestAlgorithmTest.java
>> Modified:
>>     commons/proper/codec/trunk/src/changes/changes.xml
>>     
>> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
>>     
>> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/MessageDigestAlgorithms.java
>>     
>> commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/DigestUtilsTest.java
>>
>> Modified: commons/proper/codec/trunk/src/changes/changes.xml
>> URL: 
>> http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/changes/changes.xml?rev=1743778&r1=1743777&r2=1743778&view=diff
>> ==============================================================================
>> --- commons/proper/codec/trunk/src/changes/changes.xml (original)
>> +++ commons/proper/codec/trunk/src/changes/changes.xml Sat May 14 01:33:23 
>> 2016
>> @@ -47,6 +47,7 @@ The <action> type attribute can be add,u
>>        <action dev="ggregory" type="fix" issue="CODEC-207" due-to="Gary 
>> Gregory">Charsets Javadoc breaks build when using Java 8</action>
>>        <action dev="ggregory" type="fix" issue="CODEC-199" due-to="Yossi 
>> Tamari">Bug in HW rule in Soundex</action>
>>        <action dev="ggregory" type="fix" issue="CODEC-209" due-to="Gary 
>> Gregory">Javadoc for SHA-224 DigestUtils methods should mention Java 1.8.0 
>> restriction instead of 1.4.0.</action>
>> +      <action dev="ggregory" type="add" issue="CODEC-211" due-to="Gary 
>> Gregory">Create enum MessageDigestAlgorithm and deprecate class 
>> MessageDigestAlgorithms</action>
>>        <action dev="ggregory" type="add" issue="CODEC-210" due-to="Gary 
>> Gregory">Add DigestUtils.getDigest(String, MessageDigest)</action>
>>        <action dev="ggregory" type="add" issue="CODEC-208" due-to="Gary 
>> Gregory">Make some DigestUtils APIs public</action>
>>        <action dev="ggregory" type="add" issue="CODEC-206" due-to="Gary 
>> Gregory">Add java.io.File APIs to DigestUtils</action>
>>
>> Modified: 
>> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
>> URL: 
>> http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java?rev=1743778&r1=1743777&r2=1743778&view=diff
>> ==============================================================================
>> --- 
>> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
>>  (original)
>> +++ 
>> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
>>  Sat May 14 01:33:23 2016
>> @@ -40,6 +40,22 @@ public class DigestUtils {
>>      private static final int STREAM_BUFFER_LENGTH = 1024;
>>
>>      /**
>> +     * Read through an ByteBuffer and returns the digest for the data. 
>> Provided for symmetry with other methods.
>> +     *
>> +     * @param messageDigest
>> +     *            The MessageDigest to use (e.g. MD5)
>> +     * @param data
>> +     *            Data to digest
>> +     * @return the digest
>> +     * @throws IOException
>> +     *             On error reading from the stream
>> +     * @since 1.11
>> +     */
>> +    public static byte[] digest(final MessageDigest messageDigest, final 
>> byte[] data) {
>> +        return messageDigest.digest(data);
>> +    }
>> +
>> +    /**
>>       * Read through an ByteBuffer and returns the digest for the data
>>       *
>>       * @param messageDigest
>> @@ -110,14 +126,16 @@ public class DigestUtils {
>>      }
>>
>>      /**
>> -     * Returns a <code>MessageDigest</code> for the given 
>> <code>algorithm</code> or a default if there is a problem getting the 
>> algorithm.
>> +     * Returns a <code>MessageDigest</code> for the given 
>> <code>algorithm</code> or a default if there is a problem
>> +     * getting the 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
>> +     *            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.
>> -     * @param defaultMessageDigest The default MessageDigest.
>> +     * @param defaultMessageDigest
>> +     *            The default MessageDigest.
>>       * @return A digest instance.
>>       * @see MessageDigest#getInstance(String)
>>       * @throws IllegalArgumentException
>> @@ -143,7 +161,7 @@ public class DigestUtils {
>>       * @since 1.7
>>       */
>>      public static MessageDigest getMd2Digest() {
>> -        return getDigest(MessageDigestAlgorithms.MD2);
>> +        return MessageDigestAlgorithm.MD2.getMessageDigest();
>>      }
>>
>>      /**
>> @@ -156,7 +174,7 @@ public class DigestUtils {
>>       * @see MessageDigestAlgorithms#MD5
>>       */
>>      public static MessageDigest getMd5Digest() {
>> -        return getDigest(MessageDigestAlgorithms.MD5);
>> +        return MessageDigestAlgorithm.MD5.getMessageDigest();
>>      }
>>
>>      /**
>> @@ -170,7 +188,7 @@ public class DigestUtils {
>>       * @since 1.7
>>       */
>>      public static MessageDigest getSha1Digest() {
>> -        return getDigest(MessageDigestAlgorithms.SHA_1);
>> +        return MessageDigestAlgorithm.SHA_1.getMessageDigest();
>>      }
>>
>>      /**
>> @@ -186,7 +204,7 @@ public class DigestUtils {
>>       * @see MessageDigestAlgorithms#SHA_224
>>       */
>>      public static MessageDigest getSha224Digest() {
>> -        return getDigest(MessageDigestAlgorithms.SHA_224);
>> +        return MessageDigestAlgorithm.SHA_224.getMessageDigest();
>>      }
>>
>>      /**
>> @@ -202,7 +220,7 @@ public class DigestUtils {
>>       * @see MessageDigestAlgorithms#SHA_256
>>       */
>>      public static MessageDigest getSha256Digest() {
>> -        return getDigest(MessageDigestAlgorithms.SHA_256);
>> +        return MessageDigestAlgorithm.SHA_256.getMessageDigest();
>>      }
>>
>>      /**
>> @@ -218,7 +236,7 @@ public class DigestUtils {
>>       * @see MessageDigestAlgorithms#SHA_384
>>       */
>>      public static MessageDigest getSha384Digest() {
>> -        return getDigest(MessageDigestAlgorithms.SHA_384);
>> +        return MessageDigestAlgorithm.SHA_384.getMessageDigest();
>>      }
>>
>>      /**
>> @@ -234,7 +252,7 @@ public class DigestUtils {
>>       * @see MessageDigestAlgorithms#SHA_512
>>       */
>>      public static MessageDigest getSha512Digest() {
>> -        return getDigest(MessageDigestAlgorithms.SHA_512);
>> +        return MessageDigestAlgorithm.SHA_512.getMessageDigest();
>>      }
>>
>>      /**
>>
>> Added: 
>> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/MessageDigestAlgorithm.java
>> URL: 
>> http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/MessageDigestAlgorithm.java?rev=1743778&view=auto
>> ==============================================================================
>> --- 
>> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/MessageDigestAlgorithm.java
>>  (added)
>> +++ 
>> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/MessageDigestAlgorithm.java
>>  Sat May 14 01:33:23 2016
>> @@ -0,0 +1,167 @@
>> +/*
>> + * Licensed to the Apache Software Foundation (ASF) under one or more
>> + * contributor license agreements.  See the NOTICE file distributed with
>> + * this work for additional information regarding copyright ownership.
>> + * The ASF licenses this file to You under the Apache License, Version 2.0
>> + * (the "License"); you may not use this file except in compliance with
>> + * the License.  You may obtain a copy of the License at
>> + *
>> + *      http://www.apache.org/licenses/LICENSE-2.0
>> + *
>> + * Unless required by applicable law or agreed to in writing, software
>> + * distributed under the License is distributed on an "AS IS" BASIS,
>> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>> + * See the License for the specific language governing permissions and
>> + * limitations under the License.
>> + */
>> +
>> +package org.apache.commons.codec.digest;
>> +
>> +import java.io.File;
>> +import java.io.IOException;
>> +import java.io.InputStream;
>> +import java.nio.ByteBuffer;
>> +import java.security.MessageDigest;
>> +import java.security.NoSuchAlgorithmException;
>> +
>> +/**
>> + * Standard {@link MessageDigest} algorithm names from the <cite>Java 
>> Cryptography Architecture Standard Algorithm Name
>> + * Documentation</cite>.
>> + * <p>
>> + * This enum is immutable and thread-safe.
>> + * </p>
>> + *
>> + * @see <a 
>> href="http://docs.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html";>Java
>>  Cryptography
>> + *      Architecture Standard Algorithm Name Documentation</a>
>> + * @since 1.11
>> + * @version $Id: MessageDigestAlgorithm.java 1637936 2014-11-10 16:47:29Z 
>> ggregory $
>> + */
>> +public enum MessageDigestAlgorithm {
>> +
>> +    /**
>> +     * The MD2 message digest algorithm defined in RFC 1319.
>> +     */
>> +    MD2("MD2"),
>> +
>> +    /**
>> +     * The MD5 message digest algorithm defined in RFC 1321.
>> +     */
>> +    MD5("MD5"),
>> +
>> +    /**
>> +     * The SHA-1 hash algorithm defined in the FIPS PUB 180-2.
>> +     */
>> +    SHA_1("SHA-1"),
>> +
>> +    /**
>> +     * The SHA-224 hash algorithm defined in the FIPS PUB 180-4.
>> +     * <p>
>> +     * Java 8 only.
>> +     * </p>
>> +     */
>> +    SHA_224("SHA-224"),
>> +
>> +    /**
>> +     * The SHA-256 hash algorithm defined in the FIPS PUB 180-2.
>> +     */
>> +    SHA_256("SHA-256"),
>> +
>> +    /**
>> +     * The SHA-384 hash algorithm defined in the FIPS PUB 180-2.
>> +     */
>> +    SHA_384("SHA-384"),
>> +
>> +    /**
>> +     * The SHA-512 hash algorithm defined in the FIPS PUB 180-2.
>> +     */
>> +    SHA_512("SHA-512");
>> +
>> +    private final String algorithm;
>> +
>> +    private MessageDigestAlgorithm(String algorithm) {
>> +        this.algorithm = algorithm;
>> +    }
>> +
>> +    /**
>> +     * Read through a byte[] and returns the digest for the data
>> +     *
>> +     * @param data
>> +     *            Data to digest
>> +     * @return the digest
>> +     * @throws IOException
>> +     *             On error reading from the stream
>> +     */
>> +    public byte[] digest(byte[] data) throws IOException {
>> +        return getMessageDigest().digest(data);
>> +    }
>> +
>> +    /**
>> +     * Read through a ByteBuffer and returns the digest for the data
>> +     *
>> +     * @param data
>> +     *            Data to digest
>> +     * @return the digest
>> +     * @throws IOException
>> +     *             On error reading from the stream
>> +     */
>> +    public byte[] digest(ByteBuffer data) throws IOException {
>> +        return DigestUtils.digest(getMessageDigest(), data);
>> +    }
>> +
>> +    /**
>> +     * Read through a File and returns the digest for the data
>> +     *
>> +     * @param data
>> +     *            Data to digest
>> +     * @return the digest
>> +     * @throws IOException
>> +     *             On error reading from the stream
>> +     */
>> +    public byte[] digest(File data) throws IOException {
>> +        return DigestUtils.digest(getMessageDigest(), data);
>> +    }
>> +
>> +    /**
>> +     * Read through an InputStream and returns the digest for the data
>> +     *
>> +     * @param data
>> +     *            Data to digest
>> +     * @return the digest
>> +     * @throws IOException
>> +     *             On error reading from the stream
>> +     */
>> +    public byte[] digest(InputStream data) throws IOException {
>> +        return DigestUtils.digest(getMessageDigest(), data);
>> +    }
>> +
>> +    /**
>> +     * Gets the algorithm name.
>> +     *
>> +     * @return the algorithm name.
>> +     */
>> +    public String getAlgorithm() {
>> +        return algorithm;
>> +    }
>> +
>> +    /**
>> +     * Returns a <code>MessageDigest</code> for this <code>algorithm</code>.
>> +     *
>> +     * @return A digest instance.
>> +     * @see MessageDigest#getInstance(String)
>> +     * @throws IllegalArgumentException
>> +     *             when a {@link NoSuchAlgorithmException} is caught.
>> +     */
>> +    public MessageDigest getMessageDigest() {
>> +        return DigestUtils.getDigest(algorithm);
>> +    }
>> +
>> +    /**
>> +     * Whether a MessageDigest for this algorithm can be created.
>> +     *
>> +     * @return Whether a MessageDigest for this algorithm can be created.
>> +     */
>> +    public boolean isAvailable() {
>> +        return DigestUtils.getDigest(algorithm, null) != null;
>> +    }
>> +
>> +}
>>
>> Modified: 
>> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/MessageDigestAlgorithms.java
>> URL: 
>> http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/MessageDigestAlgorithms.java?rev=1743778&r1=1743777&r2=1743778&view=diff
>> ==============================================================================
>> --- 
>> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/MessageDigestAlgorithms.java
>>  (original)
>> +++ 
>> commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/MessageDigestAlgorithms.java
>>  Sat May 14 01:33:23 2016
>> @@ -25,13 +25,14 @@ import java.security.MessageDigest;
>>   * <p>
>>   * This class is immutable and thread-safe.
>>   * </p>
>> - * TODO 2.0 This should be an enum.
>>   *
>>   * @see <a 
>> href="http://docs.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html";>Java
>>  Cryptography
>>   *      Architecture Standard Algorithm Name Documentation</a>
>>   * @since 1.7
>> + * @deprecated Use the enum {@link MessageDigestAlgorithm}.
>>   * @version $Id$
>>   */
>> +@Deprecated
>>  public class MessageDigestAlgorithms {
>>
>>      private MessageDigestAlgorithms() {
>> @@ -54,11 +55,11 @@ public class MessageDigestAlgorithms {
>>      public static final String SHA_1 = "SHA-1";
>>
>>      /**
>> -     * The SHA-224 hash algorithm defined in the FIPS PUB 180-4.
>> +     * The SHA-224 hash algorithm defined in the FIPS PUB 180-4.
>>       * <p>
>>       * Java 8 only.
>>       * </p>
>> -     *
>> +     *
>>       * @since 1.11
>>       */
>>      public static final String SHA_224 = "SHA-224";
>>
>> Modified: 
>> commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/DigestUtilsTest.java
>> URL: 
>> http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/DigestUtilsTest.java?rev=1743778&r1=1743777&r2=1743778&view=diff
>> ==============================================================================
>> --- 
>> commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/DigestUtilsTest.java
>>  (original)
>> +++ 
>> commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/DigestUtilsTest.java
>>  Sat May 14 01:33:23 2016
>> @@ -50,6 +50,18 @@ public class DigestUtilsTest {
>>
>>      private File testFile;
>>
>> +    private void assumeJava8() {
>> +        
>> Assume.assumeTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_8));
>> +    }
>> +
>> +    byte[] getTestData() {
>> +        return testData;
>> +    }
>> +
>> +    File getTestFile() {
>> +        return testFile;
>> +    }
>> +
>>      @Before
>>      public void setUp() throws Exception {
>>          new Random().nextBytes(testData);
>> @@ -311,10 +323,6 @@ public class DigestUtilsTest {
>>          // Examples from FIPS 180-4?
>>      }
>>
>> -    private void assumeJava8() {
>> -        
>> Assume.assumeTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_8));
>> -    }
>> -
>>      @Test
>>      public void testSha224HexFile() throws IOException {
>>          assumeJava8();
>>
>> Added: 
>> commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/MessageDigestAlgorithmTest.java
>> URL: 
>> http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/MessageDigestAlgorithmTest.java?rev=1743778&view=auto
>> ==============================================================================
>> --- 
>> commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/MessageDigestAlgorithmTest.java
>>  (added)
>> +++ 
>> commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/MessageDigestAlgorithmTest.java
>>  Sat May 14 01:33:23 2016
>> @@ -0,0 +1,128 @@
>> +/*
>> + * Licensed to the Apache Software Foundation (ASF) under one or more
>> + * contributor license agreements.  See the NOTICE file distributed with
>> + * this work for additional information regarding copyright ownership.
>> + * The ASF licenses this file to You under the Apache License, Version 2.0
>> + * (the "License"); you may not use this file except in compliance with
>> + * the License.  You may obtain a copy of the License at
>> + *
>> + *      http://www.apache.org/licenses/LICENSE-2.0
>> + *
>> + * Unless required by applicable law or agreed to in writing, software
>> + * distributed under the License is distributed on an "AS IS" BASIS,
>> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>> + * See the License for the specific language governing permissions and
>> + * limitations under the License.
>> + */
>> +package org.apache.commons.codec.digest;
>> +
>> +import java.io.ByteArrayInputStream;
>> +import java.io.File;
>> +import java.io.IOException;
>> +import java.nio.ByteBuffer;
>> +import java.security.MessageDigest;
>> +import java.security.NoSuchAlgorithmException;
>> +
>> +import org.junit.After;
>> +import org.junit.Assert;
>> +import org.junit.Assume;
>> +import org.junit.Before;
>> +import org.junit.Test;
>> +import org.junit.runner.RunWith;
>> +import org.junit.runners.Parameterized;
>> +import org.junit.runners.Parameterized.Parameters;
>> +
>> +/**
>> + * Tests {@link MessageDigestAlgorithm}.
>> + *
>> + * @since 1.11
>> + */
>> +@RunWith(Parameterized.class)
>> +public class MessageDigestAlgorithmTest {
>> +
>> +    @Parameters(name = "{0}")
>> +    public static Object[] data() {
>> +        return MessageDigestAlgorithm.values();
>> +    }
>> +
>> +    private DigestUtilsTest digestUtilsTest;
>> +
>> +    private final MessageDigestAlgorithm messageDigestAlgorithm;
>> +
>> +    public MessageDigestAlgorithmTest(MessageDigestAlgorithm 
>> messageDigestAlgorithm) {
>> +        this.messageDigestAlgorithm = messageDigestAlgorithm;
>> +    }
>> +
>> +    private byte[] digestTestData() throws IOException {
>> +        return messageDigestAlgorithm.digest(getTestData());
>> +    }
>> +
>> +    private byte[] getTestData() {
>> +        return digestUtilsTest.getTestData();
>> +    }
>> +
>> +    private File getTestFile() {
>> +        return digestUtilsTest.getTestFile();
>> +    }
>> +
>> +    @Before
>> +    public void setUp() throws Exception {
>> +        digestUtilsTest = new DigestUtilsTest();
>> +        digestUtilsTest.setUp();
>> +    }
>> +
>> +    @After
>> +    public void tearDown() throws Exception {
>> +        digestUtilsTest.tearDown();
>> +        digestUtilsTest = null;
>> +    }
>> +
>> +    @Test
>> +    public void testAlgorithm() throws IOException, 
>> NoSuchAlgorithmException {
>> +        final String algorithm = messageDigestAlgorithm.getAlgorithm();
>> +        Assert.assertNotNull(algorithm);
>> +        Assert.assertFalse(algorithm.isEmpty());
>> +        Assume.assumeTrue(messageDigestAlgorithm.isAvailable());
>> +        MessageDigest.getInstance(algorithm);
>> +    }
>> +
>> +    @Test
>> +    public void testDigestByteArray() throws IOException {
>> +        Assume.assumeTrue(messageDigestAlgorithm.isAvailable());
>> +        Assert.assertArrayEquals(digestTestData(),
>> +                
>> DigestUtils.digest(messageDigestAlgorithm.getMessageDigest(), 
>> getTestData()));
>> +        Assert.assertArrayEquals(digestTestData(), 
>> messageDigestAlgorithm.digest(getTestData()));
>> +    }
>> +
>> +    @Test
>> +    public void testDigestByteBuffer() throws IOException {
>> +        Assume.assumeTrue(messageDigestAlgorithm.isAvailable());
>> +        Assert.assertArrayEquals(digestTestData(),
>> +                
>> DigestUtils.digest(messageDigestAlgorithm.getMessageDigest(), 
>> ByteBuffer.wrap(getTestData())));
>> +        Assert.assertArrayEquals(digestTestData(), 
>> messageDigestAlgorithm.digest(ByteBuffer.wrap(getTestData())));
>> +    }
>> +
>> +    @Test
>> +    public void testDigestFile() throws IOException {
>> +        Assume.assumeTrue(messageDigestAlgorithm.isAvailable());
>> +        Assert.assertArrayEquals(digestTestData(),
>> +                
>> DigestUtils.digest(messageDigestAlgorithm.getMessageDigest(), 
>> getTestFile()));
>> +        Assert.assertArrayEquals(digestTestData(), 
>> messageDigestAlgorithm.digest(getTestFile()));
>> +    }
>> +
>> +    @Test
>> +    public void testDigestInputStream() throws IOException {
>> +        Assume.assumeTrue(messageDigestAlgorithm.isAvailable());
>> +        Assert.assertArrayEquals(digestTestData(),
>> +                
>> DigestUtils.digest(messageDigestAlgorithm.getMessageDigest(), new 
>> ByteArrayInputStream(getTestData())));
>> +        Assert.assertArrayEquals(digestTestData(), 
>> messageDigestAlgorithm.digest(new ByteArrayInputStream(getTestData())));
>> +    }
>> +
>> +    @Test
>> +    public void testGetMessageDigest() throws IOException, 
>> NoSuchAlgorithmException {
>> +        Assume.assumeTrue(messageDigestAlgorithm.isAvailable());
>> +        final MessageDigest messageDigest = 
>> messageDigestAlgorithm.getMessageDigest();
>> +        Assert.assertEquals(messageDigestAlgorithm.getAlgorithm(), 
>> messageDigest.getAlgorithm());
>> +    }
>> +
>> +}
>>
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to