From 0ffb89211a3758658063c132c061bfa7e842f772 Mon Sep 17 00:00:00 2001
From: Nick Zitzmann <nick@chronosnet.com>
Date: Sat, 7 Jul 2012 16:03:16 -0600
Subject: [PATCH] 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 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/lib/curl_darwinssl.c b/lib/curl_darwinssl.c
index 5a2bcf5..893a6fc 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 */
-- 
1.7.7.5 (Apple Git-26)


