use std::marker::PhantomData;
use cryptoki_sys::*;
#[derive(Debug, Clone, Copy)]
#[repr(transparent)]
pub struct KeyDerivationStringData<'a> {
inner: CK_KEY_DERIVATION_STRING_DATA,
_marker: PhantomData<&'a [u8]>,
}
impl<'a> KeyDerivationStringData<'a> {
pub fn new(data: &'a [u8]) -> Self {
Self {
inner: CK_KEY_DERIVATION_STRING_DATA {
pData: data.as_ptr() as *mut _,
ulLen: data
.len()
.try_into()
.expect("length of data does not fit in CK_ULONG"),
},
_marker: PhantomData,
}
}
}
#[derive(Debug, Clone, Copy)]
#[repr(transparent)]
pub struct ExtractParams(CK_EXTRACT_PARAMS);
impl ExtractParams {
pub fn new(index: usize) -> Self {
Self(
index
.try_into()
.expect("given usize value does not fit into CK_ULONG"),
)
}
}