diff --git a/cryptoki-sys/src/bindings/aarch64-apple-darwin.rs b/cryptoki-sys/src/bindings/aarch64-apple-darwin.rs index abd6f480..3b594e91 100644 --- a/cryptoki-sys/src/bindings/aarch64-apple-darwin.rs +++ b/cryptoki-sys/src/bindings/aarch64-apple-darwin.rs @@ -1,7 +1,7 @@ /* automatically generated by rust-bindgen 0.70.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 0; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -156,6 +156,12 @@ pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551; pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552; pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553; pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554; +pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559; +pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560; +pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561; +pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562; +pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563; +pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564; pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648; pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353; pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354; @@ -266,6 +272,7 @@ pub const CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0; pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1; pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2; pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3; +pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4; pub const CKG_MGF1_SHA1: CK_GENERATOR_FUNCTION = 1; pub const CKG_MGF1_SHA256: CK_GENERATOR_FUNCTION = 2; pub const CKG_MGF1_SHA384: CK_GENERATOR_FUNCTION = 3; @@ -339,6 +346,7 @@ pub const CKK_HKDF: CK_KEY_TYPE = 66; pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67; pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68; pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69; +pub const CKK_HSS: CK_KEY_TYPE = 70; pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_CAST5: CK_KEY_TYPE = 24; @@ -714,6 +722,7 @@ pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459; +pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387; @@ -769,6 +778,12 @@ pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940; pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941; pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942; +pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430; +pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431; +pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432; +pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433; +pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434; +pub const CKM_HSS: CK_MECHANISM_TYPE = 16435; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; @@ -796,6 +811,8 @@ pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2; pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3; pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4; +pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5; +pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6; pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648; pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1; pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2; @@ -902,6 +919,7 @@ pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513; pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514; +pub const CKR_KEY_EXHAUSTED: CK_RV = 515; pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; @@ -939,12 +957,18 @@ pub type CK_FLAGS = CK_ULONG; pub type CK_FLAGS_PTR = *mut CK_FLAGS; pub type CK_GENERATOR_FUNCTION = CK_ULONG; pub type CK_GENERATOR_FUNCTION_PTR = *mut CK_GENERATOR_FUNCTION; +pub type CK_HSS_LEVELS = CK_ULONG; +pub type CK_HSS_LEVELS_PTR = *mut CK_HSS_LEVELS; pub type CK_HW_FEATURE_TYPE = CK_ULONG; pub type CK_HW_FEATURE_TYPE_PTR = *mut CK_HW_FEATURE_TYPE; pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG; pub type CK_JAVA_MIDP_SECURITY_DOMAIN_PTR = *mut CK_JAVA_MIDP_SECURITY_DOMAIN; pub type CK_KEY_TYPE = CK_ULONG; pub type CK_KEY_TYPE_PTR = *mut CK_KEY_TYPE; +pub type CK_LMS_TYPE = CK_ULONG; +pub type CK_LMS_TYPE_PTR = *mut CK_LMS_TYPE; +pub type CK_LMOTS_TYPE = CK_ULONG; +pub type CK_LMOTS_TYPE_PTR = *mut CK_LMOTS_TYPE; pub type CK_MAC_GENERAL_PARAMS = CK_ULONG; pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS; pub type CK_MECHANISM_TYPE = CK_ULONG; @@ -1409,6 +1433,14 @@ pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR = *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS; pub type CK_HKDF_PARAMS_PTR_PTR = *mut *mut CK_HKDF_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA; @@ -1485,11 +1517,6 @@ pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR = *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_XEDDSA_PARAMS_PTR = *mut CK_XEDDSA_PARAMS; pub type CK_XEDDSA_PARAMS_PTR_PTR = *mut *mut CK_XEDDSA_PARAMS; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct specifiedParams { - _unused: [u8; 0], -} pub type specifiedParams_PTR = *mut specifiedParams; pub type specifiedParams_PTR_PTR = *mut *mut specifiedParams; #[repr(C)] @@ -2266,6 +2293,167 @@ impl Default for CK_HKDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_IKE_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bDataAsKey: CK_BBOOL, + pub bRekey: CK_BBOOL, + pub pNi: *mut CK_BYTE, + pub ulNiLen: CK_ULONG, + pub pNr: *mut CK_BYTE, + pub ulNrLen: CK_ULONG, + pub hNewKey: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 56usize]; + ["Alignment of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bDataAsKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bDataAsKey) - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bRekey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bRekey) - 9usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNi"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNi) - 16usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNiLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNiLen) - 24usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNr"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNr) - 32usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNrLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNrLen) - 40usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::hNewKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, hNewKey) - 48usize]; +}; +impl Default for CK_IKE_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasKeygxy: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub pExtraData: *mut CK_BYTE, + pub ulExtraDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::bHasKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, bHasKeygxy) - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::pExtraData"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, pExtraData) - 24usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::ulExtraDataLen"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, ulExtraDataLen) - 32usize]; +}; +impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasPrevKey: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub hPrevKey: CK_OBJECT_HANDLE, + pub pCKYi: *mut CK_BYTE, + pub ulCKYiLen: CK_ULONG, + pub pCKYr: *mut CK_BYTE, + pub ulCKYrLen: CK_ULONG, + pub keyNumber: CK_BYTE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 72usize]; + ["Alignment of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::bHasPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, bHasPrevKey) - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hPrevKey) - 24usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYi"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYi) - 32usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYiLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYiLen) - 40usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYr"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYr) - 48usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYrLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYrLen) - 56usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::keyNumber"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, keyNumber) - 64usize]; +}; +impl Default for CK_IKE1_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasSeedKey: CK_BBOOL, + pub hSeedKey: CK_OBJECT_HANDLE, + pub pSeedData: *mut CK_BYTE, + pub ulSeedDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::bHasSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, bHasSeedKey) - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::hSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, hSeedKey) - 16usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::pSeedData"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, pSeedData) - 24usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::ulSeedDataLen"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, ulSeedDataLen) - 32usize]; +}; +impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct CK_KEA_DERIVE_PARAMS { pub isSender: CK_BBOOL, pub ulRandomLen: CK_ULONG, @@ -3448,6 +3636,24 @@ const _: () = { ["Offset of field: CK_XEDDSA_PARAMS::hash"] [::std::mem::offset_of!(CK_XEDDSA_PARAMS, hash) - 0usize]; }; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct specifiedParams { + pub levels: CK_HSS_LEVELS, + pub lm_type: [CK_LMS_TYPE; 8usize], + pub lm_ots_type: [CK_LMOTS_TYPE; 8usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of specifiedParams"][::std::mem::size_of::() - 136usize]; + ["Alignment of specifiedParams"][::std::mem::align_of::() - 8usize]; + ["Offset of field: specifiedParams::levels"] + [::std::mem::offset_of!(specifiedParams, levels) - 0usize]; + ["Offset of field: specifiedParams::lm_type"] + [::std::mem::offset_of!(specifiedParams, lm_type) - 8usize]; + ["Offset of field: specifiedParams::lm_ots_type"] + [::std::mem::offset_of!(specifiedParams, lm_ots_type) - 72usize]; +}; pub type CK_SSL3_KEY_MAT_OUT_PTR = *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_OUT_PTR_PTR = *mut *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_PARAMS_PTR = *mut CK_SSL3_KEY_MAT_PARAMS; diff --git a/cryptoki-sys/src/bindings/aarch64-unknown-linux-gnu.rs b/cryptoki-sys/src/bindings/aarch64-unknown-linux-gnu.rs index abd6f480..3b594e91 100644 --- a/cryptoki-sys/src/bindings/aarch64-unknown-linux-gnu.rs +++ b/cryptoki-sys/src/bindings/aarch64-unknown-linux-gnu.rs @@ -1,7 +1,7 @@ /* automatically generated by rust-bindgen 0.70.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 0; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -156,6 +156,12 @@ pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551; pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552; pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553; pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554; +pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559; +pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560; +pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561; +pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562; +pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563; +pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564; pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648; pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353; pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354; @@ -266,6 +272,7 @@ pub const CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0; pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1; pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2; pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3; +pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4; pub const CKG_MGF1_SHA1: CK_GENERATOR_FUNCTION = 1; pub const CKG_MGF1_SHA256: CK_GENERATOR_FUNCTION = 2; pub const CKG_MGF1_SHA384: CK_GENERATOR_FUNCTION = 3; @@ -339,6 +346,7 @@ pub const CKK_HKDF: CK_KEY_TYPE = 66; pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67; pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68; pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69; +pub const CKK_HSS: CK_KEY_TYPE = 70; pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_CAST5: CK_KEY_TYPE = 24; @@ -714,6 +722,7 @@ pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459; +pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387; @@ -769,6 +778,12 @@ pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940; pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941; pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942; +pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430; +pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431; +pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432; +pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433; +pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434; +pub const CKM_HSS: CK_MECHANISM_TYPE = 16435; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; @@ -796,6 +811,8 @@ pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2; pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3; pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4; +pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5; +pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6; pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648; pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1; pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2; @@ -902,6 +919,7 @@ pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513; pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514; +pub const CKR_KEY_EXHAUSTED: CK_RV = 515; pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; @@ -939,12 +957,18 @@ pub type CK_FLAGS = CK_ULONG; pub type CK_FLAGS_PTR = *mut CK_FLAGS; pub type CK_GENERATOR_FUNCTION = CK_ULONG; pub type CK_GENERATOR_FUNCTION_PTR = *mut CK_GENERATOR_FUNCTION; +pub type CK_HSS_LEVELS = CK_ULONG; +pub type CK_HSS_LEVELS_PTR = *mut CK_HSS_LEVELS; pub type CK_HW_FEATURE_TYPE = CK_ULONG; pub type CK_HW_FEATURE_TYPE_PTR = *mut CK_HW_FEATURE_TYPE; pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG; pub type CK_JAVA_MIDP_SECURITY_DOMAIN_PTR = *mut CK_JAVA_MIDP_SECURITY_DOMAIN; pub type CK_KEY_TYPE = CK_ULONG; pub type CK_KEY_TYPE_PTR = *mut CK_KEY_TYPE; +pub type CK_LMS_TYPE = CK_ULONG; +pub type CK_LMS_TYPE_PTR = *mut CK_LMS_TYPE; +pub type CK_LMOTS_TYPE = CK_ULONG; +pub type CK_LMOTS_TYPE_PTR = *mut CK_LMOTS_TYPE; pub type CK_MAC_GENERAL_PARAMS = CK_ULONG; pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS; pub type CK_MECHANISM_TYPE = CK_ULONG; @@ -1409,6 +1433,14 @@ pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR = *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS; pub type CK_HKDF_PARAMS_PTR_PTR = *mut *mut CK_HKDF_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA; @@ -1485,11 +1517,6 @@ pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR = *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_XEDDSA_PARAMS_PTR = *mut CK_XEDDSA_PARAMS; pub type CK_XEDDSA_PARAMS_PTR_PTR = *mut *mut CK_XEDDSA_PARAMS; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct specifiedParams { - _unused: [u8; 0], -} pub type specifiedParams_PTR = *mut specifiedParams; pub type specifiedParams_PTR_PTR = *mut *mut specifiedParams; #[repr(C)] @@ -2266,6 +2293,167 @@ impl Default for CK_HKDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_IKE_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bDataAsKey: CK_BBOOL, + pub bRekey: CK_BBOOL, + pub pNi: *mut CK_BYTE, + pub ulNiLen: CK_ULONG, + pub pNr: *mut CK_BYTE, + pub ulNrLen: CK_ULONG, + pub hNewKey: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 56usize]; + ["Alignment of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bDataAsKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bDataAsKey) - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bRekey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bRekey) - 9usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNi"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNi) - 16usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNiLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNiLen) - 24usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNr"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNr) - 32usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNrLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNrLen) - 40usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::hNewKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, hNewKey) - 48usize]; +}; +impl Default for CK_IKE_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasKeygxy: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub pExtraData: *mut CK_BYTE, + pub ulExtraDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::bHasKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, bHasKeygxy) - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::pExtraData"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, pExtraData) - 24usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::ulExtraDataLen"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, ulExtraDataLen) - 32usize]; +}; +impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasPrevKey: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub hPrevKey: CK_OBJECT_HANDLE, + pub pCKYi: *mut CK_BYTE, + pub ulCKYiLen: CK_ULONG, + pub pCKYr: *mut CK_BYTE, + pub ulCKYrLen: CK_ULONG, + pub keyNumber: CK_BYTE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 72usize]; + ["Alignment of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::bHasPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, bHasPrevKey) - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hPrevKey) - 24usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYi"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYi) - 32usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYiLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYiLen) - 40usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYr"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYr) - 48usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYrLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYrLen) - 56usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::keyNumber"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, keyNumber) - 64usize]; +}; +impl Default for CK_IKE1_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasSeedKey: CK_BBOOL, + pub hSeedKey: CK_OBJECT_HANDLE, + pub pSeedData: *mut CK_BYTE, + pub ulSeedDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::bHasSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, bHasSeedKey) - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::hSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, hSeedKey) - 16usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::pSeedData"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, pSeedData) - 24usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::ulSeedDataLen"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, ulSeedDataLen) - 32usize]; +}; +impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct CK_KEA_DERIVE_PARAMS { pub isSender: CK_BBOOL, pub ulRandomLen: CK_ULONG, @@ -3448,6 +3636,24 @@ const _: () = { ["Offset of field: CK_XEDDSA_PARAMS::hash"] [::std::mem::offset_of!(CK_XEDDSA_PARAMS, hash) - 0usize]; }; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct specifiedParams { + pub levels: CK_HSS_LEVELS, + pub lm_type: [CK_LMS_TYPE; 8usize], + pub lm_ots_type: [CK_LMOTS_TYPE; 8usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of specifiedParams"][::std::mem::size_of::() - 136usize]; + ["Alignment of specifiedParams"][::std::mem::align_of::() - 8usize]; + ["Offset of field: specifiedParams::levels"] + [::std::mem::offset_of!(specifiedParams, levels) - 0usize]; + ["Offset of field: specifiedParams::lm_type"] + [::std::mem::offset_of!(specifiedParams, lm_type) - 8usize]; + ["Offset of field: specifiedParams::lm_ots_type"] + [::std::mem::offset_of!(specifiedParams, lm_ots_type) - 72usize]; +}; pub type CK_SSL3_KEY_MAT_OUT_PTR = *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_OUT_PTR_PTR = *mut *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_PARAMS_PTR = *mut CK_SSL3_KEY_MAT_PARAMS; diff --git a/cryptoki-sys/src/bindings/arm-unknown-linux-gnueabi.rs b/cryptoki-sys/src/bindings/arm-unknown-linux-gnueabi.rs index 8457188b..e2cf397b 100644 --- a/cryptoki-sys/src/bindings/arm-unknown-linux-gnueabi.rs +++ b/cryptoki-sys/src/bindings/arm-unknown-linux-gnueabi.rs @@ -1,7 +1,7 @@ /* automatically generated by rust-bindgen 0.70.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 0; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -156,6 +156,12 @@ pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551; pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552; pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553; pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554; +pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559; +pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560; +pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561; +pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562; +pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563; +pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564; pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648; pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353; pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354; @@ -266,6 +272,7 @@ pub const CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0; pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1; pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2; pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3; +pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4; pub const CKG_MGF1_SHA1: CK_GENERATOR_FUNCTION = 1; pub const CKG_MGF1_SHA256: CK_GENERATOR_FUNCTION = 2; pub const CKG_MGF1_SHA384: CK_GENERATOR_FUNCTION = 3; @@ -339,6 +346,7 @@ pub const CKK_HKDF: CK_KEY_TYPE = 66; pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67; pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68; pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69; +pub const CKK_HSS: CK_KEY_TYPE = 70; pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_CAST5: CK_KEY_TYPE = 24; @@ -714,6 +722,7 @@ pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459; +pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387; @@ -769,6 +778,12 @@ pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940; pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941; pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942; +pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430; +pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431; +pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432; +pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433; +pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434; +pub const CKM_HSS: CK_MECHANISM_TYPE = 16435; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; @@ -796,6 +811,8 @@ pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2; pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3; pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4; +pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5; +pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6; pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648; pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1; pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2; @@ -902,6 +919,7 @@ pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513; pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514; +pub const CKR_KEY_EXHAUSTED: CK_RV = 515; pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; @@ -939,12 +957,18 @@ pub type CK_FLAGS = CK_ULONG; pub type CK_FLAGS_PTR = *mut CK_FLAGS; pub type CK_GENERATOR_FUNCTION = CK_ULONG; pub type CK_GENERATOR_FUNCTION_PTR = *mut CK_GENERATOR_FUNCTION; +pub type CK_HSS_LEVELS = CK_ULONG; +pub type CK_HSS_LEVELS_PTR = *mut CK_HSS_LEVELS; pub type CK_HW_FEATURE_TYPE = CK_ULONG; pub type CK_HW_FEATURE_TYPE_PTR = *mut CK_HW_FEATURE_TYPE; pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG; pub type CK_JAVA_MIDP_SECURITY_DOMAIN_PTR = *mut CK_JAVA_MIDP_SECURITY_DOMAIN; pub type CK_KEY_TYPE = CK_ULONG; pub type CK_KEY_TYPE_PTR = *mut CK_KEY_TYPE; +pub type CK_LMS_TYPE = CK_ULONG; +pub type CK_LMS_TYPE_PTR = *mut CK_LMS_TYPE; +pub type CK_LMOTS_TYPE = CK_ULONG; +pub type CK_LMOTS_TYPE_PTR = *mut CK_LMOTS_TYPE; pub type CK_MAC_GENERAL_PARAMS = CK_ULONG; pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS; pub type CK_MECHANISM_TYPE = CK_ULONG; @@ -1409,6 +1433,14 @@ pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR = *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS; pub type CK_HKDF_PARAMS_PTR_PTR = *mut *mut CK_HKDF_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA; @@ -1485,11 +1517,6 @@ pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR = *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_XEDDSA_PARAMS_PTR = *mut CK_XEDDSA_PARAMS; pub type CK_XEDDSA_PARAMS_PTR_PTR = *mut *mut CK_XEDDSA_PARAMS; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct specifiedParams { - _unused: [u8; 0], -} pub type specifiedParams_PTR = *mut specifiedParams; pub type specifiedParams_PTR_PTR = *mut *mut specifiedParams; #[repr(C)] @@ -2266,6 +2293,167 @@ impl Default for CK_HKDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_IKE_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bDataAsKey: CK_BBOOL, + pub bRekey: CK_BBOOL, + pub pNi: *mut CK_BYTE, + pub ulNiLen: CK_ULONG, + pub pNr: *mut CK_BYTE, + pub ulNrLen: CK_ULONG, + pub hNewKey: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 28usize]; + ["Alignment of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bDataAsKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bDataAsKey) - 4usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bRekey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bRekey) - 5usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNi"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNi) - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNiLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNiLen) - 12usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNr"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNr) - 16usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNrLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNrLen) - 20usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::hNewKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, hNewKey) - 24usize]; +}; +impl Default for CK_IKE_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasKeygxy: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub pExtraData: *mut CK_BYTE, + pub ulExtraDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::size_of::() - 20usize]; + ["Alignment of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::bHasKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, bHasKeygxy) - 4usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, hKeygxy) - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::pExtraData"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, pExtraData) - 12usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::ulExtraDataLen"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, ulExtraDataLen) - 16usize]; +}; +impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasPrevKey: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub hPrevKey: CK_OBJECT_HANDLE, + pub pCKYi: *mut CK_BYTE, + pub ulCKYiLen: CK_ULONG, + pub pCKYr: *mut CK_BYTE, + pub ulCKYrLen: CK_ULONG, + pub keyNumber: CK_BYTE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 36usize]; + ["Alignment of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::bHasPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, bHasPrevKey) - 4usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hKeygxy) - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hPrevKey) - 12usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYi"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYi) - 16usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYiLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYiLen) - 20usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYr"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYr) - 24usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYrLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYrLen) - 28usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::keyNumber"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, keyNumber) - 32usize]; +}; +impl Default for CK_IKE1_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasSeedKey: CK_BBOOL, + pub hSeedKey: CK_OBJECT_HANDLE, + pub pSeedData: *mut CK_BYTE, + pub ulSeedDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::size_of::() - 20usize]; + ["Alignment of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::bHasSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, bHasSeedKey) - 4usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::hSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, hSeedKey) - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::pSeedData"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, pSeedData) - 12usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::ulSeedDataLen"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, ulSeedDataLen) - 16usize]; +}; +impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct CK_KEA_DERIVE_PARAMS { pub isSender: CK_BBOOL, pub ulRandomLen: CK_ULONG, @@ -3448,6 +3636,24 @@ const _: () = { ["Offset of field: CK_XEDDSA_PARAMS::hash"] [::std::mem::offset_of!(CK_XEDDSA_PARAMS, hash) - 0usize]; }; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct specifiedParams { + pub levels: CK_HSS_LEVELS, + pub lm_type: [CK_LMS_TYPE; 8usize], + pub lm_ots_type: [CK_LMOTS_TYPE; 8usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of specifiedParams"][::std::mem::size_of::() - 68usize]; + ["Alignment of specifiedParams"][::std::mem::align_of::() - 4usize]; + ["Offset of field: specifiedParams::levels"] + [::std::mem::offset_of!(specifiedParams, levels) - 0usize]; + ["Offset of field: specifiedParams::lm_type"] + [::std::mem::offset_of!(specifiedParams, lm_type) - 4usize]; + ["Offset of field: specifiedParams::lm_ots_type"] + [::std::mem::offset_of!(specifiedParams, lm_ots_type) - 36usize]; +}; pub type CK_SSL3_KEY_MAT_OUT_PTR = *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_OUT_PTR_PTR = *mut *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_PARAMS_PTR = *mut CK_SSL3_KEY_MAT_PARAMS; diff --git a/cryptoki-sys/src/bindings/generic.rs b/cryptoki-sys/src/bindings/generic.rs index 60276027..1447a676 100644 --- a/cryptoki-sys/src/bindings/generic.rs +++ b/cryptoki-sys/src/bindings/generic.rs @@ -1,7 +1,7 @@ /* automatically generated by rust-bindgen 0.70.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 0; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -156,6 +156,12 @@ pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551; pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552; pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553; pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554; +pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559; +pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560; +pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561; +pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562; +pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563; +pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564; pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648; pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353; pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354; @@ -266,6 +272,7 @@ pub const CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0; pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1; pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2; pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3; +pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4; pub const CKG_MGF1_SHA1: CK_GENERATOR_FUNCTION = 1; pub const CKG_MGF1_SHA256: CK_GENERATOR_FUNCTION = 2; pub const CKG_MGF1_SHA384: CK_GENERATOR_FUNCTION = 3; @@ -339,6 +346,7 @@ pub const CKK_HKDF: CK_KEY_TYPE = 66; pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67; pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68; pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69; +pub const CKK_HSS: CK_KEY_TYPE = 70; pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_CAST5: CK_KEY_TYPE = 24; @@ -714,6 +722,7 @@ pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459; +pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387; @@ -769,6 +778,12 @@ pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940; pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941; pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942; +pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430; +pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431; +pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432; +pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433; +pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434; +pub const CKM_HSS: CK_MECHANISM_TYPE = 16435; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; @@ -796,6 +811,8 @@ pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2; pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3; pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4; +pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5; +pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6; pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648; pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1; pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2; @@ -902,6 +919,7 @@ pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513; pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514; +pub const CKR_KEY_EXHAUSTED: CK_RV = 515; pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; @@ -939,12 +957,18 @@ pub type CK_FLAGS = CK_ULONG; pub type CK_FLAGS_PTR = *mut CK_FLAGS; pub type CK_GENERATOR_FUNCTION = CK_ULONG; pub type CK_GENERATOR_FUNCTION_PTR = *mut CK_GENERATOR_FUNCTION; +pub type CK_HSS_LEVELS = CK_ULONG; +pub type CK_HSS_LEVELS_PTR = *mut CK_HSS_LEVELS; pub type CK_HW_FEATURE_TYPE = CK_ULONG; pub type CK_HW_FEATURE_TYPE_PTR = *mut CK_HW_FEATURE_TYPE; pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG; pub type CK_JAVA_MIDP_SECURITY_DOMAIN_PTR = *mut CK_JAVA_MIDP_SECURITY_DOMAIN; pub type CK_KEY_TYPE = CK_ULONG; pub type CK_KEY_TYPE_PTR = *mut CK_KEY_TYPE; +pub type CK_LMS_TYPE = CK_ULONG; +pub type CK_LMS_TYPE_PTR = *mut CK_LMS_TYPE; +pub type CK_LMOTS_TYPE = CK_ULONG; +pub type CK_LMOTS_TYPE_PTR = *mut CK_LMOTS_TYPE; pub type CK_MAC_GENERAL_PARAMS = CK_ULONG; pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS; pub type CK_MECHANISM_TYPE = CK_ULONG; @@ -1252,6 +1276,14 @@ pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR = *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS; pub type CK_HKDF_PARAMS_PTR_PTR = *mut *mut CK_HKDF_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA; @@ -1328,11 +1360,6 @@ pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR = *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_XEDDSA_PARAMS_PTR = *mut CK_XEDDSA_PARAMS; pub type CK_XEDDSA_PARAMS_PTR_PTR = *mut *mut CK_XEDDSA_PARAMS; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct specifiedParams { - _unused: [u8; 0], -} pub type specifiedParams_PTR = *mut specifiedParams; pub type specifiedParams_PTR_PTR = *mut *mut specifiedParams; #[repr(C)] @@ -1761,6 +1788,89 @@ impl Default for CK_HKDF_PARAMS { #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] +pub struct CK_IKE_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bDataAsKey: CK_BBOOL, + pub bRekey: CK_BBOOL, + pub pNi: *mut CK_BYTE, + pub ulNiLen: CK_ULONG, + pub pNr: *mut CK_BYTE, + pub ulNrLen: CK_ULONG, + pub hNewKey: CK_OBJECT_HANDLE, +} +impl Default for CK_IKE_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[cfg_attr(windows, repr(packed))] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasKeygxy: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub pExtraData: *mut CK_BYTE, + pub ulExtraDataLen: CK_ULONG, +} +impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[cfg_attr(windows, repr(packed))] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasPrevKey: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub hPrevKey: CK_OBJECT_HANDLE, + pub pCKYi: *mut CK_BYTE, + pub ulCKYiLen: CK_ULONG, + pub pCKYr: *mut CK_BYTE, + pub ulCKYrLen: CK_ULONG, + pub keyNumber: CK_BYTE, +} +impl Default for CK_IKE1_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[cfg_attr(windows, repr(packed))] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasSeedKey: CK_BBOOL, + pub hSeedKey: CK_OBJECT_HANDLE, + pub pSeedData: *mut CK_BYTE, + pub ulSeedDataLen: CK_ULONG, +} +impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[cfg_attr(windows, repr(packed))] +#[derive(Debug, Copy, Clone)] pub struct CK_KEA_DERIVE_PARAMS { pub isSender: CK_BBOOL, pub ulRandomLen: CK_ULONG, @@ -2386,6 +2496,14 @@ impl Default for CK_X9_42_MQV_DERIVE_PARAMS { pub struct CK_XEDDSA_PARAMS { pub hash: CK_XEDDSA_HASH_TYPE, } +#[repr(C)] +#[cfg_attr(windows, repr(packed))] +#[derive(Debug, Default, Copy, Clone)] +pub struct specifiedParams { + pub levels: CK_HSS_LEVELS, + pub lm_type: [CK_LMS_TYPE; 8usize], + pub lm_ots_type: [CK_LMOTS_TYPE; 8usize], +} pub type CK_SSL3_KEY_MAT_OUT_PTR = *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_OUT_PTR_PTR = *mut *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_PARAMS_PTR = *mut CK_SSL3_KEY_MAT_PARAMS; diff --git a/cryptoki-sys/src/bindings/i686-unknown-linux-gnu.rs b/cryptoki-sys/src/bindings/i686-unknown-linux-gnu.rs index 8457188b..e2cf397b 100644 --- a/cryptoki-sys/src/bindings/i686-unknown-linux-gnu.rs +++ b/cryptoki-sys/src/bindings/i686-unknown-linux-gnu.rs @@ -1,7 +1,7 @@ /* automatically generated by rust-bindgen 0.70.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 0; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -156,6 +156,12 @@ pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551; pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552; pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553; pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554; +pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559; +pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560; +pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561; +pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562; +pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563; +pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564; pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648; pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353; pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354; @@ -266,6 +272,7 @@ pub const CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0; pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1; pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2; pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3; +pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4; pub const CKG_MGF1_SHA1: CK_GENERATOR_FUNCTION = 1; pub const CKG_MGF1_SHA256: CK_GENERATOR_FUNCTION = 2; pub const CKG_MGF1_SHA384: CK_GENERATOR_FUNCTION = 3; @@ -339,6 +346,7 @@ pub const CKK_HKDF: CK_KEY_TYPE = 66; pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67; pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68; pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69; +pub const CKK_HSS: CK_KEY_TYPE = 70; pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_CAST5: CK_KEY_TYPE = 24; @@ -714,6 +722,7 @@ pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459; +pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387; @@ -769,6 +778,12 @@ pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940; pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941; pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942; +pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430; +pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431; +pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432; +pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433; +pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434; +pub const CKM_HSS: CK_MECHANISM_TYPE = 16435; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; @@ -796,6 +811,8 @@ pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2; pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3; pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4; +pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5; +pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6; pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648; pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1; pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2; @@ -902,6 +919,7 @@ pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513; pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514; +pub const CKR_KEY_EXHAUSTED: CK_RV = 515; pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; @@ -939,12 +957,18 @@ pub type CK_FLAGS = CK_ULONG; pub type CK_FLAGS_PTR = *mut CK_FLAGS; pub type CK_GENERATOR_FUNCTION = CK_ULONG; pub type CK_GENERATOR_FUNCTION_PTR = *mut CK_GENERATOR_FUNCTION; +pub type CK_HSS_LEVELS = CK_ULONG; +pub type CK_HSS_LEVELS_PTR = *mut CK_HSS_LEVELS; pub type CK_HW_FEATURE_TYPE = CK_ULONG; pub type CK_HW_FEATURE_TYPE_PTR = *mut CK_HW_FEATURE_TYPE; pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG; pub type CK_JAVA_MIDP_SECURITY_DOMAIN_PTR = *mut CK_JAVA_MIDP_SECURITY_DOMAIN; pub type CK_KEY_TYPE = CK_ULONG; pub type CK_KEY_TYPE_PTR = *mut CK_KEY_TYPE; +pub type CK_LMS_TYPE = CK_ULONG; +pub type CK_LMS_TYPE_PTR = *mut CK_LMS_TYPE; +pub type CK_LMOTS_TYPE = CK_ULONG; +pub type CK_LMOTS_TYPE_PTR = *mut CK_LMOTS_TYPE; pub type CK_MAC_GENERAL_PARAMS = CK_ULONG; pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS; pub type CK_MECHANISM_TYPE = CK_ULONG; @@ -1409,6 +1433,14 @@ pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR = *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS; pub type CK_HKDF_PARAMS_PTR_PTR = *mut *mut CK_HKDF_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA; @@ -1485,11 +1517,6 @@ pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR = *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_XEDDSA_PARAMS_PTR = *mut CK_XEDDSA_PARAMS; pub type CK_XEDDSA_PARAMS_PTR_PTR = *mut *mut CK_XEDDSA_PARAMS; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct specifiedParams { - _unused: [u8; 0], -} pub type specifiedParams_PTR = *mut specifiedParams; pub type specifiedParams_PTR_PTR = *mut *mut specifiedParams; #[repr(C)] @@ -2266,6 +2293,167 @@ impl Default for CK_HKDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_IKE_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bDataAsKey: CK_BBOOL, + pub bRekey: CK_BBOOL, + pub pNi: *mut CK_BYTE, + pub ulNiLen: CK_ULONG, + pub pNr: *mut CK_BYTE, + pub ulNrLen: CK_ULONG, + pub hNewKey: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 28usize]; + ["Alignment of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bDataAsKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bDataAsKey) - 4usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bRekey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bRekey) - 5usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNi"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNi) - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNiLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNiLen) - 12usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNr"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNr) - 16usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNrLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNrLen) - 20usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::hNewKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, hNewKey) - 24usize]; +}; +impl Default for CK_IKE_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasKeygxy: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub pExtraData: *mut CK_BYTE, + pub ulExtraDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::size_of::() - 20usize]; + ["Alignment of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::bHasKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, bHasKeygxy) - 4usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, hKeygxy) - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::pExtraData"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, pExtraData) - 12usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::ulExtraDataLen"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, ulExtraDataLen) - 16usize]; +}; +impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasPrevKey: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub hPrevKey: CK_OBJECT_HANDLE, + pub pCKYi: *mut CK_BYTE, + pub ulCKYiLen: CK_ULONG, + pub pCKYr: *mut CK_BYTE, + pub ulCKYrLen: CK_ULONG, + pub keyNumber: CK_BYTE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 36usize]; + ["Alignment of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::bHasPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, bHasPrevKey) - 4usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hKeygxy) - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hPrevKey) - 12usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYi"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYi) - 16usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYiLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYiLen) - 20usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYr"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYr) - 24usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYrLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYrLen) - 28usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::keyNumber"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, keyNumber) - 32usize]; +}; +impl Default for CK_IKE1_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasSeedKey: CK_BBOOL, + pub hSeedKey: CK_OBJECT_HANDLE, + pub pSeedData: *mut CK_BYTE, + pub ulSeedDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::size_of::() - 20usize]; + ["Alignment of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::bHasSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, bHasSeedKey) - 4usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::hSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, hSeedKey) - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::pSeedData"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, pSeedData) - 12usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::ulSeedDataLen"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, ulSeedDataLen) - 16usize]; +}; +impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct CK_KEA_DERIVE_PARAMS { pub isSender: CK_BBOOL, pub ulRandomLen: CK_ULONG, @@ -3448,6 +3636,24 @@ const _: () = { ["Offset of field: CK_XEDDSA_PARAMS::hash"] [::std::mem::offset_of!(CK_XEDDSA_PARAMS, hash) - 0usize]; }; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct specifiedParams { + pub levels: CK_HSS_LEVELS, + pub lm_type: [CK_LMS_TYPE; 8usize], + pub lm_ots_type: [CK_LMOTS_TYPE; 8usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of specifiedParams"][::std::mem::size_of::() - 68usize]; + ["Alignment of specifiedParams"][::std::mem::align_of::() - 4usize]; + ["Offset of field: specifiedParams::levels"] + [::std::mem::offset_of!(specifiedParams, levels) - 0usize]; + ["Offset of field: specifiedParams::lm_type"] + [::std::mem::offset_of!(specifiedParams, lm_type) - 4usize]; + ["Offset of field: specifiedParams::lm_ots_type"] + [::std::mem::offset_of!(specifiedParams, lm_ots_type) - 36usize]; +}; pub type CK_SSL3_KEY_MAT_OUT_PTR = *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_OUT_PTR_PTR = *mut *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_PARAMS_PTR = *mut CK_SSL3_KEY_MAT_PARAMS; diff --git a/cryptoki-sys/src/bindings/loongarch64-unknown-linux-gnu.rs b/cryptoki-sys/src/bindings/loongarch64-unknown-linux-gnu.rs index abd6f480..3b594e91 100644 --- a/cryptoki-sys/src/bindings/loongarch64-unknown-linux-gnu.rs +++ b/cryptoki-sys/src/bindings/loongarch64-unknown-linux-gnu.rs @@ -1,7 +1,7 @@ /* automatically generated by rust-bindgen 0.70.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 0; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -156,6 +156,12 @@ pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551; pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552; pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553; pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554; +pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559; +pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560; +pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561; +pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562; +pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563; +pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564; pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648; pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353; pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354; @@ -266,6 +272,7 @@ pub const CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0; pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1; pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2; pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3; +pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4; pub const CKG_MGF1_SHA1: CK_GENERATOR_FUNCTION = 1; pub const CKG_MGF1_SHA256: CK_GENERATOR_FUNCTION = 2; pub const CKG_MGF1_SHA384: CK_GENERATOR_FUNCTION = 3; @@ -339,6 +346,7 @@ pub const CKK_HKDF: CK_KEY_TYPE = 66; pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67; pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68; pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69; +pub const CKK_HSS: CK_KEY_TYPE = 70; pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_CAST5: CK_KEY_TYPE = 24; @@ -714,6 +722,7 @@ pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459; +pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387; @@ -769,6 +778,12 @@ pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940; pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941; pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942; +pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430; +pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431; +pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432; +pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433; +pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434; +pub const CKM_HSS: CK_MECHANISM_TYPE = 16435; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; @@ -796,6 +811,8 @@ pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2; pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3; pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4; +pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5; +pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6; pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648; pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1; pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2; @@ -902,6 +919,7 @@ pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513; pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514; +pub const CKR_KEY_EXHAUSTED: CK_RV = 515; pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; @@ -939,12 +957,18 @@ pub type CK_FLAGS = CK_ULONG; pub type CK_FLAGS_PTR = *mut CK_FLAGS; pub type CK_GENERATOR_FUNCTION = CK_ULONG; pub type CK_GENERATOR_FUNCTION_PTR = *mut CK_GENERATOR_FUNCTION; +pub type CK_HSS_LEVELS = CK_ULONG; +pub type CK_HSS_LEVELS_PTR = *mut CK_HSS_LEVELS; pub type CK_HW_FEATURE_TYPE = CK_ULONG; pub type CK_HW_FEATURE_TYPE_PTR = *mut CK_HW_FEATURE_TYPE; pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG; pub type CK_JAVA_MIDP_SECURITY_DOMAIN_PTR = *mut CK_JAVA_MIDP_SECURITY_DOMAIN; pub type CK_KEY_TYPE = CK_ULONG; pub type CK_KEY_TYPE_PTR = *mut CK_KEY_TYPE; +pub type CK_LMS_TYPE = CK_ULONG; +pub type CK_LMS_TYPE_PTR = *mut CK_LMS_TYPE; +pub type CK_LMOTS_TYPE = CK_ULONG; +pub type CK_LMOTS_TYPE_PTR = *mut CK_LMOTS_TYPE; pub type CK_MAC_GENERAL_PARAMS = CK_ULONG; pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS; pub type CK_MECHANISM_TYPE = CK_ULONG; @@ -1409,6 +1433,14 @@ pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR = *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS; pub type CK_HKDF_PARAMS_PTR_PTR = *mut *mut CK_HKDF_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA; @@ -1485,11 +1517,6 @@ pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR = *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_XEDDSA_PARAMS_PTR = *mut CK_XEDDSA_PARAMS; pub type CK_XEDDSA_PARAMS_PTR_PTR = *mut *mut CK_XEDDSA_PARAMS; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct specifiedParams { - _unused: [u8; 0], -} pub type specifiedParams_PTR = *mut specifiedParams; pub type specifiedParams_PTR_PTR = *mut *mut specifiedParams; #[repr(C)] @@ -2266,6 +2293,167 @@ impl Default for CK_HKDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_IKE_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bDataAsKey: CK_BBOOL, + pub bRekey: CK_BBOOL, + pub pNi: *mut CK_BYTE, + pub ulNiLen: CK_ULONG, + pub pNr: *mut CK_BYTE, + pub ulNrLen: CK_ULONG, + pub hNewKey: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 56usize]; + ["Alignment of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bDataAsKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bDataAsKey) - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bRekey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bRekey) - 9usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNi"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNi) - 16usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNiLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNiLen) - 24usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNr"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNr) - 32usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNrLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNrLen) - 40usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::hNewKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, hNewKey) - 48usize]; +}; +impl Default for CK_IKE_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasKeygxy: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub pExtraData: *mut CK_BYTE, + pub ulExtraDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::bHasKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, bHasKeygxy) - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::pExtraData"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, pExtraData) - 24usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::ulExtraDataLen"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, ulExtraDataLen) - 32usize]; +}; +impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasPrevKey: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub hPrevKey: CK_OBJECT_HANDLE, + pub pCKYi: *mut CK_BYTE, + pub ulCKYiLen: CK_ULONG, + pub pCKYr: *mut CK_BYTE, + pub ulCKYrLen: CK_ULONG, + pub keyNumber: CK_BYTE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 72usize]; + ["Alignment of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::bHasPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, bHasPrevKey) - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hPrevKey) - 24usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYi"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYi) - 32usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYiLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYiLen) - 40usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYr"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYr) - 48usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYrLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYrLen) - 56usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::keyNumber"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, keyNumber) - 64usize]; +}; +impl Default for CK_IKE1_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasSeedKey: CK_BBOOL, + pub hSeedKey: CK_OBJECT_HANDLE, + pub pSeedData: *mut CK_BYTE, + pub ulSeedDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::bHasSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, bHasSeedKey) - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::hSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, hSeedKey) - 16usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::pSeedData"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, pSeedData) - 24usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::ulSeedDataLen"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, ulSeedDataLen) - 32usize]; +}; +impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct CK_KEA_DERIVE_PARAMS { pub isSender: CK_BBOOL, pub ulRandomLen: CK_ULONG, @@ -3448,6 +3636,24 @@ const _: () = { ["Offset of field: CK_XEDDSA_PARAMS::hash"] [::std::mem::offset_of!(CK_XEDDSA_PARAMS, hash) - 0usize]; }; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct specifiedParams { + pub levels: CK_HSS_LEVELS, + pub lm_type: [CK_LMS_TYPE; 8usize], + pub lm_ots_type: [CK_LMOTS_TYPE; 8usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of specifiedParams"][::std::mem::size_of::() - 136usize]; + ["Alignment of specifiedParams"][::std::mem::align_of::() - 8usize]; + ["Offset of field: specifiedParams::levels"] + [::std::mem::offset_of!(specifiedParams, levels) - 0usize]; + ["Offset of field: specifiedParams::lm_type"] + [::std::mem::offset_of!(specifiedParams, lm_type) - 8usize]; + ["Offset of field: specifiedParams::lm_ots_type"] + [::std::mem::offset_of!(specifiedParams, lm_ots_type) - 72usize]; +}; pub type CK_SSL3_KEY_MAT_OUT_PTR = *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_OUT_PTR_PTR = *mut *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_PARAMS_PTR = *mut CK_SSL3_KEY_MAT_PARAMS; diff --git a/cryptoki-sys/src/bindings/powerpc64-unknown-linux-gnu.rs b/cryptoki-sys/src/bindings/powerpc64-unknown-linux-gnu.rs index abd6f480..3b594e91 100644 --- a/cryptoki-sys/src/bindings/powerpc64-unknown-linux-gnu.rs +++ b/cryptoki-sys/src/bindings/powerpc64-unknown-linux-gnu.rs @@ -1,7 +1,7 @@ /* automatically generated by rust-bindgen 0.70.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 0; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -156,6 +156,12 @@ pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551; pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552; pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553; pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554; +pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559; +pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560; +pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561; +pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562; +pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563; +pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564; pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648; pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353; pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354; @@ -266,6 +272,7 @@ pub const CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0; pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1; pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2; pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3; +pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4; pub const CKG_MGF1_SHA1: CK_GENERATOR_FUNCTION = 1; pub const CKG_MGF1_SHA256: CK_GENERATOR_FUNCTION = 2; pub const CKG_MGF1_SHA384: CK_GENERATOR_FUNCTION = 3; @@ -339,6 +346,7 @@ pub const CKK_HKDF: CK_KEY_TYPE = 66; pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67; pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68; pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69; +pub const CKK_HSS: CK_KEY_TYPE = 70; pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_CAST5: CK_KEY_TYPE = 24; @@ -714,6 +722,7 @@ pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459; +pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387; @@ -769,6 +778,12 @@ pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940; pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941; pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942; +pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430; +pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431; +pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432; +pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433; +pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434; +pub const CKM_HSS: CK_MECHANISM_TYPE = 16435; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; @@ -796,6 +811,8 @@ pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2; pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3; pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4; +pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5; +pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6; pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648; pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1; pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2; @@ -902,6 +919,7 @@ pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513; pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514; +pub const CKR_KEY_EXHAUSTED: CK_RV = 515; pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; @@ -939,12 +957,18 @@ pub type CK_FLAGS = CK_ULONG; pub type CK_FLAGS_PTR = *mut CK_FLAGS; pub type CK_GENERATOR_FUNCTION = CK_ULONG; pub type CK_GENERATOR_FUNCTION_PTR = *mut CK_GENERATOR_FUNCTION; +pub type CK_HSS_LEVELS = CK_ULONG; +pub type CK_HSS_LEVELS_PTR = *mut CK_HSS_LEVELS; pub type CK_HW_FEATURE_TYPE = CK_ULONG; pub type CK_HW_FEATURE_TYPE_PTR = *mut CK_HW_FEATURE_TYPE; pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG; pub type CK_JAVA_MIDP_SECURITY_DOMAIN_PTR = *mut CK_JAVA_MIDP_SECURITY_DOMAIN; pub type CK_KEY_TYPE = CK_ULONG; pub type CK_KEY_TYPE_PTR = *mut CK_KEY_TYPE; +pub type CK_LMS_TYPE = CK_ULONG; +pub type CK_LMS_TYPE_PTR = *mut CK_LMS_TYPE; +pub type CK_LMOTS_TYPE = CK_ULONG; +pub type CK_LMOTS_TYPE_PTR = *mut CK_LMOTS_TYPE; pub type CK_MAC_GENERAL_PARAMS = CK_ULONG; pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS; pub type CK_MECHANISM_TYPE = CK_ULONG; @@ -1409,6 +1433,14 @@ pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR = *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS; pub type CK_HKDF_PARAMS_PTR_PTR = *mut *mut CK_HKDF_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA; @@ -1485,11 +1517,6 @@ pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR = *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_XEDDSA_PARAMS_PTR = *mut CK_XEDDSA_PARAMS; pub type CK_XEDDSA_PARAMS_PTR_PTR = *mut *mut CK_XEDDSA_PARAMS; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct specifiedParams { - _unused: [u8; 0], -} pub type specifiedParams_PTR = *mut specifiedParams; pub type specifiedParams_PTR_PTR = *mut *mut specifiedParams; #[repr(C)] @@ -2266,6 +2293,167 @@ impl Default for CK_HKDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_IKE_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bDataAsKey: CK_BBOOL, + pub bRekey: CK_BBOOL, + pub pNi: *mut CK_BYTE, + pub ulNiLen: CK_ULONG, + pub pNr: *mut CK_BYTE, + pub ulNrLen: CK_ULONG, + pub hNewKey: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 56usize]; + ["Alignment of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bDataAsKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bDataAsKey) - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bRekey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bRekey) - 9usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNi"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNi) - 16usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNiLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNiLen) - 24usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNr"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNr) - 32usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNrLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNrLen) - 40usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::hNewKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, hNewKey) - 48usize]; +}; +impl Default for CK_IKE_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasKeygxy: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub pExtraData: *mut CK_BYTE, + pub ulExtraDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::bHasKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, bHasKeygxy) - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::pExtraData"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, pExtraData) - 24usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::ulExtraDataLen"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, ulExtraDataLen) - 32usize]; +}; +impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasPrevKey: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub hPrevKey: CK_OBJECT_HANDLE, + pub pCKYi: *mut CK_BYTE, + pub ulCKYiLen: CK_ULONG, + pub pCKYr: *mut CK_BYTE, + pub ulCKYrLen: CK_ULONG, + pub keyNumber: CK_BYTE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 72usize]; + ["Alignment of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::bHasPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, bHasPrevKey) - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hPrevKey) - 24usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYi"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYi) - 32usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYiLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYiLen) - 40usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYr"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYr) - 48usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYrLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYrLen) - 56usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::keyNumber"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, keyNumber) - 64usize]; +}; +impl Default for CK_IKE1_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasSeedKey: CK_BBOOL, + pub hSeedKey: CK_OBJECT_HANDLE, + pub pSeedData: *mut CK_BYTE, + pub ulSeedDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::bHasSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, bHasSeedKey) - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::hSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, hSeedKey) - 16usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::pSeedData"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, pSeedData) - 24usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::ulSeedDataLen"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, ulSeedDataLen) - 32usize]; +}; +impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct CK_KEA_DERIVE_PARAMS { pub isSender: CK_BBOOL, pub ulRandomLen: CK_ULONG, @@ -3448,6 +3636,24 @@ const _: () = { ["Offset of field: CK_XEDDSA_PARAMS::hash"] [::std::mem::offset_of!(CK_XEDDSA_PARAMS, hash) - 0usize]; }; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct specifiedParams { + pub levels: CK_HSS_LEVELS, + pub lm_type: [CK_LMS_TYPE; 8usize], + pub lm_ots_type: [CK_LMOTS_TYPE; 8usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of specifiedParams"][::std::mem::size_of::() - 136usize]; + ["Alignment of specifiedParams"][::std::mem::align_of::() - 8usize]; + ["Offset of field: specifiedParams::levels"] + [::std::mem::offset_of!(specifiedParams, levels) - 0usize]; + ["Offset of field: specifiedParams::lm_type"] + [::std::mem::offset_of!(specifiedParams, lm_type) - 8usize]; + ["Offset of field: specifiedParams::lm_ots_type"] + [::std::mem::offset_of!(specifiedParams, lm_ots_type) - 72usize]; +}; pub type CK_SSL3_KEY_MAT_OUT_PTR = *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_OUT_PTR_PTR = *mut *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_PARAMS_PTR = *mut CK_SSL3_KEY_MAT_PARAMS; diff --git a/cryptoki-sys/src/bindings/riscv64gc-unknown-linux-gnu.rs b/cryptoki-sys/src/bindings/riscv64gc-unknown-linux-gnu.rs index abd6f480..3b594e91 100644 --- a/cryptoki-sys/src/bindings/riscv64gc-unknown-linux-gnu.rs +++ b/cryptoki-sys/src/bindings/riscv64gc-unknown-linux-gnu.rs @@ -1,7 +1,7 @@ /* automatically generated by rust-bindgen 0.70.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 0; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -156,6 +156,12 @@ pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551; pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552; pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553; pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554; +pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559; +pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560; +pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561; +pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562; +pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563; +pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564; pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648; pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353; pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354; @@ -266,6 +272,7 @@ pub const CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0; pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1; pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2; pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3; +pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4; pub const CKG_MGF1_SHA1: CK_GENERATOR_FUNCTION = 1; pub const CKG_MGF1_SHA256: CK_GENERATOR_FUNCTION = 2; pub const CKG_MGF1_SHA384: CK_GENERATOR_FUNCTION = 3; @@ -339,6 +346,7 @@ pub const CKK_HKDF: CK_KEY_TYPE = 66; pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67; pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68; pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69; +pub const CKK_HSS: CK_KEY_TYPE = 70; pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_CAST5: CK_KEY_TYPE = 24; @@ -714,6 +722,7 @@ pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459; +pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387; @@ -769,6 +778,12 @@ pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940; pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941; pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942; +pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430; +pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431; +pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432; +pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433; +pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434; +pub const CKM_HSS: CK_MECHANISM_TYPE = 16435; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; @@ -796,6 +811,8 @@ pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2; pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3; pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4; +pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5; +pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6; pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648; pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1; pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2; @@ -902,6 +919,7 @@ pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513; pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514; +pub const CKR_KEY_EXHAUSTED: CK_RV = 515; pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; @@ -939,12 +957,18 @@ pub type CK_FLAGS = CK_ULONG; pub type CK_FLAGS_PTR = *mut CK_FLAGS; pub type CK_GENERATOR_FUNCTION = CK_ULONG; pub type CK_GENERATOR_FUNCTION_PTR = *mut CK_GENERATOR_FUNCTION; +pub type CK_HSS_LEVELS = CK_ULONG; +pub type CK_HSS_LEVELS_PTR = *mut CK_HSS_LEVELS; pub type CK_HW_FEATURE_TYPE = CK_ULONG; pub type CK_HW_FEATURE_TYPE_PTR = *mut CK_HW_FEATURE_TYPE; pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG; pub type CK_JAVA_MIDP_SECURITY_DOMAIN_PTR = *mut CK_JAVA_MIDP_SECURITY_DOMAIN; pub type CK_KEY_TYPE = CK_ULONG; pub type CK_KEY_TYPE_PTR = *mut CK_KEY_TYPE; +pub type CK_LMS_TYPE = CK_ULONG; +pub type CK_LMS_TYPE_PTR = *mut CK_LMS_TYPE; +pub type CK_LMOTS_TYPE = CK_ULONG; +pub type CK_LMOTS_TYPE_PTR = *mut CK_LMOTS_TYPE; pub type CK_MAC_GENERAL_PARAMS = CK_ULONG; pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS; pub type CK_MECHANISM_TYPE = CK_ULONG; @@ -1409,6 +1433,14 @@ pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR = *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS; pub type CK_HKDF_PARAMS_PTR_PTR = *mut *mut CK_HKDF_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA; @@ -1485,11 +1517,6 @@ pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR = *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_XEDDSA_PARAMS_PTR = *mut CK_XEDDSA_PARAMS; pub type CK_XEDDSA_PARAMS_PTR_PTR = *mut *mut CK_XEDDSA_PARAMS; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct specifiedParams { - _unused: [u8; 0], -} pub type specifiedParams_PTR = *mut specifiedParams; pub type specifiedParams_PTR_PTR = *mut *mut specifiedParams; #[repr(C)] @@ -2266,6 +2293,167 @@ impl Default for CK_HKDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_IKE_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bDataAsKey: CK_BBOOL, + pub bRekey: CK_BBOOL, + pub pNi: *mut CK_BYTE, + pub ulNiLen: CK_ULONG, + pub pNr: *mut CK_BYTE, + pub ulNrLen: CK_ULONG, + pub hNewKey: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 56usize]; + ["Alignment of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bDataAsKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bDataAsKey) - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bRekey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bRekey) - 9usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNi"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNi) - 16usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNiLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNiLen) - 24usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNr"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNr) - 32usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNrLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNrLen) - 40usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::hNewKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, hNewKey) - 48usize]; +}; +impl Default for CK_IKE_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasKeygxy: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub pExtraData: *mut CK_BYTE, + pub ulExtraDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::bHasKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, bHasKeygxy) - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::pExtraData"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, pExtraData) - 24usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::ulExtraDataLen"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, ulExtraDataLen) - 32usize]; +}; +impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasPrevKey: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub hPrevKey: CK_OBJECT_HANDLE, + pub pCKYi: *mut CK_BYTE, + pub ulCKYiLen: CK_ULONG, + pub pCKYr: *mut CK_BYTE, + pub ulCKYrLen: CK_ULONG, + pub keyNumber: CK_BYTE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 72usize]; + ["Alignment of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::bHasPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, bHasPrevKey) - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hPrevKey) - 24usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYi"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYi) - 32usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYiLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYiLen) - 40usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYr"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYr) - 48usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYrLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYrLen) - 56usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::keyNumber"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, keyNumber) - 64usize]; +}; +impl Default for CK_IKE1_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasSeedKey: CK_BBOOL, + pub hSeedKey: CK_OBJECT_HANDLE, + pub pSeedData: *mut CK_BYTE, + pub ulSeedDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::bHasSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, bHasSeedKey) - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::hSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, hSeedKey) - 16usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::pSeedData"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, pSeedData) - 24usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::ulSeedDataLen"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, ulSeedDataLen) - 32usize]; +}; +impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct CK_KEA_DERIVE_PARAMS { pub isSender: CK_BBOOL, pub ulRandomLen: CK_ULONG, @@ -3448,6 +3636,24 @@ const _: () = { ["Offset of field: CK_XEDDSA_PARAMS::hash"] [::std::mem::offset_of!(CK_XEDDSA_PARAMS, hash) - 0usize]; }; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct specifiedParams { + pub levels: CK_HSS_LEVELS, + pub lm_type: [CK_LMS_TYPE; 8usize], + pub lm_ots_type: [CK_LMOTS_TYPE; 8usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of specifiedParams"][::std::mem::size_of::() - 136usize]; + ["Alignment of specifiedParams"][::std::mem::align_of::() - 8usize]; + ["Offset of field: specifiedParams::levels"] + [::std::mem::offset_of!(specifiedParams, levels) - 0usize]; + ["Offset of field: specifiedParams::lm_type"] + [::std::mem::offset_of!(specifiedParams, lm_type) - 8usize]; + ["Offset of field: specifiedParams::lm_ots_type"] + [::std::mem::offset_of!(specifiedParams, lm_ots_type) - 72usize]; +}; pub type CK_SSL3_KEY_MAT_OUT_PTR = *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_OUT_PTR_PTR = *mut *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_PARAMS_PTR = *mut CK_SSL3_KEY_MAT_PARAMS; diff --git a/cryptoki-sys/src/bindings/x86_64-apple-darwin.rs b/cryptoki-sys/src/bindings/x86_64-apple-darwin.rs index abd6f480..3b594e91 100644 --- a/cryptoki-sys/src/bindings/x86_64-apple-darwin.rs +++ b/cryptoki-sys/src/bindings/x86_64-apple-darwin.rs @@ -1,7 +1,7 @@ /* automatically generated by rust-bindgen 0.70.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 0; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -156,6 +156,12 @@ pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551; pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552; pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553; pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554; +pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559; +pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560; +pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561; +pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562; +pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563; +pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564; pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648; pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353; pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354; @@ -266,6 +272,7 @@ pub const CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0; pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1; pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2; pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3; +pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4; pub const CKG_MGF1_SHA1: CK_GENERATOR_FUNCTION = 1; pub const CKG_MGF1_SHA256: CK_GENERATOR_FUNCTION = 2; pub const CKG_MGF1_SHA384: CK_GENERATOR_FUNCTION = 3; @@ -339,6 +346,7 @@ pub const CKK_HKDF: CK_KEY_TYPE = 66; pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67; pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68; pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69; +pub const CKK_HSS: CK_KEY_TYPE = 70; pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_CAST5: CK_KEY_TYPE = 24; @@ -714,6 +722,7 @@ pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459; +pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387; @@ -769,6 +778,12 @@ pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940; pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941; pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942; +pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430; +pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431; +pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432; +pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433; +pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434; +pub const CKM_HSS: CK_MECHANISM_TYPE = 16435; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; @@ -796,6 +811,8 @@ pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2; pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3; pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4; +pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5; +pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6; pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648; pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1; pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2; @@ -902,6 +919,7 @@ pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513; pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514; +pub const CKR_KEY_EXHAUSTED: CK_RV = 515; pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; @@ -939,12 +957,18 @@ pub type CK_FLAGS = CK_ULONG; pub type CK_FLAGS_PTR = *mut CK_FLAGS; pub type CK_GENERATOR_FUNCTION = CK_ULONG; pub type CK_GENERATOR_FUNCTION_PTR = *mut CK_GENERATOR_FUNCTION; +pub type CK_HSS_LEVELS = CK_ULONG; +pub type CK_HSS_LEVELS_PTR = *mut CK_HSS_LEVELS; pub type CK_HW_FEATURE_TYPE = CK_ULONG; pub type CK_HW_FEATURE_TYPE_PTR = *mut CK_HW_FEATURE_TYPE; pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG; pub type CK_JAVA_MIDP_SECURITY_DOMAIN_PTR = *mut CK_JAVA_MIDP_SECURITY_DOMAIN; pub type CK_KEY_TYPE = CK_ULONG; pub type CK_KEY_TYPE_PTR = *mut CK_KEY_TYPE; +pub type CK_LMS_TYPE = CK_ULONG; +pub type CK_LMS_TYPE_PTR = *mut CK_LMS_TYPE; +pub type CK_LMOTS_TYPE = CK_ULONG; +pub type CK_LMOTS_TYPE_PTR = *mut CK_LMOTS_TYPE; pub type CK_MAC_GENERAL_PARAMS = CK_ULONG; pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS; pub type CK_MECHANISM_TYPE = CK_ULONG; @@ -1409,6 +1433,14 @@ pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR = *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS; pub type CK_HKDF_PARAMS_PTR_PTR = *mut *mut CK_HKDF_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA; @@ -1485,11 +1517,6 @@ pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR = *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_XEDDSA_PARAMS_PTR = *mut CK_XEDDSA_PARAMS; pub type CK_XEDDSA_PARAMS_PTR_PTR = *mut *mut CK_XEDDSA_PARAMS; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct specifiedParams { - _unused: [u8; 0], -} pub type specifiedParams_PTR = *mut specifiedParams; pub type specifiedParams_PTR_PTR = *mut *mut specifiedParams; #[repr(C)] @@ -2266,6 +2293,167 @@ impl Default for CK_HKDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_IKE_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bDataAsKey: CK_BBOOL, + pub bRekey: CK_BBOOL, + pub pNi: *mut CK_BYTE, + pub ulNiLen: CK_ULONG, + pub pNr: *mut CK_BYTE, + pub ulNrLen: CK_ULONG, + pub hNewKey: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 56usize]; + ["Alignment of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bDataAsKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bDataAsKey) - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bRekey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bRekey) - 9usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNi"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNi) - 16usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNiLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNiLen) - 24usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNr"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNr) - 32usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNrLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNrLen) - 40usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::hNewKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, hNewKey) - 48usize]; +}; +impl Default for CK_IKE_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasKeygxy: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub pExtraData: *mut CK_BYTE, + pub ulExtraDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::bHasKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, bHasKeygxy) - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::pExtraData"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, pExtraData) - 24usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::ulExtraDataLen"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, ulExtraDataLen) - 32usize]; +}; +impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasPrevKey: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub hPrevKey: CK_OBJECT_HANDLE, + pub pCKYi: *mut CK_BYTE, + pub ulCKYiLen: CK_ULONG, + pub pCKYr: *mut CK_BYTE, + pub ulCKYrLen: CK_ULONG, + pub keyNumber: CK_BYTE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 72usize]; + ["Alignment of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::bHasPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, bHasPrevKey) - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hPrevKey) - 24usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYi"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYi) - 32usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYiLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYiLen) - 40usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYr"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYr) - 48usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYrLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYrLen) - 56usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::keyNumber"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, keyNumber) - 64usize]; +}; +impl Default for CK_IKE1_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasSeedKey: CK_BBOOL, + pub hSeedKey: CK_OBJECT_HANDLE, + pub pSeedData: *mut CK_BYTE, + pub ulSeedDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::bHasSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, bHasSeedKey) - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::hSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, hSeedKey) - 16usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::pSeedData"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, pSeedData) - 24usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::ulSeedDataLen"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, ulSeedDataLen) - 32usize]; +}; +impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct CK_KEA_DERIVE_PARAMS { pub isSender: CK_BBOOL, pub ulRandomLen: CK_ULONG, @@ -3448,6 +3636,24 @@ const _: () = { ["Offset of field: CK_XEDDSA_PARAMS::hash"] [::std::mem::offset_of!(CK_XEDDSA_PARAMS, hash) - 0usize]; }; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct specifiedParams { + pub levels: CK_HSS_LEVELS, + pub lm_type: [CK_LMS_TYPE; 8usize], + pub lm_ots_type: [CK_LMOTS_TYPE; 8usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of specifiedParams"][::std::mem::size_of::() - 136usize]; + ["Alignment of specifiedParams"][::std::mem::align_of::() - 8usize]; + ["Offset of field: specifiedParams::levels"] + [::std::mem::offset_of!(specifiedParams, levels) - 0usize]; + ["Offset of field: specifiedParams::lm_type"] + [::std::mem::offset_of!(specifiedParams, lm_type) - 8usize]; + ["Offset of field: specifiedParams::lm_ots_type"] + [::std::mem::offset_of!(specifiedParams, lm_ots_type) - 72usize]; +}; pub type CK_SSL3_KEY_MAT_OUT_PTR = *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_OUT_PTR_PTR = *mut *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_PARAMS_PTR = *mut CK_SSL3_KEY_MAT_PARAMS; diff --git a/cryptoki-sys/src/bindings/x86_64-pc-windows-msvc.rs b/cryptoki-sys/src/bindings/x86_64-pc-windows-msvc.rs index 5431e621..d9a938c1 100644 --- a/cryptoki-sys/src/bindings/x86_64-pc-windows-msvc.rs +++ b/cryptoki-sys/src/bindings/x86_64-pc-windows-msvc.rs @@ -1,7 +1,7 @@ /* automatically generated by rust-bindgen 0.70.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 0; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -156,6 +156,12 @@ pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551; pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552; pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553; pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554; +pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559; +pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560; +pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561; +pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562; +pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563; +pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564; pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648; pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353; pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354; @@ -266,6 +272,7 @@ pub const CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0; pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1; pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2; pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3; +pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4; pub const CKG_MGF1_SHA1: CK_GENERATOR_FUNCTION = 1; pub const CKG_MGF1_SHA256: CK_GENERATOR_FUNCTION = 2; pub const CKG_MGF1_SHA384: CK_GENERATOR_FUNCTION = 3; @@ -339,6 +346,7 @@ pub const CKK_HKDF: CK_KEY_TYPE = 66; pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67; pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68; pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69; +pub const CKK_HSS: CK_KEY_TYPE = 70; pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_CAST5: CK_KEY_TYPE = 24; @@ -714,6 +722,7 @@ pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459; +pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387; @@ -769,6 +778,12 @@ pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940; pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941; pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942; +pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430; +pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431; +pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432; +pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433; +pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434; +pub const CKM_HSS: CK_MECHANISM_TYPE = 16435; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; @@ -796,6 +811,8 @@ pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2; pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3; pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4; +pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5; +pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6; pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648; pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1; pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2; @@ -902,6 +919,7 @@ pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513; pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514; +pub const CKR_KEY_EXHAUSTED: CK_RV = 515; pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; @@ -939,12 +957,18 @@ pub type CK_FLAGS = CK_ULONG; pub type CK_FLAGS_PTR = *mut CK_FLAGS; pub type CK_GENERATOR_FUNCTION = CK_ULONG; pub type CK_GENERATOR_FUNCTION_PTR = *mut CK_GENERATOR_FUNCTION; +pub type CK_HSS_LEVELS = CK_ULONG; +pub type CK_HSS_LEVELS_PTR = *mut CK_HSS_LEVELS; pub type CK_HW_FEATURE_TYPE = CK_ULONG; pub type CK_HW_FEATURE_TYPE_PTR = *mut CK_HW_FEATURE_TYPE; pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG; pub type CK_JAVA_MIDP_SECURITY_DOMAIN_PTR = *mut CK_JAVA_MIDP_SECURITY_DOMAIN; pub type CK_KEY_TYPE = CK_ULONG; pub type CK_KEY_TYPE_PTR = *mut CK_KEY_TYPE; +pub type CK_LMS_TYPE = CK_ULONG; +pub type CK_LMS_TYPE_PTR = *mut CK_LMS_TYPE; +pub type CK_LMOTS_TYPE = CK_ULONG; +pub type CK_LMOTS_TYPE_PTR = *mut CK_LMOTS_TYPE; pub type CK_MAC_GENERAL_PARAMS = CK_ULONG; pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS; pub type CK_MECHANISM_TYPE = CK_ULONG; @@ -1409,6 +1433,14 @@ pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR = *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS; pub type CK_HKDF_PARAMS_PTR_PTR = *mut *mut CK_HKDF_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA; @@ -1485,11 +1517,6 @@ pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR = *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_XEDDSA_PARAMS_PTR = *mut CK_XEDDSA_PARAMS; pub type CK_XEDDSA_PARAMS_PTR_PTR = *mut *mut CK_XEDDSA_PARAMS; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct specifiedParams { - _unused: [u8; 0], -} pub type specifiedParams_PTR = *mut specifiedParams; pub type specifiedParams_PTR_PTR = *mut *mut specifiedParams; #[repr(C, packed)] @@ -2266,6 +2293,167 @@ impl Default for CK_HKDF_PARAMS { } #[repr(C, packed)] #[derive(Debug, Copy, Clone)] +pub struct CK_IKE_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bDataAsKey: CK_BBOOL, + pub bRekey: CK_BBOOL, + pub pNi: *mut CK_BYTE, + pub ulNiLen: CK_ULONG, + pub pNr: *mut CK_BYTE, + pub ulNrLen: CK_ULONG, + pub hNewKey: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 34usize]; + ["Alignment of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 1usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bDataAsKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bDataAsKey) - 4usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bRekey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bRekey) - 5usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNi"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNi) - 6usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNiLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNiLen) - 14usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNr"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNr) - 18usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNrLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNrLen) - 26usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::hNewKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, hNewKey) - 30usize]; +}; +impl Default for CK_IKE_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasKeygxy: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub pExtraData: *mut CK_BYTE, + pub ulExtraDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::size_of::() - 21usize]; + ["Alignment of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::align_of::() - 1usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::bHasKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, bHasKeygxy) - 4usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, hKeygxy) - 5usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::pExtraData"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, pExtraData) - 9usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::ulExtraDataLen"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, ulExtraDataLen) - 17usize]; +}; +impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasPrevKey: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub hPrevKey: CK_OBJECT_HANDLE, + pub pCKYi: *mut CK_BYTE, + pub ulCKYiLen: CK_ULONG, + pub pCKYr: *mut CK_BYTE, + pub ulCKYrLen: CK_ULONG, + pub keyNumber: CK_BYTE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 38usize]; + ["Alignment of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 1usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::bHasPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, bHasPrevKey) - 4usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hKeygxy) - 5usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hPrevKey) - 9usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYi"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYi) - 13usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYiLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYiLen) - 21usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYr"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYr) - 25usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYrLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYrLen) - 33usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::keyNumber"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, keyNumber) - 37usize]; +}; +impl Default for CK_IKE1_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasSeedKey: CK_BBOOL, + pub hSeedKey: CK_OBJECT_HANDLE, + pub pSeedData: *mut CK_BYTE, + pub ulSeedDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::size_of::() - 21usize]; + ["Alignment of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::align_of::() - 1usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::bHasSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, bHasSeedKey) - 4usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::hSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, hSeedKey) - 5usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::pSeedData"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, pSeedData) - 9usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::ulSeedDataLen"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, ulSeedDataLen) - 17usize]; +}; +impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] pub struct CK_KEA_DERIVE_PARAMS { pub isSender: CK_BBOOL, pub ulRandomLen: CK_ULONG, @@ -3448,6 +3636,24 @@ const _: () = { ["Offset of field: CK_XEDDSA_PARAMS::hash"] [::std::mem::offset_of!(CK_XEDDSA_PARAMS, hash) - 0usize]; }; +#[repr(C, packed)] +#[derive(Debug, Default, Copy, Clone)] +pub struct specifiedParams { + pub levels: CK_HSS_LEVELS, + pub lm_type: [CK_LMS_TYPE; 8usize], + pub lm_ots_type: [CK_LMOTS_TYPE; 8usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of specifiedParams"][::std::mem::size_of::() - 68usize]; + ["Alignment of specifiedParams"][::std::mem::align_of::() - 1usize]; + ["Offset of field: specifiedParams::levels"] + [::std::mem::offset_of!(specifiedParams, levels) - 0usize]; + ["Offset of field: specifiedParams::lm_type"] + [::std::mem::offset_of!(specifiedParams, lm_type) - 4usize]; + ["Offset of field: specifiedParams::lm_ots_type"] + [::std::mem::offset_of!(specifiedParams, lm_ots_type) - 36usize]; +}; pub type CK_SSL3_KEY_MAT_OUT_PTR = *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_OUT_PTR_PTR = *mut *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_PARAMS_PTR = *mut CK_SSL3_KEY_MAT_PARAMS; diff --git a/cryptoki-sys/src/bindings/x86_64-unknown-freebsd.rs b/cryptoki-sys/src/bindings/x86_64-unknown-freebsd.rs index abd6f480..3b594e91 100644 --- a/cryptoki-sys/src/bindings/x86_64-unknown-freebsd.rs +++ b/cryptoki-sys/src/bindings/x86_64-unknown-freebsd.rs @@ -1,7 +1,7 @@ /* automatically generated by rust-bindgen 0.70.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 0; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -156,6 +156,12 @@ pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551; pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552; pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553; pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554; +pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559; +pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560; +pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561; +pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562; +pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563; +pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564; pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648; pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353; pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354; @@ -266,6 +272,7 @@ pub const CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0; pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1; pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2; pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3; +pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4; pub const CKG_MGF1_SHA1: CK_GENERATOR_FUNCTION = 1; pub const CKG_MGF1_SHA256: CK_GENERATOR_FUNCTION = 2; pub const CKG_MGF1_SHA384: CK_GENERATOR_FUNCTION = 3; @@ -339,6 +346,7 @@ pub const CKK_HKDF: CK_KEY_TYPE = 66; pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67; pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68; pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69; +pub const CKK_HSS: CK_KEY_TYPE = 70; pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_CAST5: CK_KEY_TYPE = 24; @@ -714,6 +722,7 @@ pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459; +pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387; @@ -769,6 +778,12 @@ pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940; pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941; pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942; +pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430; +pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431; +pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432; +pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433; +pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434; +pub const CKM_HSS: CK_MECHANISM_TYPE = 16435; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; @@ -796,6 +811,8 @@ pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2; pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3; pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4; +pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5; +pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6; pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648; pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1; pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2; @@ -902,6 +919,7 @@ pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513; pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514; +pub const CKR_KEY_EXHAUSTED: CK_RV = 515; pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; @@ -939,12 +957,18 @@ pub type CK_FLAGS = CK_ULONG; pub type CK_FLAGS_PTR = *mut CK_FLAGS; pub type CK_GENERATOR_FUNCTION = CK_ULONG; pub type CK_GENERATOR_FUNCTION_PTR = *mut CK_GENERATOR_FUNCTION; +pub type CK_HSS_LEVELS = CK_ULONG; +pub type CK_HSS_LEVELS_PTR = *mut CK_HSS_LEVELS; pub type CK_HW_FEATURE_TYPE = CK_ULONG; pub type CK_HW_FEATURE_TYPE_PTR = *mut CK_HW_FEATURE_TYPE; pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG; pub type CK_JAVA_MIDP_SECURITY_DOMAIN_PTR = *mut CK_JAVA_MIDP_SECURITY_DOMAIN; pub type CK_KEY_TYPE = CK_ULONG; pub type CK_KEY_TYPE_PTR = *mut CK_KEY_TYPE; +pub type CK_LMS_TYPE = CK_ULONG; +pub type CK_LMS_TYPE_PTR = *mut CK_LMS_TYPE; +pub type CK_LMOTS_TYPE = CK_ULONG; +pub type CK_LMOTS_TYPE_PTR = *mut CK_LMOTS_TYPE; pub type CK_MAC_GENERAL_PARAMS = CK_ULONG; pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS; pub type CK_MECHANISM_TYPE = CK_ULONG; @@ -1409,6 +1433,14 @@ pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR = *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS; pub type CK_HKDF_PARAMS_PTR_PTR = *mut *mut CK_HKDF_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA; @@ -1485,11 +1517,6 @@ pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR = *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_XEDDSA_PARAMS_PTR = *mut CK_XEDDSA_PARAMS; pub type CK_XEDDSA_PARAMS_PTR_PTR = *mut *mut CK_XEDDSA_PARAMS; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct specifiedParams { - _unused: [u8; 0], -} pub type specifiedParams_PTR = *mut specifiedParams; pub type specifiedParams_PTR_PTR = *mut *mut specifiedParams; #[repr(C)] @@ -2266,6 +2293,167 @@ impl Default for CK_HKDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_IKE_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bDataAsKey: CK_BBOOL, + pub bRekey: CK_BBOOL, + pub pNi: *mut CK_BYTE, + pub ulNiLen: CK_ULONG, + pub pNr: *mut CK_BYTE, + pub ulNrLen: CK_ULONG, + pub hNewKey: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 56usize]; + ["Alignment of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bDataAsKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bDataAsKey) - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bRekey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bRekey) - 9usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNi"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNi) - 16usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNiLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNiLen) - 24usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNr"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNr) - 32usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNrLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNrLen) - 40usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::hNewKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, hNewKey) - 48usize]; +}; +impl Default for CK_IKE_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasKeygxy: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub pExtraData: *mut CK_BYTE, + pub ulExtraDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::bHasKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, bHasKeygxy) - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::pExtraData"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, pExtraData) - 24usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::ulExtraDataLen"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, ulExtraDataLen) - 32usize]; +}; +impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasPrevKey: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub hPrevKey: CK_OBJECT_HANDLE, + pub pCKYi: *mut CK_BYTE, + pub ulCKYiLen: CK_ULONG, + pub pCKYr: *mut CK_BYTE, + pub ulCKYrLen: CK_ULONG, + pub keyNumber: CK_BYTE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 72usize]; + ["Alignment of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::bHasPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, bHasPrevKey) - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hPrevKey) - 24usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYi"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYi) - 32usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYiLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYiLen) - 40usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYr"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYr) - 48usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYrLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYrLen) - 56usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::keyNumber"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, keyNumber) - 64usize]; +}; +impl Default for CK_IKE1_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasSeedKey: CK_BBOOL, + pub hSeedKey: CK_OBJECT_HANDLE, + pub pSeedData: *mut CK_BYTE, + pub ulSeedDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::bHasSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, bHasSeedKey) - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::hSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, hSeedKey) - 16usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::pSeedData"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, pSeedData) - 24usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::ulSeedDataLen"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, ulSeedDataLen) - 32usize]; +}; +impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct CK_KEA_DERIVE_PARAMS { pub isSender: CK_BBOOL, pub ulRandomLen: CK_ULONG, @@ -3448,6 +3636,24 @@ const _: () = { ["Offset of field: CK_XEDDSA_PARAMS::hash"] [::std::mem::offset_of!(CK_XEDDSA_PARAMS, hash) - 0usize]; }; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct specifiedParams { + pub levels: CK_HSS_LEVELS, + pub lm_type: [CK_LMS_TYPE; 8usize], + pub lm_ots_type: [CK_LMOTS_TYPE; 8usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of specifiedParams"][::std::mem::size_of::() - 136usize]; + ["Alignment of specifiedParams"][::std::mem::align_of::() - 8usize]; + ["Offset of field: specifiedParams::levels"] + [::std::mem::offset_of!(specifiedParams, levels) - 0usize]; + ["Offset of field: specifiedParams::lm_type"] + [::std::mem::offset_of!(specifiedParams, lm_type) - 8usize]; + ["Offset of field: specifiedParams::lm_ots_type"] + [::std::mem::offset_of!(specifiedParams, lm_ots_type) - 72usize]; +}; pub type CK_SSL3_KEY_MAT_OUT_PTR = *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_OUT_PTR_PTR = *mut *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_PARAMS_PTR = *mut CK_SSL3_KEY_MAT_PARAMS; diff --git a/cryptoki-sys/src/bindings/x86_64-unknown-linux-gnu.rs b/cryptoki-sys/src/bindings/x86_64-unknown-linux-gnu.rs index abd6f480..3b594e91 100644 --- a/cryptoki-sys/src/bindings/x86_64-unknown-linux-gnu.rs +++ b/cryptoki-sys/src/bindings/x86_64-unknown-linux-gnu.rs @@ -1,7 +1,7 @@ /* automatically generated by rust-bindgen 0.70.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 0; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -156,6 +156,12 @@ pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551; pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552; pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553; pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554; +pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559; +pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560; +pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561; +pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562; +pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563; +pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564; pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648; pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353; pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354; @@ -266,6 +272,7 @@ pub const CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0; pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1; pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2; pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3; +pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4; pub const CKG_MGF1_SHA1: CK_GENERATOR_FUNCTION = 1; pub const CKG_MGF1_SHA256: CK_GENERATOR_FUNCTION = 2; pub const CKG_MGF1_SHA384: CK_GENERATOR_FUNCTION = 3; @@ -339,6 +346,7 @@ pub const CKK_HKDF: CK_KEY_TYPE = 66; pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67; pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68; pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69; +pub const CKK_HSS: CK_KEY_TYPE = 70; pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_CAST5: CK_KEY_TYPE = 24; @@ -714,6 +722,7 @@ pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459; +pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387; @@ -769,6 +778,12 @@ pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940; pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941; pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942; +pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430; +pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431; +pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432; +pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433; +pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434; +pub const CKM_HSS: CK_MECHANISM_TYPE = 16435; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; @@ -796,6 +811,8 @@ pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2; pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3; pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4; +pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5; +pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6; pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648; pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1; pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2; @@ -902,6 +919,7 @@ pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513; pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514; +pub const CKR_KEY_EXHAUSTED: CK_RV = 515; pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; @@ -939,12 +957,18 @@ pub type CK_FLAGS = CK_ULONG; pub type CK_FLAGS_PTR = *mut CK_FLAGS; pub type CK_GENERATOR_FUNCTION = CK_ULONG; pub type CK_GENERATOR_FUNCTION_PTR = *mut CK_GENERATOR_FUNCTION; +pub type CK_HSS_LEVELS = CK_ULONG; +pub type CK_HSS_LEVELS_PTR = *mut CK_HSS_LEVELS; pub type CK_HW_FEATURE_TYPE = CK_ULONG; pub type CK_HW_FEATURE_TYPE_PTR = *mut CK_HW_FEATURE_TYPE; pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG; pub type CK_JAVA_MIDP_SECURITY_DOMAIN_PTR = *mut CK_JAVA_MIDP_SECURITY_DOMAIN; pub type CK_KEY_TYPE = CK_ULONG; pub type CK_KEY_TYPE_PTR = *mut CK_KEY_TYPE; +pub type CK_LMS_TYPE = CK_ULONG; +pub type CK_LMS_TYPE_PTR = *mut CK_LMS_TYPE; +pub type CK_LMOTS_TYPE = CK_ULONG; +pub type CK_LMOTS_TYPE_PTR = *mut CK_LMOTS_TYPE; pub type CK_MAC_GENERAL_PARAMS = CK_ULONG; pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS; pub type CK_MECHANISM_TYPE = CK_ULONG; @@ -1409,6 +1433,14 @@ pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR = *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_KEY_WRAP_PARAMS; pub type CK_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS; pub type CK_HKDF_PARAMS_PTR_PTR = *mut *mut CK_HKDF_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE_PRF_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_EXTENDED_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_PRF_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; +pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEA_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_KEA_DERIVE_PARAMS; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA; @@ -1485,11 +1517,6 @@ pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR = *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_MQV_DERIVE_PARAMS; pub type CK_XEDDSA_PARAMS_PTR = *mut CK_XEDDSA_PARAMS; pub type CK_XEDDSA_PARAMS_PTR_PTR = *mut *mut CK_XEDDSA_PARAMS; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct specifiedParams { - _unused: [u8; 0], -} pub type specifiedParams_PTR = *mut specifiedParams; pub type specifiedParams_PTR_PTR = *mut *mut specifiedParams; #[repr(C)] @@ -2266,6 +2293,167 @@ impl Default for CK_HKDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_IKE_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bDataAsKey: CK_BBOOL, + pub bRekey: CK_BBOOL, + pub pNi: *mut CK_BYTE, + pub ulNiLen: CK_ULONG, + pub pNr: *mut CK_BYTE, + pub ulNrLen: CK_ULONG, + pub hNewKey: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 56usize]; + ["Alignment of CK_IKE_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bDataAsKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bDataAsKey) - 8usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bRekey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bRekey) - 9usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNi"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNi) - 16usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNiLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNiLen) - 24usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNr"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNr) - 32usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNrLen"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNrLen) - 40usize]; + ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::hNewKey"] + [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, hNewKey) - 48usize]; +}; +impl Default for CK_IKE_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasKeygxy: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub pExtraData: *mut CK_BYTE, + pub ulExtraDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE1_EXTENDED_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::bHasKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, bHasKeygxy) - 8usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::pExtraData"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, pExtraData) - 24usize]; + ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::ulExtraDataLen"] + [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, ulExtraDataLen) - 32usize]; +}; +impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE1_PRF_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasPrevKey: CK_BBOOL, + pub hKeygxy: CK_OBJECT_HANDLE, + pub hPrevKey: CK_OBJECT_HANDLE, + pub pCKYi: *mut CK_BYTE, + pub ulCKYiLen: CK_ULONG, + pub pCKYr: *mut CK_BYTE, + pub ulCKYrLen: CK_ULONG, + pub keyNumber: CK_BYTE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::size_of::() - 72usize]; + ["Alignment of CK_IKE1_PRF_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::bHasPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, bHasPrevKey) - 8usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hKeygxy"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hKeygxy) - 16usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hPrevKey"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hPrevKey) - 24usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYi"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYi) - 32usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYiLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYiLen) - 40usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYr"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYr) - 48usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYrLen"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYrLen) - 56usize]; + ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::keyNumber"] + [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, keyNumber) - 64usize]; +}; +impl Default for CK_IKE1_PRF_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + pub prfMechanism: CK_MECHANISM_TYPE, + pub bHasSeedKey: CK_BBOOL, + pub hSeedKey: CK_OBJECT_HANDLE, + pub pSeedData: *mut CK_BYTE, + pub ulSeedDataLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::size_of::() - 40usize]; + ["Alignment of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::prfMechanism"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, prfMechanism) - 0usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::bHasSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, bHasSeedKey) - 8usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::hSeedKey"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, hSeedKey) - 16usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::pSeedData"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, pSeedData) - 24usize]; + ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::ulSeedDataLen"] + [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, ulSeedDataLen) - 32usize]; +}; +impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct CK_KEA_DERIVE_PARAMS { pub isSender: CK_BBOOL, pub ulRandomLen: CK_ULONG, @@ -3448,6 +3636,24 @@ const _: () = { ["Offset of field: CK_XEDDSA_PARAMS::hash"] [::std::mem::offset_of!(CK_XEDDSA_PARAMS, hash) - 0usize]; }; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct specifiedParams { + pub levels: CK_HSS_LEVELS, + pub lm_type: [CK_LMS_TYPE; 8usize], + pub lm_ots_type: [CK_LMOTS_TYPE; 8usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of specifiedParams"][::std::mem::size_of::() - 136usize]; + ["Alignment of specifiedParams"][::std::mem::align_of::() - 8usize]; + ["Offset of field: specifiedParams::levels"] + [::std::mem::offset_of!(specifiedParams, levels) - 0usize]; + ["Offset of field: specifiedParams::lm_type"] + [::std::mem::offset_of!(specifiedParams, lm_type) - 8usize]; + ["Offset of field: specifiedParams::lm_ots_type"] + [::std::mem::offset_of!(specifiedParams, lm_ots_type) - 72usize]; +}; pub type CK_SSL3_KEY_MAT_OUT_PTR = *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_OUT_PTR_PTR = *mut *mut CK_SSL3_KEY_MAT_OUT; pub type CK_SSL3_KEY_MAT_PARAMS_PTR = *mut CK_SSL3_KEY_MAT_PARAMS; diff --git a/cryptoki-sys/vendor/README.md b/cryptoki-sys/vendor/README.md index 1dfbcba0..bcc343de 100644 --- a/cryptoki-sys/vendor/README.md +++ b/cryptoki-sys/vendor/README.md @@ -1,7 +1,7 @@ Vendor -This is downloaded from https://github.com/latchset/pkcs11-headers/blob/b131b9e4599db6e0287a3d74f6768e08a0c82d23/public-domain/3.0/pkcs11.h: +This is downloaded from https://github.com/latchset/pkcs11-headers/blob/b131b9e4599db6e0287a3d74f6768e08a0c82d23/public-domain/3.1/pkcs11.h: ```shell -wget https://raw.githubusercontent.com/latchset/pkcs11-headers/b131b9e4599db6e0287a3d74f6768e08a0c82d23/public-domain/3.0/pkcs11.h -``` \ No newline at end of file +wget https://raw.githubusercontent.com/latchset/pkcs11-headers/0ecf659eaa743472192bf3af2579144c5f8c053f/public-domain/3.1/pkcs11.h +``` diff --git a/cryptoki-sys/vendor/pkcs11.h b/cryptoki-sys/vendor/pkcs11.h index 388e07e2..21bdc4be 100644 --- a/cryptoki-sys/vendor/pkcs11.h +++ b/cryptoki-sys/vendor/pkcs11.h @@ -4,7 +4,7 @@ #define _PD_PKCS11_ #define CRYPTOKI_VERSION_MAJOR 3 -#define CRYPTOKI_VERSION_MINOR 0 +#define CRYPTOKI_VERSION_MINOR 1 #define CRYPTOKI_VERSION_AMENDMENT 0 #if defined(_WIN32) || defined(CRYPTOKI_FORCE_WIN32) @@ -47,9 +47,12 @@ ULONGDEF(CK_EC_KDF_TYPE); ULONGDEF(CK_EXTRACT_PARAMS); ULONGDEF(CK_FLAGS); ULONGDEF(CK_GENERATOR_FUNCTION); +ULONGDEF(CK_HSS_LEVELS); ULONGDEF(CK_HW_FEATURE_TYPE); ULONGDEF(CK_JAVA_MIDP_SECURITY_DOMAIN); ULONGDEF(CK_KEY_TYPE); +ULONGDEF(CK_LMS_TYPE); +ULONGDEF(CK_LMOTS_TYPE); ULONGDEF(CK_MAC_GENERAL_PARAMS); ULONGDEF(CK_MECHANISM_TYPE); ULONGDEF(CK_NOTIFICATION); @@ -240,6 +243,12 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKA_X2RATCHET_NS 0x00000610UL #define CKA_X2RATCHET_PNS 0x00000611UL #define CKA_X2RATCHET_RK 0x00000612UL +#define CKA_HSS_LEVELS 0x00000617UL +#define CKA_HSS_LMS_TYPE 0x00000618UL +#define CKA_HSS_LMOTS_TYPE 0x00000619UL +#define CKA_HSS_LMS_TYPES 0x0000061AUL +#define CKA_HSS_LMOTS_TYPES 0x0000061BUL +#define CKA_HSS_KEYS_REMAINING 0x0000061CUL #define CKA_VENDOR_DEFINED 0x80000000UL /* Array attributes */ #define CKA_WRAP_TEMPLATE 0x40000211UL @@ -385,6 +394,7 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKG_GENERATE 0x00000001UL #define CKG_GENERATE_COUNTER 0x00000002UL #define CKG_GENERATE_RANDOM 0x00000003UL +#define CKG_GENERATE_COUNTER_XOR 0x00000004UL /* CKG (MFG) */ #define CKG_MGF1_SHA1 0x00000001UL @@ -464,6 +474,7 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKK_SHA512_224_HMAC 0x00000043UL #define CKK_SHA512_256_HMAC 0x00000044UL #define CKK_SHA512_T_HMAC 0x00000045UL +#define CKK_HSS 0x00000046UL #define CKK_VENDOR_DEFINED 0x80000000UL /* Deprecated */ #ifdef PKCS11_DEPRECATED @@ -844,6 +855,7 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKM_AES_KEY_WRAP 0x00002109UL #define CKM_AES_KEY_WRAP_PAD 0x0000210AUL #define CKM_AES_KEY_WRAP_KWP 0x0000210BUL +#define CKM_AES_KEY_WRAP_PKCS7 0x0000210CUL #define CKM_RSA_PKCS_TPM_1_1 0x00004001UL #define CKM_RSA_PKCS_OAEP_TPM_1_1 0x00004002UL #define CKM_SHA_1_KEY_GEN 0x00004003UL @@ -899,6 +911,12 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKM_SP800_108_COUNTER_KDF 0x000003ACUL #define CKM_SP800_108_FEEDBACK_KDF 0x000003ADUL #define CKM_SP800_108_DOUBLE_PIPELINE_KDF 0x000003AEUL +#define CKM_IKE2_PRF_PLUS_DERIVE 0x0000402EUL +#define CKM_IKE_PRF_DERIVE 0x0000402FUL +#define CKM_IKE1_PRF_DERIVE 0x00004030UL +#define CKM_IKE1_EXTENDED_DERIVE 0x00004031UL +#define CKM_HSS_KEY_PAIR_GEN 0x00004032UL +#define CKM_HSS 0x00004033UL #define CKM_VENDOR_DEFINED 0x80000000UL /* Deprecated */ #ifdef PKCS11_DEPRECATED @@ -935,6 +953,8 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKP_EXTENDED_PROVIDER 0x00000002UL #define CKP_AUTHENTICATION_TOKEN 0x00000003UL #define CKP_PUBLIC_CERTIFICATES_TOKEN 0x00000004UL +#define CKP_COMPLETE_PROVIDER 0x00000005UL +#define CKP_HKDF_TLS_TOKEN 0x00000006UL #define CKP_VENDOR_DEFINED 0x80000000UL /* CKP (PBKD2) */ @@ -1045,6 +1065,7 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKR_FUNCTION_REJECTED 0x00000200UL #define CKR_TOKEN_RESOURCE_EXCEEDED 0x00000201UL #define CKR_OPERATION_CANCEL_FAILED 0x00000202UL +#define CKR_KEY_EXHAUSTED 0x00000203UL #define CKR_VENDOR_DEFINED 0x80000000UL @@ -1215,6 +1236,10 @@ STRUCTDEF(CK_GCM_PARAMS); STRUCTDEF(CK_GOSTR3410_DERIVE_PARAMS); STRUCTDEF(CK_GOSTR3410_KEY_WRAP_PARAMS); STRUCTDEF(CK_HKDF_PARAMS); +STRUCTDEF(CK_IKE_PRF_DERIVE_PARAMS); +STRUCTDEF(CK_IKE1_EXTENDED_DERIVE_PARAMS); +STRUCTDEF(CK_IKE1_PRF_DERIVE_PARAMS); +STRUCTDEF(CK_IKE2_PRF_PLUS_DERIVE_PARAMS); STRUCTDEF(CK_KEA_DERIVE_PARAMS); STRUCTDEF(CK_KEY_DERIVATION_STRING_DATA); STRUCTDEF(CK_KEY_WRAP_SET_OAEP_PARAMS); @@ -1442,6 +1467,45 @@ struct CK_HKDF_PARAMS { CK_ULONG ulInfoLen; }; +struct CK_IKE_PRF_DERIVE_PARAMS { + CK_MECHANISM_TYPE prfMechanism; + CK_BBOOL bDataAsKey; + CK_BBOOL bRekey; + CK_BYTE * pNi; + CK_ULONG ulNiLen; + CK_BYTE * pNr; + CK_ULONG ulNrLen; + CK_OBJECT_HANDLE hNewKey; +}; + +struct CK_IKE1_EXTENDED_DERIVE_PARAMS { + CK_MECHANISM_TYPE prfMechanism; + CK_BBOOL bHasKeygxy; + CK_OBJECT_HANDLE hKeygxy; + CK_BYTE * pExtraData; + CK_ULONG ulExtraDataLen; +}; + +struct CK_IKE1_PRF_DERIVE_PARAMS { + CK_MECHANISM_TYPE prfMechanism; + CK_BBOOL bHasPrevKey; + CK_OBJECT_HANDLE hKeygxy; + CK_OBJECT_HANDLE hPrevKey; + CK_BYTE * pCKYi; + CK_ULONG ulCKYiLen; + CK_BYTE * pCKYr; + CK_ULONG ulCKYrLen; + CK_BYTE keyNumber; +}; + +struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS { + CK_MECHANISM_TYPE prfMechanism; + CK_BBOOL bHasSeedKey; + CK_OBJECT_HANDLE hSeedKey; + CK_BYTE * pSeedData; + CK_ULONG ulSeedDataLen; +}; + struct CK_KEA_DERIVE_PARAMS { CK_BBOOL isSender; CK_ULONG ulRandomLen; @@ -1738,6 +1802,12 @@ struct CK_XEDDSA_PARAMS { CK_XEDDSA_HASH_TYPE hash; }; +struct specifiedParams { + CK_HSS_LEVELS levels; + CK_LMS_TYPE lm_type[8]; + CK_LMOTS_TYPE lm_ots_type[8]; +}; + /* TLS related structure definitions */ STRUCTDEF(CK_SSL3_KEY_MAT_OUT); STRUCTDEF(CK_SSL3_KEY_MAT_PARAMS); @@ -2341,7 +2411,6 @@ struct CK_FUNCTION_LIST { CK_C_WaitForSlotEvent C_WaitForSlotEvent; }; - #if defined(_WIN32) || defined(CRYPTOKI_FORCE_WIN32) #pragma pack(pop, cryptoki) #endif diff --git a/cryptoki/src/context/general_purpose.rs b/cryptoki/src/context/general_purpose.rs index 918f85ad..be7ead9d 100644 --- a/cryptoki/src/context/general_purpose.rs +++ b/cryptoki/src/context/general_purpose.rs @@ -37,24 +37,13 @@ macro_rules! check_fn { ($pkcs11:expr, $func_name:ident) => {{ let func = paste! { $pkcs11 .impl_ - .function_list + .get_function_list() .[] }; func.is_some() }}; } -macro_rules! check_30_fn { - ($pkcs11:expr, $func_name:ident) => {{ - let func = paste! { $pkcs11 - .impl_ - .function_list_30 - .map(|f| f.[]) - }; - func.is_some() - }}; -} - #[allow(missing_docs)] #[derive(Debug, Copy, Clone)] /// Enumeration of all functions defined by the PKCS11 spec @@ -232,29 +221,29 @@ pub(super) fn is_fn_supported(ctx: &Pkcs11, function: Function) -> bool { Function::CancelFunction => check_fn!(ctx, CancelFunction), Function::WaitForSlotEvent => check_fn!(ctx, WaitForSlotEvent), /* PKCS #11 3.0 */ - Function::GetInterfaceList => check_30_fn!(ctx, GetInterfaceList), - Function::GetInterface => check_30_fn!(ctx, GetInterface), - Function::LoginUser => check_30_fn!(ctx, LoginUser), - Function::SessionCancel => check_30_fn!(ctx, SessionCancel), - Function::MessageEncryptInit => check_30_fn!(ctx, MessageEncryptInit), - Function::EncryptMessage => check_30_fn!(ctx, EncryptMessage), - Function::EncryptMessageBegin => check_30_fn!(ctx, EncryptMessageBegin), - Function::EncryptMessageNext => check_30_fn!(ctx, EncryptMessageNext), - Function::MessageEncryptFinal => check_30_fn!(ctx, MessageEncryptFinal), - Function::MessageDecryptInit => check_30_fn!(ctx, MessageDecryptInit), - Function::DecryptMessage => check_30_fn!(ctx, DecryptMessage), - Function::DecryptMessageBegin => check_30_fn!(ctx, DecryptMessageBegin), - Function::DecryptMessageNext => check_30_fn!(ctx, DecryptMessageNext), - Function::MessageDecryptFinal => check_30_fn!(ctx, MessageDecryptFinal), - Function::MessageSignInit => check_30_fn!(ctx, MessageSignInit), - Function::SignMessage => check_30_fn!(ctx, SignMessage), - Function::SignMessageBegin => check_30_fn!(ctx, SignMessageBegin), - Function::SignMessageNext => check_30_fn!(ctx, SignMessageNext), - Function::MessageSignFinal => check_30_fn!(ctx, MessageSignFinal), - Function::MessageVerifyInit => check_30_fn!(ctx, MessageVerifyInit), - Function::VerifyMessage => check_30_fn!(ctx, VerifyMessage), - Function::VerifyMessageBegin => check_30_fn!(ctx, VerifyMessageBegin), - Function::VerifyMessageNext => check_30_fn!(ctx, VerifyMessageNext), - Function::MessageVerifyFinal => check_30_fn!(ctx, MessageVerifyFinal), + Function::GetInterfaceList => check_fn!(ctx, GetInterfaceList), + Function::GetInterface => check_fn!(ctx, GetInterface), + Function::LoginUser => check_fn!(ctx, LoginUser), + Function::SessionCancel => check_fn!(ctx, SessionCancel), + Function::MessageEncryptInit => check_fn!(ctx, MessageEncryptInit), + Function::EncryptMessage => check_fn!(ctx, EncryptMessage), + Function::EncryptMessageBegin => check_fn!(ctx, EncryptMessageBegin), + Function::EncryptMessageNext => check_fn!(ctx, EncryptMessageNext), + Function::MessageEncryptFinal => check_fn!(ctx, MessageEncryptFinal), + Function::MessageDecryptInit => check_fn!(ctx, MessageDecryptInit), + Function::DecryptMessage => check_fn!(ctx, DecryptMessage), + Function::DecryptMessageBegin => check_fn!(ctx, DecryptMessageBegin), + Function::DecryptMessageNext => check_fn!(ctx, DecryptMessageNext), + Function::MessageDecryptFinal => check_fn!(ctx, MessageDecryptFinal), + Function::MessageSignInit => check_fn!(ctx, MessageSignInit), + Function::SignMessage => check_fn!(ctx, SignMessage), + Function::SignMessageBegin => check_fn!(ctx, SignMessageBegin), + Function::SignMessageNext => check_fn!(ctx, SignMessageNext), + Function::MessageSignFinal => check_fn!(ctx, MessageSignFinal), + Function::MessageVerifyInit => check_fn!(ctx, MessageVerifyInit), + Function::VerifyMessage => check_fn!(ctx, VerifyMessage), + Function::VerifyMessageBegin => check_fn!(ctx, VerifyMessageBegin), + Function::VerifyMessageNext => check_fn!(ctx, VerifyMessageNext), + Function::MessageVerifyFinal => check_fn!(ctx, MessageVerifyFinal), } } diff --git a/cryptoki/src/context/mod.rs b/cryptoki/src/context/mod.rs index 9527c364..e320ef11 100644 --- a/cryptoki/src/context/mod.rs +++ b/cryptoki/src/context/mod.rs @@ -14,7 +14,7 @@ macro_rules! get_pkcs11 { /// Suitable only if the caller can't return a Result. macro_rules! get_pkcs11_func { ($pkcs11:expr, $func_name:ident) => { - ($pkcs11.impl_.function_list.$func_name) + ($pkcs11.impl_.get_function_list().$func_name) }; } @@ -38,31 +38,51 @@ use std::ptr; use std::sync::Arc; use std::sync::RwLock; +/// Enum for various function lists +/// Each following is super-set of the previous one with overlapping start so we store them +/// in the largest one so we can reference also potentially NULL/non-existing functions +#[derive(Debug)] +enum FunctionList { + /// PKCS #11 2.40 CK_FUNCTION_LIST + V2(cryptoki_sys::CK_FUNCTION_LIST_3_0), + /// PKCS #11 3.0 CK_FUNCTION_LIST_3_0 + V3_0(cryptoki_sys::CK_FUNCTION_LIST_3_0), + // TODO when PKCS #11 3.2 will be imported, change the above to 3_2 too! + // PKCS #11 3.2 CK_FUNCTION_LIST_3_2 + //V3_2(cryptoki_sys::CK_FUNCTION_LIST_3_2), +} + // Implementation of Pkcs11 class that can be enclosed in a single Arc pub(crate) struct Pkcs11Impl { // Even if this field is never read, it is needed for the pointers in function_list to remain // valid. _pkcs11_lib: cryptoki_sys::Pkcs11, - pub(crate) function_list: cryptoki_sys::CK_FUNCTION_LIST, - pub(crate) function_list_30: Option, + function_list: FunctionList, } impl fmt::Debug for Pkcs11Impl { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_struct("Pkcs11Impl") .field("function_list", &self.function_list) - .field("function_list_30", &self.function_list_30) .finish() } } impl Pkcs11Impl { + #[inline(always)] + pub(crate) fn get_function_list(&self) -> cryptoki_sys::CK_FUNCTION_LIST_3_0 { + match self.function_list { + FunctionList::V2(l) => l, + FunctionList::V3_0(l) => l, + } + } + // Private finalize call #[inline(always)] fn finalize(&self) -> Result<()> { unsafe { Rv::from(self - .function_list + .get_function_list() .C_Finalize .ok_or(Error::NullFunctionPointer)?( ptr::null_mut() @@ -137,8 +157,7 @@ impl Pkcs11 { return Ok(Pkcs11 { impl_: Arc::new(Pkcs11Impl { _pkcs11_lib: pkcs11_lib, - function_list: *list_ptr, /* the function list aliases */ - function_list_30: Some(*list30_ptr), + function_list: FunctionList::V3_0(*list30_ptr), }), initialized: Arc::new(RwLock::new(false)), }); @@ -157,8 +176,7 @@ impl Pkcs11 { Ok(Pkcs11 { impl_: Arc::new(Pkcs11Impl { _pkcs11_lib: pkcs11_lib, - function_list: *list_ptr, - function_list_30: None, + function_list: FunctionList::V2(v2tov3(*list_ptr)), }), initialized: Arc::new(RwLock::new(false)), }) @@ -200,3 +218,102 @@ impl Pkcs11 { is_fn_supported(self, function) } } + +/// This would be great to be From/Into, but it would have to live inside of the cryptoki-sys +fn v2tov3(f: cryptoki_sys::CK_FUNCTION_LIST) -> cryptoki_sys::CK_FUNCTION_LIST_3_0 { + cryptoki_sys::CK_FUNCTION_LIST_3_0 { + version: f.version, + C_Initialize: f.C_Initialize, + C_Finalize: f.C_Finalize, + C_GetInfo: f.C_GetInfo, + C_GetFunctionList: f.C_GetFunctionList, + C_GetSlotList: f.C_GetSlotList, + C_GetSlotInfo: f.C_GetSlotInfo, + C_GetTokenInfo: f.C_GetTokenInfo, + C_GetMechanismList: f.C_GetMechanismList, + C_GetMechanismInfo: f.C_GetMechanismInfo, + C_InitToken: f.C_InitToken, + C_InitPIN: f.C_InitPIN, + C_SetPIN: f.C_SetPIN, + C_OpenSession: f.C_OpenSession, + C_CloseSession: f.C_CloseSession, + C_CloseAllSessions: f.C_CloseAllSessions, + C_GetSessionInfo: f.C_GetSessionInfo, + C_GetOperationState: f.C_GetOperationState, + C_SetOperationState: f.C_SetOperationState, + C_Login: f.C_Login, + C_Logout: f.C_Logout, + C_CreateObject: f.C_CreateObject, + C_CopyObject: f.C_CopyObject, + C_DestroyObject: f.C_DestroyObject, + C_GetObjectSize: f.C_GetObjectSize, + C_GetAttributeValue: f.C_GetAttributeValue, + C_SetAttributeValue: f.C_SetAttributeValue, + C_FindObjectsInit: f.C_FindObjectsInit, + C_FindObjects: f.C_FindObjects, + C_FindObjectsFinal: f.C_FindObjectsFinal, + C_EncryptInit: f.C_EncryptInit, + C_Encrypt: f.C_Encrypt, + C_EncryptUpdate: f.C_EncryptUpdate, + C_EncryptFinal: f.C_EncryptFinal, + C_DecryptInit: f.C_DecryptInit, + C_Decrypt: f.C_Decrypt, + C_DecryptUpdate: f.C_DecryptUpdate, + C_DecryptFinal: f.C_DecryptFinal, + C_DigestInit: f.C_DigestInit, + C_Digest: f.C_Digest, + C_DigestUpdate: f.C_DigestUpdate, + C_DigestKey: f.C_DigestKey, + C_DigestFinal: f.C_DigestFinal, + C_SignInit: f.C_SignInit, + C_Sign: f.C_Sign, + C_SignUpdate: f.C_SignUpdate, + C_SignFinal: f.C_SignFinal, + C_SignRecoverInit: f.C_SignRecoverInit, + C_SignRecover: f.C_SignRecover, + C_VerifyInit: f.C_VerifyInit, + C_Verify: f.C_Verify, + C_VerifyUpdate: f.C_VerifyUpdate, + C_VerifyFinal: f.C_VerifyFinal, + C_VerifyRecoverInit: f.C_VerifyRecoverInit, + C_VerifyRecover: f.C_VerifyRecover, + C_DigestEncryptUpdate: f.C_DigestEncryptUpdate, + C_DecryptDigestUpdate: f.C_DecryptDigestUpdate, + C_SignEncryptUpdate: f.C_SignEncryptUpdate, + C_DecryptVerifyUpdate: f.C_DecryptVerifyUpdate, + C_GenerateKey: f.C_GenerateKey, + C_GenerateKeyPair: f.C_GenerateKeyPair, + C_WrapKey: f.C_WrapKey, + C_UnwrapKey: f.C_UnwrapKey, + C_DeriveKey: f.C_DeriveKey, + C_SeedRandom: f.C_SeedRandom, + C_GenerateRandom: f.C_GenerateRandom, + C_GetFunctionStatus: f.C_GetFunctionStatus, + C_CancelFunction: f.C_CancelFunction, + C_WaitForSlotEvent: f.C_WaitForSlotEvent, + C_GetInterfaceList: None, + C_GetInterface: None, + C_LoginUser: None, + C_SessionCancel: None, + C_MessageEncryptInit: None, + C_EncryptMessage: None, + C_EncryptMessageBegin: None, + C_EncryptMessageNext: None, + C_MessageEncryptFinal: None, + C_MessageDecryptInit: None, + C_DecryptMessage: None, + C_DecryptMessageBegin: None, + C_DecryptMessageNext: None, + C_MessageDecryptFinal: None, + C_MessageSignInit: None, + C_SignMessage: None, + C_SignMessageBegin: None, + C_SignMessageNext: None, + C_MessageSignFinal: None, + C_MessageVerifyInit: None, + C_VerifyMessage: None, + C_VerifyMessageBegin: None, + C_VerifyMessageNext: None, + C_MessageVerifyFinal: None, + } +} diff --git a/cryptoki/src/mechanism/aead.rs b/cryptoki/src/mechanism/aead.rs index ff9ee6df..3eb27695 100644 --- a/cryptoki/src/mechanism/aead.rs +++ b/cryptoki/src/mechanism/aead.rs @@ -80,7 +80,7 @@ impl<'a> GcmParams<'a> { /// The additional authenticated data. pub fn aad(&self) -> &'a [u8] { - // SAEFTY: In the constructor, the AAD always comes from a &'a [u8] + // SAFETY: In the constructor, the AAD always comes from a &'a [u8] unsafe { slice::from_raw_parts(self.inner.pAAD, self.inner.ulAADLen as _) } } @@ -89,3 +89,105 @@ impl<'a> GcmParams<'a> { self.inner.ulTagBits.into() } } + +/// The GCM generator function for the Initialization Vector +#[derive(Debug, Clone, Copy)] +pub enum GeneratorFunction { + /// `CKG_NO_GENERATE` no IV generation is done. + NoGenerate, + /// `CKG_GENERATE` the non-fixed part of IV is generated internally + Generate, + /// `CKG_GENERATE_COUNTER` the non-fixed part of IV is generated internally by incrementing + /// counter. Initially zero. + GenerateCounter, + /// `CKG_GENERATE_RANDOM` the non-fixed part of IV is generated internally by PRNG + GenerateRandom, + /// `CKG_GENERATE_COUNTER_XOR` the non-fixed part of IV xored with incrementing counter. + GenerateCounterXor, +} + +/// Parameters for message based AES-GCM operations. +#[derive(Debug, Copy, Clone)] +#[repr(transparent)] +pub struct GcmMessageParams<'a> { + inner: CK_GCM_MESSAGE_PARAMS, + _marker: PhantomData<&'a mut [u8]>, +} + +impl<'a> GcmMessageParams<'a> { + /// Construct GCM parameters for message based operations + /// + /// # Arguments + /// + /// `iv` - The initialization vector. This must be non-empty. In PKCS#11 + /// 3.0, the maximum length of the IV is 256 bytes. A 12-byte IV may be + /// processed more efficiently than other lengths. + /// + /// `iv_fixed_bits` - number of bits of the original IV to preserve when + /// generating an new IV. These bits are counted from the Most significant + /// bits (to the right). + /// + /// `iv_generator` - Function used to generate a new IV. Each IV must be + /// unique for a given session. + /// + /// `tag` - The buffer to store the tag. Either to be passed in or returned if generated by + /// token. + /// + /// # Errors + /// This function returns an error if the length of `iv` does not + /// fit into an [Ulong]. + pub fn new( + iv: &'a mut [u8], + iv_fixed_bits: Ulong, + iv_generator: GeneratorFunction, + tag: &'a mut [u8], + ) -> Result { + let tag_bits = tag.len() * 8; + Ok(GcmMessageParams { + inner: CK_GCM_MESSAGE_PARAMS { + pIv: iv.as_mut_ptr(), + ulIvLen: iv.len().try_into()?, + ulIvFixedBits: iv_fixed_bits.into(), + ivGenerator: match iv_generator { + GeneratorFunction::NoGenerate => CKG_NO_GENERATE, + GeneratorFunction::Generate => CKG_GENERATE, + GeneratorFunction::GenerateCounter => CKG_GENERATE_COUNTER, + GeneratorFunction::GenerateRandom => CKG_GENERATE_RANDOM, + GeneratorFunction::GenerateCounterXor => CKG_GENERATE_COUNTER_XOR, + }, + pTag: tag.as_mut_ptr(), + ulTagBits: tag_bits.try_into()?, + }, + _marker: PhantomData, + }) + } + + /// The initialization vector. + pub fn iv(&mut self) -> &mut [u8] { + // SAFETY: In the constructor, the IV always comes from a &'a mut [u8] + unsafe { slice::from_raw_parts_mut(self.inner.pIv, self.inner.ulIvLen as _) } + } + + /// The length, in bits, of fixed part of the IV. + pub fn iv_fixed_bits(&self) -> Ulong { + self.inner.ulIvFixedBits.into() + } + + /// The IV generator. + pub fn iv_generator(&self) -> GeneratorFunction { + match self.inner.ivGenerator { + CKG_NO_GENERATE => GeneratorFunction::NoGenerate, + CKG_GENERATE => GeneratorFunction::Generate, + CKG_GENERATE_COUNTER => GeneratorFunction::GenerateCounter, + CKG_GENERATE_RANDOM => GeneratorFunction::GenerateRandom, + CKG_GENERATE_COUNTER_XOR => GeneratorFunction::GenerateCounterXor, + _ => unreachable!(), + } + } + + /// The authentication tag. + pub fn tag(&self) -> &'a [u8] { + // SAFETY: In the constructor, the tag always comes from a &'a [u8] + unsafe { slice::from_raw_parts(self.inner.pTag, (self.inner.ulTagBits / 8) as _) } + } +} diff --git a/cryptoki/src/mechanism/mechanism_info.rs b/cryptoki/src/mechanism/mechanism_info.rs index 8e825dd0..d20b957d 100644 --- a/cryptoki/src/mechanism/mechanism_info.rs +++ b/cryptoki/src/mechanism/mechanism_info.rs @@ -29,6 +29,9 @@ bitflags! { const EC_OID = CKF_EC_OID; const EC_UNCOMPRESS = CKF_EC_UNCOMPRESS; const EC_COMPRESS = CKF_EC_COMPRESS; + const MESSAGE_ENCRYPT = CKF_MESSAGE_ENCRYPT; + const MESSAGE_DECRYPT = CKF_MESSAGE_DECRYPT; + const MULTI_MESSAGE = CKF_MULTI_MESSAGE; } } @@ -228,6 +231,27 @@ impl MechanismInfo { pub fn ec_compressed(&self) -> bool { self.flags.contains(MechanismInfoFlags::EC_COMPRESS) } + + /// True if the mechanism can be used to encrypt messages + /// + /// See [`Session::encrypt_message`](crate::session::Session::encrypt_message) + pub fn message_encrypt(&self) -> bool { + self.flags.contains(MechanismInfoFlags::MESSAGE_ENCRYPT) + } + + /// True if the mechanism can be used to decrypt encrypted messages + /// + /// See [`Session::decrypt`](crate::session::Session::decrypt_message) + pub fn message_decrypt(&self) -> bool { + self.flags.contains(MechanismInfoFlags::MESSAGE_DECRYPT) + } + + /// True if the mechanism can be used with encrypt/decrypt_message_begin API. + /// One of message_* flag must also be set. + /// + pub fn multi_message(&self) -> bool { + self.flags.contains(MechanismInfoFlags::MULTI_MESSAGE) + } } impl std::fmt::Display for MechanismInfo { @@ -269,7 +293,8 @@ mod test { HW | ENCRYPT | DECRYPT | DIGEST | SIGN | SIGN_RECOVER | VERIFY | \ VERIFY_RECOVER | GENERATE | GENERATE_KEY_PAIR | WRAP | UNWRAP | DERIVE | \ EXTENSION | EC_F_P | EC_F_2M | EC_ECPARAMETERS | EC_NAMEDCURVE | \ -EC_OID | EC_UNCOMPRESS | EC_COMPRESS"; +EC_OID | EC_UNCOMPRESS | EC_COMPRESS | MESSAGE_ENCRYPT | MESSAGE_DECRYPT | \ +MULTI_MESSAGE"; let all = MechanismInfoFlags::all(); let observed = format!("{all:#?}"); println!("{observed}"); diff --git a/cryptoki/src/mechanism/mod.rs b/cryptoki/src/mechanism/mod.rs index ffbd3a6d..aa0d6b40 100644 --- a/cryptoki/src/mechanism/mod.rs +++ b/cryptoki/src/mechanism/mod.rs @@ -805,6 +805,9 @@ pub enum Mechanism<'a> { AesKeyWrapPad, /// AES-GCM mechanism AesGcm(aead::GcmParams<'a>), + /// AES-GCM mechanism with message based API and parameters + // TODO Should we reuse the AesGcm and use Option<> to select parameter? + AesGcmMessage(aead::GcmMessageParams<'a>), /// AES-CBC-ENCRYPT-DATA mechanism /// /// The parameter to this mechanism is the initialization vector and the message to encrypt. These mechanisms allow @@ -986,6 +989,7 @@ impl Mechanism<'_> { Mechanism::AesKeyWrap => MechanismType::AES_KEY_WRAP, Mechanism::AesKeyWrapPad => MechanismType::AES_KEY_WRAP_PAD, Mechanism::AesGcm(_) => MechanismType::AES_GCM, + Mechanism::AesGcmMessage(_) => MechanismType::AES_GCM, Mechanism::AesCbcEncryptData(_) => MechanismType::AES_CBC_ENCRYPT_DATA, Mechanism::AesCMac => MechanismType::AES_CMAC, Mechanism::RsaPkcsKeyPairGen => MechanismType::RSA_PKCS_KEY_PAIR_GEN, @@ -1072,6 +1076,13 @@ impl From<&Mechanism<'_>> for CK_MECHANISM { .try_into() .expect("usize can not fit in CK_ULONG"), }, + Mechanism::AesGcmMessage(params) => CK_MECHANISM { + mechanism, + pParameter: params as *const _ as *mut c_void, + ulParameterLen: size_of::() + .try_into() + .expect("usize can not fit in CK_ULONG"), + }, Mechanism::RsaPkcsPss(params) | Mechanism::Sha1RsaPkcsPss(params) | Mechanism::Sha256RsaPkcsPss(params) @@ -1153,3 +1164,26 @@ fn make_mechanism(mechanism: CK_MECHANISM_TYPE, param: &T) -> CK_MECHANISM { .expect("usize can not fit in CK_ULONG"), } } + +/// Type defining a specific mechanism parameters used for message based operations +#[derive(Debug)] +pub enum MessageParam<'a> { + /// AES-GCM mechanism with message based API and parameters + AesGcmMessage(aead::GcmMessageParams<'a>), +} + +impl MessageParam<'_> { + pub(crate) fn as_ptr(&self) -> *mut ::std::os::raw::c_void { + match self { + MessageParam::AesGcmMessage(param) => param as *const _ as *mut c_void, + } + } + + pub(crate) fn len(&self) -> CK_ULONG { + match self { + MessageParam::AesGcmMessage(_) => size_of::() + .try_into() + .expect("usize can not fit in CK_ULONG"), + } + } +} diff --git a/cryptoki/src/mechanism/rsa.rs b/cryptoki/src/mechanism/rsa.rs index 22a07f78..6fc693b3 100644 --- a/cryptoki/src/mechanism/rsa.rs +++ b/cryptoki/src/mechanism/rsa.rs @@ -156,7 +156,7 @@ impl<'a> PkcsOaepParams<'a> { /// # Arguments /// /// * `hash_alg` - The message digest algorithm used to calculate - /// a digest of the encoding parameter. + /// a digest of the encoding parameter. /// * `mgf` - The mask generation function to use on the encoded block. /// * `encoding_parameter` - The encoding parameter, also known as the label. pub fn new( diff --git a/cryptoki/src/session/message_decryption.rs b/cryptoki/src/session/message_decryption.rs new file mode 100644 index 00000000..1d9bae8b --- /dev/null +++ b/cryptoki/src/session/message_decryption.rs @@ -0,0 +1,142 @@ +// Copyright 2025 Contributors to the Parsec project. +// SPDX-License-Identifier: Apache-2.0 +//! Encrypting data + +use crate::context::Function; +use crate::error::{Result, Rv}; +use crate::mechanism::{Mechanism, MessageParam}; +use crate::object::ObjectHandle; +use crate::session::Session; +use cryptoki_sys::*; +use std::convert::TryInto; + +impl Session { + /// Prepare a session for one or more Message-based decryption using the same mechanism and key + pub fn message_decrypt_init(&self, mechanism: &Mechanism, key: ObjectHandle) -> Result<()> { + let mut mechanism: CK_MECHANISM = mechanism.into(); + + unsafe { + Rv::from(get_pkcs11!(self.client(), C_MessageDecryptInit)( + self.handle(), + &mut mechanism as CK_MECHANISM_PTR, + key.handle(), + )) + .into_result(Function::MessageDecryptInit)?; + } + + Ok(()) + } + + /// Decrypts a message in single part + pub fn decrypt_message( + &self, + param: &MessageParam, + aad: &[u8], + encrypted_data: &[u8], + ) -> Result> { + let mut data_len = 0; + // Get the output buffer length + unsafe { + Rv::from(get_pkcs11!(self.client(), C_DecryptMessage)( + self.handle(), + param.as_ptr(), + param.len(), + aad.as_ptr() as *mut u8, + aad.len().try_into()?, + encrypted_data.as_ptr() as *mut u8, + encrypted_data.len().try_into()?, + std::ptr::null_mut(), + &mut data_len, + )) + .into_result(Function::DecryptMessage)?; + } + + let mut data = vec![0; data_len.try_into()?]; + + unsafe { + Rv::from(get_pkcs11!(self.client(), C_DecryptMessage)( + self.handle(), + param.as_ptr(), + param.len(), + aad.as_ptr() as *mut u8, + aad.len().try_into()?, + encrypted_data.as_ptr() as *mut u8, + encrypted_data.len().try_into()?, + data.as_mut_ptr(), + &mut data_len, + )) + .into_result(Function::DecryptMessage)?; + } + + data.resize(data_len.try_into()?, 0); + + Ok(data) + } + + /// Begin multi-part message decryption operation + pub fn decrypt_message_begin(&self, param: MessageParam, aad: &[u8]) -> Result<()> { + unsafe { + Rv::from(get_pkcs11!(self.client(), C_DecryptMessageBegin)( + self.handle(), + param.as_ptr(), + param.len(), + aad.as_ptr() as *mut u8, + aad.len().try_into()?, + )) + .into_result(Function::DecryptMessageBegin) + } + } + + /// Continue mutli-part message decryption operation + pub fn decrypt_message_next( + &self, + param: MessageParam, + encrypted_data: &[u8], + end: bool, + ) -> Result> { + let mut data_len = 0; + // Get the output buffer length + unsafe { + Rv::from(get_pkcs11!(self.client(), C_DecryptMessageNext)( + self.handle(), + param.as_ptr(), + param.len(), + encrypted_data.as_ptr() as *mut u8, + encrypted_data.len().try_into()?, + std::ptr::null_mut(), + &mut data_len, + if end { CKF_END_OF_MESSAGE } else { 0 }, + )) + .into_result(Function::DecryptMessageNext)?; + } + let mut data = vec![0; data_len.try_into()?]; + unsafe { + Rv::from(get_pkcs11!(self.client(), C_DecryptMessageNext)( + self.handle(), + param.as_ptr(), + param.len(), + encrypted_data.as_ptr() as *mut u8, + encrypted_data.len().try_into()?, + data.as_mut_ptr(), + &mut data_len, + if end { CKF_END_OF_MESSAGE } else { 0 }, + )) + .into_result(Function::DecryptMessageNext)?; + } + data.resize(data_len.try_into()?, 0); + + Ok(data) + } + + /// Finishes Message-based decryption process + pub fn message_decrypt_final(&self) -> Result<()> { + unsafe { + Rv::from(get_pkcs11!(self.client(), C_MessageDecryptFinal)( + self.handle(), + )) + .into_result(Function::MessageDecryptFinal)?; + } + + Ok(()) + } +} diff --git a/cryptoki/src/session/message_encryption.rs b/cryptoki/src/session/message_encryption.rs new file mode 100644 index 00000000..5288339a --- /dev/null +++ b/cryptoki/src/session/message_encryption.rs @@ -0,0 +1,142 @@ +// Copyright 2025 Contributors to the Parsec project. +// SPDX-License-Identifier: Apache-2.0 +//! Encrypting data + +use crate::context::Function; +use crate::error::{Result, Rv}; +use crate::mechanism::{Mechanism, MessageParam}; +use crate::object::ObjectHandle; +use crate::session::Session; +use cryptoki_sys::*; +use std::convert::TryInto; + +impl Session { + /// Prepare a session for one or more Message-based encryption using the same mechanism and key + pub fn message_encrypt_init(&self, mechanism: &Mechanism, key: ObjectHandle) -> Result<()> { + let mut mechanism: CK_MECHANISM = mechanism.into(); + + unsafe { + Rv::from(get_pkcs11!(self.client(), C_MessageEncryptInit)( + self.handle(), + &mut mechanism as CK_MECHANISM_PTR, + key.handle(), + )) + .into_result(Function::MessageEncryptInit)?; + } + + Ok(()) + } + + /// Encrypts a message in single part + pub fn encrypt_message( + &self, + param: &MessageParam, + aad: &[u8], + data: &[u8], + ) -> Result> { + let mut encrypted_data_len = 0; + // Get the output buffer length + unsafe { + Rv::from(get_pkcs11!(self.client(), C_EncryptMessage)( + self.handle(), + param.as_ptr(), + param.len(), + aad.as_ptr() as *mut u8, + aad.len().try_into()?, + data.as_ptr() as *mut u8, + data.len().try_into()?, + std::ptr::null_mut(), + &mut encrypted_data_len, + )) + .into_result(Function::EncryptMessage)?; + } + + let mut encrypted_data = vec![0; encrypted_data_len.try_into()?]; + + unsafe { + Rv::from(get_pkcs11!(self.client(), C_EncryptMessage)( + self.handle(), + param.as_ptr(), + param.len(), + aad.as_ptr() as *mut u8, + aad.len().try_into()?, + data.as_ptr() as *mut u8, + data.len().try_into()?, + encrypted_data.as_mut_ptr(), + &mut encrypted_data_len, + )) + .into_result(Function::EncryptMessage)?; + } + + encrypted_data.resize(encrypted_data_len.try_into()?, 0); + + Ok(encrypted_data) + } + + /// Begin multi-part message encryption operation + pub fn encrypt_message_begin(&self, param: MessageParam, aad: &[u8]) -> Result<()> { + unsafe { + Rv::from(get_pkcs11!(self.client(), C_EncryptMessageBegin)( + self.handle(), + param.as_ptr(), + param.len(), + aad.as_ptr() as *mut u8, + aad.len().try_into()?, + )) + .into_result(Function::EncryptMessageBegin) + } + } + + /// Continue mutli-part message encryption operation + pub fn encrypt_message_next( + &self, + param: MessageParam, + data: &[u8], + end: bool, + ) -> Result> { + let mut encrypted_data_len = 0; + // Get the output buffer length + unsafe { + Rv::from(get_pkcs11!(self.client(), C_EncryptMessageNext)( + self.handle(), + param.as_ptr(), + param.len(), + data.as_ptr() as *mut u8, + data.len().try_into()?, + std::ptr::null_mut(), + &mut encrypted_data_len, + if end { CKF_END_OF_MESSAGE } else { 0 }, + )) + .into_result(Function::EncryptMessageNext)?; + } + let mut encrypted_data = vec![0; encrypted_data_len.try_into()?]; + unsafe { + Rv::from(get_pkcs11!(self.client(), C_EncryptMessageNext)( + self.handle(), + param.as_ptr(), + param.len(), + data.as_ptr() as *mut u8, + data.len().try_into()?, + encrypted_data.as_mut_ptr(), + &mut encrypted_data_len, + if end { CKF_END_OF_MESSAGE } else { 0 }, + )) + .into_result(Function::EncryptMessageNext)?; + } + encrypted_data.resize(encrypted_data_len.try_into()?, 0); + + Ok(encrypted_data) + } + + /// Finishes Message-based encryption process + pub fn message_encrypt_final(&self) -> Result<()> { + unsafe { + Rv::from(get_pkcs11!(self.client(), C_MessageEncryptFinal)( + self.handle(), + )) + .into_result(Function::MessageEncryptFinal)?; + } + + Ok(()) + } +} diff --git a/cryptoki/src/session/mod.rs b/cryptoki/src/session/mod.rs index 7e3bbb89..bf05fde2 100644 --- a/cryptoki/src/session/mod.rs +++ b/cryptoki/src/session/mod.rs @@ -12,6 +12,8 @@ mod decryption; mod digesting; mod encryption; mod key_management; +mod message_decryption; +mod message_encryption; mod object_management; mod random; mod session_info; diff --git a/cryptoki/src/session/object_management.rs b/cryptoki/src/session/object_management.rs index 77de95d4..2ca922ec 100644 --- a/cryptoki/src/session/object_management.rs +++ b/cryptoki/src/session/object_management.rs @@ -258,7 +258,7 @@ impl Session { /// # Arguments /// /// * `template` - A reference to [Attribute] of search parameters that will be used - /// to find objects. + /// to find objects. /// /// # Returns /// diff --git a/cryptoki/tests/basic.rs b/cryptoki/tests/basic.rs index 3cf54399..5472d01e 100644 --- a/cryptoki/tests/basic.rs +++ b/cryptoki/tests/basic.rs @@ -6,10 +6,10 @@ use crate::common::{get_pkcs11, is_softhsm, SO_PIN, USER_PIN}; use common::init_pins; use cryptoki::context::Function; use cryptoki::error::{Error, RvError}; -use cryptoki::mechanism::aead::GcmParams; +use cryptoki::mechanism::aead::{GcmMessageParams, GcmParams, GeneratorFunction}; use cryptoki::mechanism::eddsa::{EddsaParams, EddsaSignatureScheme}; use cryptoki::mechanism::rsa::{PkcsMgfType, PkcsOaepParams, PkcsOaepSource}; -use cryptoki::mechanism::{Mechanism, MechanismType}; +use cryptoki::mechanism::{Mechanism, MechanismType, MessageParam}; use cryptoki::object::{ Attribute, AttributeInfo, AttributeType, KeyType, ObjectClass, ObjectHandle, }; @@ -1862,6 +1862,125 @@ fn aes_gcm_with_aad() -> TestResult { Ok(()) } +#[test] +#[serial] +fn encrypt_decrypt_gcm_message_no_aad() -> TestResult { + let (pkcs11, slot) = init_pins(); + // PKCS#11 3.0 API is not supported by this token. Skip + if !pkcs11.is_fn_supported(Function::MessageEncryptInit) { + /* return Ignore(); */ + print!("SKIP: The PKCS#11 module does not support message based encryption"); + return Ok(()); + } + + let session = pkcs11.open_rw_session(slot)?; + session.login(UserType::User, Some(&AuthPin::new(USER_PIN.into())))?; + + // The same input as in aes_gcm_no_aad() + let key = vec![0; 16]; + let mut iv = [0; 12]; + let mut tag = [0; 12]; + let aad = []; + let plain = [0; 32]; + let expected_cipher = [ + 0x03, 0x88, 0xda, 0xce, 0x60, 0xb6, 0xa3, 0x92, 0xf3, 0x28, 0xc2, 0xb9, 0x71, 0xb2, 0xfe, + 0x78, 0xf7, 0x95, 0xaa, 0xab, 0x49, 0x4b, 0x59, 0x23, 0xf7, 0xfd, 0x89, 0xff, 0x94, 0x8b, + 0xc1, 0xe0, + ]; + let expected_tag = [ + 0x40, 0x49, 0x0a, 0xf4, 0x80, 0x56, 0x06, 0xb2, 0xa3, 0xa2, 0xe7, 0x93, + ]; + + let template = [ + Attribute::Class(ObjectClass::SECRET_KEY), + Attribute::KeyType(KeyType::AES), + Attribute::Value(key), + Attribute::Encrypt(true), + Attribute::Decrypt(true), + ]; + let key_handle = session.create_object(&template)?; + + let param = GcmMessageParams::new(&mut iv, 96.into(), GeneratorFunction::NoGenerate, &mut tag)?; + let mechanism = Mechanism::AesGcmMessage(param); + session.message_encrypt_init(&mechanism, key_handle)?; + + let param2 = MessageParam::AesGcmMessage(param); + let cipher = session.encrypt_message(¶m2, &aad, &plain)?; + assert_eq!(expected_cipher[..], cipher[..]); + assert_eq!(expected_tag[..], tag[..]); + session.message_encrypt_final()?; + + /* Do also decryption */ + let param = GcmMessageParams::new(&mut iv, 96.into(), GeneratorFunction::NoGenerate, &mut tag)?; + let mechanism = Mechanism::AesGcmMessage(param); + session.message_decrypt_init(&mechanism, key_handle)?; + + let param2 = MessageParam::AesGcmMessage(param); + let plain_decrypted = session.decrypt_message(¶m2, &aad, &cipher)?; + assert_eq!(plain_decrypted[..], plain[..]); + session.message_decrypt_final()?; + Ok(()) +} + +#[test] +#[serial] +fn encrypt_decrypt_gcm_message_with_aad() -> TestResult { + let (pkcs11, slot) = init_pins(); + // PKCS#11 3.0 API is not supported by this token. Skip + if !pkcs11.is_fn_supported(Function::MessageEncryptInit) { + /* return Ignore(); */ + print!("SKIP: The PKCS#11 module does not support message based encryption"); + return Ok(()); + } + + let session = pkcs11.open_rw_session(slot)?; + session.login(UserType::User, Some(&AuthPin::new(USER_PIN.into())))?; + + // The same input as in aes_gcm_with_aad() + let key = vec![0; 16]; + let mut iv = [0; 12]; + let mut tag = [0; 12]; + let aad = [0; 16]; + let plain = [0; 16]; + let expected_cipher = [ + 0x03, 0x88, 0xda, 0xce, 0x60, 0xb6, 0xa3, 0x92, 0xf3, 0x28, 0xc2, 0xb9, 0x71, 0xb2, 0xfe, + 0x78, + ]; + let expected_tag = [ + 0xd2, 0x4e, 0x50, 0x3a, 0x1b, 0xb0, 0x37, 0x07, 0x1c, 0x71, 0xb3, 0x5d, + ]; + + let template = [ + Attribute::Class(ObjectClass::SECRET_KEY), + Attribute::KeyType(KeyType::AES), + Attribute::Value(key), + Attribute::Encrypt(true), + Attribute::Decrypt(true), + ]; + let key_handle = session.create_object(&template)?; + + let param = GcmMessageParams::new(&mut iv, 96.into(), GeneratorFunction::NoGenerate, &mut tag)?; + let mechanism = Mechanism::AesGcmMessage(param); + session.message_encrypt_init(&mechanism, key_handle)?; + + let param2 = MessageParam::AesGcmMessage(param); + let cipher = session.encrypt_message(¶m2, &aad, &plain)?; + assert_eq!(expected_cipher[..], cipher[..]); + assert_eq!(expected_tag[..], tag[..]); + session.message_encrypt_final()?; + + /* Do also decryption */ + let param = GcmMessageParams::new(&mut iv, 96.into(), GeneratorFunction::NoGenerate, &mut tag)?; + let mechanism = Mechanism::AesGcmMessage(param); + session.message_decrypt_init(&mechanism, key_handle)?; + + let param2 = MessageParam::AesGcmMessage(param); + let plain_decrypted = session.decrypt_message(¶m2, &aad, &cipher)?; + assert_eq!(plain_decrypted[..], plain[..]); + session.message_decrypt_final()?; + Ok(()) +} + #[test] #[serial] fn rsa_pkcs_oaep_empty() -> TestResult {