use crate::get_pkcs11;
use crate::types::function::Rv;
use crate::types::locking::CInitializeArgs;
use crate::Pkcs11;
use crate::Result;
use cryptoki_sys::CK_C_INITIALIZE_ARGS;
use std::ptr;
impl Pkcs11 {
pub fn initialize(&self, init_args: CInitializeArgs) -> Result<()> {
let mut init_args = CK_C_INITIALIZE_ARGS::from(init_args);
let init_args_ptr = &mut init_args;
unsafe {
Rv::from(get_pkcs11!(self, C_Initialize)(
init_args_ptr as *mut CK_C_INITIALIZE_ARGS as *mut ::std::ffi::c_void,
))
.into_result()
}
}
pub(crate) fn finalize_private(&self) -> Result<()> {
unsafe { Rv::from(get_pkcs11!(self, C_Finalize)(ptr::null_mut())).into_result() }
}
pub fn finalize(self) {}
}