diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2011-05-09 22:48:41 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2011-05-09 22:48:41 (GMT) |
commit | 17ca323e7c0d6cc0495f4d1dbef628566a1f8f09 (patch) | |
tree | 67be7162ea1049891cf20a3ba2882fa8da2d9f16 /Modules | |
parent | db932786afdd569bbf2d6b84cfd5cdcb16cb4f27 (diff) | |
parent | ee18b6f2fda4afcdd1a22adb5b0637019510907b (diff) | |
download | cpython-17ca323e7c0d6cc0495f4d1dbef628566a1f8f09.zip cpython-17ca323e7c0d6cc0495f4d1dbef628566a1f8f09.tar.gz cpython-17ca323e7c0d6cc0495f4d1dbef628566a1f8f09.tar.bz2 |
(Merge 3.1) Issue #12012: ssl.PROTOCOL_SSLv2 becomes optional
OpenSSL is now compiled with OPENSSL_NO_SSL2 defined (without the SSLv2
protocol) on Debian: fix the ssl module on Debian Testing and Debian Sid.
Optimize also ssl.get_protocol_name(): speed does matter!
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/_ssl.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Modules/_ssl.c b/Modules/_ssl.c index e494264..a813d5f 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -63,8 +63,10 @@ enum py_ssl_cert_requirements { }; enum py_ssl_version { +#ifndef OPENSSL_NO_SSL2 PY_SSL_VERSION_SSL2, - PY_SSL_VERSION_SSL3, +#endif + PY_SSL_VERSION_SSL3=1, PY_SSL_VERSION_SSL23, PY_SSL_VERSION_TLS1 }; @@ -1450,8 +1452,10 @@ context_new(PyTypeObject *type, PyObject *args, PyObject *kwds) ctx = SSL_CTX_new(TLSv1_method()); else if (proto_version == PY_SSL_VERSION_SSL3) ctx = SSL_CTX_new(SSLv3_method()); +#ifndef OPENSSL_NO_SSL2 else if (proto_version == PY_SSL_VERSION_SSL2) ctx = SSL_CTX_new(SSLv2_method()); +#endif else if (proto_version == PY_SSL_VERSION_SSL23) ctx = SSL_CTX_new(SSLv23_method()); else @@ -2110,8 +2114,10 @@ PyInit__ssl(void) PY_SSL_CERT_REQUIRED); /* protocol versions */ +#ifndef OPENSSL_NO_SSL2 PyModule_AddIntConstant(m, "PROTOCOL_SSLv2", PY_SSL_VERSION_SSL2); +#endif PyModule_AddIntConstant(m, "PROTOCOL_SSLv3", PY_SSL_VERSION_SSL3); PyModule_AddIntConstant(m, "PROTOCOL_SSLv23", |