[fuchsia] Update to zx_cprng_draw

This change moves to the final version of zx_cprng_draw, which cannot
fail. If the syscall would fail, either the operating system terminates
or the kernel kills the userspace process (depending on where the error
comes from).

Change-Id: Iea9563c9f63ea5802e2cde741879fa58c19028f4
Reviewed-on: https://boringssl-review.googlesource.com/29424
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/crypto/rand_extra/fuchsia.c b/crypto/rand_extra/fuchsia.c
index 0a0d7f0..0514d80 100644
--- a/crypto/rand_extra/fuchsia.c
+++ b/crypto/rand_extra/fuchsia.c
@@ -24,18 +24,7 @@
 #include "../fipsmodule/rand/internal.h"
 
 void CRYPTO_sysrand(uint8_t *out, size_t requested) {
-  while (requested > 0) {
-    size_t output_bytes_this_pass = ZX_CPRNG_DRAW_MAX_LEN;
-    if (requested < output_bytes_this_pass) {
-      output_bytes_this_pass = requested;
-    }
-    zx_status_t status = zx_cprng_draw_new(out, output_bytes_this_pass);
-    if (status != ZX_OK) {
-      abort();
-    }
-    requested -= output_bytes_this_pass;
-    out += output_bytes_this_pass;
-  }
+  zx_cprng_draw(out, requested);
 }
 
 #endif  // OPENSSL_FUCHSIA && !BORINGSSL_UNSAFE_DETERMINISTIC_MODE