Author: rgodfrey
Date: Sun May 12 14:26:04 2013
New Revision: 1481567

URL: http://svn.apache.org/r1481567
Log:
QPID-4831 : [Java Broker] Allow identification of SSLv2 Client Hello messages 
(used in Java 1.6)

Modified:
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java?rev=1481567&r1=1481566&r2=1481567&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java
 Sun May 12 14:26:04 2013
@@ -758,6 +758,11 @@ public class MultiVersionProtocolEngine 
 
     private boolean looksLikeSSL(byte[] headerBytes)
     {
+        return looksLikeSSLv3ClientHello(headerBytes) || 
looksLikeSSLv2ClientHello(headerBytes);
+    }
+
+    private boolean looksLikeSSLv3ClientHello(byte[] headerBytes)
+    {
         return headerBytes[0] == 22 && // SSL Handshake
                (headerBytes[1] == 3 && // SSL 3.0 / TLS 1.x
                 (headerBytes[2] == 0 || // SSL 3.0
@@ -767,6 +772,17 @@ public class MultiVersionProtocolEngine 
                (headerBytes[5] == 1); // client_hello
     }
 
+    private boolean looksLikeSSLv2ClientHello(byte[] headerBytes)
+    {
+        return headerBytes[0] == -128 &&
+               headerBytes[3] == 3 && // SSL 3.0 / TLS 1.x
+                (headerBytes[4] == 0 || // SSL 3.0
+                 headerBytes[4] == 1 || // TLS 1.0
+                 headerBytes[4] == 2 || // TLS 1.1
+                 headerBytes[4] == 3);
+    }
+
+
     private static class SSLNetworkConnection implements NetworkConnection
     {
         private final NetworkConnection _network;



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to