You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by vi...@apache.org on 2014/09/17 20:41:27 UTC

svn commit: r1625734 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/tomcat/util/security/ConcurrentMessageDigest.java

Author: violetagg
Date: Wed Sep 17 18:41:26 2014
New Revision: 1625734

URL: http://svn.apache.org/r1625734
Log:
Merged revision 1623693 from tomcat/trunk:
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/tc7.0.x/trunk/   (props changed)
    tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/security/ConcurrentMessageDigest.java

Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
  Merged /tomcat/trunk:r1623693

Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/security/ConcurrentMessageDigest.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/security/ConcurrentMessageDigest.java?rev=1625734&r1=1625733&r2=1625734&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/security/ConcurrentMessageDigest.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/security/ConcurrentMessageDigest.java Wed Sep 17 18:41:26 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<String,Queue<MessageDigest>>();
@@ -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