Change value of SSL_OP_NO_TLSv1_1 to avoid clash with SSL_OP_ALL and
authorDr. Stephen Henson <steve@openssl.org>
Wed, 25 Apr 2012 23:04:42 +0000 (23:04 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Wed, 25 Apr 2012 23:04:42 +0000 (23:04 +0000)
OpenSSL 1.0.0. Add CHANGES entry noting the consequences.

CHANGES
ssl/ssl.h

diff --git a/CHANGES b/CHANGES
index 182a6da..edcf43c 100644 (file)
--- a/CHANGES
+++ b/CHANGES
 
  Changes between 1.0.1a and 1.0.1b [xx XXX xxxx]
 
+  *) OpenSSL 1.0.0 set SSL_OP_ALL to 0x80000FFFL and OpenSSL 1.0.1 and
+     1.0.1a set SSL_OP_NO_TLSv1_1 to 0x00000400L which would unfortunately
+     mean any application compiled against OpenSSL 1.0.0 headers setting
+     SSL_OP_ALL would also set SSL_OP_NO_TLSv1_1, unintentionally disablng
+     TLS 1.1 also. Fix this by changing the value ot SSL_OP_NO_TLSv1_1 to
+     0x10000000L Any application which was previously compiled against
+     OpenSSL 1.0.1 or 1.0.1a headers and which cares about SSL_OP_NO_TLSv1_1
+     will need to be recompiled as a result.
+     [Steve Henson]
+
   *) In order to ensure interoperabilty SSL_OP_NO_protocolX does not
      disable just protocol X, but all protocols above X *if* there are
      protocols *below* X still enabled. In more practical terms it means
         Most broken servers should now work.
      3. If all else fails setting OPENSSL_NO_TLS1_2_CLIENT will disable
         TLS 1.2 client support entirely.
+     [Steve Henson]
 
   *) Fix SEGV in Vector Permutation AES module observed in OpenSSH.
      [Andy Polyakov]
index 0f1a390..352e91b 100644 (file)
--- a/ssl/ssl.h
+++ b/ssl/ssl.h
@@ -560,7 +560,6 @@ struct ssl_session_st
 #define SSL_OP_SSLEAY_080_CLIENT_DH_BUG                        0x00000080L
 #define SSL_OP_TLS_D5_BUG                              0x00000100L
 #define SSL_OP_TLS_BLOCK_PADDING_BUG                   0x00000200L
-#define SSL_OP_NO_TLSv1_1                              0x00000400L
 
 /* Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added
  * in OpenSSL 0.9.6d.  Usually (depending on the application protocol)
@@ -608,6 +607,7 @@ struct ssl_session_st
 #define SSL_OP_NO_SSLv3                                        0x02000000L
 #define SSL_OP_NO_TLSv1                                        0x04000000L
 #define SSL_OP_NO_TLSv1_2                              0x08000000L
+#define SSL_OP_NO_TLSv1_1                              0x10000000L
 
 /* These next two were never actually used for anything since SSLeay
  * zap so we have some more flags.