--- mysys_ssl/my_crypt.cc.orig 2017-01-17 19:38:25 UTC +++ mysys_ssl/my_crypt.cc @@ -275,10 +275,14 @@ int my_random_bytes(uchar* buf, int num) return MY_AES_OK; } #else +#include #include int my_random_bytes(uchar *buf, int num) { +#if defined(LIBRESSL_VERSION_NUMBER) + arc4random_buf(buf, num); +#else /* Unfortunately RAND_bytes manual page does not provide any guarantees in relation to blocking behavior. Here we explicitly use SSLeay random @@ -288,6 +292,7 @@ int my_random_bytes(uchar *buf, int num) RAND_METHOD *rand = RAND_SSLeay(); if (rand == NULL || rand->bytes(buf, num) != 1) return MY_AES_OPENSSL_ERROR; +#endif return MY_AES_OK; } #endif