/getrandom

A small cross-platform library to securely get random data (entropy)

Primary LanguageRustApache License 2.0Apache-2.0

Rand

Build Status Build Status Crate API

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.

For WebAssembly (wasm32), Enscripten targets are supported directly; otherwise one of the following features must be enabled:

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.