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>5 pub 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