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]