[Python-checkins] CVS: python/dist/src/Modules socketmodule.c,1.138,1.139
Moshe Zadka
moshez@users.sourceforge.net
Sun, 18 Mar 2001 09:11:58 -0800
Update of /cvsroot/python/python/dist/src/Modules
In directory usw-pr-cvs1:/tmp/cvs-serv21822
Modified Files:
socketmodule.c
Log Message:
Commiting patch 40510
Index: socketmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/socketmodule.c,v
retrieving revision 1.138
retrieving revision 1.139
diff -C2 -r1.138 -r1.139
*** socketmodule.c 2001/03/02 06:27:12 1.138
--- socketmodule.c 2001/03/18 17:11:56 1.139
***************
*** 195,198 ****
--- 195,199 ----
#include "openssl/ssl.h"
#include "openssl/err.h"
+ #include "openssl/rand.h"
#endif /* USE_SSL */
***************
*** 2545,2548 ****
--- 2546,2575 ----
(PyObject *)&SSL_Type) != 0)
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 */
PyDict_SetItemString(d, "error", PySocket_Error);