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!'";