mirror of
https://github.com/python/cpython.git
synced 2025-09-27 10:50:04 +00:00
merge 3.4 (#22935)
This commit is contained in:
commit
22293df016
4 changed files with 24 additions and 8 deletions
|
@ -889,7 +889,7 @@ class TestTLS_FTPClass(TestCase):
|
||||||
|
|
||||||
def test_auth_ssl(self):
|
def test_auth_ssl(self):
|
||||||
try:
|
try:
|
||||||
self.client.ssl_version = ssl.PROTOCOL_SSLv3
|
self.client.ssl_version = ssl.PROTOCOL_SSLv23
|
||||||
self.client.auth()
|
self.client.auth()
|
||||||
self.assertRaises(ValueError, self.client.auth)
|
self.assertRaises(ValueError, self.client.auth)
|
||||||
finally:
|
finally:
|
||||||
|
|
|
@ -2410,19 +2410,23 @@ else:
|
||||||
sys.stdout.write(
|
sys.stdout.write(
|
||||||
" SSL2 client to SSL23 server test unexpectedly failed:\n %s\n"
|
" SSL2 client to SSL23 server test unexpectedly failed:\n %s\n"
|
||||||
% str(x))
|
% str(x))
|
||||||
|
if hasattr(ssl, 'PROTOCOL_SSLv3'):
|
||||||
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, 'SSLv3')
|
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, 'SSLv3')
|
||||||
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True)
|
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True)
|
||||||
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_TLSv1, 'TLSv1')
|
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_TLSv1, 'TLSv1')
|
||||||
|
|
||||||
|
if hasattr(ssl, 'PROTOCOL_SSLv3'):
|
||||||
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, 'SSLv3', ssl.CERT_OPTIONAL)
|
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, 'SSLv3', ssl.CERT_OPTIONAL)
|
||||||
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True, ssl.CERT_OPTIONAL)
|
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True, ssl.CERT_OPTIONAL)
|
||||||
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_TLSv1, 'TLSv1', ssl.CERT_OPTIONAL)
|
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_TLSv1, 'TLSv1', ssl.CERT_OPTIONAL)
|
||||||
|
|
||||||
|
if hasattr(ssl, 'PROTOCOL_SSLv3'):
|
||||||
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, 'SSLv3', ssl.CERT_REQUIRED)
|
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, 'SSLv3', ssl.CERT_REQUIRED)
|
||||||
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True, ssl.CERT_REQUIRED)
|
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True, ssl.CERT_REQUIRED)
|
||||||
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_TLSv1, 'TLSv1', ssl.CERT_REQUIRED)
|
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_TLSv1, 'TLSv1', ssl.CERT_REQUIRED)
|
||||||
|
|
||||||
# Server with specific SSL options
|
# Server with specific SSL options
|
||||||
|
if hasattr(ssl, 'PROTOCOL_SSLv3'):
|
||||||
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, False,
|
try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, False,
|
||||||
server_options=ssl.OP_NO_SSLv3)
|
server_options=ssl.OP_NO_SSLv3)
|
||||||
# Will choose TLSv1
|
# Will choose TLSv1
|
||||||
|
@ -2433,6 +2437,8 @@ else:
|
||||||
|
|
||||||
|
|
||||||
@skip_if_broken_ubuntu_ssl
|
@skip_if_broken_ubuntu_ssl
|
||||||
|
@unittest.skipUnless(hasattr(ssl, 'PROTOCOL_SSLv3'),
|
||||||
|
"OpenSSL is compiled without SSLv3 support")
|
||||||
def test_protocol_sslv3(self):
|
def test_protocol_sslv3(self):
|
||||||
"""Connecting to an SSLv3 server with various client options"""
|
"""Connecting to an SSLv3 server with various client options"""
|
||||||
if support.verbose:
|
if support.verbose:
|
||||||
|
@ -2460,6 +2466,7 @@ else:
|
||||||
try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1, 'TLSv1', ssl.CERT_REQUIRED)
|
try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1, 'TLSv1', ssl.CERT_REQUIRED)
|
||||||
if hasattr(ssl, 'PROTOCOL_SSLv2'):
|
if hasattr(ssl, 'PROTOCOL_SSLv2'):
|
||||||
try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_SSLv2, False)
|
try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_SSLv2, False)
|
||||||
|
if hasattr(ssl, 'PROTOCOL_SSLv3'):
|
||||||
try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_SSLv3, False)
|
try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_SSLv3, False)
|
||||||
try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_SSLv23, False,
|
try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_SSLv23, False,
|
||||||
client_options=ssl.OP_NO_TLSv1)
|
client_options=ssl.OP_NO_TLSv1)
|
||||||
|
@ -2475,6 +2482,7 @@ else:
|
||||||
try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_1, 'TLSv1.1')
|
try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_1, 'TLSv1.1')
|
||||||
if hasattr(ssl, 'PROTOCOL_SSLv2'):
|
if hasattr(ssl, 'PROTOCOL_SSLv2'):
|
||||||
try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_SSLv2, False)
|
try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_SSLv2, False)
|
||||||
|
if hasattr(ssl, 'PROTOCOL_SSLv3'):
|
||||||
try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_SSLv3, False)
|
try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_SSLv3, False)
|
||||||
try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_SSLv23, False,
|
try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_SSLv23, False,
|
||||||
client_options=ssl.OP_NO_TLSv1_1)
|
client_options=ssl.OP_NO_TLSv1_1)
|
||||||
|
@ -2497,6 +2505,7 @@ else:
|
||||||
client_options=ssl.OP_NO_SSLv3|ssl.OP_NO_SSLv2,)
|
client_options=ssl.OP_NO_SSLv3|ssl.OP_NO_SSLv2,)
|
||||||
if hasattr(ssl, 'PROTOCOL_SSLv2'):
|
if hasattr(ssl, 'PROTOCOL_SSLv2'):
|
||||||
try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_SSLv2, False)
|
try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_SSLv2, False)
|
||||||
|
if hasattr(ssl, 'PROTOCOL_SSLv3'):
|
||||||
try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_SSLv3, False)
|
try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_SSLv3, False)
|
||||||
try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_SSLv23, False,
|
try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_SSLv23, False,
|
||||||
client_options=ssl.OP_NO_TLSv1_2)
|
client_options=ssl.OP_NO_TLSv1_2)
|
||||||
|
|
|
@ -1269,6 +1269,9 @@ IDLE
|
||||||
Build
|
Build
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
- Issue #22935: Allow the ssl module to be compiled if openssl doesn't support
|
||||||
|
SSL 3.
|
||||||
|
|
||||||
- Issue #22592: Drop support of the Borland C compiler to build Python. The
|
- Issue #22592: Drop support of the Borland C compiler to build Python. The
|
||||||
distutils module still supports it to build extensions.
|
distutils module still supports it to build extensions.
|
||||||
|
|
||||||
|
|
|
@ -2132,8 +2132,10 @@ context_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
else if (proto_version == PY_SSL_VERSION_TLS1_2)
|
else if (proto_version == PY_SSL_VERSION_TLS1_2)
|
||||||
ctx = SSL_CTX_new(TLSv1_2_method());
|
ctx = SSL_CTX_new(TLSv1_2_method());
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SSL3
|
||||||
else if (proto_version == PY_SSL_VERSION_SSL3)
|
else if (proto_version == PY_SSL_VERSION_SSL3)
|
||||||
ctx = SSL_CTX_new(SSLv3_method());
|
ctx = SSL_CTX_new(SSLv3_method());
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_SSL2
|
#ifndef OPENSSL_NO_SSL2
|
||||||
else if (proto_version == PY_SSL_VERSION_SSL2)
|
else if (proto_version == PY_SSL_VERSION_SSL2)
|
||||||
ctx = SSL_CTX_new(SSLv2_method());
|
ctx = SSL_CTX_new(SSLv2_method());
|
||||||
|
@ -4454,8 +4456,10 @@ PyInit__ssl(void)
|
||||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
||||||
PY_SSL_VERSION_SSL2);
|
PY_SSL_VERSION_SSL2);
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SSL3
|
||||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
||||||
PY_SSL_VERSION_SSL3);
|
PY_SSL_VERSION_SSL3);
|
||||||
|
#endif
|
||||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
||||||
PY_SSL_VERSION_SSL23);
|
PY_SSL_VERSION_SSL23);
|
||||||
PyModule_AddIntConstant(m, "PROTOCOL_TLSv1",
|
PyModule_AddIntConstant(m, "PROTOCOL_TLSv1",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue