rand-esdm

Crates.iorand-esdm
lib.rsrand-esdm
version0.2.3
created_at2023-08-10 17:47:09.097321+00
updated_at2025-05-22 08:45:05.148467+00
descriptionprovides interface to ESDM RNG server
homepage
repositoryhttps://github.com/thillux/rand-esdm
max_upload_size
id941217
size27,694
Markus Theil (thillux)

documentation

README

rand-esdm

crates.io

About

A small library for interfacing Rust with the ESDM user-space random server.

It currently provides the minimal amount of bindings necessary to use ESDM together with the rand crate.

Usage Example

Add rand-esdm to your Cargo.toml

rand-esdm = "0.2.1"

Generate Random Numbers with rand crate

Choose type of rng:

  • Only usable when fully seeded: let mut rng = EsdmRng::new(EsdmRngType::FullySeeded);
  • Only usable with fresh entropy: let mut rng = EsdmRng::new(EsdmRngType::PredictionResistant);

Include Rng utility trait from rand:

use rand::Rng;

Draw random numbers as needed, e.g.:

let rnd: u64 = rng.random();

Complete toy example can be found in examples/readme.rs:

use rand::{Rng, TryRngCore};
use rand_esdm::{EsdmRng, EsdmRngType};

fn main() {
    let mut rng = EsdmRng::new(EsdmRngType::FullySeeded).unwrap_err();
    let rnd: u32 = rng.random();
    println!("{rnd:X}");
}
Commit count: 87

cargo fmt