Kaydet (Commit) 13324e1e authored tarafından Guido van Rossum's avatar Guido van Rossum

Reverting Moshe's EGD patch *and* Martin's patch to make it work with

OpenSSL versions beore 0.9.5.  This just is too experimental to be
worth it, especially since the user would have to do some severe
hacking of the Modules/Setup file to even enable the EGD code, and
without the EGD code it would always spit out a warning on some
systems -- even when socket.ssl() is not used.  Fixing that properly
is not my job; the EGD patch is clearly not so important that it
should hold up the 2.1 release.
üst e04eaec5
...@@ -194,14 +194,6 @@ Socket methods: ...@@ -194,14 +194,6 @@ Socket methods:
#include "openssl/pem.h" #include "openssl/pem.h"
#include "openssl/ssl.h" #include "openssl/ssl.h"
#include "openssl/err.h" #include "openssl/err.h"
#include "openssl/rand.h"
#if OPENSSL_VERSION_NUMBER < 0x0090510fL
/* RAND_status was added in OpenSSL 0.9.5. If it is not available,
we assume that seeding the RNG is necessary every time. */
#define RAND_status() 0
#endif
#endif /* USE_SSL */ #endif /* USE_SSL */
#if defined(MS_WINDOWS) || defined(__BEOS__) #if defined(MS_WINDOWS) || defined(__BEOS__)
...@@ -2552,32 +2544,6 @@ init_socket(void) ...@@ -2552,32 +2544,6 @@ init_socket(void)
if (PyDict_SetItemString(d, "SSLType", if (PyDict_SetItemString(d, "SSLType",
(PyObject *)&SSL_Type) != 0) (PyObject *)&SSL_Type) != 0)
return; return;
if (RAND_status() == 0) {
#ifdef USE_EGD
char random_device[MAXPATHLEN+1];
if (!RAND_file_name (random_device, MAXPATHLEN + 1)) {
PyErr_SetObject(SSLErrorObject,
PyString_FromString("RAND_file_name error"));
return;
}
if (RAND_egd (random_device) == -1) {
PyErr_SetObject(SSLErrorObject,
PyString_FromString("RAND_egd error"));
return;
}
#else /* USE_EGD not defined */
char random_string[32];
int i;
PyErr_Warn(PyExc_RuntimeWarning,
"using insecure method to generate random numbers");
srand(time(NULL));
for(i=0; i<sizeof(random_string); i++) {
random_string[i] = rand();
}
RAND_seed(random_string, sizeof(random_string));
#endif /* USE_EGD */
}
#endif /* USE_SSL */ #endif /* USE_SSL */
PyDict_SetItemString(d, "error", PySocket_Error); PyDict_SetItemString(d, "error", PySocket_Error);
PySocketSock_Type.ob_type = &PyType_Type; PySocketSock_Type.ob_type = &PyType_Type;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment