diff options
| author | William Ahern <william@25thandclement.com> | 2016-10-19 13:48:01 -0700 |
|---|---|---|
| committer | William Ahern <william@25thandclement.com> | 2016-10-19 13:48:01 -0700 |
| commit | b2c70855a7b05f207f38f4bdd58fe6600bef9ec9 (patch) | |
| tree | 8953324832f2a6178155887c117e3734ca1760b8 | |
| parent | 6e9ce5c2b3adfc52030815c43439f4890f31c32c (diff) | |
| download | luaossl-b2c70855a7b05f207f38f4bdd58fe6600bef9ec9.tar.gz luaossl-b2c70855a7b05f207f38f4bdd58fe6600bef9ec9.tar.bz2 luaossl-b2c70855a7b05f207f38f4bdd58fe6600bef9ec9.zip | |
unbreak BSDs by using arc4random_buf
| -rw-r--r-- | config.h.guess | 7 | ||||
| -rw-r--r-- | src/openssl.c | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/config.h.guess b/config.h.guess index c40f6bf..9b5fcdc 100644 --- a/config.h.guess +++ b/config.h.guess | |||
| @@ -657,6 +657,13 @@ | |||
| 657 | #define HAVE_ARC4RANDOM_ADDRANDOM (HAVE_ARC4RANDOM && !AG_OPENBSD_PREREQ(5,5)) | 657 | #define HAVE_ARC4RANDOM_ADDRANDOM (HAVE_ARC4RANDOM && !AG_OPENBSD_PREREQ(5,5)) |
| 658 | #endif | 658 | #endif |
| 659 | 659 | ||
| 660 | #ifndef HAVE_ARC4RANDOM_BUF | ||
| 661 | #define HAVE_ARC4RANDOM_BUF_APPLE_ (!__APPLE__ || AG_MACOS_PREREQ(10,7,0) || AG_IPHONE_PREREQ(4,3)) | ||
| 662 | #define HAVE_ARC4RANDOM_BUF_NETBSD_ (!__NetBSD__ || AG_NETBSD_PREREQ(6,0,0)) | ||
| 663 | #define HAVE_ARC4RANDOM_BUF_IFF_ (HAVE_ARC4RANDOM_BUF_APPLE_ && HAVE_ARC4RANDOM_BUF_NETBSD_) | ||
| 664 | #define HAVE_ARC4RANDOM_BUF (HAVE_ARC4RANDOM && HAVE_ARC4RANDOM_BUF_IFF_) | ||
| 665 | #endif | ||
| 666 | |||
| 660 | #ifndef HAVE_ARC4RANDOM_STIR | 667 | #ifndef HAVE_ARC4RANDOM_STIR |
| 661 | #define HAVE_ARC4RANDOM_STIR HAVE_ARC4RANDOM_ADDRANDOM | 668 | #define HAVE_ARC4RANDOM_STIR HAVE_ARC4RANDOM_ADDRANDOM |
| 662 | #endif | 669 | #endif |
diff --git a/src/openssl.c b/src/openssl.c index 78dbd65..88561aa 100644 --- a/src/openssl.c +++ b/src/openssl.c | |||
| @@ -7824,11 +7824,11 @@ static int randL_stir(struct randL_state *st, unsigned rqstd) { | |||
| 7824 | int error; | 7824 | int error; |
| 7825 | unsigned char data[256]; | 7825 | unsigned char data[256]; |
| 7826 | 7826 | ||
| 7827 | #if HAVE_ARC4RANDOM | 7827 | #if HAVE_ARC4RANDOM_BUF |
| 7828 | while (count < rqstd) { | 7828 | while (count < rqstd) { |
| 7829 | size_t n = MIN(rqstd - count, sizeof data); | 7829 | size_t n = MIN(rqstd - count, sizeof data); |
| 7830 | 7830 | ||
| 7831 | arc4random(data, n); | 7831 | arc4random_buf(data, n); |
| 7832 | 7832 | ||
| 7833 | RAND_seed(data, n); | 7833 | RAND_seed(data, n); |
| 7834 | 7834 | ||
