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
26
27
28
29
30
31
32
33
34
35
36
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) {}
}