aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShritesh Bhattarai <shritesh@shritesh.com>2019-04-30 19:48:20 -0500
committerAndrew Kelley <andrew@ziglang.org>2019-04-30 20:50:41 -0400
commit1fabd6bbf355eb6111c4ed88be97f1ec2bf7b1ae (patch)
tree08865385688176839c86f76edc311d9054d66873
parent79a139ac633bc7f80f97d6be6f7f78a7aafa156b (diff)
downloadzig-1fabd6bbf355eb6111c4ed88be97f1ec2bf7b1ae.tar.gz
zig-1fabd6bbf355eb6111c4ed88be97f1ec2bf7b1ae.zip
wasi: implement getRandomBytes
-rw-r--r--std/os.zig6
-rw-r--r--std/os/wasi/core.zig2
2 files changed, 8 insertions, 0 deletions
diff --git a/std/os.zig b/std/os.zig
index c55597f135..50904f7345 100644
--- a/std/os.zig
+++ b/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;
diff --git a/std/os/wasi/core.zig b/std/os/wasi/core.zig
index 534fcc17ef..b296b83c70 100644
--- a/std/os/wasi/core.zig
+++ b/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;