From 59c88da74d6d35f3529bdf5aa8b2fbdd8b9f39af Mon Sep 17 00:00:00 2001 From: Nick Zitzmann Date: Sat, 7 Jul 2012 16:03:16 -0600 Subject: [PATCH] darwinssl: don't use arc4random_buf Re-wrote Curl_darwinssl_random() to not use arc4random_buf() because the function is not available prior to iOS 4.3 and OS X 10.7. --- lib/curl_darwinssl.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/curl_darwinssl.c b/lib/curl_darwinssl.c index 5a2bcf5ff..893a6fc2a 100644 --- a/lib/curl_darwinssl.c +++ b/lib/curl_darwinssl.c @@ -835,8 +835,19 @@ void Curl_darwinssl_random(struct SessionHandle *data, unsigned char *entropy, size_t length) { + /* arc4random_buf() isn't available on cats older than Lion, so let's + do this manually for the benefit of the older cats. */ + size_t i; + u_int32_t random = 0; + + for(i = 0 ; i < length ; i++) { + if(i % sizeof(u_int32_t) == 0) + random = arc4random(); + entropy[i] = random & 0xFF; + random >>= 8; + } + i = random = 0; (void)data; - arc4random_buf(entropy, length); } void Curl_darwinssl_md5sum(unsigned char *tmp, /* input */