openssl: RAND_status always exists in OpenSSL >= 0.9.7

and remove RAND_screen from configure since nothing is using that
function
This commit is contained in:
Daniel Stenberg 2016-11-11 13:37:01 +01:00
parent cbec00d914
commit f9de7c405f
2 changed files with 5 additions and 21 deletions

View File

@ -1637,9 +1637,7 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
dnl SSL_get_shutdown (but this check won't actually detect it there
dnl as it's a macro that needs the header files be included)
AC_CHECK_FUNCS( RAND_status \
RAND_screen \
RAND_egd \
AC_CHECK_FUNCS( RAND_egd \
ENGINE_cleanup \
SSL_get_shutdown \
SSLv2_client_method )

View File

@ -176,26 +176,12 @@ static int passwd_callback(char *buf, int num, int encrypting,
}
/*
* rand_enough() is a function that returns TRUE if we have seeded the random
* engine properly. We use some preprocessor magic to provide a seed_enough()
* macro to use, just to prevent a compiler warning on this function if we
* pass in an argument that is never used.
* rand_enough() returns TRUE if we have seeded the random engine properly.
*/
#ifdef HAVE_RAND_STATUS
#define seed_enough(x) rand_enough()
static bool rand_enough(void)
{
return (0 != RAND_status()) ? TRUE : FALSE;
}
#else
#define seed_enough(x) rand_enough(x)
static bool rand_enough(int nread)
{
/* this is a very silly decision to make */
return (nread > 500) ? TRUE : FALSE;
}
#endif
static int ossl_seed(struct Curl_easy *data)
{
@ -217,7 +203,7 @@ static int ossl_seed(struct Curl_easy *data)
data->set.str[STRING_SSL_RANDOM_FILE]:
RANDOM_FILE),
RAND_LOAD_LENGTH);
if(seed_enough(nread))
if(rand_enough())
return nread;
}
@ -237,7 +223,7 @@ static int ossl_seed(struct Curl_easy *data)
data->set.str[STRING_SSL_EGDSOCKET]:EGD_SOCKET);
if(-1 != ret) {
nread += ret;
if(seed_enough(nread))
if(rand_enough())
return nread;
}
}
@ -258,7 +244,7 @@ static int ossl_seed(struct Curl_easy *data)
if(buf[0]) {
/* we got a file name to try */
nread += RAND_load_file(buf, RAND_LOAD_LENGTH);
if(seed_enough(nread))
if(rand_enough())
return nread;
}