libcrypto: Use new RAND_priv_bytes() for strong randomness
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
родитель
c503bb572e
Коммит
38c53db953
@ -120,6 +120,10 @@ if (OPENSSL_FOUND)
|
|||||||
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
|
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
|
||||||
check_function_exists(EVP_CIPHER_CTX_new HAVE_OPENSSL_EVP_CIPHER_CTX_NEW)
|
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_INCLUDES)
|
||||||
unset(CMAKE_REQUIRED_LIBRARIES)
|
unset(CMAKE_REQUIRED_LIBRARIES)
|
||||||
endif()
|
endif()
|
||||||
|
@ -93,7 +93,14 @@ void ssh_reseed(void){
|
|||||||
*/
|
*/
|
||||||
int ssh_get_random(void *where, int len, int strong)
|
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;
|
(void)strong;
|
||||||
|
#endif /* HAVE_RAND_PRIV_BYTES */
|
||||||
|
|
||||||
/* Returns -1 when not supported, 0 on error, 1 on success */
|
/* Returns -1 when not supported, 0 on error, 1 on success */
|
||||||
return !!RAND_bytes(where, len);
|
return !!RAND_bytes(where, len);
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user