1
1

libcrypto: Use new RAND_priv_bytes() for strong randomness

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
Andreas Schneider 2018-07-05 08:56:33 +02:00
родитель c503bb572e
Коммит 38c53db953
2 изменённых файлов: 11 добавлений и 0 удалений

Просмотреть файл

@ -120,6 +120,10 @@ if (OPENSSL_FOUND)
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
check_function_exists(EVP_CIPHER_CTX_new HAVE_OPENSSL_EVP_CIPHER_CTX_NEW)
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
check_function_exists(RAND_priv_bytes HAVE_OPENSSL_RAND_PRIV_BYTES)
unset(CMAKE_REQUIRED_INCLUDES)
unset(CMAKE_REQUIRED_LIBRARIES)
endif()

Просмотреть файл

@ -93,7 +93,14 @@ void ssh_reseed(void){
*/
int ssh_get_random(void *where, int len, int strong)
{
#ifdef HAVE_OPENSSL_RAND_PRIV_BYTES
if (strong) {
/* Returns -1 when not supported, 0 on error, 1 on success */
return !!RAND_priv_bytes(where, len);
}
#else
(void)strong;
#endif /* HAVE_RAND_PRIV_BYTES */
/* Returns -1 when not supported, 0 on error, 1 on success */
return !!RAND_bytes(where, len);