hi,

i found a big performace problem with ssl_connect(). I WOULDN'T CALL IT A
REAL BUG, BUT IT COULD BE A BIG PROBLEM !!!
i integrated openssl inside my application and the ssl handshake needs more
than 30 seconds. on the same system but under win95 it just takes 5 seconds.
the problem seems to be inside the \crypto\rand\rand-win.c file. the
function rand_poll() enumerates all threads, processes, modules and heaps to
get the entropy of the system.
this way may be very save for creating a good random seed, but imagine if
there are a lot more of other processes and threads running beside openssl.
rand_poll() doesn't stops enumerating until all processes (and so on) are
touched.
normaly there are 100 threads, 30 processes, 50 modules and 10 heaplists
'running' on my system (win2000) and the ssl handshake takes less than 2
seconds.
inside my application there are 247 threads, 46 processes, 107 modules and
22 heaplists 'running' and the ssl handshake time grows up to 30 seconds.
my suggestion is to build in an counter for all of these values and stop
enumerating after each counter is on a specified max value.
please think about it or prove me wrong.

rené

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to