You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/09/09 10:46:51 UTC

svn commit: r1623693 - /tomcat/trunk/java/org/apache/tomcat/util/security/ConcurrentMessageDigest.java

Author: markt
Date: Tue Sep  9 08:46:51 2014
New Revision: 1623693

URL: http://svn.apache.org/r1623693
Log:
Add SHA-1 support
Add support for input consisting of multiply byte arrays
(both changes are prep for switching WebSocket to use this utility class)

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/security/ConcurrentMessageDigest.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/security/ConcurrentMessageDigest.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/security/ConcurrentMessageDigest.java?rev=1623693&r1=1623692&r2=1623693&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/security/ConcurrentMessageDigest.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/security/ConcurrentMessageDigest.java Tue Sep  9 08:46:51 2014
@@ -31,6 +31,7 @@ import java.util.concurrent.ConcurrentLi
 public class ConcurrentMessageDigest {
 
     private static final String MD5 = "MD5";
+    private static final String SHA1 = "SHA-1";
 
     private static final Map<String,Queue<MessageDigest>> queues =
             new HashMap<>();
@@ -44,16 +45,21 @@ public class ConcurrentMessageDigest {
         try {
             // Init commonly used algorithms
             init(MD5);
+            init(SHA1);
         } catch (NoSuchAlgorithmException e) {
             throw new IllegalArgumentException(e);
         }
     }
 
-    public static byte[] digestMD5(byte[] input) {
+    public static byte[] digestMD5(byte[]... input) {
         return digest(MD5, input);
     }
 
-    public static byte[] digest(String algorithm, byte[] input) {
+    public static byte[] digestSHA1(byte[]... input) {
+        return digest(SHA1, input);
+    }
+
+    public static byte[] digest(String algorithm, byte[]... input) {
 
         Queue<MessageDigest> queue = queues.get(algorithm);
         if (queue == null) {
@@ -71,7 +77,10 @@ public class ConcurrentMessageDigest {
             }
         }
 
-        byte[] result = md.digest(input);
+        for (byte[] bytes : input) {
+            md.update(bytes);
+        }
+        byte[] result = md.digest();
 
         queue.add(md);
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org