From a9bf2ac7265c143eb11538a0ecd491d96edbf4da Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Fri, 17 Feb 2012 18:47:54 +0100 Subject: Try to really fix compilation failures of the _ssl module under very old OpenSSLs. --- Lib/ssl.py | 6 +++++- Modules/_ssl.c | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Lib/ssl.py b/Lib/ssl.py index 0282ee9..e899059 100644 --- a/Lib/ssl.py +++ b/Lib/ssl.py @@ -68,12 +68,16 @@ from _ssl import ( from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED from _ssl import ( OP_ALL, OP_NO_SSLv2, OP_NO_SSLv3, OP_NO_TLSv1, - OP_CIPHER_SERVER_PREFERENCE, OP_SINGLE_DH_USE, OP_SINGLE_ECDH_USE, + OP_CIPHER_SERVER_PREFERENCE, OP_SINGLE_DH_USE ) try: from _ssl import OP_NO_COMPRESSION except ImportError: pass +try: + from _ssl import OP_SINGLE_ECDH_USE +except ImportError: + pass from _ssl import RAND_status, RAND_egd, RAND_add, RAND_bytes, RAND_pseudo_bytes from _ssl import ( SSL_ERROR_ZERO_RETURN, diff --git a/Modules/_ssl.c b/Modules/_ssl.c index e25f354..8225e68 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -145,6 +145,12 @@ static unsigned int _ssl_locks_count = 0; # define HAVE_OPENSSL_FINISHED 0 #endif +/* ECDH support got added to OpenSSL in 0.9.8 */ +#if OPENSSL_VERSION_NUMBER < 0x0090800fL && !defined(OPENSSL_NO_ECDH) +# define OPENSSL_NO_ECDH +#endif + + typedef struct { PyObject_HEAD SSL_CTX *ctx; -- cgit v0.12