1 //! Implementation for Emscripten 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 // Emscripten 2.0.5 added getentropy, so we can use it unconditionally. 7 // Unlike other getentropy implementations, there is no max buffer length. 8 let ret = unsafe { libc::getentropy(dest.as_mut_ptr() as *mut libc::c_void, dest.len()) }; 9 if ret < 0 { 10 return Err(last_os_error()); 11 } 12 Ok(()) 13 } 14