osom_lib_entropy 0.1.8

OS-backed entropy collection for osom_lib.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use windows_sys::Win32::Security::Cryptography::ProcessPrng;

use crate::std::StdEntropyError;

#[inline]
pub fn fill(dst_ptr: *mut u8, dst_len: usize) -> Result<(), StdEntropyError> {
    let result = unsafe {
        ProcessPrng(dst_ptr.cast(), dst_len)
    };
    if result != 1 {
        return Err(StdEntropyError::GenericKernelError);
    }
    Ok(())
}