From: Nick Zitzmann Date: Sat, 7 Jul 2012 22:03:16 +0000 (-0600) Subject: darwinssl: don't use arc4random_buf X-Git-Tag: upstream/7.37.1~2790 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=59c88da74d6d35f3529bdf5aa8b2fbdd8b9f39af;p=platform%2Fupstream%2Fcurl.git 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. --- 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 */