1use crate::{
6 error::*,
7 pk11::types::Slot,
8 util::{assert_nss_initialized, map_nss_secstatus, ScopedPtr},
9};
10
11pub fn generate_random(data: &mut [u8]) -> Result<()> {
12 assert_nss_initialized();
14 let len = i32::try_from(data.len())?;
15 map_nss_secstatus(|| unsafe { nss_sys::PK11_GenerateRandom(data.as_mut_ptr(), len) })?;
16 Ok(())
17}
18
19pub(crate) fn get_internal_slot() -> Result<Slot> {
23 unsafe { Slot::from_ptr(nss_sys::PK11_GetInternalSlot()) }
24}
25
26#[cfg(feature = "keydb")]
30pub(crate) fn get_internal_key_slot() -> Result<Slot> {
31 unsafe { Slot::from_ptr(nss_sys::PK11_GetInternalKeySlot()) }
32}