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 crate::{
error::*,
pk11::types::Slot,
util::{ensure_nss_initialized, map_nss_secstatus, ScopedPtr},
};
use std::convert::TryFrom;
pub fn generate_random(data: &mut [u8]) -> Result<()> {
ensure_nss_initialized();
let len = i32::try_from(data.len())?;
map_nss_secstatus(|| unsafe { nss_sys::PK11_GenerateRandom(data.as_mut_ptr(), len) })?;
Ok(())
}
pub(crate) fn get_internal_slot() -> Result<Slot> {
unsafe { Slot::from_ptr(nss_sys::PK11_GetInternalSlot()) }
}