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
use ffi; ffi_enum_wrapper! { pub enum Level: ffi::gcry_random_level_t { Weak = ffi::GCRY_WEAK_RANDOM, Strong = ffi::GCRY_STRONG_RANDOM, VeryStrong = ffi::GCRY_VERY_STRONG_RANDOM, } } #[inline] pub fn make_nonce(buf: &mut [u8]) { let _ = crate::init_default(); unsafe { ffi::gcry_create_nonce(buf.as_mut_ptr().cast(), buf.len()); } } #[inline] pub fn randomize(level: Level, buf: &mut [u8]) { let _ = crate::init_default(); unsafe { ffi::gcry_randomize(buf.as_mut_ptr().cast(), buf.len(), level.raw()); } }