1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
use libc::c_int; use ffi; pub fn rand_bytes(len: usize) -> Vec<u8> { unsafe { let mut out = Vec::with_capacity(len); ffi::init(); let r = ffi::RAND_bytes(out.as_mut_ptr(), len as c_int); if r != 1 as c_int { panic!() } out.set_len(len); out } } #[cfg(test)] mod tests { use super::rand_bytes; #[test] fn test_rand_bytes() { let bytes = rand_bytes(32); println!("{:?}", bytes); } }