diff options
| author | nia <nia@NetBSD.org> | 2019-11-04 17:16:11 +0000 |
|---|---|---|
| committer | nia <nia@NetBSD.org> | 2019-11-04 17:16:11 +0000 |
| commit | 23d221153f3d453166a765010f0029369e77b508 (patch) | |
| tree | 0ab3faef0b223c1fdab885defcdee951cfa7c184 /src/libstd/sys/unix/rand.rs | |
| parent | 2477e2493e67527fc282c7239e019f7ebd513a1a (diff) | |
| download | rust-23d221153f3d453166a765010f0029369e77b508.tar.gz rust-23d221153f3d453166a765010f0029369e77b508.zip | |
Use KERN_ARND syscall for random numbers on NetBSD, same as FreeBSD.
This system call is present on all supported NetBSD versions and provides an endless stream of non-blocking random data from the kernel's ChaCha20-based CSPRNG. It doesn't require a file descriptor to be opened. The system call is documented here (under kern.arandom): https://netbsd.gw.com/cgi-bin/man-cgi?sysctl+7+NetBSD-7.0 And defined here: https://nxr.netbsd.org/xref/src/sys/sys/sysctl.h#273 The semantics are the same as FreeBSD so reading 256 bytes per call is fine. Similar change for getrandom crate: rust-random/getrandom#115
Diffstat (limited to 'src/libstd/sys/unix/rand.rs')
| -rw-r--r-- | src/libstd/sys/unix/rand.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/libstd/sys/unix/rand.rs b/src/libstd/sys/unix/rand.rs index be112f6fc03..decb705a049 100644 --- a/src/libstd/sys/unix/rand.rs +++ b/src/libstd/sys/unix/rand.rs @@ -15,6 +15,7 @@ pub fn hashmap_random_keys() -> (u64, u64) { not(target_os = "ios"), not(target_os = "openbsd"), not(target_os = "freebsd"), + not(target_os = "netbsd"), not(target_os = "fuchsia"), not(target_os = "redox")))] mod imp { @@ -142,7 +143,7 @@ mod imp { } } -#[cfg(target_os = "freebsd")] +#[cfg(target_os = "freebsd", target_os = "netbsd")] mod imp { use crate::ptr; |
