Rand
A Rust library to securely get random entropy. This crate derives its name from
Linux's getrandom
function, but is cross platform, roughly supporting the same
set of platforms as Rust's std
lib.
This is a low-level API. Most users should prefer a high-level random-number library like Rand or a cryptography library.
Usage
Add this to your Cargo.toml
:
[dependencies]
getrandom = "0.1"
Then invoke the getrandom
function:
fn get_random_buf() -> Result<[u8; 32], getrandom::Error> {
let mut buf = [0u8; 32];
getrandom::getrandom(&mut buf)?;
buf
}
Features
This library is no_std
compatible on SGX but requires std
on most platforms.
The log
library is supported as an optional dependency. If enabled, error
reporting will be improved on some platforms.
For WebAssembly (wasm32
), Enscripten targets are supported directly; otherwise
one of the following features must be enabled:
Versions
This crate requires Rustc version 1.28.0 or later due to usage of NonZeroU32
.
License
The getrandom
library is distributed under the terms of both the MIT license
and the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT, and COPYRIGHT for details.