Author: ggregory
Date: Sun Sep  2 18:32:04 2012
New Revision: 1380022

URL: http://svn.apache.org/viewvc?rev=1380022&view=rev
Log:
[CODEC-156] DigestUtils: add APIs named after standard alg name SHA-1.

Modified:
    
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
    
commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/DigestUtilsTest.java

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=1380022&r1=1380021&r2=1380022&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
 Sun Sep  2 18:32:04 2012
@@ -399,6 +399,55 @@ public class DigestUtils {
     }
 
     /**
+     * Calculates the SHA-1 digest and returns the value as a 
<code>byte[]</code>.
+     *
+     * @param data
+     *            Data to digest
+     * @return SHA-1 digest
+     */
+    public static byte[] sha1(String data) {
+        return sha1(getBytesUtf8(data));
+    }
+
+    /**
+     * Calculates the SHA-1 digest and returns the value as a hex string.
+     *
+     * @param data
+     *            Data to digest
+     * @return SHA-1 digest as a hex string
+     * @since 1.7
+     */
+    public static String sha1Hex(byte[] data) {
+        return Hex.encodeHexString(sha1(data));
+    }
+
+    /**
+     * Calculates the SHA-1 digest and returns the value as a hex string.
+     *
+     * @param data
+     *            Data to digest
+     * @return SHA-1 digest as a hex string
+     * @throws IOException
+     *             On error reading from the stream
+     * @since 1.7
+     */
+    public static String sha1Hex(InputStream data) throws IOException {
+        return Hex.encodeHexString(sha1(data));
+    }
+
+    /**
+     * Calculates the SHA-1 digest and returns the value as a hex string.
+     *
+     * @param data
+     *            Data to digest
+     * @return SHA-1 digest as a hex string
+     * @since 1.7
+     */
+    public static String sha1Hex(String data) {
+        return Hex.encodeHexString(sha1(data));
+    }
+
+    /**
      * Calculates the SHA-256 digest and returns the value as a 
<code>byte[]</code>.
      * <p>
      * Throws a <code>RuntimeException</code> on JRE versions prior to 1.4.0.

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=1380022&r1=1380021&r2=1380022&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
 Sun Sep  2 18:32:04 2012
@@ -234,6 +234,20 @@ public class DigestUtilsTest {
     }
 
     @Test
+    public void testSha1Hex() throws IOException {
+        // Examples from FIPS 180-1
+        assertEquals("a9993e364706816aba3e25717850c26c9cd0d89d", 
DigestUtils.sha1Hex("abc"));
+
+        assertEquals("a9993e364706816aba3e25717850c26c9cd0d89d", 
DigestUtils.sha1Hex(getBytesUtf8("abc")));
+
+        assertEquals(
+            "84983e441c3bd26ebaae4aa1f95129e5e54670f1",
+            DigestUtils.shaHex("abcdbcdecdefdefgefghfghighij" + 
"hijkijkljklmklmnlmnomnopnopq"));
+        assertEquals(DigestUtils.shaHex(testData),
+                DigestUtils.shaHex(new ByteArrayInputStream(testData)));
+    }
+
+    @Test
     public void testSha1UpdateWithByteArray(){
         final String d1 = "C'est un homme qui rentre dans un café, et plouf";
         final String d2 = "C'est un homme, c'est qu'une tête, on lui offre un 
cadeau: 'oh... encore un chapeau!'";


Reply via email to