Commit 1fabd6bbf3

Shritesh Bhattarai <shritesh@shritesh.com>
2019-05-01 02:48:20
wasi: implement getRandomBytes
1 parent 79a139a
Changed files (2)
std
std/os/wasi/core.zig
@@ -20,3 +20,5 @@ pub extern "wasi_unstable" fn proc_raise(sig: signal_t) errno_t;
 pub extern "wasi_unstable" fn proc_exit(rval: exitcode_t) noreturn;
 
 pub extern "wasi_unstable" fn fd_write(fd: fd_t, iovs: *const ciovec_t, iovs_len: usize, nwritten: *usize) errno_t;
+
+pub extern "wasi_unstable" fn random_get(buf: [*]u8, buf_len: usize) errno_t;
std/os.zig
@@ -146,6 +146,12 @@ pub fn getRandomBytes(buf: []u8) !void {
                 };
             }
         },
+        Os.wasi => {
+            const random_get_result = os.wasi.random_get(buf.ptr, buf.len);
+            if (random_get_result != os.wasi.ESUCCESS) {
+                return error.Unknown;
+            }
+        },
         Os.zen => {
             const randomness = []u8{ 42, 1, 7, 12, 22, 17, 99, 16, 26, 87, 41, 45 };
             var i: usize = 0;