Name Description Size
3ds.rs Implementation for Nintendo 3DS 323
apple-other.rs Implementation for iOS, tvOS, and watchOS where `getentropy` is unavailable. 1104
bsd_arandom.rs Implementation for FreeBSD and NetBSD 1399
custom.rs An implementation which calls out to an externally defined function. 4296
dragonfly.rs Implementation for DragonFly BSD 740
emscripten.rs Implementation for Emscripten 508
error.rs 8073
error_impls.rs 335
espidf.rs Implementation for ESP-IDF 778
fuchsia.rs Implementation for Fuchsia Zircon 340
hermit.rs Implementation for Hermit 1048
hurd.rs Implementation for GNU/Hurd 319
js.rs Implementation for WASM based on Web and Node.js 6403
lazy.rs 1957
lib.rs 20708
linux_android.rs Implementation for Linux / Android without `/dev/urandom` fallback 275
linux_android_with_fallback.rs Implementation for Linux / Android with `/dev/urandom` fallback 1198
macos.rs Implementation for macOS 518
openbsd.rs Implementation for OpenBSD 497
rdrand.rs RDRAND backend for x86(-64) targets 4149
solaris_illumos.rs Implementation for the Solaris family `/dev/random` uses the Hash_DRBG with SHA512 algorithm from NIST SP 800-90A. `/dev/urandom` uses the FIPS 186-2 algorithm, which is considered less secure. We choose to read from `/dev/random` (and use GRND_RANDOM). Solaris 11.3 and late-2018 illumos added the getrandom(2) libc function. To make sure we can compile on both Solaris and its derivatives, as well as function, we check for the existence of getrandom(2) in libc by calling libc::dlsym. 1603
solid.rs Implementation for SOLID 625
use_file.rs Implementations that just need to read from a file 3955
util.rs 1412
util_libc.rs 6515
vita.rs Implementation for PS Vita 416
vxworks.rs Implementation for VxWorks 885
wasi.rs Implementation for WASI 541
windows.rs Implementation for Windows 2018