From: Dr. Stephen Henson Date: Wed, 25 Apr 2012 23:04:42 +0000 (+0000) Subject: Change value of SSL_OP_NO_TLSv1_1 to avoid clash with SSL_OP_ALL and X-Git-Tag: master-post-reformat~1841 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=43d5b4ff31242a11f79b8506ef0fa2a7489459c7;ds=sidebyside Change value of SSL_OP_NO_TLSv1_1 to avoid clash with SSL_OP_ALL and OpenSSL 1.0.0. Add CHANGES entry noting the consequences. --- diff --git a/CHANGES b/CHANGES index 182a6da9d6..edcf43c0df 100644 --- a/CHANGES +++ b/CHANGES @@ -291,6 +291,16 @@ 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 @@ -325,6 +335,7 @@ 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] diff --git a/ssl/ssl.h b/ssl/ssl.h index 0f1a39081b..352e91b32a 100644 --- 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.