dryoc/rng.rs
1/// Provides random data up to `len` from the OS's random number generator.
2///
3/// # Panics
4///
5/// Panics if the operating system's random number generator fails.
6pub fn randombytes_buf(len: usize) -> Vec<u8> {
7 use rand::TryRng;
8 use rand::rngs::SysRng;
9
10 let mut r: Vec<u8> = vec![0; len];
11 SysRng
12 .try_fill_bytes(r.as_mut_slice())
13 .expect("failed to fill random bytes");
14
15 r
16}
17
18/// Provides random data up to length of `data` from the OS's random number
19/// generator.
20///
21/// # Panics
22///
23/// Panics if the operating system's random number generator fails.
24pub fn copy_randombytes(dest: &mut [u8]) {
25 use rand::TryRng;
26 use rand::rngs::SysRng;
27
28 SysRng
29 .try_fill_bytes(dest)
30 .expect("failed to fill random bytes");
31}