1 //! Implementation for OpenBSD 2 use crate::{util_libc::last_os_error, Error}; 3 use core::mem::MaybeUninit; 4 getrandom_inner(dest: &mut [MaybeUninit<u8>]) -> Result<(), Error>5pub fn getrandom_inner(dest: &mut [MaybeUninit<u8>]) -> Result<(), Error> { 6 // getentropy(2) was added in OpenBSD 5.6, so we can use it unconditionally. 7 for chunk in dest.chunks_mut(256) { 8 let ret = unsafe { libc::getentropy(chunk.as_mut_ptr() as *mut libc::c_void, chunk.len()) }; 9 if ret == -1 { 10 return Err(last_os_error()); 11 } 12 } 13 Ok(()) 14 } 15