diff --git a/Cargo.lock b/Cargo.lock index 5223e3b0..77766e13 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bindgen" -version = "0.70.1" +version = "0.71.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" +checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" dependencies = [ "bitflags 2.4.2", "cexpr", @@ -247,9 +247,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -303,9 +303,9 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "rustc-hash" -version = "1.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "scopeguard" diff --git a/cryptoki-sys/Cargo.toml b/cryptoki-sys/Cargo.toml index 60aad92f..51dcc406 100644 --- a/cryptoki-sys/Cargo.toml +++ b/cryptoki-sys/Cargo.toml @@ -13,7 +13,7 @@ documentation = "https://docs.rs/crate/cryptoki-sys" rust-version = "1.66.0" [build-dependencies] -bindgen = { version = "0.70.1", optional = true } +bindgen = { version = "0.71.1", optional = true } [dependencies] libloading = "0.8.6" diff --git a/cryptoki-sys/src/bindings/aarch64-apple-darwin.rs b/cryptoki-sys/src/bindings/aarch64-apple-darwin.rs index 3b594e91..be845490 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 */ +/* automatically generated by rust-bindgen 0.71.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -35,6 +35,7 @@ pub const CK_SP800_108_OPTIONAL_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_DKM_LENGTH: CK_ULONG = 3; pub const CK_SP800_108_BYTE_ARRAY: CK_ULONG = 4; +pub const CK_SP800_108_KEY_HANDLE: CK_ULONG = 5; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS: CK_ULONG = 1; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS: CK_ULONG = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; @@ -162,6 +163,33 @@ 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_PARAMETER_SET: CK_ATTRIBUTE_TYPE = 1565; +pub const CKA_OBJECT_VALIDATION_FLAGS: CK_ATTRIBUTE_TYPE = 1566; +pub const CKA_VALIDATION_TYPE: CK_ATTRIBUTE_TYPE = 1567; +pub const CKA_VALIDATION_VERSION: CK_ATTRIBUTE_TYPE = 1568; +pub const CKA_VALIDATION_LEVEL: CK_ATTRIBUTE_TYPE = 1569; +pub const CKA_VALIDATION_MODULE_ID: CK_ATTRIBUTE_TYPE = 1570; +pub const CKA_VALIDATION_FLAG: CK_ATTRIBUTE_TYPE = 1571; +pub const CKA_VALIDATION_AUTHORITY_TYPE: CK_ATTRIBUTE_TYPE = 1572; +pub const CKA_VALIDATION_COUNTRY: CK_ATTRIBUTE_TYPE = 1573; +pub const CKA_VALIDATION_CERTIFICATE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 1574; +pub const CKA_VALIDATION_CERTIFICATE_URI: CK_ATTRIBUTE_TYPE = 1575; +pub const CKA_VALIDATION_VENDOR_URI: CK_ATTRIBUTE_TYPE = 1576; +pub const CKA_VALIDATION_PROFILE: CK_ATTRIBUTE_TYPE = 1577; +pub const CKA_ENCAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1578; +pub const CKA_DECAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1579; +pub const CKA_TRUST_SERVER_AUTH: CK_ATTRIBUTE_TYPE = 1580; +pub const CKA_TRUST_CLIENT_AUTH: CK_ATTRIBUTE_TYPE = 1581; +pub const CKA_TRUST_CODE_SIGNING: CK_ATTRIBUTE_TYPE = 1582; +pub const CKA_TRUST_EMAIL_PROTECTION: CK_ATTRIBUTE_TYPE = 1583; +pub const CKA_TRUST_IPSEC_IKE: CK_ATTRIBUTE_TYPE = 1584; +pub const CKA_TRUST_TIME_STAMPING: CK_ATTRIBUTE_TYPE = 1585; +pub const CKA_TRUST_OCSP_SIGNING: CK_ATTRIBUTE_TYPE = 1586; +pub const CKA_ENCAPSULATE: CK_ATTRIBUTE_TYPE = 1587; +pub const CKA_DECAPSULATE: CK_ATTRIBUTE_TYPE = 1588; +pub const CKA_HASH_OF_CERTIFICATE: CK_ATTRIBUTE_TYPE = 1589; +pub const CKA_PUBLIC_CRC64_VALUE: CK_ATTRIBUTE_TYPE = 1590; +pub const CKA_SEED: CK_ATTRIBUTE_TYPE = 1591; 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; @@ -234,6 +262,8 @@ pub const CKF_EC_OID: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_EC_CURVENAME: CK_FLAGS = 67108864; +pub const CKF_ENCAPSULATE: CK_FLAGS = 268435456; +pub const CKF_DECAPSULATE: CK_FLAGS = 536870912; pub const CKF_EXTENSION: CK_FLAGS = 2147483648; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1; @@ -246,6 +276,7 @@ pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; +pub const CKF_ASYNC_SESSION: CK_FLAGS = 8; pub const CKF_TOKEN_PRESENT: CK_FLAGS = 1; pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2; pub const CKF_HW_SLOT: CK_FLAGS = 4; @@ -268,6 +299,8 @@ pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; +pub const CKF_SEED_RANDOM_REQUIRED: CK_FLAGS = 33554432; +pub const CKF_ASYNC_SESSION_SUPPORTED: CK_FLAGS = 67108864; 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; @@ -286,6 +319,9 @@ pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKH_VENDOR_DEFINED: CK_HW_FEATURE_TYPE = 2147483648; +pub const CKH_HEDGE_PREFERRED: CK_HW_FEATURE_TYPE = 0; +pub const CKH_HEDGE_REQUIRED: CK_HW_FEATURE_TYPE = 1; +pub const CKH_DETERMINISTIC_REQUIRED: CK_HW_FEATURE_TYPE = 2; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; @@ -347,6 +383,11 @@ 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_XMSS: CK_KEY_TYPE = 71; +pub const CKK_XMSSMT: CK_KEY_TYPE = 72; +pub const CKK_ML_KEM: CK_KEY_TYPE = 73; +pub const CKK_ML_DSA: CK_KEY_TYPE = 74; +pub const CKK_SLH_DSA: CK_KEY_TYPE = 75; 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; @@ -365,6 +406,7 @@ pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; +pub const CKM_ML_KEM_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 15; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; @@ -372,16 +414,43 @@ pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; +pub const CKM_ML_KEM: CK_MECHANISM_TYPE = 23; pub const CKM_DSA_SHA3_224: CK_MECHANISM_TYPE = 24; pub const CKM_DSA_SHA3_256: CK_MECHANISM_TYPE = 25; pub const CKM_DSA_SHA3_384: CK_MECHANISM_TYPE = 26; pub const CKM_DSA_SHA3_512: CK_MECHANISM_TYPE = 27; +pub const CKM_ML_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 28; +pub const CKM_ML_DSA: CK_MECHANISM_TYPE = 29; +pub const CKM_HASH_ML_DSA: CK_MECHANISM_TYPE = 31; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; +pub const CKM_HASH_ML_DSA_SHA224: CK_MECHANISM_TYPE = 35; +pub const CKM_HASH_ML_DSA_SHA256: CK_MECHANISM_TYPE = 36; +pub const CKM_HASH_ML_DSA_SHA384: CK_MECHANISM_TYPE = 37; +pub const CKM_HASH_ML_DSA_SHA512: CK_MECHANISM_TYPE = 38; +pub const CKM_HASH_ML_DSA_SHA3_224: CK_MECHANISM_TYPE = 39; +pub const CKM_HASH_ML_DSA_SHA3_256: CK_MECHANISM_TYPE = 40; +pub const CKM_HASH_ML_DSA_SHA3_384: CK_MECHANISM_TYPE = 41; +pub const CKM_HASH_ML_DSA_SHA3_512: CK_MECHANISM_TYPE = 42; +pub const CKM_HASH_ML_DSA_SHAKE128: CK_MECHANISM_TYPE = 43; +pub const CKM_HASH_ML_DSA_SHAKE256: CK_MECHANISM_TYPE = 44; +pub const CKM_SLH_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 45; +pub const CKM_SLH_DSA: CK_MECHANISM_TYPE = 46; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; +pub const CKM_HASH_SLH_DSA: CK_MECHANISM_TYPE = 52; +pub const CKM_HASH_SLH_DSA_SHA224: CK_MECHANISM_TYPE = 54; +pub const CKM_HASH_SLH_DSA_SHA256: CK_MECHANISM_TYPE = 55; +pub const CKM_HASH_SLH_DSA_SHA384: CK_MECHANISM_TYPE = 56; +pub const CKM_HASH_SLH_DSA_SHA512: CK_MECHANISM_TYPE = 57; +pub const CKM_HASH_SLH_DSA_SHA3_224: CK_MECHANISM_TYPE = 58; +pub const CKM_HASH_SLH_DSA_SHA3_256: CK_MECHANISM_TYPE = 59; +pub const CKM_HASH_SLH_DSA_SHA3_384: CK_MECHANISM_TYPE = 60; +pub const CKM_HASH_SLH_DSA_SHA3_512: CK_MECHANISM_TYPE = 61; +pub const CKM_HASH_SLH_DSA_SHAKE128: CK_MECHANISM_TYPE = 62; +pub const CKM_HASH_SLH_DSA_SHAKE256: CK_MECHANISM_TYPE = 63; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; @@ -402,6 +471,8 @@ pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 86; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 87; pub const CKM_SHA3_256_RSA_PKCS: CK_MECHANISM_TYPE = 96; pub const CKM_SHA3_384_RSA_PKCS: CK_MECHANISM_TYPE = 97; pub const CKM_SHA3_512_RSA_PKCS: CK_MECHANISM_TYPE = 98; @@ -505,7 +576,6 @@ pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; -pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; @@ -711,7 +781,6 @@ pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABILISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; -pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_DSA_FIPS_G_GEN: CK_MECHANISM_TYPE = 8197; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; @@ -784,8 +853,16 @@ 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_XMSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16436; +pub const CKM_XMSSMT_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16437; +pub const CKM_XMSS: CK_MECHANISM_TYPE = 16438; +pub const CKM_XMSSMT: CK_MECHANISM_TYPE = 16439; +pub const CKM_ECDH_X_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16440; +pub const CKM_ECDH_COF_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16441; +pub const CKM_PUB_KEY_FROM_PRIV_KEY: CK_MECHANISM_TYPE = 16442; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; +pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; @@ -793,6 +870,7 @@ pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; +pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKN_SURRENDER: CK_NOTIFICATION = 0; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKO_DATA: CK_OBJECT_CLASS = 0; @@ -805,6 +883,8 @@ pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKO_PROFILE: CK_OBJECT_CLASS = 9; +pub const CKO_VALIDATION: CK_OBJECT_CLASS = 10; +pub const CKO_TRUST: CK_OBJECT_CLASS = 11; pub const CKO_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648; pub const CKP_INVALID_ID: CK_PROFILE_ID = 0; pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; @@ -822,6 +902,24 @@ pub const CKP_PKCS5_PBKD2_HMAC_SHA384: CK_PROFILE_ID = 5; pub const CKP_PKCS5_PBKD2_HMAC_SHA512: CK_PROFILE_ID = 6; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_224: CK_PROFILE_ID = 7; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_256: CK_PROFILE_ID = 8; +pub const CKP_ML_DSA_44: CK_PROFILE_ID = 1; +pub const CKP_ML_DSA_65: CK_PROFILE_ID = 2; +pub const CKP_ML_DSA_87: CK_PROFILE_ID = 3; +pub const CKP_ML_KEM_512: CK_PROFILE_ID = 1; +pub const CKP_ML_KEM_768: CK_PROFILE_ID = 2; +pub const CKP_ML_KEM_1024: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHA2_128S: CK_PROFILE_ID = 1; +pub const CKP_SLH_DSA_SHAKE_128S: CK_PROFILE_ID = 2; +pub const CKP_SLH_DSA_SHA2_128F: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHAKE_128F: CK_PROFILE_ID = 4; +pub const CKP_SLH_DSA_SHA2_192S: CK_PROFILE_ID = 5; +pub const CKP_SLH_DSA_SHAKE_192S: CK_PROFILE_ID = 6; +pub const CKP_SLH_DSA_SHA2_192F: CK_PROFILE_ID = 7; +pub const CKP_SLH_DSA_SHAKE_192F: CK_PROFILE_ID = 8; +pub const CKP_SLH_DSA_SHA2_256S: CK_PROFILE_ID = 9; +pub const CKP_SLH_DSA_SHAKE_256S: CK_PROFILE_ID = 10; +pub const CKP_SLH_DSA_SHA2_256F: CK_PROFILE_ID = 11; +pub const CKP_SLH_DSA_SHAKE_256F: CK_PROFILE_ID = 12; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; @@ -920,15 +1018,35 @@ 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_PENDING: CK_RV = 516; +pub const CKR_SESSION_ASYNC_NOT_SUPPORTED: CK_RV = 517; +pub const CKR_SEED_RANDOM_REQUIRED: CK_RV = 518; +pub const CKR_OPERATION_NOT_VALIDATED: CK_RV = 519; +pub const CKR_TOKEN_NOT_INITIALIZED: CK_RV = 520; +pub const CKR_PARAMETER_SET_NOT_SUPPORTED: CK_RV = 521; 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; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; +pub const CKS_LAST_VALIDATION_OK: CK_STATE = 1; +pub const CKT_TRUST_UNKNOWN: u32 = 0; +pub const CKT_TRUSTED: u32 = 1; +pub const CKT_TRUST_ANCHOR: u32 = 2; +pub const CKT_NOT_TRUSTED: u32 = 3; +pub const CKT_TRUST_MUST_VERIFY_TRUST: u32 = 4; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; +pub const CKV_AUTHORITY_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_AUTHORITY_TYPE_NIST_CMVP: u32 = 1; +pub const CKV_AUTHORITY_TYPE_COMMON_CRITERIA: u32 = 2; +pub const CKV_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_TYPE_SOFTWARE: u32 = 1; +pub const CKV_TYPE_HARDWARE: u32 = 2; +pub const CKV_TYPE_FIRMWARE: u32 = 3; +pub const CKV_TYPE_HYBRID: u32 = 4; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CKZ_SALT_SPECIFIED: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = 1; pub type CK_BBOOL = ::std::os::raw::c_uchar; @@ -957,6 +1075,8 @@ 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_HEDGE_TYPE = CK_ULONG; +pub type CK_HEDGE_TYPE_PTR = *mut CK_HEDGE_TYPE; 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; @@ -973,6 +1093,10 @@ 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; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; +pub type CK_ML_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_ML_DSA_PARAMETER_SET_TYPE; +pub type CK_ML_KEM_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_KEM_PARAMETER_SET_TYPE_PTR = *mut CK_ML_KEM_PARAMETER_SET_TYPE; pub type CK_NOTIFICATION = CK_ULONG; pub type CK_NOTIFICATION_PTR = *mut CK_NOTIFICATION; pub type CK_OBJECT_CLASS = CK_ULONG; @@ -1000,14 +1124,24 @@ pub type CK_RV = CK_ULONG; pub type CK_RV_PTR = *mut CK_RV; pub type CK_SESSION_HANDLE = CK_ULONG; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE = CK_ULONG; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE_PTR = *mut CK_SESSION_VALIDATION_FLAGS_TYPE; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_SLH_DSA_PARAMETER_SET_TYPE; pub type CK_SLOT_ID = CK_ULONG; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SP800_108_DKM_LENGTH_METHOD = CK_ULONG; pub type CK_SP800_108_DKM_LENGTH_METHOD_PTR = *mut CK_SP800_108_DKM_LENGTH_METHOD; pub type CK_STATE = CK_ULONG; pub type CK_STATE_PTR = *mut CK_STATE; +pub type CK_TRUST = CK_ULONG; +pub type CK_TRUST_PTR = *mut CK_TRUST; pub type CK_USER_TYPE = CK_ULONG; pub type CK_USER_TYPE_PTR = *mut CK_USER_TYPE; +pub type CK_VALIDATION_AUTHORITY_TYPE = CK_ULONG; +pub type CK_VALIDATION_AUTHORITY_TYPE_PTR = *mut CK_VALIDATION_AUTHORITY_TYPE; +pub type CK_VALIDATION_TYPE = CK_ULONG; +pub type CK_VALIDATION_TYPE_PTR = *mut CK_VALIDATION_TYPE; pub type CK_X2RATCHET_KDF_TYPE = CK_ULONG; pub type CK_X2RATCHET_KDF_TYPE_PTR = *mut CK_X2RATCHET_KDF_TYPE; pub type CK_X3DH_KDF_TYPE = CK_ULONG; @@ -1016,6 +1150,10 @@ pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG; pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE; pub type CK_XEDDSA_HASH_TYPE = CK_ULONG; pub type CK_XEDDSA_HASH_TYPE_PTR = *mut CK_XEDDSA_HASH_TYPE; +pub type CK_XMSSMT_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSSMT_PARAMETER_SET_TYPE_PTR = *mut CK_XMSSMT_PARAMETER_SET_TYPE; +pub type CK_XMSS_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSS_PARAMETER_SET_TYPE_PTR = *mut CK_XMSS_PARAMETER_SET_TYPE; pub type CK_ATTRIBUTE_PTR = *mut CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR_PTR = *mut *mut CK_ATTRIBUTE; pub type CK_C_INITIALIZE_ARGS_PTR = *mut CK_C_INITIALIZE_ARGS; @@ -1028,6 +1166,8 @@ pub type CK_FUNCTION_LIST_PTR = *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_3_0_PTR = *mut CK_FUNCTION_LIST_3_0; pub type CK_FUNCTION_LIST_3_0_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_0; +pub type CK_FUNCTION_LIST_3_2_PTR = *mut CK_FUNCTION_LIST_3_2; +pub type CK_FUNCTION_LIST_3_2_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_2; pub type CK_INFO_PTR = *mut CK_INFO; pub type CK_INFO_PTR_PTR = *mut *mut CK_INFO; pub type CK_INTERFACE_PTR = *mut CK_INTERFACE; @@ -1202,7 +1342,7 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_INTERFACE { - pub pInterfaceName: *mut CK_CHAR, + pub pInterfaceName: *mut CK_UTF8CHAR, pub pFunctionList: *mut ::std::os::raw::c_void, pub flags: CK_FLAGS, } @@ -1396,6 +1536,8 @@ pub type CK_AES_GCM_PARAMS_PTR = *mut CK_AES_GCM_PARAMS; pub type CK_AES_GCM_PARAMS_PTR_PTR = *mut *mut CK_AES_GCM_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_ASYNC_DATA_PTR = *mut CK_ASYNC_DATA; +pub type CK_ASYNC_DATA_PTR_PTR = *mut *mut CK_ASYNC_DATA; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; @@ -1405,6 +1547,8 @@ pub type CK_CCM_MESSAGE_PARAMS_PTR = *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_PARAMS_PTR = *mut CK_CCM_PARAMS; pub type CK_CCM_PARAMS_PTR_PTR = *mut *mut CK_CCM_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR = *mut CK_CCM_WRAP_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_CCM_WRAP_PARAMS; pub type CK_CHACHA20_PARAMS_PTR = *mut CK_CHACHA20_PARAMS; pub type CK_CHACHA20_PARAMS_PTR_PTR = *mut *mut CK_CHACHA20_PARAMS; pub type CK_CMS_SIG_PARAMS_PTR = *mut CK_CMS_SIG_PARAMS; @@ -1427,10 +1571,14 @@ pub type CK_GCM_MESSAGE_PARAMS_PTR = *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_PARAMS_PTR = *mut CK_GCM_PARAMS; pub type CK_GCM_PARAMS_PTR_PTR = *mut *mut CK_GCM_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR = *mut CK_GCM_WRAP_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GCM_WRAP_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR = *mut CK_GOSTR3410_DERIVE_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_DERIVE_PARAMS; 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_HASH_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; +pub type CK_HASH_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; 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; @@ -1489,6 +1637,8 @@ pub type CK_SALSA20_PARAMS_PTR = *mut CK_SALSA20_PARAMS; pub type CK_SALSA20_PARAMS_PTR_PTR = *mut *mut CK_SALSA20_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_SIGN_ADDITIONAL_CONTEXT; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_SIGN_ADDITIONAL_CONTEXT; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR = *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR_PTR = *mut *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_RELAYX_PARAMS_PTR = *mut CK_SKIPJACK_RELAYX_PARAMS; @@ -1501,6 +1651,10 @@ pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_P pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_FEEDBACK_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR = *mut CK_SP800_108_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_KDF_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR = + *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = + *mut *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR = *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR_PTR = *mut *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_RESPOND_PARAMS_PTR = *mut CK_X2RATCHET_RESPOND_PARAMS; @@ -1517,6 +1671,11 @@ 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)] @@ -1666,6 +1825,39 @@ impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_ASYNC_DATA { + pub ulVersion: CK_ULONG, + pub pValue: *mut CK_BYTE, + pub ulValue: CK_ULONG, + pub hObject: CK_OBJECT_HANDLE, + pub hAdditionalObject: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_ASYNC_DATA"][::std::mem::size_of::() - 40usize]; + ["Alignment of CK_ASYNC_DATA"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulVersion"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulVersion) - 0usize]; + ["Offset of field: CK_ASYNC_DATA::pValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, pValue) - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulValue) - 16usize]; + ["Offset of field: CK_ASYNC_DATA::hObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hObject) - 24usize]; + ["Offset of field: CK_ASYNC_DATA::hAdditionalObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hAdditionalObject) - 32usize]; +}; +impl Default for CK_ASYNC_DATA { + 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_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS { pub iv: [CK_BYTE; 16usize], pub pData: *mut CK_BYTE, @@ -1786,6 +1978,48 @@ impl Default for CK_CCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_CCM_WRAP_PARAMS { + pub ulDataLen: CK_ULONG, + pub pNonce: *mut CK_BYTE, + pub ulNonceLen: CK_ULONG, + pub ulNonceFixedBits: CK_ULONG, + pub nonceGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulMACLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_CCM_WRAP_PARAMS"][::std::mem::size_of::() - 64usize]; + ["Alignment of CK_CCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulDataLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulDataLen) - 0usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pNonce"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pNonce) - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceLen) - 16usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceFixedBits"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceFixedBits) - 24usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::nonceGenerator"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, nonceGenerator) - 32usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pAAD) - 40usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulAADLen) - 48usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulMACLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulMACLen) - 56usize]; +}; +impl Default for CK_CCM_WRAP_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_CHACHA20_PARAMS { pub pBlockCounter: *mut CK_BYTE, pub blockCounterBits: CK_ULONG, @@ -2178,6 +2412,45 @@ impl Default for CK_GCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_GCM_WRAP_PARAMS { + pub pIv: *mut CK_BYTE, + pub ulIvLen: CK_ULONG, + pub ulIvFixedBits: CK_ULONG, + pub ivGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulTagBits: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_GCM_WRAP_PARAMS"][::std::mem::size_of::() - 56usize]; + ["Alignment of CK_GCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pIv"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pIv) - 0usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvLen) - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvFixedBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvFixedBits) - 16usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ivGenerator"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ivGenerator) - 24usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pAAD) - 32usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulAADLen) - 40usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulTagBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulTagBits) - 48usize]; +}; +impl Default for CK_GCM_WRAP_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_GOSTR3410_DERIVE_PARAMS { pub kdf: CK_EC_KDF_TYPE, pub pPublicData: *mut CK_BYTE, @@ -2248,6 +2521,38 @@ impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_HASH_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, + pub hash: CK_MECHANISM_TYPE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hash"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hash) - 24usize]; +}; +impl Default for CK_HASH_SIGN_ADDITIONAL_CONTEXT { + 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_HKDF_PARAMS { pub bExtract: CK_BBOOL, pub bExpand: CK_BBOOL, @@ -3097,6 +3402,35 @@ impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 24usize]; + ["Alignment of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; +}; +impl Default for CK_SIGN_ADDITIONAL_CONTEXT { + 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_SKIPJACK_PRIVATE_WRAP_PARAMS { pub ulPasswordLen: CK_ULONG, pub pPassword: *mut CK_BYTE, @@ -3295,6 +3629,42 @@ impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS { + pub prfHashMechanism: CK_MECHANISM_TYPE, + pub pSessionHash: *mut CK_BYTE, + pub ulSessionHashLen: CK_ULONG, + pub pVersion: *mut CK_VERSION, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::prfHashMechanism"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + prfHashMechanism + ) - 0usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pSessionHash"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pSessionHash) - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::ulSessionHashLen"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + ulSessionHashLen + ) - 16usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pVersion"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pVersion) - 24usize]; +}; +impl Default for CK_TLS12_EXTENDED_MASTER_KEY_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_SP800_108_KDF_PARAMS { pub prfType: CK_SP800_108_PRF_TYPE, pub ulNumberOfDataParams: CK_ULONG, @@ -3636,24 +4006,6 @@ 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; @@ -4725,6 +5077,427 @@ pub type CK_C_VerifyMessageNext = ::std::option::Option< >; pub type CK_C_MessageVerifyFinal = ::std::option::Option CK_RV>; +pub type CK_C_EncapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_DecapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_VerifySignatureInit = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_VerifySignature = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureUpdate = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureFinal = + ::std::option::Option CK_RV>; +pub type CK_C_GetSessionValidationFlags = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, +>; +pub type CK_C_AsyncComplete = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, +>; +pub type CK_C_AsyncGetID = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_AsyncJoin = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_WrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_UnwrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CK_FUNCTION_LIST_3_2 { + pub version: CK_VERSION, + pub C_Initialize: CK_C_Initialize, + pub C_Finalize: CK_C_Finalize, + pub C_GetInfo: CK_C_GetInfo, + pub C_GetFunctionList: CK_C_GetFunctionList, + pub C_GetSlotList: CK_C_GetSlotList, + pub C_GetSlotInfo: CK_C_GetSlotInfo, + pub C_GetTokenInfo: CK_C_GetTokenInfo, + pub C_GetMechanismList: CK_C_GetMechanismList, + pub C_GetMechanismInfo: CK_C_GetMechanismInfo, + pub C_InitToken: CK_C_InitToken, + pub C_InitPIN: CK_C_InitPIN, + pub C_SetPIN: CK_C_SetPIN, + pub C_OpenSession: CK_C_OpenSession, + pub C_CloseSession: CK_C_CloseSession, + pub C_CloseAllSessions: CK_C_CloseAllSessions, + pub C_GetSessionInfo: CK_C_GetSessionInfo, + pub C_GetOperationState: CK_C_GetOperationState, + pub C_SetOperationState: CK_C_SetOperationState, + pub C_Login: CK_C_Login, + pub C_Logout: CK_C_Logout, + pub C_CreateObject: CK_C_CreateObject, + pub C_CopyObject: CK_C_CopyObject, + pub C_DestroyObject: CK_C_DestroyObject, + pub C_GetObjectSize: CK_C_GetObjectSize, + pub C_GetAttributeValue: CK_C_GetAttributeValue, + pub C_SetAttributeValue: CK_C_SetAttributeValue, + pub C_FindObjectsInit: CK_C_FindObjectsInit, + pub C_FindObjects: CK_C_FindObjects, + pub C_FindObjectsFinal: CK_C_FindObjectsFinal, + pub C_EncryptInit: CK_C_EncryptInit, + pub C_Encrypt: CK_C_Encrypt, + pub C_EncryptUpdate: CK_C_EncryptUpdate, + pub C_EncryptFinal: CK_C_EncryptFinal, + pub C_DecryptInit: CK_C_DecryptInit, + pub C_Decrypt: CK_C_Decrypt, + pub C_DecryptUpdate: CK_C_DecryptUpdate, + pub C_DecryptFinal: CK_C_DecryptFinal, + pub C_DigestInit: CK_C_DigestInit, + pub C_Digest: CK_C_Digest, + pub C_DigestUpdate: CK_C_DigestUpdate, + pub C_DigestKey: CK_C_DigestKey, + pub C_DigestFinal: CK_C_DigestFinal, + pub C_SignInit: CK_C_SignInit, + pub C_Sign: CK_C_Sign, + pub C_SignUpdate: CK_C_SignUpdate, + pub C_SignFinal: CK_C_SignFinal, + pub C_SignRecoverInit: CK_C_SignRecoverInit, + pub C_SignRecover: CK_C_SignRecover, + pub C_VerifyInit: CK_C_VerifyInit, + pub C_Verify: CK_C_Verify, + pub C_VerifyUpdate: CK_C_VerifyUpdate, + pub C_VerifyFinal: CK_C_VerifyFinal, + pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, + pub C_VerifyRecover: CK_C_VerifyRecover, + pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, + pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, + pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, + pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, + pub C_GenerateKey: CK_C_GenerateKey, + pub C_GenerateKeyPair: CK_C_GenerateKeyPair, + pub C_WrapKey: CK_C_WrapKey, + pub C_UnwrapKey: CK_C_UnwrapKey, + pub C_DeriveKey: CK_C_DeriveKey, + pub C_SeedRandom: CK_C_SeedRandom, + pub C_GenerateRandom: CK_C_GenerateRandom, + pub C_GetFunctionStatus: CK_C_GetFunctionStatus, + pub C_CancelFunction: CK_C_CancelFunction, + pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, + pub C_GetInterfaceList: CK_C_GetInterfaceList, + pub C_GetInterface: CK_C_GetInterface, + pub C_LoginUser: CK_C_LoginUser, + pub C_SessionCancel: CK_C_SessionCancel, + pub C_MessageEncryptInit: CK_C_MessageEncryptInit, + pub C_EncryptMessage: CK_C_EncryptMessage, + pub C_EncryptMessageBegin: CK_C_EncryptMessageBegin, + pub C_EncryptMessageNext: CK_C_EncryptMessageNext, + pub C_MessageEncryptFinal: CK_C_MessageEncryptFinal, + pub C_MessageDecryptInit: CK_C_MessageDecryptInit, + pub C_DecryptMessage: CK_C_DecryptMessage, + pub C_DecryptMessageBegin: CK_C_DecryptMessageBegin, + pub C_DecryptMessageNext: CK_C_DecryptMessageNext, + pub C_MessageDecryptFinal: CK_C_MessageDecryptFinal, + pub C_MessageSignInit: CK_C_MessageSignInit, + pub C_SignMessage: CK_C_SignMessage, + pub C_SignMessageBegin: CK_C_SignMessageBegin, + pub C_SignMessageNext: CK_C_SignMessageNext, + pub C_MessageSignFinal: CK_C_MessageSignFinal, + pub C_MessageVerifyInit: CK_C_MessageVerifyInit, + pub C_VerifyMessage: CK_C_VerifyMessage, + pub C_VerifyMessageBegin: CK_C_VerifyMessageBegin, + pub C_VerifyMessageNext: CK_C_VerifyMessageNext, + pub C_MessageVerifyFinal: CK_C_MessageVerifyFinal, + pub C_EncapsulateKey: CK_C_EncapsulateKey, + pub C_DecapsulateKey: CK_C_DecapsulateKey, + pub C_VerifySignatureInit: CK_C_VerifySignatureInit, + pub C_VerifySignature: CK_C_VerifySignature, + pub C_VerifySignatureUpdate: CK_C_VerifySignatureUpdate, + pub C_VerifySignatureFinal: CK_C_VerifySignatureFinal, + pub C_GetSessionValidationFlags: CK_C_GetSessionValidationFlags, + pub C_AsyncComplete: CK_C_AsyncComplete, + pub C_AsyncGetID: CK_C_AsyncGetID, + pub C_AsyncJoin: CK_C_AsyncJoin, + pub C_WrapKeyAuthenticated: CK_C_WrapKeyAuthenticated, + pub C_UnwrapKeyAuthenticated: CK_C_UnwrapKeyAuthenticated, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_FUNCTION_LIST_3_2"][::std::mem::size_of::() - 840usize]; + ["Alignment of CK_FUNCTION_LIST_3_2"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::version"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, version) - 0usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Initialize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Initialize) - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Finalize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Finalize) - 16usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInfo) - 24usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionList) - 32usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotList) - 40usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotInfo) - 48usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetTokenInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetTokenInfo) - 56usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismList) - 64usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismInfo) - 72usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitToken"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitToken) - 80usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitPIN) - 88usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetPIN) - 96usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_OpenSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_OpenSession) - 104usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseSession) - 112usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseAllSessions"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseAllSessions) - 120usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionInfo) - 128usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetOperationState) - 136usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetOperationState) - 144usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Login"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Login) - 152usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Logout"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Logout) - 160usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CreateObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CreateObject) - 168usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CopyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CopyObject) - 176usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DestroyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DestroyObject) - 184usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetObjectSize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetObjectSize) - 192usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetAttributeValue) - 200usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetAttributeValue) - 208usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsInit) - 216usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjects"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjects) - 224usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsFinal) - 232usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptInit) - 240usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Encrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Encrypt) - 248usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptUpdate) - 256usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptFinal) - 264usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptInit) - 272usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Decrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Decrypt) - 280usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptUpdate) - 288usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptFinal) - 296usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestInit) - 304usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Digest"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Digest) - 312usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestUpdate) - 320usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestKey) - 328usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestFinal) - 336usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignInit) - 344usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Sign"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Sign) - 352usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignUpdate) - 360usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignFinal) - 368usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecoverInit) - 376usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecover) - 384usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyInit) - 392usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Verify"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Verify) - 400usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyUpdate) - 408usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyFinal) - 416usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecoverInit) - 424usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecover) - 432usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestEncryptUpdate) - 440usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptDigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptDigestUpdate) - 448usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignEncryptUpdate) - 456usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptVerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptVerifyUpdate) - 464usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKey) - 472usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKeyPair"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKeyPair) - 480usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKey) - 488usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKey) - 496usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DeriveKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DeriveKey) - 504usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SeedRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SeedRandom) - 512usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateRandom) - 520usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionStatus"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionStatus) - 528usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CancelFunction"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CancelFunction) - 536usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WaitForSlotEvent"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WaitForSlotEvent) - 544usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterfaceList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterfaceList) - 552usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterface"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterface) - 560usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_LoginUser"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_LoginUser) - 568usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SessionCancel"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SessionCancel) - 576usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptInit) - 584usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessage) - 592usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageBegin) - 600usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageNext) - 608usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptFinal) - 616usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptInit) - 624usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessage) - 632usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageBegin) - 640usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageNext) - 648usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptFinal) - 656usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignInit) - 664usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessage) - 672usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageBegin) - 680usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageNext) - 688usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignFinal) - 696usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyInit) - 704usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessage) - 712usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageBegin) - 720usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageNext) - 728usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyFinal) - 736usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncapsulateKey) - 744usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecapsulateKey) - 752usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureInit) - 760usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignature"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignature) - 768usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureUpdate) - 776usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureFinal) - 784usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionValidationFlags"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionValidationFlags) - 792usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncComplete"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncComplete) - 800usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncGetID"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncGetID) - 808usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncJoin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncJoin) - 816usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKeyAuthenticated) - 824usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKeyAuthenticated) - 832usize]; +}; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct CK_FUNCTION_LIST_3_0 { @@ -5932,6 +6705,114 @@ pub struct Pkcs11 { >, pub C_MessageVerifyFinal: Result CK_RV, ::libloading::Error>, + pub C_EncapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_DecapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureInit: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignature: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureUpdate: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureFinal: + Result CK_RV, ::libloading::Error>, + pub C_GetSessionValidationFlags: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncComplete: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncGetID: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncJoin: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_WrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_UnwrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result @@ -6038,6 +6919,20 @@ impl Pkcs11 { let C_VerifyMessageBegin = __library.get(b"C_VerifyMessageBegin\0").map(|sym| *sym); let C_VerifyMessageNext = __library.get(b"C_VerifyMessageNext\0").map(|sym| *sym); let C_MessageVerifyFinal = __library.get(b"C_MessageVerifyFinal\0").map(|sym| *sym); + let C_EncapsulateKey = __library.get(b"C_EncapsulateKey\0").map(|sym| *sym); + let C_DecapsulateKey = __library.get(b"C_DecapsulateKey\0").map(|sym| *sym); + let C_VerifySignatureInit = __library.get(b"C_VerifySignatureInit\0").map(|sym| *sym); + let C_VerifySignature = __library.get(b"C_VerifySignature\0").map(|sym| *sym); + let C_VerifySignatureUpdate = __library.get(b"C_VerifySignatureUpdate\0").map(|sym| *sym); + let C_VerifySignatureFinal = __library.get(b"C_VerifySignatureFinal\0").map(|sym| *sym); + let C_GetSessionValidationFlags = __library + .get(b"C_GetSessionValidationFlags\0") + .map(|sym| *sym); + let C_AsyncComplete = __library.get(b"C_AsyncComplete\0").map(|sym| *sym); + let C_AsyncGetID = __library.get(b"C_AsyncGetID\0").map(|sym| *sym); + let C_AsyncJoin = __library.get(b"C_AsyncJoin\0").map(|sym| *sym); + let C_WrapKeyAuthenticated = __library.get(b"C_WrapKeyAuthenticated\0").map(|sym| *sym); + let C_UnwrapKeyAuthenticated = __library.get(b"C_UnwrapKeyAuthenticated\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, @@ -6132,6 +7027,18 @@ impl Pkcs11 { C_VerifyMessageBegin, C_VerifyMessageNext, C_MessageVerifyFinal, + C_EncapsulateKey, + C_DecapsulateKey, + C_VerifySignatureInit, + C_VerifySignature, + C_VerifySignatureUpdate, + C_VerifySignatureFinal, + C_GetSessionValidationFlags, + C_AsyncComplete, + C_AsyncGetID, + C_AsyncJoin, + C_WrapKeyAuthenticated, + C_UnwrapKeyAuthenticated, }) } pub unsafe fn C_Initialize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV { @@ -7161,4 +8068,165 @@ impl Pkcs11 { .as_ref() .expect("Expected function, got error."))(arg1) } + pub unsafe fn C_EncapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_EncapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_DecapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_DecapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_VerifySignatureInit( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureInit + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_VerifySignature( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignature + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureUpdate( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureUpdate + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV { + (self + .C_VerifySignatureFinal + .as_ref() + .expect("Expected function, got error."))(arg1) + } + pub unsafe fn C_GetSessionValidationFlags( + &self, + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV { + (self + .C_GetSessionValidationFlags + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncComplete( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV { + (self + .C_AsyncComplete + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncGetID( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncGetID + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncJoin( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncJoin + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_WrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_WrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_UnwrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_UnwrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, + ) + } } diff --git a/cryptoki-sys/src/bindings/aarch64-unknown-linux-gnu.rs b/cryptoki-sys/src/bindings/aarch64-unknown-linux-gnu.rs index 3b594e91..be845490 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 */ +/* automatically generated by rust-bindgen 0.71.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -35,6 +35,7 @@ pub const CK_SP800_108_OPTIONAL_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_DKM_LENGTH: CK_ULONG = 3; pub const CK_SP800_108_BYTE_ARRAY: CK_ULONG = 4; +pub const CK_SP800_108_KEY_HANDLE: CK_ULONG = 5; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS: CK_ULONG = 1; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS: CK_ULONG = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; @@ -162,6 +163,33 @@ 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_PARAMETER_SET: CK_ATTRIBUTE_TYPE = 1565; +pub const CKA_OBJECT_VALIDATION_FLAGS: CK_ATTRIBUTE_TYPE = 1566; +pub const CKA_VALIDATION_TYPE: CK_ATTRIBUTE_TYPE = 1567; +pub const CKA_VALIDATION_VERSION: CK_ATTRIBUTE_TYPE = 1568; +pub const CKA_VALIDATION_LEVEL: CK_ATTRIBUTE_TYPE = 1569; +pub const CKA_VALIDATION_MODULE_ID: CK_ATTRIBUTE_TYPE = 1570; +pub const CKA_VALIDATION_FLAG: CK_ATTRIBUTE_TYPE = 1571; +pub const CKA_VALIDATION_AUTHORITY_TYPE: CK_ATTRIBUTE_TYPE = 1572; +pub const CKA_VALIDATION_COUNTRY: CK_ATTRIBUTE_TYPE = 1573; +pub const CKA_VALIDATION_CERTIFICATE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 1574; +pub const CKA_VALIDATION_CERTIFICATE_URI: CK_ATTRIBUTE_TYPE = 1575; +pub const CKA_VALIDATION_VENDOR_URI: CK_ATTRIBUTE_TYPE = 1576; +pub const CKA_VALIDATION_PROFILE: CK_ATTRIBUTE_TYPE = 1577; +pub const CKA_ENCAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1578; +pub const CKA_DECAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1579; +pub const CKA_TRUST_SERVER_AUTH: CK_ATTRIBUTE_TYPE = 1580; +pub const CKA_TRUST_CLIENT_AUTH: CK_ATTRIBUTE_TYPE = 1581; +pub const CKA_TRUST_CODE_SIGNING: CK_ATTRIBUTE_TYPE = 1582; +pub const CKA_TRUST_EMAIL_PROTECTION: CK_ATTRIBUTE_TYPE = 1583; +pub const CKA_TRUST_IPSEC_IKE: CK_ATTRIBUTE_TYPE = 1584; +pub const CKA_TRUST_TIME_STAMPING: CK_ATTRIBUTE_TYPE = 1585; +pub const CKA_TRUST_OCSP_SIGNING: CK_ATTRIBUTE_TYPE = 1586; +pub const CKA_ENCAPSULATE: CK_ATTRIBUTE_TYPE = 1587; +pub const CKA_DECAPSULATE: CK_ATTRIBUTE_TYPE = 1588; +pub const CKA_HASH_OF_CERTIFICATE: CK_ATTRIBUTE_TYPE = 1589; +pub const CKA_PUBLIC_CRC64_VALUE: CK_ATTRIBUTE_TYPE = 1590; +pub const CKA_SEED: CK_ATTRIBUTE_TYPE = 1591; 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; @@ -234,6 +262,8 @@ pub const CKF_EC_OID: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_EC_CURVENAME: CK_FLAGS = 67108864; +pub const CKF_ENCAPSULATE: CK_FLAGS = 268435456; +pub const CKF_DECAPSULATE: CK_FLAGS = 536870912; pub const CKF_EXTENSION: CK_FLAGS = 2147483648; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1; @@ -246,6 +276,7 @@ pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; +pub const CKF_ASYNC_SESSION: CK_FLAGS = 8; pub const CKF_TOKEN_PRESENT: CK_FLAGS = 1; pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2; pub const CKF_HW_SLOT: CK_FLAGS = 4; @@ -268,6 +299,8 @@ pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; +pub const CKF_SEED_RANDOM_REQUIRED: CK_FLAGS = 33554432; +pub const CKF_ASYNC_SESSION_SUPPORTED: CK_FLAGS = 67108864; 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; @@ -286,6 +319,9 @@ pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKH_VENDOR_DEFINED: CK_HW_FEATURE_TYPE = 2147483648; +pub const CKH_HEDGE_PREFERRED: CK_HW_FEATURE_TYPE = 0; +pub const CKH_HEDGE_REQUIRED: CK_HW_FEATURE_TYPE = 1; +pub const CKH_DETERMINISTIC_REQUIRED: CK_HW_FEATURE_TYPE = 2; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; @@ -347,6 +383,11 @@ 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_XMSS: CK_KEY_TYPE = 71; +pub const CKK_XMSSMT: CK_KEY_TYPE = 72; +pub const CKK_ML_KEM: CK_KEY_TYPE = 73; +pub const CKK_ML_DSA: CK_KEY_TYPE = 74; +pub const CKK_SLH_DSA: CK_KEY_TYPE = 75; 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; @@ -365,6 +406,7 @@ pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; +pub const CKM_ML_KEM_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 15; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; @@ -372,16 +414,43 @@ pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; +pub const CKM_ML_KEM: CK_MECHANISM_TYPE = 23; pub const CKM_DSA_SHA3_224: CK_MECHANISM_TYPE = 24; pub const CKM_DSA_SHA3_256: CK_MECHANISM_TYPE = 25; pub const CKM_DSA_SHA3_384: CK_MECHANISM_TYPE = 26; pub const CKM_DSA_SHA3_512: CK_MECHANISM_TYPE = 27; +pub const CKM_ML_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 28; +pub const CKM_ML_DSA: CK_MECHANISM_TYPE = 29; +pub const CKM_HASH_ML_DSA: CK_MECHANISM_TYPE = 31; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; +pub const CKM_HASH_ML_DSA_SHA224: CK_MECHANISM_TYPE = 35; +pub const CKM_HASH_ML_DSA_SHA256: CK_MECHANISM_TYPE = 36; +pub const CKM_HASH_ML_DSA_SHA384: CK_MECHANISM_TYPE = 37; +pub const CKM_HASH_ML_DSA_SHA512: CK_MECHANISM_TYPE = 38; +pub const CKM_HASH_ML_DSA_SHA3_224: CK_MECHANISM_TYPE = 39; +pub const CKM_HASH_ML_DSA_SHA3_256: CK_MECHANISM_TYPE = 40; +pub const CKM_HASH_ML_DSA_SHA3_384: CK_MECHANISM_TYPE = 41; +pub const CKM_HASH_ML_DSA_SHA3_512: CK_MECHANISM_TYPE = 42; +pub const CKM_HASH_ML_DSA_SHAKE128: CK_MECHANISM_TYPE = 43; +pub const CKM_HASH_ML_DSA_SHAKE256: CK_MECHANISM_TYPE = 44; +pub const CKM_SLH_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 45; +pub const CKM_SLH_DSA: CK_MECHANISM_TYPE = 46; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; +pub const CKM_HASH_SLH_DSA: CK_MECHANISM_TYPE = 52; +pub const CKM_HASH_SLH_DSA_SHA224: CK_MECHANISM_TYPE = 54; +pub const CKM_HASH_SLH_DSA_SHA256: CK_MECHANISM_TYPE = 55; +pub const CKM_HASH_SLH_DSA_SHA384: CK_MECHANISM_TYPE = 56; +pub const CKM_HASH_SLH_DSA_SHA512: CK_MECHANISM_TYPE = 57; +pub const CKM_HASH_SLH_DSA_SHA3_224: CK_MECHANISM_TYPE = 58; +pub const CKM_HASH_SLH_DSA_SHA3_256: CK_MECHANISM_TYPE = 59; +pub const CKM_HASH_SLH_DSA_SHA3_384: CK_MECHANISM_TYPE = 60; +pub const CKM_HASH_SLH_DSA_SHA3_512: CK_MECHANISM_TYPE = 61; +pub const CKM_HASH_SLH_DSA_SHAKE128: CK_MECHANISM_TYPE = 62; +pub const CKM_HASH_SLH_DSA_SHAKE256: CK_MECHANISM_TYPE = 63; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; @@ -402,6 +471,8 @@ pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 86; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 87; pub const CKM_SHA3_256_RSA_PKCS: CK_MECHANISM_TYPE = 96; pub const CKM_SHA3_384_RSA_PKCS: CK_MECHANISM_TYPE = 97; pub const CKM_SHA3_512_RSA_PKCS: CK_MECHANISM_TYPE = 98; @@ -505,7 +576,6 @@ pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; -pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; @@ -711,7 +781,6 @@ pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABILISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; -pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_DSA_FIPS_G_GEN: CK_MECHANISM_TYPE = 8197; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; @@ -784,8 +853,16 @@ 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_XMSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16436; +pub const CKM_XMSSMT_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16437; +pub const CKM_XMSS: CK_MECHANISM_TYPE = 16438; +pub const CKM_XMSSMT: CK_MECHANISM_TYPE = 16439; +pub const CKM_ECDH_X_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16440; +pub const CKM_ECDH_COF_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16441; +pub const CKM_PUB_KEY_FROM_PRIV_KEY: CK_MECHANISM_TYPE = 16442; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; +pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; @@ -793,6 +870,7 @@ pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; +pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKN_SURRENDER: CK_NOTIFICATION = 0; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKO_DATA: CK_OBJECT_CLASS = 0; @@ -805,6 +883,8 @@ pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKO_PROFILE: CK_OBJECT_CLASS = 9; +pub const CKO_VALIDATION: CK_OBJECT_CLASS = 10; +pub const CKO_TRUST: CK_OBJECT_CLASS = 11; pub const CKO_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648; pub const CKP_INVALID_ID: CK_PROFILE_ID = 0; pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; @@ -822,6 +902,24 @@ pub const CKP_PKCS5_PBKD2_HMAC_SHA384: CK_PROFILE_ID = 5; pub const CKP_PKCS5_PBKD2_HMAC_SHA512: CK_PROFILE_ID = 6; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_224: CK_PROFILE_ID = 7; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_256: CK_PROFILE_ID = 8; +pub const CKP_ML_DSA_44: CK_PROFILE_ID = 1; +pub const CKP_ML_DSA_65: CK_PROFILE_ID = 2; +pub const CKP_ML_DSA_87: CK_PROFILE_ID = 3; +pub const CKP_ML_KEM_512: CK_PROFILE_ID = 1; +pub const CKP_ML_KEM_768: CK_PROFILE_ID = 2; +pub const CKP_ML_KEM_1024: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHA2_128S: CK_PROFILE_ID = 1; +pub const CKP_SLH_DSA_SHAKE_128S: CK_PROFILE_ID = 2; +pub const CKP_SLH_DSA_SHA2_128F: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHAKE_128F: CK_PROFILE_ID = 4; +pub const CKP_SLH_DSA_SHA2_192S: CK_PROFILE_ID = 5; +pub const CKP_SLH_DSA_SHAKE_192S: CK_PROFILE_ID = 6; +pub const CKP_SLH_DSA_SHA2_192F: CK_PROFILE_ID = 7; +pub const CKP_SLH_DSA_SHAKE_192F: CK_PROFILE_ID = 8; +pub const CKP_SLH_DSA_SHA2_256S: CK_PROFILE_ID = 9; +pub const CKP_SLH_DSA_SHAKE_256S: CK_PROFILE_ID = 10; +pub const CKP_SLH_DSA_SHA2_256F: CK_PROFILE_ID = 11; +pub const CKP_SLH_DSA_SHAKE_256F: CK_PROFILE_ID = 12; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; @@ -920,15 +1018,35 @@ 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_PENDING: CK_RV = 516; +pub const CKR_SESSION_ASYNC_NOT_SUPPORTED: CK_RV = 517; +pub const CKR_SEED_RANDOM_REQUIRED: CK_RV = 518; +pub const CKR_OPERATION_NOT_VALIDATED: CK_RV = 519; +pub const CKR_TOKEN_NOT_INITIALIZED: CK_RV = 520; +pub const CKR_PARAMETER_SET_NOT_SUPPORTED: CK_RV = 521; 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; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; +pub const CKS_LAST_VALIDATION_OK: CK_STATE = 1; +pub const CKT_TRUST_UNKNOWN: u32 = 0; +pub const CKT_TRUSTED: u32 = 1; +pub const CKT_TRUST_ANCHOR: u32 = 2; +pub const CKT_NOT_TRUSTED: u32 = 3; +pub const CKT_TRUST_MUST_VERIFY_TRUST: u32 = 4; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; +pub const CKV_AUTHORITY_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_AUTHORITY_TYPE_NIST_CMVP: u32 = 1; +pub const CKV_AUTHORITY_TYPE_COMMON_CRITERIA: u32 = 2; +pub const CKV_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_TYPE_SOFTWARE: u32 = 1; +pub const CKV_TYPE_HARDWARE: u32 = 2; +pub const CKV_TYPE_FIRMWARE: u32 = 3; +pub const CKV_TYPE_HYBRID: u32 = 4; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CKZ_SALT_SPECIFIED: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = 1; pub type CK_BBOOL = ::std::os::raw::c_uchar; @@ -957,6 +1075,8 @@ 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_HEDGE_TYPE = CK_ULONG; +pub type CK_HEDGE_TYPE_PTR = *mut CK_HEDGE_TYPE; 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; @@ -973,6 +1093,10 @@ 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; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; +pub type CK_ML_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_ML_DSA_PARAMETER_SET_TYPE; +pub type CK_ML_KEM_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_KEM_PARAMETER_SET_TYPE_PTR = *mut CK_ML_KEM_PARAMETER_SET_TYPE; pub type CK_NOTIFICATION = CK_ULONG; pub type CK_NOTIFICATION_PTR = *mut CK_NOTIFICATION; pub type CK_OBJECT_CLASS = CK_ULONG; @@ -1000,14 +1124,24 @@ pub type CK_RV = CK_ULONG; pub type CK_RV_PTR = *mut CK_RV; pub type CK_SESSION_HANDLE = CK_ULONG; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE = CK_ULONG; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE_PTR = *mut CK_SESSION_VALIDATION_FLAGS_TYPE; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_SLH_DSA_PARAMETER_SET_TYPE; pub type CK_SLOT_ID = CK_ULONG; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SP800_108_DKM_LENGTH_METHOD = CK_ULONG; pub type CK_SP800_108_DKM_LENGTH_METHOD_PTR = *mut CK_SP800_108_DKM_LENGTH_METHOD; pub type CK_STATE = CK_ULONG; pub type CK_STATE_PTR = *mut CK_STATE; +pub type CK_TRUST = CK_ULONG; +pub type CK_TRUST_PTR = *mut CK_TRUST; pub type CK_USER_TYPE = CK_ULONG; pub type CK_USER_TYPE_PTR = *mut CK_USER_TYPE; +pub type CK_VALIDATION_AUTHORITY_TYPE = CK_ULONG; +pub type CK_VALIDATION_AUTHORITY_TYPE_PTR = *mut CK_VALIDATION_AUTHORITY_TYPE; +pub type CK_VALIDATION_TYPE = CK_ULONG; +pub type CK_VALIDATION_TYPE_PTR = *mut CK_VALIDATION_TYPE; pub type CK_X2RATCHET_KDF_TYPE = CK_ULONG; pub type CK_X2RATCHET_KDF_TYPE_PTR = *mut CK_X2RATCHET_KDF_TYPE; pub type CK_X3DH_KDF_TYPE = CK_ULONG; @@ -1016,6 +1150,10 @@ pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG; pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE; pub type CK_XEDDSA_HASH_TYPE = CK_ULONG; pub type CK_XEDDSA_HASH_TYPE_PTR = *mut CK_XEDDSA_HASH_TYPE; +pub type CK_XMSSMT_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSSMT_PARAMETER_SET_TYPE_PTR = *mut CK_XMSSMT_PARAMETER_SET_TYPE; +pub type CK_XMSS_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSS_PARAMETER_SET_TYPE_PTR = *mut CK_XMSS_PARAMETER_SET_TYPE; pub type CK_ATTRIBUTE_PTR = *mut CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR_PTR = *mut *mut CK_ATTRIBUTE; pub type CK_C_INITIALIZE_ARGS_PTR = *mut CK_C_INITIALIZE_ARGS; @@ -1028,6 +1166,8 @@ pub type CK_FUNCTION_LIST_PTR = *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_3_0_PTR = *mut CK_FUNCTION_LIST_3_0; pub type CK_FUNCTION_LIST_3_0_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_0; +pub type CK_FUNCTION_LIST_3_2_PTR = *mut CK_FUNCTION_LIST_3_2; +pub type CK_FUNCTION_LIST_3_2_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_2; pub type CK_INFO_PTR = *mut CK_INFO; pub type CK_INFO_PTR_PTR = *mut *mut CK_INFO; pub type CK_INTERFACE_PTR = *mut CK_INTERFACE; @@ -1202,7 +1342,7 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_INTERFACE { - pub pInterfaceName: *mut CK_CHAR, + pub pInterfaceName: *mut CK_UTF8CHAR, pub pFunctionList: *mut ::std::os::raw::c_void, pub flags: CK_FLAGS, } @@ -1396,6 +1536,8 @@ pub type CK_AES_GCM_PARAMS_PTR = *mut CK_AES_GCM_PARAMS; pub type CK_AES_GCM_PARAMS_PTR_PTR = *mut *mut CK_AES_GCM_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_ASYNC_DATA_PTR = *mut CK_ASYNC_DATA; +pub type CK_ASYNC_DATA_PTR_PTR = *mut *mut CK_ASYNC_DATA; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; @@ -1405,6 +1547,8 @@ pub type CK_CCM_MESSAGE_PARAMS_PTR = *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_PARAMS_PTR = *mut CK_CCM_PARAMS; pub type CK_CCM_PARAMS_PTR_PTR = *mut *mut CK_CCM_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR = *mut CK_CCM_WRAP_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_CCM_WRAP_PARAMS; pub type CK_CHACHA20_PARAMS_PTR = *mut CK_CHACHA20_PARAMS; pub type CK_CHACHA20_PARAMS_PTR_PTR = *mut *mut CK_CHACHA20_PARAMS; pub type CK_CMS_SIG_PARAMS_PTR = *mut CK_CMS_SIG_PARAMS; @@ -1427,10 +1571,14 @@ pub type CK_GCM_MESSAGE_PARAMS_PTR = *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_PARAMS_PTR = *mut CK_GCM_PARAMS; pub type CK_GCM_PARAMS_PTR_PTR = *mut *mut CK_GCM_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR = *mut CK_GCM_WRAP_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GCM_WRAP_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR = *mut CK_GOSTR3410_DERIVE_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_DERIVE_PARAMS; 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_HASH_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; +pub type CK_HASH_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; 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; @@ -1489,6 +1637,8 @@ pub type CK_SALSA20_PARAMS_PTR = *mut CK_SALSA20_PARAMS; pub type CK_SALSA20_PARAMS_PTR_PTR = *mut *mut CK_SALSA20_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_SIGN_ADDITIONAL_CONTEXT; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_SIGN_ADDITIONAL_CONTEXT; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR = *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR_PTR = *mut *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_RELAYX_PARAMS_PTR = *mut CK_SKIPJACK_RELAYX_PARAMS; @@ -1501,6 +1651,10 @@ pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_P pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_FEEDBACK_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR = *mut CK_SP800_108_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_KDF_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR = + *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = + *mut *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR = *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR_PTR = *mut *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_RESPOND_PARAMS_PTR = *mut CK_X2RATCHET_RESPOND_PARAMS; @@ -1517,6 +1671,11 @@ 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)] @@ -1666,6 +1825,39 @@ impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_ASYNC_DATA { + pub ulVersion: CK_ULONG, + pub pValue: *mut CK_BYTE, + pub ulValue: CK_ULONG, + pub hObject: CK_OBJECT_HANDLE, + pub hAdditionalObject: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_ASYNC_DATA"][::std::mem::size_of::() - 40usize]; + ["Alignment of CK_ASYNC_DATA"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulVersion"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulVersion) - 0usize]; + ["Offset of field: CK_ASYNC_DATA::pValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, pValue) - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulValue) - 16usize]; + ["Offset of field: CK_ASYNC_DATA::hObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hObject) - 24usize]; + ["Offset of field: CK_ASYNC_DATA::hAdditionalObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hAdditionalObject) - 32usize]; +}; +impl Default for CK_ASYNC_DATA { + 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_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS { pub iv: [CK_BYTE; 16usize], pub pData: *mut CK_BYTE, @@ -1786,6 +1978,48 @@ impl Default for CK_CCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_CCM_WRAP_PARAMS { + pub ulDataLen: CK_ULONG, + pub pNonce: *mut CK_BYTE, + pub ulNonceLen: CK_ULONG, + pub ulNonceFixedBits: CK_ULONG, + pub nonceGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulMACLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_CCM_WRAP_PARAMS"][::std::mem::size_of::() - 64usize]; + ["Alignment of CK_CCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulDataLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulDataLen) - 0usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pNonce"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pNonce) - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceLen) - 16usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceFixedBits"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceFixedBits) - 24usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::nonceGenerator"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, nonceGenerator) - 32usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pAAD) - 40usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulAADLen) - 48usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulMACLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulMACLen) - 56usize]; +}; +impl Default for CK_CCM_WRAP_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_CHACHA20_PARAMS { pub pBlockCounter: *mut CK_BYTE, pub blockCounterBits: CK_ULONG, @@ -2178,6 +2412,45 @@ impl Default for CK_GCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_GCM_WRAP_PARAMS { + pub pIv: *mut CK_BYTE, + pub ulIvLen: CK_ULONG, + pub ulIvFixedBits: CK_ULONG, + pub ivGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulTagBits: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_GCM_WRAP_PARAMS"][::std::mem::size_of::() - 56usize]; + ["Alignment of CK_GCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pIv"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pIv) - 0usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvLen) - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvFixedBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvFixedBits) - 16usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ivGenerator"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ivGenerator) - 24usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pAAD) - 32usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulAADLen) - 40usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulTagBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulTagBits) - 48usize]; +}; +impl Default for CK_GCM_WRAP_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_GOSTR3410_DERIVE_PARAMS { pub kdf: CK_EC_KDF_TYPE, pub pPublicData: *mut CK_BYTE, @@ -2248,6 +2521,38 @@ impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_HASH_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, + pub hash: CK_MECHANISM_TYPE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hash"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hash) - 24usize]; +}; +impl Default for CK_HASH_SIGN_ADDITIONAL_CONTEXT { + 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_HKDF_PARAMS { pub bExtract: CK_BBOOL, pub bExpand: CK_BBOOL, @@ -3097,6 +3402,35 @@ impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 24usize]; + ["Alignment of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; +}; +impl Default for CK_SIGN_ADDITIONAL_CONTEXT { + 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_SKIPJACK_PRIVATE_WRAP_PARAMS { pub ulPasswordLen: CK_ULONG, pub pPassword: *mut CK_BYTE, @@ -3295,6 +3629,42 @@ impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS { + pub prfHashMechanism: CK_MECHANISM_TYPE, + pub pSessionHash: *mut CK_BYTE, + pub ulSessionHashLen: CK_ULONG, + pub pVersion: *mut CK_VERSION, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::prfHashMechanism"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + prfHashMechanism + ) - 0usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pSessionHash"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pSessionHash) - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::ulSessionHashLen"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + ulSessionHashLen + ) - 16usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pVersion"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pVersion) - 24usize]; +}; +impl Default for CK_TLS12_EXTENDED_MASTER_KEY_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_SP800_108_KDF_PARAMS { pub prfType: CK_SP800_108_PRF_TYPE, pub ulNumberOfDataParams: CK_ULONG, @@ -3636,24 +4006,6 @@ 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; @@ -4725,6 +5077,427 @@ pub type CK_C_VerifyMessageNext = ::std::option::Option< >; pub type CK_C_MessageVerifyFinal = ::std::option::Option CK_RV>; +pub type CK_C_EncapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_DecapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_VerifySignatureInit = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_VerifySignature = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureUpdate = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureFinal = + ::std::option::Option CK_RV>; +pub type CK_C_GetSessionValidationFlags = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, +>; +pub type CK_C_AsyncComplete = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, +>; +pub type CK_C_AsyncGetID = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_AsyncJoin = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_WrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_UnwrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CK_FUNCTION_LIST_3_2 { + pub version: CK_VERSION, + pub C_Initialize: CK_C_Initialize, + pub C_Finalize: CK_C_Finalize, + pub C_GetInfo: CK_C_GetInfo, + pub C_GetFunctionList: CK_C_GetFunctionList, + pub C_GetSlotList: CK_C_GetSlotList, + pub C_GetSlotInfo: CK_C_GetSlotInfo, + pub C_GetTokenInfo: CK_C_GetTokenInfo, + pub C_GetMechanismList: CK_C_GetMechanismList, + pub C_GetMechanismInfo: CK_C_GetMechanismInfo, + pub C_InitToken: CK_C_InitToken, + pub C_InitPIN: CK_C_InitPIN, + pub C_SetPIN: CK_C_SetPIN, + pub C_OpenSession: CK_C_OpenSession, + pub C_CloseSession: CK_C_CloseSession, + pub C_CloseAllSessions: CK_C_CloseAllSessions, + pub C_GetSessionInfo: CK_C_GetSessionInfo, + pub C_GetOperationState: CK_C_GetOperationState, + pub C_SetOperationState: CK_C_SetOperationState, + pub C_Login: CK_C_Login, + pub C_Logout: CK_C_Logout, + pub C_CreateObject: CK_C_CreateObject, + pub C_CopyObject: CK_C_CopyObject, + pub C_DestroyObject: CK_C_DestroyObject, + pub C_GetObjectSize: CK_C_GetObjectSize, + pub C_GetAttributeValue: CK_C_GetAttributeValue, + pub C_SetAttributeValue: CK_C_SetAttributeValue, + pub C_FindObjectsInit: CK_C_FindObjectsInit, + pub C_FindObjects: CK_C_FindObjects, + pub C_FindObjectsFinal: CK_C_FindObjectsFinal, + pub C_EncryptInit: CK_C_EncryptInit, + pub C_Encrypt: CK_C_Encrypt, + pub C_EncryptUpdate: CK_C_EncryptUpdate, + pub C_EncryptFinal: CK_C_EncryptFinal, + pub C_DecryptInit: CK_C_DecryptInit, + pub C_Decrypt: CK_C_Decrypt, + pub C_DecryptUpdate: CK_C_DecryptUpdate, + pub C_DecryptFinal: CK_C_DecryptFinal, + pub C_DigestInit: CK_C_DigestInit, + pub C_Digest: CK_C_Digest, + pub C_DigestUpdate: CK_C_DigestUpdate, + pub C_DigestKey: CK_C_DigestKey, + pub C_DigestFinal: CK_C_DigestFinal, + pub C_SignInit: CK_C_SignInit, + pub C_Sign: CK_C_Sign, + pub C_SignUpdate: CK_C_SignUpdate, + pub C_SignFinal: CK_C_SignFinal, + pub C_SignRecoverInit: CK_C_SignRecoverInit, + pub C_SignRecover: CK_C_SignRecover, + pub C_VerifyInit: CK_C_VerifyInit, + pub C_Verify: CK_C_Verify, + pub C_VerifyUpdate: CK_C_VerifyUpdate, + pub C_VerifyFinal: CK_C_VerifyFinal, + pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, + pub C_VerifyRecover: CK_C_VerifyRecover, + pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, + pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, + pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, + pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, + pub C_GenerateKey: CK_C_GenerateKey, + pub C_GenerateKeyPair: CK_C_GenerateKeyPair, + pub C_WrapKey: CK_C_WrapKey, + pub C_UnwrapKey: CK_C_UnwrapKey, + pub C_DeriveKey: CK_C_DeriveKey, + pub C_SeedRandom: CK_C_SeedRandom, + pub C_GenerateRandom: CK_C_GenerateRandom, + pub C_GetFunctionStatus: CK_C_GetFunctionStatus, + pub C_CancelFunction: CK_C_CancelFunction, + pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, + pub C_GetInterfaceList: CK_C_GetInterfaceList, + pub C_GetInterface: CK_C_GetInterface, + pub C_LoginUser: CK_C_LoginUser, + pub C_SessionCancel: CK_C_SessionCancel, + pub C_MessageEncryptInit: CK_C_MessageEncryptInit, + pub C_EncryptMessage: CK_C_EncryptMessage, + pub C_EncryptMessageBegin: CK_C_EncryptMessageBegin, + pub C_EncryptMessageNext: CK_C_EncryptMessageNext, + pub C_MessageEncryptFinal: CK_C_MessageEncryptFinal, + pub C_MessageDecryptInit: CK_C_MessageDecryptInit, + pub C_DecryptMessage: CK_C_DecryptMessage, + pub C_DecryptMessageBegin: CK_C_DecryptMessageBegin, + pub C_DecryptMessageNext: CK_C_DecryptMessageNext, + pub C_MessageDecryptFinal: CK_C_MessageDecryptFinal, + pub C_MessageSignInit: CK_C_MessageSignInit, + pub C_SignMessage: CK_C_SignMessage, + pub C_SignMessageBegin: CK_C_SignMessageBegin, + pub C_SignMessageNext: CK_C_SignMessageNext, + pub C_MessageSignFinal: CK_C_MessageSignFinal, + pub C_MessageVerifyInit: CK_C_MessageVerifyInit, + pub C_VerifyMessage: CK_C_VerifyMessage, + pub C_VerifyMessageBegin: CK_C_VerifyMessageBegin, + pub C_VerifyMessageNext: CK_C_VerifyMessageNext, + pub C_MessageVerifyFinal: CK_C_MessageVerifyFinal, + pub C_EncapsulateKey: CK_C_EncapsulateKey, + pub C_DecapsulateKey: CK_C_DecapsulateKey, + pub C_VerifySignatureInit: CK_C_VerifySignatureInit, + pub C_VerifySignature: CK_C_VerifySignature, + pub C_VerifySignatureUpdate: CK_C_VerifySignatureUpdate, + pub C_VerifySignatureFinal: CK_C_VerifySignatureFinal, + pub C_GetSessionValidationFlags: CK_C_GetSessionValidationFlags, + pub C_AsyncComplete: CK_C_AsyncComplete, + pub C_AsyncGetID: CK_C_AsyncGetID, + pub C_AsyncJoin: CK_C_AsyncJoin, + pub C_WrapKeyAuthenticated: CK_C_WrapKeyAuthenticated, + pub C_UnwrapKeyAuthenticated: CK_C_UnwrapKeyAuthenticated, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_FUNCTION_LIST_3_2"][::std::mem::size_of::() - 840usize]; + ["Alignment of CK_FUNCTION_LIST_3_2"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::version"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, version) - 0usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Initialize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Initialize) - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Finalize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Finalize) - 16usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInfo) - 24usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionList) - 32usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotList) - 40usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotInfo) - 48usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetTokenInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetTokenInfo) - 56usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismList) - 64usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismInfo) - 72usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitToken"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitToken) - 80usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitPIN) - 88usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetPIN) - 96usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_OpenSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_OpenSession) - 104usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseSession) - 112usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseAllSessions"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseAllSessions) - 120usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionInfo) - 128usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetOperationState) - 136usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetOperationState) - 144usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Login"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Login) - 152usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Logout"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Logout) - 160usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CreateObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CreateObject) - 168usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CopyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CopyObject) - 176usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DestroyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DestroyObject) - 184usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetObjectSize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetObjectSize) - 192usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetAttributeValue) - 200usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetAttributeValue) - 208usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsInit) - 216usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjects"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjects) - 224usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsFinal) - 232usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptInit) - 240usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Encrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Encrypt) - 248usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptUpdate) - 256usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptFinal) - 264usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptInit) - 272usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Decrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Decrypt) - 280usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptUpdate) - 288usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptFinal) - 296usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestInit) - 304usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Digest"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Digest) - 312usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestUpdate) - 320usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestKey) - 328usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestFinal) - 336usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignInit) - 344usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Sign"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Sign) - 352usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignUpdate) - 360usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignFinal) - 368usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecoverInit) - 376usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecover) - 384usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyInit) - 392usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Verify"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Verify) - 400usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyUpdate) - 408usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyFinal) - 416usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecoverInit) - 424usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecover) - 432usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestEncryptUpdate) - 440usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptDigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptDigestUpdate) - 448usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignEncryptUpdate) - 456usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptVerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptVerifyUpdate) - 464usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKey) - 472usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKeyPair"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKeyPair) - 480usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKey) - 488usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKey) - 496usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DeriveKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DeriveKey) - 504usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SeedRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SeedRandom) - 512usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateRandom) - 520usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionStatus"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionStatus) - 528usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CancelFunction"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CancelFunction) - 536usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WaitForSlotEvent"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WaitForSlotEvent) - 544usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterfaceList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterfaceList) - 552usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterface"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterface) - 560usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_LoginUser"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_LoginUser) - 568usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SessionCancel"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SessionCancel) - 576usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptInit) - 584usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessage) - 592usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageBegin) - 600usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageNext) - 608usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptFinal) - 616usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptInit) - 624usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessage) - 632usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageBegin) - 640usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageNext) - 648usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptFinal) - 656usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignInit) - 664usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessage) - 672usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageBegin) - 680usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageNext) - 688usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignFinal) - 696usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyInit) - 704usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessage) - 712usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageBegin) - 720usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageNext) - 728usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyFinal) - 736usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncapsulateKey) - 744usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecapsulateKey) - 752usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureInit) - 760usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignature"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignature) - 768usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureUpdate) - 776usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureFinal) - 784usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionValidationFlags"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionValidationFlags) - 792usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncComplete"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncComplete) - 800usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncGetID"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncGetID) - 808usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncJoin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncJoin) - 816usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKeyAuthenticated) - 824usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKeyAuthenticated) - 832usize]; +}; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct CK_FUNCTION_LIST_3_0 { @@ -5932,6 +6705,114 @@ pub struct Pkcs11 { >, pub C_MessageVerifyFinal: Result CK_RV, ::libloading::Error>, + pub C_EncapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_DecapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureInit: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignature: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureUpdate: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureFinal: + Result CK_RV, ::libloading::Error>, + pub C_GetSessionValidationFlags: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncComplete: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncGetID: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncJoin: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_WrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_UnwrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result @@ -6038,6 +6919,20 @@ impl Pkcs11 { let C_VerifyMessageBegin = __library.get(b"C_VerifyMessageBegin\0").map(|sym| *sym); let C_VerifyMessageNext = __library.get(b"C_VerifyMessageNext\0").map(|sym| *sym); let C_MessageVerifyFinal = __library.get(b"C_MessageVerifyFinal\0").map(|sym| *sym); + let C_EncapsulateKey = __library.get(b"C_EncapsulateKey\0").map(|sym| *sym); + let C_DecapsulateKey = __library.get(b"C_DecapsulateKey\0").map(|sym| *sym); + let C_VerifySignatureInit = __library.get(b"C_VerifySignatureInit\0").map(|sym| *sym); + let C_VerifySignature = __library.get(b"C_VerifySignature\0").map(|sym| *sym); + let C_VerifySignatureUpdate = __library.get(b"C_VerifySignatureUpdate\0").map(|sym| *sym); + let C_VerifySignatureFinal = __library.get(b"C_VerifySignatureFinal\0").map(|sym| *sym); + let C_GetSessionValidationFlags = __library + .get(b"C_GetSessionValidationFlags\0") + .map(|sym| *sym); + let C_AsyncComplete = __library.get(b"C_AsyncComplete\0").map(|sym| *sym); + let C_AsyncGetID = __library.get(b"C_AsyncGetID\0").map(|sym| *sym); + let C_AsyncJoin = __library.get(b"C_AsyncJoin\0").map(|sym| *sym); + let C_WrapKeyAuthenticated = __library.get(b"C_WrapKeyAuthenticated\0").map(|sym| *sym); + let C_UnwrapKeyAuthenticated = __library.get(b"C_UnwrapKeyAuthenticated\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, @@ -6132,6 +7027,18 @@ impl Pkcs11 { C_VerifyMessageBegin, C_VerifyMessageNext, C_MessageVerifyFinal, + C_EncapsulateKey, + C_DecapsulateKey, + C_VerifySignatureInit, + C_VerifySignature, + C_VerifySignatureUpdate, + C_VerifySignatureFinal, + C_GetSessionValidationFlags, + C_AsyncComplete, + C_AsyncGetID, + C_AsyncJoin, + C_WrapKeyAuthenticated, + C_UnwrapKeyAuthenticated, }) } pub unsafe fn C_Initialize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV { @@ -7161,4 +8068,165 @@ impl Pkcs11 { .as_ref() .expect("Expected function, got error."))(arg1) } + pub unsafe fn C_EncapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_EncapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_DecapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_DecapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_VerifySignatureInit( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureInit + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_VerifySignature( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignature + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureUpdate( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureUpdate + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV { + (self + .C_VerifySignatureFinal + .as_ref() + .expect("Expected function, got error."))(arg1) + } + pub unsafe fn C_GetSessionValidationFlags( + &self, + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV { + (self + .C_GetSessionValidationFlags + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncComplete( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV { + (self + .C_AsyncComplete + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncGetID( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncGetID + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncJoin( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncJoin + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_WrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_WrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_UnwrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_UnwrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, + ) + } } diff --git a/cryptoki-sys/src/bindings/arm-unknown-linux-gnueabi.rs b/cryptoki-sys/src/bindings/arm-unknown-linux-gnueabi.rs index e2cf397b..d1fe14f6 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 */ +/* automatically generated by rust-bindgen 0.71.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -35,6 +35,7 @@ pub const CK_SP800_108_OPTIONAL_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_DKM_LENGTH: CK_ULONG = 3; pub const CK_SP800_108_BYTE_ARRAY: CK_ULONG = 4; +pub const CK_SP800_108_KEY_HANDLE: CK_ULONG = 5; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS: CK_ULONG = 1; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS: CK_ULONG = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; @@ -162,6 +163,33 @@ 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_PARAMETER_SET: CK_ATTRIBUTE_TYPE = 1565; +pub const CKA_OBJECT_VALIDATION_FLAGS: CK_ATTRIBUTE_TYPE = 1566; +pub const CKA_VALIDATION_TYPE: CK_ATTRIBUTE_TYPE = 1567; +pub const CKA_VALIDATION_VERSION: CK_ATTRIBUTE_TYPE = 1568; +pub const CKA_VALIDATION_LEVEL: CK_ATTRIBUTE_TYPE = 1569; +pub const CKA_VALIDATION_MODULE_ID: CK_ATTRIBUTE_TYPE = 1570; +pub const CKA_VALIDATION_FLAG: CK_ATTRIBUTE_TYPE = 1571; +pub const CKA_VALIDATION_AUTHORITY_TYPE: CK_ATTRIBUTE_TYPE = 1572; +pub const CKA_VALIDATION_COUNTRY: CK_ATTRIBUTE_TYPE = 1573; +pub const CKA_VALIDATION_CERTIFICATE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 1574; +pub const CKA_VALIDATION_CERTIFICATE_URI: CK_ATTRIBUTE_TYPE = 1575; +pub const CKA_VALIDATION_VENDOR_URI: CK_ATTRIBUTE_TYPE = 1576; +pub const CKA_VALIDATION_PROFILE: CK_ATTRIBUTE_TYPE = 1577; +pub const CKA_ENCAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1578; +pub const CKA_DECAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1579; +pub const CKA_TRUST_SERVER_AUTH: CK_ATTRIBUTE_TYPE = 1580; +pub const CKA_TRUST_CLIENT_AUTH: CK_ATTRIBUTE_TYPE = 1581; +pub const CKA_TRUST_CODE_SIGNING: CK_ATTRIBUTE_TYPE = 1582; +pub const CKA_TRUST_EMAIL_PROTECTION: CK_ATTRIBUTE_TYPE = 1583; +pub const CKA_TRUST_IPSEC_IKE: CK_ATTRIBUTE_TYPE = 1584; +pub const CKA_TRUST_TIME_STAMPING: CK_ATTRIBUTE_TYPE = 1585; +pub const CKA_TRUST_OCSP_SIGNING: CK_ATTRIBUTE_TYPE = 1586; +pub const CKA_ENCAPSULATE: CK_ATTRIBUTE_TYPE = 1587; +pub const CKA_DECAPSULATE: CK_ATTRIBUTE_TYPE = 1588; +pub const CKA_HASH_OF_CERTIFICATE: CK_ATTRIBUTE_TYPE = 1589; +pub const CKA_PUBLIC_CRC64_VALUE: CK_ATTRIBUTE_TYPE = 1590; +pub const CKA_SEED: CK_ATTRIBUTE_TYPE = 1591; 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; @@ -234,6 +262,8 @@ pub const CKF_EC_OID: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_EC_CURVENAME: CK_FLAGS = 67108864; +pub const CKF_ENCAPSULATE: CK_FLAGS = 268435456; +pub const CKF_DECAPSULATE: CK_FLAGS = 536870912; pub const CKF_EXTENSION: CK_FLAGS = 2147483648; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1; @@ -246,6 +276,7 @@ pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; +pub const CKF_ASYNC_SESSION: CK_FLAGS = 8; pub const CKF_TOKEN_PRESENT: CK_FLAGS = 1; pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2; pub const CKF_HW_SLOT: CK_FLAGS = 4; @@ -268,6 +299,8 @@ pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; +pub const CKF_SEED_RANDOM_REQUIRED: CK_FLAGS = 33554432; +pub const CKF_ASYNC_SESSION_SUPPORTED: CK_FLAGS = 67108864; 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; @@ -286,6 +319,9 @@ pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKH_VENDOR_DEFINED: CK_HW_FEATURE_TYPE = 2147483648; +pub const CKH_HEDGE_PREFERRED: CK_HW_FEATURE_TYPE = 0; +pub const CKH_HEDGE_REQUIRED: CK_HW_FEATURE_TYPE = 1; +pub const CKH_DETERMINISTIC_REQUIRED: CK_HW_FEATURE_TYPE = 2; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; @@ -347,6 +383,11 @@ 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_XMSS: CK_KEY_TYPE = 71; +pub const CKK_XMSSMT: CK_KEY_TYPE = 72; +pub const CKK_ML_KEM: CK_KEY_TYPE = 73; +pub const CKK_ML_DSA: CK_KEY_TYPE = 74; +pub const CKK_SLH_DSA: CK_KEY_TYPE = 75; 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; @@ -365,6 +406,7 @@ pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; +pub const CKM_ML_KEM_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 15; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; @@ -372,16 +414,43 @@ pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; +pub const CKM_ML_KEM: CK_MECHANISM_TYPE = 23; pub const CKM_DSA_SHA3_224: CK_MECHANISM_TYPE = 24; pub const CKM_DSA_SHA3_256: CK_MECHANISM_TYPE = 25; pub const CKM_DSA_SHA3_384: CK_MECHANISM_TYPE = 26; pub const CKM_DSA_SHA3_512: CK_MECHANISM_TYPE = 27; +pub const CKM_ML_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 28; +pub const CKM_ML_DSA: CK_MECHANISM_TYPE = 29; +pub const CKM_HASH_ML_DSA: CK_MECHANISM_TYPE = 31; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; +pub const CKM_HASH_ML_DSA_SHA224: CK_MECHANISM_TYPE = 35; +pub const CKM_HASH_ML_DSA_SHA256: CK_MECHANISM_TYPE = 36; +pub const CKM_HASH_ML_DSA_SHA384: CK_MECHANISM_TYPE = 37; +pub const CKM_HASH_ML_DSA_SHA512: CK_MECHANISM_TYPE = 38; +pub const CKM_HASH_ML_DSA_SHA3_224: CK_MECHANISM_TYPE = 39; +pub const CKM_HASH_ML_DSA_SHA3_256: CK_MECHANISM_TYPE = 40; +pub const CKM_HASH_ML_DSA_SHA3_384: CK_MECHANISM_TYPE = 41; +pub const CKM_HASH_ML_DSA_SHA3_512: CK_MECHANISM_TYPE = 42; +pub const CKM_HASH_ML_DSA_SHAKE128: CK_MECHANISM_TYPE = 43; +pub const CKM_HASH_ML_DSA_SHAKE256: CK_MECHANISM_TYPE = 44; +pub const CKM_SLH_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 45; +pub const CKM_SLH_DSA: CK_MECHANISM_TYPE = 46; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; +pub const CKM_HASH_SLH_DSA: CK_MECHANISM_TYPE = 52; +pub const CKM_HASH_SLH_DSA_SHA224: CK_MECHANISM_TYPE = 54; +pub const CKM_HASH_SLH_DSA_SHA256: CK_MECHANISM_TYPE = 55; +pub const CKM_HASH_SLH_DSA_SHA384: CK_MECHANISM_TYPE = 56; +pub const CKM_HASH_SLH_DSA_SHA512: CK_MECHANISM_TYPE = 57; +pub const CKM_HASH_SLH_DSA_SHA3_224: CK_MECHANISM_TYPE = 58; +pub const CKM_HASH_SLH_DSA_SHA3_256: CK_MECHANISM_TYPE = 59; +pub const CKM_HASH_SLH_DSA_SHA3_384: CK_MECHANISM_TYPE = 60; +pub const CKM_HASH_SLH_DSA_SHA3_512: CK_MECHANISM_TYPE = 61; +pub const CKM_HASH_SLH_DSA_SHAKE128: CK_MECHANISM_TYPE = 62; +pub const CKM_HASH_SLH_DSA_SHAKE256: CK_MECHANISM_TYPE = 63; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; @@ -402,6 +471,8 @@ pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 86; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 87; pub const CKM_SHA3_256_RSA_PKCS: CK_MECHANISM_TYPE = 96; pub const CKM_SHA3_384_RSA_PKCS: CK_MECHANISM_TYPE = 97; pub const CKM_SHA3_512_RSA_PKCS: CK_MECHANISM_TYPE = 98; @@ -505,7 +576,6 @@ pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; -pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; @@ -711,7 +781,6 @@ pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABILISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; -pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_DSA_FIPS_G_GEN: CK_MECHANISM_TYPE = 8197; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; @@ -784,8 +853,16 @@ 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_XMSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16436; +pub const CKM_XMSSMT_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16437; +pub const CKM_XMSS: CK_MECHANISM_TYPE = 16438; +pub const CKM_XMSSMT: CK_MECHANISM_TYPE = 16439; +pub const CKM_ECDH_X_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16440; +pub const CKM_ECDH_COF_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16441; +pub const CKM_PUB_KEY_FROM_PRIV_KEY: CK_MECHANISM_TYPE = 16442; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; +pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; @@ -793,6 +870,7 @@ pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; +pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKN_SURRENDER: CK_NOTIFICATION = 0; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKO_DATA: CK_OBJECT_CLASS = 0; @@ -805,6 +883,8 @@ pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKO_PROFILE: CK_OBJECT_CLASS = 9; +pub const CKO_VALIDATION: CK_OBJECT_CLASS = 10; +pub const CKO_TRUST: CK_OBJECT_CLASS = 11; pub const CKO_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648; pub const CKP_INVALID_ID: CK_PROFILE_ID = 0; pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; @@ -822,6 +902,24 @@ pub const CKP_PKCS5_PBKD2_HMAC_SHA384: CK_PROFILE_ID = 5; pub const CKP_PKCS5_PBKD2_HMAC_SHA512: CK_PROFILE_ID = 6; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_224: CK_PROFILE_ID = 7; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_256: CK_PROFILE_ID = 8; +pub const CKP_ML_DSA_44: CK_PROFILE_ID = 1; +pub const CKP_ML_DSA_65: CK_PROFILE_ID = 2; +pub const CKP_ML_DSA_87: CK_PROFILE_ID = 3; +pub const CKP_ML_KEM_512: CK_PROFILE_ID = 1; +pub const CKP_ML_KEM_768: CK_PROFILE_ID = 2; +pub const CKP_ML_KEM_1024: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHA2_128S: CK_PROFILE_ID = 1; +pub const CKP_SLH_DSA_SHAKE_128S: CK_PROFILE_ID = 2; +pub const CKP_SLH_DSA_SHA2_128F: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHAKE_128F: CK_PROFILE_ID = 4; +pub const CKP_SLH_DSA_SHA2_192S: CK_PROFILE_ID = 5; +pub const CKP_SLH_DSA_SHAKE_192S: CK_PROFILE_ID = 6; +pub const CKP_SLH_DSA_SHA2_192F: CK_PROFILE_ID = 7; +pub const CKP_SLH_DSA_SHAKE_192F: CK_PROFILE_ID = 8; +pub const CKP_SLH_DSA_SHA2_256S: CK_PROFILE_ID = 9; +pub const CKP_SLH_DSA_SHAKE_256S: CK_PROFILE_ID = 10; +pub const CKP_SLH_DSA_SHA2_256F: CK_PROFILE_ID = 11; +pub const CKP_SLH_DSA_SHAKE_256F: CK_PROFILE_ID = 12; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; @@ -920,15 +1018,35 @@ 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_PENDING: CK_RV = 516; +pub const CKR_SESSION_ASYNC_NOT_SUPPORTED: CK_RV = 517; +pub const CKR_SEED_RANDOM_REQUIRED: CK_RV = 518; +pub const CKR_OPERATION_NOT_VALIDATED: CK_RV = 519; +pub const CKR_TOKEN_NOT_INITIALIZED: CK_RV = 520; +pub const CKR_PARAMETER_SET_NOT_SUPPORTED: CK_RV = 521; 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; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; +pub const CKS_LAST_VALIDATION_OK: CK_STATE = 1; +pub const CKT_TRUST_UNKNOWN: u32 = 0; +pub const CKT_TRUSTED: u32 = 1; +pub const CKT_TRUST_ANCHOR: u32 = 2; +pub const CKT_NOT_TRUSTED: u32 = 3; +pub const CKT_TRUST_MUST_VERIFY_TRUST: u32 = 4; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; +pub const CKV_AUTHORITY_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_AUTHORITY_TYPE_NIST_CMVP: u32 = 1; +pub const CKV_AUTHORITY_TYPE_COMMON_CRITERIA: u32 = 2; +pub const CKV_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_TYPE_SOFTWARE: u32 = 1; +pub const CKV_TYPE_HARDWARE: u32 = 2; +pub const CKV_TYPE_FIRMWARE: u32 = 3; +pub const CKV_TYPE_HYBRID: u32 = 4; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CKZ_SALT_SPECIFIED: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = 1; pub type CK_BBOOL = ::std::os::raw::c_uchar; @@ -957,6 +1075,8 @@ 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_HEDGE_TYPE = CK_ULONG; +pub type CK_HEDGE_TYPE_PTR = *mut CK_HEDGE_TYPE; 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; @@ -973,6 +1093,10 @@ 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; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; +pub type CK_ML_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_ML_DSA_PARAMETER_SET_TYPE; +pub type CK_ML_KEM_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_KEM_PARAMETER_SET_TYPE_PTR = *mut CK_ML_KEM_PARAMETER_SET_TYPE; pub type CK_NOTIFICATION = CK_ULONG; pub type CK_NOTIFICATION_PTR = *mut CK_NOTIFICATION; pub type CK_OBJECT_CLASS = CK_ULONG; @@ -1000,14 +1124,24 @@ pub type CK_RV = CK_ULONG; pub type CK_RV_PTR = *mut CK_RV; pub type CK_SESSION_HANDLE = CK_ULONG; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE = CK_ULONG; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE_PTR = *mut CK_SESSION_VALIDATION_FLAGS_TYPE; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_SLH_DSA_PARAMETER_SET_TYPE; pub type CK_SLOT_ID = CK_ULONG; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SP800_108_DKM_LENGTH_METHOD = CK_ULONG; pub type CK_SP800_108_DKM_LENGTH_METHOD_PTR = *mut CK_SP800_108_DKM_LENGTH_METHOD; pub type CK_STATE = CK_ULONG; pub type CK_STATE_PTR = *mut CK_STATE; +pub type CK_TRUST = CK_ULONG; +pub type CK_TRUST_PTR = *mut CK_TRUST; pub type CK_USER_TYPE = CK_ULONG; pub type CK_USER_TYPE_PTR = *mut CK_USER_TYPE; +pub type CK_VALIDATION_AUTHORITY_TYPE = CK_ULONG; +pub type CK_VALIDATION_AUTHORITY_TYPE_PTR = *mut CK_VALIDATION_AUTHORITY_TYPE; +pub type CK_VALIDATION_TYPE = CK_ULONG; +pub type CK_VALIDATION_TYPE_PTR = *mut CK_VALIDATION_TYPE; pub type CK_X2RATCHET_KDF_TYPE = CK_ULONG; pub type CK_X2RATCHET_KDF_TYPE_PTR = *mut CK_X2RATCHET_KDF_TYPE; pub type CK_X3DH_KDF_TYPE = CK_ULONG; @@ -1016,6 +1150,10 @@ pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG; pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE; pub type CK_XEDDSA_HASH_TYPE = CK_ULONG; pub type CK_XEDDSA_HASH_TYPE_PTR = *mut CK_XEDDSA_HASH_TYPE; +pub type CK_XMSSMT_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSSMT_PARAMETER_SET_TYPE_PTR = *mut CK_XMSSMT_PARAMETER_SET_TYPE; +pub type CK_XMSS_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSS_PARAMETER_SET_TYPE_PTR = *mut CK_XMSS_PARAMETER_SET_TYPE; pub type CK_ATTRIBUTE_PTR = *mut CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR_PTR = *mut *mut CK_ATTRIBUTE; pub type CK_C_INITIALIZE_ARGS_PTR = *mut CK_C_INITIALIZE_ARGS; @@ -1028,6 +1166,8 @@ pub type CK_FUNCTION_LIST_PTR = *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_3_0_PTR = *mut CK_FUNCTION_LIST_3_0; pub type CK_FUNCTION_LIST_3_0_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_0; +pub type CK_FUNCTION_LIST_3_2_PTR = *mut CK_FUNCTION_LIST_3_2; +pub type CK_FUNCTION_LIST_3_2_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_2; pub type CK_INFO_PTR = *mut CK_INFO; pub type CK_INFO_PTR_PTR = *mut *mut CK_INFO; pub type CK_INTERFACE_PTR = *mut CK_INTERFACE; @@ -1202,7 +1342,7 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_INTERFACE { - pub pInterfaceName: *mut CK_CHAR, + pub pInterfaceName: *mut CK_UTF8CHAR, pub pFunctionList: *mut ::std::os::raw::c_void, pub flags: CK_FLAGS, } @@ -1396,6 +1536,8 @@ pub type CK_AES_GCM_PARAMS_PTR = *mut CK_AES_GCM_PARAMS; pub type CK_AES_GCM_PARAMS_PTR_PTR = *mut *mut CK_AES_GCM_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_ASYNC_DATA_PTR = *mut CK_ASYNC_DATA; +pub type CK_ASYNC_DATA_PTR_PTR = *mut *mut CK_ASYNC_DATA; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; @@ -1405,6 +1547,8 @@ pub type CK_CCM_MESSAGE_PARAMS_PTR = *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_PARAMS_PTR = *mut CK_CCM_PARAMS; pub type CK_CCM_PARAMS_PTR_PTR = *mut *mut CK_CCM_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR = *mut CK_CCM_WRAP_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_CCM_WRAP_PARAMS; pub type CK_CHACHA20_PARAMS_PTR = *mut CK_CHACHA20_PARAMS; pub type CK_CHACHA20_PARAMS_PTR_PTR = *mut *mut CK_CHACHA20_PARAMS; pub type CK_CMS_SIG_PARAMS_PTR = *mut CK_CMS_SIG_PARAMS; @@ -1427,10 +1571,14 @@ pub type CK_GCM_MESSAGE_PARAMS_PTR = *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_PARAMS_PTR = *mut CK_GCM_PARAMS; pub type CK_GCM_PARAMS_PTR_PTR = *mut *mut CK_GCM_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR = *mut CK_GCM_WRAP_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GCM_WRAP_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR = *mut CK_GOSTR3410_DERIVE_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_DERIVE_PARAMS; 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_HASH_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; +pub type CK_HASH_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; 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; @@ -1489,6 +1637,8 @@ pub type CK_SALSA20_PARAMS_PTR = *mut CK_SALSA20_PARAMS; pub type CK_SALSA20_PARAMS_PTR_PTR = *mut *mut CK_SALSA20_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_SIGN_ADDITIONAL_CONTEXT; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_SIGN_ADDITIONAL_CONTEXT; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR = *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR_PTR = *mut *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_RELAYX_PARAMS_PTR = *mut CK_SKIPJACK_RELAYX_PARAMS; @@ -1501,6 +1651,10 @@ pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_P pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_FEEDBACK_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR = *mut CK_SP800_108_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_KDF_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR = + *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = + *mut *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR = *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR_PTR = *mut *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_RESPOND_PARAMS_PTR = *mut CK_X2RATCHET_RESPOND_PARAMS; @@ -1517,6 +1671,11 @@ 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)] @@ -1666,6 +1825,39 @@ impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_ASYNC_DATA { + pub ulVersion: CK_ULONG, + pub pValue: *mut CK_BYTE, + pub ulValue: CK_ULONG, + pub hObject: CK_OBJECT_HANDLE, + pub hAdditionalObject: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_ASYNC_DATA"][::std::mem::size_of::() - 20usize]; + ["Alignment of CK_ASYNC_DATA"][::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_ASYNC_DATA::ulVersion"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulVersion) - 0usize]; + ["Offset of field: CK_ASYNC_DATA::pValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, pValue) - 4usize]; + ["Offset of field: CK_ASYNC_DATA::ulValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulValue) - 8usize]; + ["Offset of field: CK_ASYNC_DATA::hObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hObject) - 12usize]; + ["Offset of field: CK_ASYNC_DATA::hAdditionalObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hAdditionalObject) - 16usize]; +}; +impl Default for CK_ASYNC_DATA { + 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_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS { pub iv: [CK_BYTE; 16usize], pub pData: *mut CK_BYTE, @@ -1786,6 +1978,48 @@ impl Default for CK_CCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_CCM_WRAP_PARAMS { + pub ulDataLen: CK_ULONG, + pub pNonce: *mut CK_BYTE, + pub ulNonceLen: CK_ULONG, + pub ulNonceFixedBits: CK_ULONG, + pub nonceGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulMACLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_CCM_WRAP_PARAMS"][::std::mem::size_of::() - 32usize]; + ["Alignment of CK_CCM_WRAP_PARAMS"][::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulDataLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulDataLen) - 0usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pNonce"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pNonce) - 4usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceLen) - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceFixedBits"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceFixedBits) - 12usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::nonceGenerator"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, nonceGenerator) - 16usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pAAD) - 20usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulAADLen) - 24usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulMACLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulMACLen) - 28usize]; +}; +impl Default for CK_CCM_WRAP_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_CHACHA20_PARAMS { pub pBlockCounter: *mut CK_BYTE, pub blockCounterBits: CK_ULONG, @@ -2178,6 +2412,45 @@ impl Default for CK_GCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_GCM_WRAP_PARAMS { + pub pIv: *mut CK_BYTE, + pub ulIvLen: CK_ULONG, + pub ulIvFixedBits: CK_ULONG, + pub ivGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulTagBits: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_GCM_WRAP_PARAMS"][::std::mem::size_of::() - 28usize]; + ["Alignment of CK_GCM_WRAP_PARAMS"][::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pIv"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pIv) - 0usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvLen) - 4usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvFixedBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvFixedBits) - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ivGenerator"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ivGenerator) - 12usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pAAD) - 16usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulAADLen) - 20usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulTagBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulTagBits) - 24usize]; +}; +impl Default for CK_GCM_WRAP_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_GOSTR3410_DERIVE_PARAMS { pub kdf: CK_EC_KDF_TYPE, pub pPublicData: *mut CK_BYTE, @@ -2248,6 +2521,38 @@ impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_HASH_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, + pub hash: CK_MECHANISM_TYPE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 16usize]; + ["Alignment of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, pContext) - 4usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hash"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hash) - 12usize]; +}; +impl Default for CK_HASH_SIGN_ADDITIONAL_CONTEXT { + 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_HKDF_PARAMS { pub bExtract: CK_BBOOL, pub bExpand: CK_BBOOL, @@ -3097,6 +3402,35 @@ impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 12usize]; + ["Alignment of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, pContext) - 4usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 8usize]; +}; +impl Default for CK_SIGN_ADDITIONAL_CONTEXT { + 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_SKIPJACK_PRIVATE_WRAP_PARAMS { pub ulPasswordLen: CK_ULONG, pub pPassword: *mut CK_BYTE, @@ -3295,6 +3629,42 @@ impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS { + pub prfHashMechanism: CK_MECHANISM_TYPE, + pub pSessionHash: *mut CK_BYTE, + pub ulSessionHashLen: CK_ULONG, + pub pVersion: *mut CK_VERSION, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::size_of::() - 16usize]; + ["Alignment of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::prfHashMechanism"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + prfHashMechanism + ) - 0usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pSessionHash"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pSessionHash) - 4usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::ulSessionHashLen"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + ulSessionHashLen + ) - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pVersion"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pVersion) - 12usize]; +}; +impl Default for CK_TLS12_EXTENDED_MASTER_KEY_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_SP800_108_KDF_PARAMS { pub prfType: CK_SP800_108_PRF_TYPE, pub ulNumberOfDataParams: CK_ULONG, @@ -3636,24 +4006,6 @@ 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; @@ -4725,6 +5077,427 @@ pub type CK_C_VerifyMessageNext = ::std::option::Option< >; pub type CK_C_MessageVerifyFinal = ::std::option::Option CK_RV>; +pub type CK_C_EncapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_DecapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_VerifySignatureInit = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_VerifySignature = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureUpdate = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureFinal = + ::std::option::Option CK_RV>; +pub type CK_C_GetSessionValidationFlags = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, +>; +pub type CK_C_AsyncComplete = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, +>; +pub type CK_C_AsyncGetID = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_AsyncJoin = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_WrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_UnwrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CK_FUNCTION_LIST_3_2 { + pub version: CK_VERSION, + pub C_Initialize: CK_C_Initialize, + pub C_Finalize: CK_C_Finalize, + pub C_GetInfo: CK_C_GetInfo, + pub C_GetFunctionList: CK_C_GetFunctionList, + pub C_GetSlotList: CK_C_GetSlotList, + pub C_GetSlotInfo: CK_C_GetSlotInfo, + pub C_GetTokenInfo: CK_C_GetTokenInfo, + pub C_GetMechanismList: CK_C_GetMechanismList, + pub C_GetMechanismInfo: CK_C_GetMechanismInfo, + pub C_InitToken: CK_C_InitToken, + pub C_InitPIN: CK_C_InitPIN, + pub C_SetPIN: CK_C_SetPIN, + pub C_OpenSession: CK_C_OpenSession, + pub C_CloseSession: CK_C_CloseSession, + pub C_CloseAllSessions: CK_C_CloseAllSessions, + pub C_GetSessionInfo: CK_C_GetSessionInfo, + pub C_GetOperationState: CK_C_GetOperationState, + pub C_SetOperationState: CK_C_SetOperationState, + pub C_Login: CK_C_Login, + pub C_Logout: CK_C_Logout, + pub C_CreateObject: CK_C_CreateObject, + pub C_CopyObject: CK_C_CopyObject, + pub C_DestroyObject: CK_C_DestroyObject, + pub C_GetObjectSize: CK_C_GetObjectSize, + pub C_GetAttributeValue: CK_C_GetAttributeValue, + pub C_SetAttributeValue: CK_C_SetAttributeValue, + pub C_FindObjectsInit: CK_C_FindObjectsInit, + pub C_FindObjects: CK_C_FindObjects, + pub C_FindObjectsFinal: CK_C_FindObjectsFinal, + pub C_EncryptInit: CK_C_EncryptInit, + pub C_Encrypt: CK_C_Encrypt, + pub C_EncryptUpdate: CK_C_EncryptUpdate, + pub C_EncryptFinal: CK_C_EncryptFinal, + pub C_DecryptInit: CK_C_DecryptInit, + pub C_Decrypt: CK_C_Decrypt, + pub C_DecryptUpdate: CK_C_DecryptUpdate, + pub C_DecryptFinal: CK_C_DecryptFinal, + pub C_DigestInit: CK_C_DigestInit, + pub C_Digest: CK_C_Digest, + pub C_DigestUpdate: CK_C_DigestUpdate, + pub C_DigestKey: CK_C_DigestKey, + pub C_DigestFinal: CK_C_DigestFinal, + pub C_SignInit: CK_C_SignInit, + pub C_Sign: CK_C_Sign, + pub C_SignUpdate: CK_C_SignUpdate, + pub C_SignFinal: CK_C_SignFinal, + pub C_SignRecoverInit: CK_C_SignRecoverInit, + pub C_SignRecover: CK_C_SignRecover, + pub C_VerifyInit: CK_C_VerifyInit, + pub C_Verify: CK_C_Verify, + pub C_VerifyUpdate: CK_C_VerifyUpdate, + pub C_VerifyFinal: CK_C_VerifyFinal, + pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, + pub C_VerifyRecover: CK_C_VerifyRecover, + pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, + pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, + pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, + pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, + pub C_GenerateKey: CK_C_GenerateKey, + pub C_GenerateKeyPair: CK_C_GenerateKeyPair, + pub C_WrapKey: CK_C_WrapKey, + pub C_UnwrapKey: CK_C_UnwrapKey, + pub C_DeriveKey: CK_C_DeriveKey, + pub C_SeedRandom: CK_C_SeedRandom, + pub C_GenerateRandom: CK_C_GenerateRandom, + pub C_GetFunctionStatus: CK_C_GetFunctionStatus, + pub C_CancelFunction: CK_C_CancelFunction, + pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, + pub C_GetInterfaceList: CK_C_GetInterfaceList, + pub C_GetInterface: CK_C_GetInterface, + pub C_LoginUser: CK_C_LoginUser, + pub C_SessionCancel: CK_C_SessionCancel, + pub C_MessageEncryptInit: CK_C_MessageEncryptInit, + pub C_EncryptMessage: CK_C_EncryptMessage, + pub C_EncryptMessageBegin: CK_C_EncryptMessageBegin, + pub C_EncryptMessageNext: CK_C_EncryptMessageNext, + pub C_MessageEncryptFinal: CK_C_MessageEncryptFinal, + pub C_MessageDecryptInit: CK_C_MessageDecryptInit, + pub C_DecryptMessage: CK_C_DecryptMessage, + pub C_DecryptMessageBegin: CK_C_DecryptMessageBegin, + pub C_DecryptMessageNext: CK_C_DecryptMessageNext, + pub C_MessageDecryptFinal: CK_C_MessageDecryptFinal, + pub C_MessageSignInit: CK_C_MessageSignInit, + pub C_SignMessage: CK_C_SignMessage, + pub C_SignMessageBegin: CK_C_SignMessageBegin, + pub C_SignMessageNext: CK_C_SignMessageNext, + pub C_MessageSignFinal: CK_C_MessageSignFinal, + pub C_MessageVerifyInit: CK_C_MessageVerifyInit, + pub C_VerifyMessage: CK_C_VerifyMessage, + pub C_VerifyMessageBegin: CK_C_VerifyMessageBegin, + pub C_VerifyMessageNext: CK_C_VerifyMessageNext, + pub C_MessageVerifyFinal: CK_C_MessageVerifyFinal, + pub C_EncapsulateKey: CK_C_EncapsulateKey, + pub C_DecapsulateKey: CK_C_DecapsulateKey, + pub C_VerifySignatureInit: CK_C_VerifySignatureInit, + pub C_VerifySignature: CK_C_VerifySignature, + pub C_VerifySignatureUpdate: CK_C_VerifySignatureUpdate, + pub C_VerifySignatureFinal: CK_C_VerifySignatureFinal, + pub C_GetSessionValidationFlags: CK_C_GetSessionValidationFlags, + pub C_AsyncComplete: CK_C_AsyncComplete, + pub C_AsyncGetID: CK_C_AsyncGetID, + pub C_AsyncJoin: CK_C_AsyncJoin, + pub C_WrapKeyAuthenticated: CK_C_WrapKeyAuthenticated, + pub C_UnwrapKeyAuthenticated: CK_C_UnwrapKeyAuthenticated, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_FUNCTION_LIST_3_2"][::std::mem::size_of::() - 420usize]; + ["Alignment of CK_FUNCTION_LIST_3_2"][::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::version"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, version) - 0usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Initialize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Initialize) - 4usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Finalize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Finalize) - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInfo) - 12usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionList) - 16usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotList) - 20usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotInfo) - 24usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetTokenInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetTokenInfo) - 28usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismList) - 32usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismInfo) - 36usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitToken"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitToken) - 40usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitPIN) - 44usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetPIN) - 48usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_OpenSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_OpenSession) - 52usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseSession) - 56usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseAllSessions"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseAllSessions) - 60usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionInfo) - 64usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetOperationState) - 68usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetOperationState) - 72usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Login"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Login) - 76usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Logout"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Logout) - 80usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CreateObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CreateObject) - 84usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CopyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CopyObject) - 88usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DestroyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DestroyObject) - 92usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetObjectSize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetObjectSize) - 96usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetAttributeValue) - 100usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetAttributeValue) - 104usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsInit) - 108usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjects"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjects) - 112usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsFinal) - 116usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptInit) - 120usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Encrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Encrypt) - 124usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptUpdate) - 128usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptFinal) - 132usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptInit) - 136usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Decrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Decrypt) - 140usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptUpdate) - 144usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptFinal) - 148usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestInit) - 152usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Digest"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Digest) - 156usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestUpdate) - 160usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestKey) - 164usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestFinal) - 168usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignInit) - 172usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Sign"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Sign) - 176usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignUpdate) - 180usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignFinal) - 184usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecoverInit) - 188usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecover) - 192usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyInit) - 196usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Verify"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Verify) - 200usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyUpdate) - 204usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyFinal) - 208usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecoverInit) - 212usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecover) - 216usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestEncryptUpdate) - 220usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptDigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptDigestUpdate) - 224usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignEncryptUpdate) - 228usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptVerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptVerifyUpdate) - 232usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKey) - 236usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKeyPair"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKeyPair) - 240usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKey) - 244usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKey) - 248usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DeriveKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DeriveKey) - 252usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SeedRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SeedRandom) - 256usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateRandom) - 260usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionStatus"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionStatus) - 264usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CancelFunction"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CancelFunction) - 268usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WaitForSlotEvent"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WaitForSlotEvent) - 272usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterfaceList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterfaceList) - 276usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterface"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterface) - 280usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_LoginUser"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_LoginUser) - 284usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SessionCancel"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SessionCancel) - 288usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptInit) - 292usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessage) - 296usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageBegin) - 300usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageNext) - 304usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptFinal) - 308usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptInit) - 312usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessage) - 316usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageBegin) - 320usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageNext) - 324usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptFinal) - 328usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignInit) - 332usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessage) - 336usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageBegin) - 340usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageNext) - 344usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignFinal) - 348usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyInit) - 352usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessage) - 356usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageBegin) - 360usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageNext) - 364usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyFinal) - 368usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncapsulateKey) - 372usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecapsulateKey) - 376usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureInit) - 380usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignature"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignature) - 384usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureUpdate) - 388usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureFinal) - 392usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionValidationFlags"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionValidationFlags) - 396usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncComplete"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncComplete) - 400usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncGetID"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncGetID) - 404usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncJoin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncJoin) - 408usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKeyAuthenticated) - 412usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKeyAuthenticated) - 416usize]; +}; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct CK_FUNCTION_LIST_3_0 { @@ -5932,6 +6705,114 @@ pub struct Pkcs11 { >, pub C_MessageVerifyFinal: Result CK_RV, ::libloading::Error>, + pub C_EncapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_DecapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureInit: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignature: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureUpdate: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureFinal: + Result CK_RV, ::libloading::Error>, + pub C_GetSessionValidationFlags: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncComplete: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncGetID: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncJoin: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_WrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_UnwrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result @@ -6038,6 +6919,20 @@ impl Pkcs11 { let C_VerifyMessageBegin = __library.get(b"C_VerifyMessageBegin\0").map(|sym| *sym); let C_VerifyMessageNext = __library.get(b"C_VerifyMessageNext\0").map(|sym| *sym); let C_MessageVerifyFinal = __library.get(b"C_MessageVerifyFinal\0").map(|sym| *sym); + let C_EncapsulateKey = __library.get(b"C_EncapsulateKey\0").map(|sym| *sym); + let C_DecapsulateKey = __library.get(b"C_DecapsulateKey\0").map(|sym| *sym); + let C_VerifySignatureInit = __library.get(b"C_VerifySignatureInit\0").map(|sym| *sym); + let C_VerifySignature = __library.get(b"C_VerifySignature\0").map(|sym| *sym); + let C_VerifySignatureUpdate = __library.get(b"C_VerifySignatureUpdate\0").map(|sym| *sym); + let C_VerifySignatureFinal = __library.get(b"C_VerifySignatureFinal\0").map(|sym| *sym); + let C_GetSessionValidationFlags = __library + .get(b"C_GetSessionValidationFlags\0") + .map(|sym| *sym); + let C_AsyncComplete = __library.get(b"C_AsyncComplete\0").map(|sym| *sym); + let C_AsyncGetID = __library.get(b"C_AsyncGetID\0").map(|sym| *sym); + let C_AsyncJoin = __library.get(b"C_AsyncJoin\0").map(|sym| *sym); + let C_WrapKeyAuthenticated = __library.get(b"C_WrapKeyAuthenticated\0").map(|sym| *sym); + let C_UnwrapKeyAuthenticated = __library.get(b"C_UnwrapKeyAuthenticated\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, @@ -6132,6 +7027,18 @@ impl Pkcs11 { C_VerifyMessageBegin, C_VerifyMessageNext, C_MessageVerifyFinal, + C_EncapsulateKey, + C_DecapsulateKey, + C_VerifySignatureInit, + C_VerifySignature, + C_VerifySignatureUpdate, + C_VerifySignatureFinal, + C_GetSessionValidationFlags, + C_AsyncComplete, + C_AsyncGetID, + C_AsyncJoin, + C_WrapKeyAuthenticated, + C_UnwrapKeyAuthenticated, }) } pub unsafe fn C_Initialize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV { @@ -7161,4 +8068,165 @@ impl Pkcs11 { .as_ref() .expect("Expected function, got error."))(arg1) } + pub unsafe fn C_EncapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_EncapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_DecapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_DecapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_VerifySignatureInit( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureInit + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_VerifySignature( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignature + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureUpdate( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureUpdate + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV { + (self + .C_VerifySignatureFinal + .as_ref() + .expect("Expected function, got error."))(arg1) + } + pub unsafe fn C_GetSessionValidationFlags( + &self, + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV { + (self + .C_GetSessionValidationFlags + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncComplete( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV { + (self + .C_AsyncComplete + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncGetID( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncGetID + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncJoin( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncJoin + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_WrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_WrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_UnwrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_UnwrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, + ) + } } diff --git a/cryptoki-sys/src/bindings/generic.rs b/cryptoki-sys/src/bindings/generic.rs index 1447a676..3acb014b 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 */ +/* automatically generated by rust-bindgen 0.71.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -35,6 +35,7 @@ pub const CK_SP800_108_OPTIONAL_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_DKM_LENGTH: CK_ULONG = 3; pub const CK_SP800_108_BYTE_ARRAY: CK_ULONG = 4; +pub const CK_SP800_108_KEY_HANDLE: CK_ULONG = 5; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS: CK_ULONG = 1; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS: CK_ULONG = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; @@ -162,6 +163,33 @@ 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_PARAMETER_SET: CK_ATTRIBUTE_TYPE = 1565; +pub const CKA_OBJECT_VALIDATION_FLAGS: CK_ATTRIBUTE_TYPE = 1566; +pub const CKA_VALIDATION_TYPE: CK_ATTRIBUTE_TYPE = 1567; +pub const CKA_VALIDATION_VERSION: CK_ATTRIBUTE_TYPE = 1568; +pub const CKA_VALIDATION_LEVEL: CK_ATTRIBUTE_TYPE = 1569; +pub const CKA_VALIDATION_MODULE_ID: CK_ATTRIBUTE_TYPE = 1570; +pub const CKA_VALIDATION_FLAG: CK_ATTRIBUTE_TYPE = 1571; +pub const CKA_VALIDATION_AUTHORITY_TYPE: CK_ATTRIBUTE_TYPE = 1572; +pub const CKA_VALIDATION_COUNTRY: CK_ATTRIBUTE_TYPE = 1573; +pub const CKA_VALIDATION_CERTIFICATE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 1574; +pub const CKA_VALIDATION_CERTIFICATE_URI: CK_ATTRIBUTE_TYPE = 1575; +pub const CKA_VALIDATION_VENDOR_URI: CK_ATTRIBUTE_TYPE = 1576; +pub const CKA_VALIDATION_PROFILE: CK_ATTRIBUTE_TYPE = 1577; +pub const CKA_ENCAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1578; +pub const CKA_DECAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1579; +pub const CKA_TRUST_SERVER_AUTH: CK_ATTRIBUTE_TYPE = 1580; +pub const CKA_TRUST_CLIENT_AUTH: CK_ATTRIBUTE_TYPE = 1581; +pub const CKA_TRUST_CODE_SIGNING: CK_ATTRIBUTE_TYPE = 1582; +pub const CKA_TRUST_EMAIL_PROTECTION: CK_ATTRIBUTE_TYPE = 1583; +pub const CKA_TRUST_IPSEC_IKE: CK_ATTRIBUTE_TYPE = 1584; +pub const CKA_TRUST_TIME_STAMPING: CK_ATTRIBUTE_TYPE = 1585; +pub const CKA_TRUST_OCSP_SIGNING: CK_ATTRIBUTE_TYPE = 1586; +pub const CKA_ENCAPSULATE: CK_ATTRIBUTE_TYPE = 1587; +pub const CKA_DECAPSULATE: CK_ATTRIBUTE_TYPE = 1588; +pub const CKA_HASH_OF_CERTIFICATE: CK_ATTRIBUTE_TYPE = 1589; +pub const CKA_PUBLIC_CRC64_VALUE: CK_ATTRIBUTE_TYPE = 1590; +pub const CKA_SEED: CK_ATTRIBUTE_TYPE = 1591; 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; @@ -234,6 +262,8 @@ pub const CKF_EC_OID: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_EC_CURVENAME: CK_FLAGS = 67108864; +pub const CKF_ENCAPSULATE: CK_FLAGS = 268435456; +pub const CKF_DECAPSULATE: CK_FLAGS = 536870912; pub const CKF_EXTENSION: CK_FLAGS = 2147483648; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1; @@ -246,6 +276,7 @@ pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; +pub const CKF_ASYNC_SESSION: CK_FLAGS = 8; pub const CKF_TOKEN_PRESENT: CK_FLAGS = 1; pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2; pub const CKF_HW_SLOT: CK_FLAGS = 4; @@ -268,6 +299,8 @@ pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; +pub const CKF_SEED_RANDOM_REQUIRED: CK_FLAGS = 33554432; +pub const CKF_ASYNC_SESSION_SUPPORTED: CK_FLAGS = 67108864; 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; @@ -286,6 +319,9 @@ pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKH_VENDOR_DEFINED: CK_HW_FEATURE_TYPE = 2147483648; +pub const CKH_HEDGE_PREFERRED: CK_HW_FEATURE_TYPE = 0; +pub const CKH_HEDGE_REQUIRED: CK_HW_FEATURE_TYPE = 1; +pub const CKH_DETERMINISTIC_REQUIRED: CK_HW_FEATURE_TYPE = 2; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; @@ -347,6 +383,11 @@ 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_XMSS: CK_KEY_TYPE = 71; +pub const CKK_XMSSMT: CK_KEY_TYPE = 72; +pub const CKK_ML_KEM: CK_KEY_TYPE = 73; +pub const CKK_ML_DSA: CK_KEY_TYPE = 74; +pub const CKK_SLH_DSA: CK_KEY_TYPE = 75; 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; @@ -365,6 +406,7 @@ pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; +pub const CKM_ML_KEM_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 15; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; @@ -372,16 +414,43 @@ pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; +pub const CKM_ML_KEM: CK_MECHANISM_TYPE = 23; pub const CKM_DSA_SHA3_224: CK_MECHANISM_TYPE = 24; pub const CKM_DSA_SHA3_256: CK_MECHANISM_TYPE = 25; pub const CKM_DSA_SHA3_384: CK_MECHANISM_TYPE = 26; pub const CKM_DSA_SHA3_512: CK_MECHANISM_TYPE = 27; +pub const CKM_ML_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 28; +pub const CKM_ML_DSA: CK_MECHANISM_TYPE = 29; +pub const CKM_HASH_ML_DSA: CK_MECHANISM_TYPE = 31; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; +pub const CKM_HASH_ML_DSA_SHA224: CK_MECHANISM_TYPE = 35; +pub const CKM_HASH_ML_DSA_SHA256: CK_MECHANISM_TYPE = 36; +pub const CKM_HASH_ML_DSA_SHA384: CK_MECHANISM_TYPE = 37; +pub const CKM_HASH_ML_DSA_SHA512: CK_MECHANISM_TYPE = 38; +pub const CKM_HASH_ML_DSA_SHA3_224: CK_MECHANISM_TYPE = 39; +pub const CKM_HASH_ML_DSA_SHA3_256: CK_MECHANISM_TYPE = 40; +pub const CKM_HASH_ML_DSA_SHA3_384: CK_MECHANISM_TYPE = 41; +pub const CKM_HASH_ML_DSA_SHA3_512: CK_MECHANISM_TYPE = 42; +pub const CKM_HASH_ML_DSA_SHAKE128: CK_MECHANISM_TYPE = 43; +pub const CKM_HASH_ML_DSA_SHAKE256: CK_MECHANISM_TYPE = 44; +pub const CKM_SLH_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 45; +pub const CKM_SLH_DSA: CK_MECHANISM_TYPE = 46; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; +pub const CKM_HASH_SLH_DSA: CK_MECHANISM_TYPE = 52; +pub const CKM_HASH_SLH_DSA_SHA224: CK_MECHANISM_TYPE = 54; +pub const CKM_HASH_SLH_DSA_SHA256: CK_MECHANISM_TYPE = 55; +pub const CKM_HASH_SLH_DSA_SHA384: CK_MECHANISM_TYPE = 56; +pub const CKM_HASH_SLH_DSA_SHA512: CK_MECHANISM_TYPE = 57; +pub const CKM_HASH_SLH_DSA_SHA3_224: CK_MECHANISM_TYPE = 58; +pub const CKM_HASH_SLH_DSA_SHA3_256: CK_MECHANISM_TYPE = 59; +pub const CKM_HASH_SLH_DSA_SHA3_384: CK_MECHANISM_TYPE = 60; +pub const CKM_HASH_SLH_DSA_SHA3_512: CK_MECHANISM_TYPE = 61; +pub const CKM_HASH_SLH_DSA_SHAKE128: CK_MECHANISM_TYPE = 62; +pub const CKM_HASH_SLH_DSA_SHAKE256: CK_MECHANISM_TYPE = 63; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; @@ -402,6 +471,8 @@ pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 86; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 87; pub const CKM_SHA3_256_RSA_PKCS: CK_MECHANISM_TYPE = 96; pub const CKM_SHA3_384_RSA_PKCS: CK_MECHANISM_TYPE = 97; pub const CKM_SHA3_512_RSA_PKCS: CK_MECHANISM_TYPE = 98; @@ -505,7 +576,6 @@ pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; -pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; @@ -711,7 +781,6 @@ pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABILISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; -pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_DSA_FIPS_G_GEN: CK_MECHANISM_TYPE = 8197; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; @@ -784,8 +853,16 @@ 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_XMSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16436; +pub const CKM_XMSSMT_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16437; +pub const CKM_XMSS: CK_MECHANISM_TYPE = 16438; +pub const CKM_XMSSMT: CK_MECHANISM_TYPE = 16439; +pub const CKM_ECDH_X_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16440; +pub const CKM_ECDH_COF_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16441; +pub const CKM_PUB_KEY_FROM_PRIV_KEY: CK_MECHANISM_TYPE = 16442; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; +pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; @@ -793,6 +870,7 @@ pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; +pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKN_SURRENDER: CK_NOTIFICATION = 0; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKO_DATA: CK_OBJECT_CLASS = 0; @@ -805,6 +883,8 @@ pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKO_PROFILE: CK_OBJECT_CLASS = 9; +pub const CKO_VALIDATION: CK_OBJECT_CLASS = 10; +pub const CKO_TRUST: CK_OBJECT_CLASS = 11; pub const CKO_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648; pub const CKP_INVALID_ID: CK_PROFILE_ID = 0; pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; @@ -822,6 +902,24 @@ pub const CKP_PKCS5_PBKD2_HMAC_SHA384: CK_PROFILE_ID = 5; pub const CKP_PKCS5_PBKD2_HMAC_SHA512: CK_PROFILE_ID = 6; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_224: CK_PROFILE_ID = 7; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_256: CK_PROFILE_ID = 8; +pub const CKP_ML_DSA_44: CK_PROFILE_ID = 1; +pub const CKP_ML_DSA_65: CK_PROFILE_ID = 2; +pub const CKP_ML_DSA_87: CK_PROFILE_ID = 3; +pub const CKP_ML_KEM_512: CK_PROFILE_ID = 1; +pub const CKP_ML_KEM_768: CK_PROFILE_ID = 2; +pub const CKP_ML_KEM_1024: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHA2_128S: CK_PROFILE_ID = 1; +pub const CKP_SLH_DSA_SHAKE_128S: CK_PROFILE_ID = 2; +pub const CKP_SLH_DSA_SHA2_128F: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHAKE_128F: CK_PROFILE_ID = 4; +pub const CKP_SLH_DSA_SHA2_192S: CK_PROFILE_ID = 5; +pub const CKP_SLH_DSA_SHAKE_192S: CK_PROFILE_ID = 6; +pub const CKP_SLH_DSA_SHA2_192F: CK_PROFILE_ID = 7; +pub const CKP_SLH_DSA_SHAKE_192F: CK_PROFILE_ID = 8; +pub const CKP_SLH_DSA_SHA2_256S: CK_PROFILE_ID = 9; +pub const CKP_SLH_DSA_SHAKE_256S: CK_PROFILE_ID = 10; +pub const CKP_SLH_DSA_SHA2_256F: CK_PROFILE_ID = 11; +pub const CKP_SLH_DSA_SHAKE_256F: CK_PROFILE_ID = 12; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; @@ -920,15 +1018,35 @@ 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_PENDING: CK_RV = 516; +pub const CKR_SESSION_ASYNC_NOT_SUPPORTED: CK_RV = 517; +pub const CKR_SEED_RANDOM_REQUIRED: CK_RV = 518; +pub const CKR_OPERATION_NOT_VALIDATED: CK_RV = 519; +pub const CKR_TOKEN_NOT_INITIALIZED: CK_RV = 520; +pub const CKR_PARAMETER_SET_NOT_SUPPORTED: CK_RV = 521; 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; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; +pub const CKS_LAST_VALIDATION_OK: CK_STATE = 1; +pub const CKT_TRUST_UNKNOWN: u32 = 0; +pub const CKT_TRUSTED: u32 = 1; +pub const CKT_TRUST_ANCHOR: u32 = 2; +pub const CKT_NOT_TRUSTED: u32 = 3; +pub const CKT_TRUST_MUST_VERIFY_TRUST: u32 = 4; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; +pub const CKV_AUTHORITY_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_AUTHORITY_TYPE_NIST_CMVP: u32 = 1; +pub const CKV_AUTHORITY_TYPE_COMMON_CRITERIA: u32 = 2; +pub const CKV_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_TYPE_SOFTWARE: u32 = 1; +pub const CKV_TYPE_HARDWARE: u32 = 2; +pub const CKV_TYPE_FIRMWARE: u32 = 3; +pub const CKV_TYPE_HYBRID: u32 = 4; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CKZ_SALT_SPECIFIED: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = 1; pub type CK_BBOOL = ::std::os::raw::c_uchar; @@ -957,6 +1075,8 @@ 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_HEDGE_TYPE = CK_ULONG; +pub type CK_HEDGE_TYPE_PTR = *mut CK_HEDGE_TYPE; 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; @@ -973,6 +1093,10 @@ 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; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; +pub type CK_ML_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_ML_DSA_PARAMETER_SET_TYPE; +pub type CK_ML_KEM_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_KEM_PARAMETER_SET_TYPE_PTR = *mut CK_ML_KEM_PARAMETER_SET_TYPE; pub type CK_NOTIFICATION = CK_ULONG; pub type CK_NOTIFICATION_PTR = *mut CK_NOTIFICATION; pub type CK_OBJECT_CLASS = CK_ULONG; @@ -1000,14 +1124,24 @@ pub type CK_RV = CK_ULONG; pub type CK_RV_PTR = *mut CK_RV; pub type CK_SESSION_HANDLE = CK_ULONG; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE = CK_ULONG; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE_PTR = *mut CK_SESSION_VALIDATION_FLAGS_TYPE; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_SLH_DSA_PARAMETER_SET_TYPE; pub type CK_SLOT_ID = CK_ULONG; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SP800_108_DKM_LENGTH_METHOD = CK_ULONG; pub type CK_SP800_108_DKM_LENGTH_METHOD_PTR = *mut CK_SP800_108_DKM_LENGTH_METHOD; pub type CK_STATE = CK_ULONG; pub type CK_STATE_PTR = *mut CK_STATE; +pub type CK_TRUST = CK_ULONG; +pub type CK_TRUST_PTR = *mut CK_TRUST; pub type CK_USER_TYPE = CK_ULONG; pub type CK_USER_TYPE_PTR = *mut CK_USER_TYPE; +pub type CK_VALIDATION_AUTHORITY_TYPE = CK_ULONG; +pub type CK_VALIDATION_AUTHORITY_TYPE_PTR = *mut CK_VALIDATION_AUTHORITY_TYPE; +pub type CK_VALIDATION_TYPE = CK_ULONG; +pub type CK_VALIDATION_TYPE_PTR = *mut CK_VALIDATION_TYPE; pub type CK_X2RATCHET_KDF_TYPE = CK_ULONG; pub type CK_X2RATCHET_KDF_TYPE_PTR = *mut CK_X2RATCHET_KDF_TYPE; pub type CK_X3DH_KDF_TYPE = CK_ULONG; @@ -1016,6 +1150,10 @@ pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG; pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE; pub type CK_XEDDSA_HASH_TYPE = CK_ULONG; pub type CK_XEDDSA_HASH_TYPE_PTR = *mut CK_XEDDSA_HASH_TYPE; +pub type CK_XMSSMT_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSSMT_PARAMETER_SET_TYPE_PTR = *mut CK_XMSSMT_PARAMETER_SET_TYPE; +pub type CK_XMSS_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSS_PARAMETER_SET_TYPE_PTR = *mut CK_XMSS_PARAMETER_SET_TYPE; pub type CK_ATTRIBUTE_PTR = *mut CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR_PTR = *mut *mut CK_ATTRIBUTE; pub type CK_C_INITIALIZE_ARGS_PTR = *mut CK_C_INITIALIZE_ARGS; @@ -1028,6 +1166,8 @@ pub type CK_FUNCTION_LIST_PTR = *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_3_0_PTR = *mut CK_FUNCTION_LIST_3_0; pub type CK_FUNCTION_LIST_3_0_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_0; +pub type CK_FUNCTION_LIST_3_2_PTR = *mut CK_FUNCTION_LIST_3_2; +pub type CK_FUNCTION_LIST_3_2_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_2; pub type CK_INFO_PTR = *mut CK_INFO; pub type CK_INFO_PTR_PTR = *mut *mut CK_INFO; pub type CK_INTERFACE_PTR = *mut CK_INTERFACE; @@ -1140,7 +1280,7 @@ pub struct CK_INFO { #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct CK_INTERFACE { - pub pInterfaceName: *mut CK_CHAR, + pub pInterfaceName: *mut CK_UTF8CHAR, pub pFunctionList: *mut ::std::os::raw::c_void, pub flags: CK_FLAGS, } @@ -1239,6 +1379,8 @@ pub type CK_AES_GCM_PARAMS_PTR = *mut CK_AES_GCM_PARAMS; pub type CK_AES_GCM_PARAMS_PTR_PTR = *mut *mut CK_AES_GCM_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_ASYNC_DATA_PTR = *mut CK_ASYNC_DATA; +pub type CK_ASYNC_DATA_PTR_PTR = *mut *mut CK_ASYNC_DATA; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; @@ -1248,6 +1390,8 @@ pub type CK_CCM_MESSAGE_PARAMS_PTR = *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_PARAMS_PTR = *mut CK_CCM_PARAMS; pub type CK_CCM_PARAMS_PTR_PTR = *mut *mut CK_CCM_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR = *mut CK_CCM_WRAP_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_CCM_WRAP_PARAMS; pub type CK_CHACHA20_PARAMS_PTR = *mut CK_CHACHA20_PARAMS; pub type CK_CHACHA20_PARAMS_PTR_PTR = *mut *mut CK_CHACHA20_PARAMS; pub type CK_CMS_SIG_PARAMS_PTR = *mut CK_CMS_SIG_PARAMS; @@ -1270,10 +1414,14 @@ pub type CK_GCM_MESSAGE_PARAMS_PTR = *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_PARAMS_PTR = *mut CK_GCM_PARAMS; pub type CK_GCM_PARAMS_PTR_PTR = *mut *mut CK_GCM_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR = *mut CK_GCM_WRAP_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GCM_WRAP_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR = *mut CK_GOSTR3410_DERIVE_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_DERIVE_PARAMS; 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_HASH_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; +pub type CK_HASH_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; 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; @@ -1332,6 +1480,8 @@ pub type CK_SALSA20_PARAMS_PTR = *mut CK_SALSA20_PARAMS; pub type CK_SALSA20_PARAMS_PTR_PTR = *mut *mut CK_SALSA20_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_SIGN_ADDITIONAL_CONTEXT; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_SIGN_ADDITIONAL_CONTEXT; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR = *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR_PTR = *mut *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_RELAYX_PARAMS_PTR = *mut CK_SKIPJACK_RELAYX_PARAMS; @@ -1344,6 +1494,10 @@ pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_P pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_FEEDBACK_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR = *mut CK_SP800_108_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_KDF_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR = + *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = + *mut *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR = *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR_PTR = *mut *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_RESPOND_PARAMS_PTR = *mut CK_X2RATCHET_RESPOND_PARAMS; @@ -1360,6 +1514,11 @@ 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)] @@ -1446,6 +1605,25 @@ impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS { #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] +pub struct CK_ASYNC_DATA { + pub ulVersion: CK_ULONG, + pub pValue: *mut CK_BYTE, + pub ulValue: CK_ULONG, + pub hObject: CK_OBJECT_HANDLE, + pub hAdditionalObject: CK_OBJECT_HANDLE, +} +impl Default for CK_ASYNC_DATA { + 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_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS { pub iv: [CK_BYTE; 16usize], pub pData: *mut CK_BYTE, @@ -1511,6 +1689,28 @@ impl Default for CK_CCM_PARAMS { #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] +pub struct CK_CCM_WRAP_PARAMS { + pub ulDataLen: CK_ULONG, + pub pNonce: *mut CK_BYTE, + pub ulNonceLen: CK_ULONG, + pub ulNonceFixedBits: CK_ULONG, + pub nonceGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulMACLen: CK_ULONG, +} +impl Default for CK_CCM_WRAP_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_CHACHA20_PARAMS { pub pBlockCounter: *mut CK_BYTE, pub blockCounterBits: CK_ULONG, @@ -1727,6 +1927,27 @@ impl Default for CK_GCM_PARAMS { #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] +pub struct CK_GCM_WRAP_PARAMS { + pub pIv: *mut CK_BYTE, + pub ulIvLen: CK_ULONG, + pub ulIvFixedBits: CK_ULONG, + pub ivGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulTagBits: CK_ULONG, +} +impl Default for CK_GCM_WRAP_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_GOSTR3410_DERIVE_PARAMS { pub kdf: CK_EC_KDF_TYPE, pub pPublicData: *mut CK_BYTE, @@ -1765,6 +1986,24 @@ impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS { #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] +pub struct CK_HASH_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, + pub hash: CK_MECHANISM_TYPE, +} +impl Default for CK_HASH_SIGN_ADDITIONAL_CONTEXT { + 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_HKDF_PARAMS { pub bExtract: CK_BBOOL, pub bExpand: CK_BBOOL, @@ -2233,6 +2472,23 @@ impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS { #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] +pub struct CK_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, +} +impl Default for CK_SIGN_ADDITIONAL_CONTEXT { + 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_SKIPJACK_PRIVATE_WRAP_PARAMS { pub ulPasswordLen: CK_ULONG, pub pPassword: *mut CK_BYTE, @@ -2323,6 +2579,24 @@ impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS { #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] +pub struct CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS { + pub prfHashMechanism: CK_MECHANISM_TYPE, + pub pSessionHash: *mut CK_BYTE, + pub ulSessionHashLen: CK_ULONG, + pub pVersion: *mut CK_VERSION, +} +impl Default for CK_TLS12_EXTENDED_MASTER_KEY_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_SP800_108_KDF_PARAMS { pub prfType: CK_SP800_108_PRF_TYPE, pub ulNumberOfDataParams: CK_ULONG, @@ -2496,14 +2770,6 @@ 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; @@ -3374,6 +3640,213 @@ pub type CK_C_VerifyMessageNext = ::std::option::Option< >; pub type CK_C_MessageVerifyFinal = ::std::option::Option CK_RV>; +pub type CK_C_EncapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_DecapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_VerifySignatureInit = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_VerifySignature = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureUpdate = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureFinal = + ::std::option::Option CK_RV>; +pub type CK_C_GetSessionValidationFlags = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, +>; +pub type CK_C_AsyncComplete = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, +>; +pub type CK_C_AsyncGetID = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_AsyncJoin = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_WrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_UnwrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +#[repr(C)] +#[cfg_attr(windows, repr(packed))] +#[derive(Debug, Default, Copy, Clone)] +pub struct CK_FUNCTION_LIST_3_2 { + pub version: CK_VERSION, + pub C_Initialize: CK_C_Initialize, + pub C_Finalize: CK_C_Finalize, + pub C_GetInfo: CK_C_GetInfo, + pub C_GetFunctionList: CK_C_GetFunctionList, + pub C_GetSlotList: CK_C_GetSlotList, + pub C_GetSlotInfo: CK_C_GetSlotInfo, + pub C_GetTokenInfo: CK_C_GetTokenInfo, + pub C_GetMechanismList: CK_C_GetMechanismList, + pub C_GetMechanismInfo: CK_C_GetMechanismInfo, + pub C_InitToken: CK_C_InitToken, + pub C_InitPIN: CK_C_InitPIN, + pub C_SetPIN: CK_C_SetPIN, + pub C_OpenSession: CK_C_OpenSession, + pub C_CloseSession: CK_C_CloseSession, + pub C_CloseAllSessions: CK_C_CloseAllSessions, + pub C_GetSessionInfo: CK_C_GetSessionInfo, + pub C_GetOperationState: CK_C_GetOperationState, + pub C_SetOperationState: CK_C_SetOperationState, + pub C_Login: CK_C_Login, + pub C_Logout: CK_C_Logout, + pub C_CreateObject: CK_C_CreateObject, + pub C_CopyObject: CK_C_CopyObject, + pub C_DestroyObject: CK_C_DestroyObject, + pub C_GetObjectSize: CK_C_GetObjectSize, + pub C_GetAttributeValue: CK_C_GetAttributeValue, + pub C_SetAttributeValue: CK_C_SetAttributeValue, + pub C_FindObjectsInit: CK_C_FindObjectsInit, + pub C_FindObjects: CK_C_FindObjects, + pub C_FindObjectsFinal: CK_C_FindObjectsFinal, + pub C_EncryptInit: CK_C_EncryptInit, + pub C_Encrypt: CK_C_Encrypt, + pub C_EncryptUpdate: CK_C_EncryptUpdate, + pub C_EncryptFinal: CK_C_EncryptFinal, + pub C_DecryptInit: CK_C_DecryptInit, + pub C_Decrypt: CK_C_Decrypt, + pub C_DecryptUpdate: CK_C_DecryptUpdate, + pub C_DecryptFinal: CK_C_DecryptFinal, + pub C_DigestInit: CK_C_DigestInit, + pub C_Digest: CK_C_Digest, + pub C_DigestUpdate: CK_C_DigestUpdate, + pub C_DigestKey: CK_C_DigestKey, + pub C_DigestFinal: CK_C_DigestFinal, + pub C_SignInit: CK_C_SignInit, + pub C_Sign: CK_C_Sign, + pub C_SignUpdate: CK_C_SignUpdate, + pub C_SignFinal: CK_C_SignFinal, + pub C_SignRecoverInit: CK_C_SignRecoverInit, + pub C_SignRecover: CK_C_SignRecover, + pub C_VerifyInit: CK_C_VerifyInit, + pub C_Verify: CK_C_Verify, + pub C_VerifyUpdate: CK_C_VerifyUpdate, + pub C_VerifyFinal: CK_C_VerifyFinal, + pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, + pub C_VerifyRecover: CK_C_VerifyRecover, + pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, + pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, + pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, + pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, + pub C_GenerateKey: CK_C_GenerateKey, + pub C_GenerateKeyPair: CK_C_GenerateKeyPair, + pub C_WrapKey: CK_C_WrapKey, + pub C_UnwrapKey: CK_C_UnwrapKey, + pub C_DeriveKey: CK_C_DeriveKey, + pub C_SeedRandom: CK_C_SeedRandom, + pub C_GenerateRandom: CK_C_GenerateRandom, + pub C_GetFunctionStatus: CK_C_GetFunctionStatus, + pub C_CancelFunction: CK_C_CancelFunction, + pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, + pub C_GetInterfaceList: CK_C_GetInterfaceList, + pub C_GetInterface: CK_C_GetInterface, + pub C_LoginUser: CK_C_LoginUser, + pub C_SessionCancel: CK_C_SessionCancel, + pub C_MessageEncryptInit: CK_C_MessageEncryptInit, + pub C_EncryptMessage: CK_C_EncryptMessage, + pub C_EncryptMessageBegin: CK_C_EncryptMessageBegin, + pub C_EncryptMessageNext: CK_C_EncryptMessageNext, + pub C_MessageEncryptFinal: CK_C_MessageEncryptFinal, + pub C_MessageDecryptInit: CK_C_MessageDecryptInit, + pub C_DecryptMessage: CK_C_DecryptMessage, + pub C_DecryptMessageBegin: CK_C_DecryptMessageBegin, + pub C_DecryptMessageNext: CK_C_DecryptMessageNext, + pub C_MessageDecryptFinal: CK_C_MessageDecryptFinal, + pub C_MessageSignInit: CK_C_MessageSignInit, + pub C_SignMessage: CK_C_SignMessage, + pub C_SignMessageBegin: CK_C_SignMessageBegin, + pub C_SignMessageNext: CK_C_SignMessageNext, + pub C_MessageSignFinal: CK_C_MessageSignFinal, + pub C_MessageVerifyInit: CK_C_MessageVerifyInit, + pub C_VerifyMessage: CK_C_VerifyMessage, + pub C_VerifyMessageBegin: CK_C_VerifyMessageBegin, + pub C_VerifyMessageNext: CK_C_VerifyMessageNext, + pub C_MessageVerifyFinal: CK_C_MessageVerifyFinal, + pub C_EncapsulateKey: CK_C_EncapsulateKey, + pub C_DecapsulateKey: CK_C_DecapsulateKey, + pub C_VerifySignatureInit: CK_C_VerifySignatureInit, + pub C_VerifySignature: CK_C_VerifySignature, + pub C_VerifySignatureUpdate: CK_C_VerifySignatureUpdate, + pub C_VerifySignatureFinal: CK_C_VerifySignatureFinal, + pub C_GetSessionValidationFlags: CK_C_GetSessionValidationFlags, + pub C_AsyncComplete: CK_C_AsyncComplete, + pub C_AsyncGetID: CK_C_AsyncGetID, + pub C_AsyncJoin: CK_C_AsyncJoin, + pub C_WrapKeyAuthenticated: CK_C_WrapKeyAuthenticated, + pub C_UnwrapKeyAuthenticated: CK_C_UnwrapKeyAuthenticated, +} #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Default, Copy, Clone)] @@ -4249,6 +4722,114 @@ pub struct Pkcs11 { >, pub C_MessageVerifyFinal: Result CK_RV, ::libloading::Error>, + pub C_EncapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_DecapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureInit: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignature: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureUpdate: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureFinal: + Result CK_RV, ::libloading::Error>, + pub C_GetSessionValidationFlags: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncComplete: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncGetID: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncJoin: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_WrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_UnwrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result @@ -4355,6 +4936,20 @@ impl Pkcs11 { let C_VerifyMessageBegin = __library.get(b"C_VerifyMessageBegin\0").map(|sym| *sym); let C_VerifyMessageNext = __library.get(b"C_VerifyMessageNext\0").map(|sym| *sym); let C_MessageVerifyFinal = __library.get(b"C_MessageVerifyFinal\0").map(|sym| *sym); + let C_EncapsulateKey = __library.get(b"C_EncapsulateKey\0").map(|sym| *sym); + let C_DecapsulateKey = __library.get(b"C_DecapsulateKey\0").map(|sym| *sym); + let C_VerifySignatureInit = __library.get(b"C_VerifySignatureInit\0").map(|sym| *sym); + let C_VerifySignature = __library.get(b"C_VerifySignature\0").map(|sym| *sym); + let C_VerifySignatureUpdate = __library.get(b"C_VerifySignatureUpdate\0").map(|sym| *sym); + let C_VerifySignatureFinal = __library.get(b"C_VerifySignatureFinal\0").map(|sym| *sym); + let C_GetSessionValidationFlags = __library + .get(b"C_GetSessionValidationFlags\0") + .map(|sym| *sym); + let C_AsyncComplete = __library.get(b"C_AsyncComplete\0").map(|sym| *sym); + let C_AsyncGetID = __library.get(b"C_AsyncGetID\0").map(|sym| *sym); + let C_AsyncJoin = __library.get(b"C_AsyncJoin\0").map(|sym| *sym); + let C_WrapKeyAuthenticated = __library.get(b"C_WrapKeyAuthenticated\0").map(|sym| *sym); + let C_UnwrapKeyAuthenticated = __library.get(b"C_UnwrapKeyAuthenticated\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, @@ -4449,6 +5044,18 @@ impl Pkcs11 { C_VerifyMessageBegin, C_VerifyMessageNext, C_MessageVerifyFinal, + C_EncapsulateKey, + C_DecapsulateKey, + C_VerifySignatureInit, + C_VerifySignature, + C_VerifySignatureUpdate, + C_VerifySignatureFinal, + C_GetSessionValidationFlags, + C_AsyncComplete, + C_AsyncGetID, + C_AsyncJoin, + C_WrapKeyAuthenticated, + C_UnwrapKeyAuthenticated, }) } pub unsafe fn C_Initialize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV { @@ -5478,4 +6085,165 @@ impl Pkcs11 { .as_ref() .expect("Expected function, got error."))(arg1) } + pub unsafe fn C_EncapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_EncapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_DecapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_DecapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_VerifySignatureInit( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureInit + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_VerifySignature( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignature + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureUpdate( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureUpdate + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV { + (self + .C_VerifySignatureFinal + .as_ref() + .expect("Expected function, got error."))(arg1) + } + pub unsafe fn C_GetSessionValidationFlags( + &self, + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV { + (self + .C_GetSessionValidationFlags + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncComplete( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV { + (self + .C_AsyncComplete + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncGetID( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncGetID + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncJoin( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncJoin + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_WrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_WrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_UnwrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_UnwrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, + ) + } } diff --git a/cryptoki-sys/src/bindings/i686-unknown-linux-gnu.rs b/cryptoki-sys/src/bindings/i686-unknown-linux-gnu.rs index e2cf397b..d1fe14f6 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 */ +/* automatically generated by rust-bindgen 0.71.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -35,6 +35,7 @@ pub const CK_SP800_108_OPTIONAL_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_DKM_LENGTH: CK_ULONG = 3; pub const CK_SP800_108_BYTE_ARRAY: CK_ULONG = 4; +pub const CK_SP800_108_KEY_HANDLE: CK_ULONG = 5; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS: CK_ULONG = 1; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS: CK_ULONG = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; @@ -162,6 +163,33 @@ 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_PARAMETER_SET: CK_ATTRIBUTE_TYPE = 1565; +pub const CKA_OBJECT_VALIDATION_FLAGS: CK_ATTRIBUTE_TYPE = 1566; +pub const CKA_VALIDATION_TYPE: CK_ATTRIBUTE_TYPE = 1567; +pub const CKA_VALIDATION_VERSION: CK_ATTRIBUTE_TYPE = 1568; +pub const CKA_VALIDATION_LEVEL: CK_ATTRIBUTE_TYPE = 1569; +pub const CKA_VALIDATION_MODULE_ID: CK_ATTRIBUTE_TYPE = 1570; +pub const CKA_VALIDATION_FLAG: CK_ATTRIBUTE_TYPE = 1571; +pub const CKA_VALIDATION_AUTHORITY_TYPE: CK_ATTRIBUTE_TYPE = 1572; +pub const CKA_VALIDATION_COUNTRY: CK_ATTRIBUTE_TYPE = 1573; +pub const CKA_VALIDATION_CERTIFICATE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 1574; +pub const CKA_VALIDATION_CERTIFICATE_URI: CK_ATTRIBUTE_TYPE = 1575; +pub const CKA_VALIDATION_VENDOR_URI: CK_ATTRIBUTE_TYPE = 1576; +pub const CKA_VALIDATION_PROFILE: CK_ATTRIBUTE_TYPE = 1577; +pub const CKA_ENCAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1578; +pub const CKA_DECAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1579; +pub const CKA_TRUST_SERVER_AUTH: CK_ATTRIBUTE_TYPE = 1580; +pub const CKA_TRUST_CLIENT_AUTH: CK_ATTRIBUTE_TYPE = 1581; +pub const CKA_TRUST_CODE_SIGNING: CK_ATTRIBUTE_TYPE = 1582; +pub const CKA_TRUST_EMAIL_PROTECTION: CK_ATTRIBUTE_TYPE = 1583; +pub const CKA_TRUST_IPSEC_IKE: CK_ATTRIBUTE_TYPE = 1584; +pub const CKA_TRUST_TIME_STAMPING: CK_ATTRIBUTE_TYPE = 1585; +pub const CKA_TRUST_OCSP_SIGNING: CK_ATTRIBUTE_TYPE = 1586; +pub const CKA_ENCAPSULATE: CK_ATTRIBUTE_TYPE = 1587; +pub const CKA_DECAPSULATE: CK_ATTRIBUTE_TYPE = 1588; +pub const CKA_HASH_OF_CERTIFICATE: CK_ATTRIBUTE_TYPE = 1589; +pub const CKA_PUBLIC_CRC64_VALUE: CK_ATTRIBUTE_TYPE = 1590; +pub const CKA_SEED: CK_ATTRIBUTE_TYPE = 1591; 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; @@ -234,6 +262,8 @@ pub const CKF_EC_OID: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_EC_CURVENAME: CK_FLAGS = 67108864; +pub const CKF_ENCAPSULATE: CK_FLAGS = 268435456; +pub const CKF_DECAPSULATE: CK_FLAGS = 536870912; pub const CKF_EXTENSION: CK_FLAGS = 2147483648; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1; @@ -246,6 +276,7 @@ pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; +pub const CKF_ASYNC_SESSION: CK_FLAGS = 8; pub const CKF_TOKEN_PRESENT: CK_FLAGS = 1; pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2; pub const CKF_HW_SLOT: CK_FLAGS = 4; @@ -268,6 +299,8 @@ pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; +pub const CKF_SEED_RANDOM_REQUIRED: CK_FLAGS = 33554432; +pub const CKF_ASYNC_SESSION_SUPPORTED: CK_FLAGS = 67108864; 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; @@ -286,6 +319,9 @@ pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKH_VENDOR_DEFINED: CK_HW_FEATURE_TYPE = 2147483648; +pub const CKH_HEDGE_PREFERRED: CK_HW_FEATURE_TYPE = 0; +pub const CKH_HEDGE_REQUIRED: CK_HW_FEATURE_TYPE = 1; +pub const CKH_DETERMINISTIC_REQUIRED: CK_HW_FEATURE_TYPE = 2; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; @@ -347,6 +383,11 @@ 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_XMSS: CK_KEY_TYPE = 71; +pub const CKK_XMSSMT: CK_KEY_TYPE = 72; +pub const CKK_ML_KEM: CK_KEY_TYPE = 73; +pub const CKK_ML_DSA: CK_KEY_TYPE = 74; +pub const CKK_SLH_DSA: CK_KEY_TYPE = 75; 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; @@ -365,6 +406,7 @@ pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; +pub const CKM_ML_KEM_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 15; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; @@ -372,16 +414,43 @@ pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; +pub const CKM_ML_KEM: CK_MECHANISM_TYPE = 23; pub const CKM_DSA_SHA3_224: CK_MECHANISM_TYPE = 24; pub const CKM_DSA_SHA3_256: CK_MECHANISM_TYPE = 25; pub const CKM_DSA_SHA3_384: CK_MECHANISM_TYPE = 26; pub const CKM_DSA_SHA3_512: CK_MECHANISM_TYPE = 27; +pub const CKM_ML_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 28; +pub const CKM_ML_DSA: CK_MECHANISM_TYPE = 29; +pub const CKM_HASH_ML_DSA: CK_MECHANISM_TYPE = 31; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; +pub const CKM_HASH_ML_DSA_SHA224: CK_MECHANISM_TYPE = 35; +pub const CKM_HASH_ML_DSA_SHA256: CK_MECHANISM_TYPE = 36; +pub const CKM_HASH_ML_DSA_SHA384: CK_MECHANISM_TYPE = 37; +pub const CKM_HASH_ML_DSA_SHA512: CK_MECHANISM_TYPE = 38; +pub const CKM_HASH_ML_DSA_SHA3_224: CK_MECHANISM_TYPE = 39; +pub const CKM_HASH_ML_DSA_SHA3_256: CK_MECHANISM_TYPE = 40; +pub const CKM_HASH_ML_DSA_SHA3_384: CK_MECHANISM_TYPE = 41; +pub const CKM_HASH_ML_DSA_SHA3_512: CK_MECHANISM_TYPE = 42; +pub const CKM_HASH_ML_DSA_SHAKE128: CK_MECHANISM_TYPE = 43; +pub const CKM_HASH_ML_DSA_SHAKE256: CK_MECHANISM_TYPE = 44; +pub const CKM_SLH_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 45; +pub const CKM_SLH_DSA: CK_MECHANISM_TYPE = 46; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; +pub const CKM_HASH_SLH_DSA: CK_MECHANISM_TYPE = 52; +pub const CKM_HASH_SLH_DSA_SHA224: CK_MECHANISM_TYPE = 54; +pub const CKM_HASH_SLH_DSA_SHA256: CK_MECHANISM_TYPE = 55; +pub const CKM_HASH_SLH_DSA_SHA384: CK_MECHANISM_TYPE = 56; +pub const CKM_HASH_SLH_DSA_SHA512: CK_MECHANISM_TYPE = 57; +pub const CKM_HASH_SLH_DSA_SHA3_224: CK_MECHANISM_TYPE = 58; +pub const CKM_HASH_SLH_DSA_SHA3_256: CK_MECHANISM_TYPE = 59; +pub const CKM_HASH_SLH_DSA_SHA3_384: CK_MECHANISM_TYPE = 60; +pub const CKM_HASH_SLH_DSA_SHA3_512: CK_MECHANISM_TYPE = 61; +pub const CKM_HASH_SLH_DSA_SHAKE128: CK_MECHANISM_TYPE = 62; +pub const CKM_HASH_SLH_DSA_SHAKE256: CK_MECHANISM_TYPE = 63; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; @@ -402,6 +471,8 @@ pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 86; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 87; pub const CKM_SHA3_256_RSA_PKCS: CK_MECHANISM_TYPE = 96; pub const CKM_SHA3_384_RSA_PKCS: CK_MECHANISM_TYPE = 97; pub const CKM_SHA3_512_RSA_PKCS: CK_MECHANISM_TYPE = 98; @@ -505,7 +576,6 @@ pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; -pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; @@ -711,7 +781,6 @@ pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABILISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; -pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_DSA_FIPS_G_GEN: CK_MECHANISM_TYPE = 8197; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; @@ -784,8 +853,16 @@ 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_XMSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16436; +pub const CKM_XMSSMT_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16437; +pub const CKM_XMSS: CK_MECHANISM_TYPE = 16438; +pub const CKM_XMSSMT: CK_MECHANISM_TYPE = 16439; +pub const CKM_ECDH_X_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16440; +pub const CKM_ECDH_COF_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16441; +pub const CKM_PUB_KEY_FROM_PRIV_KEY: CK_MECHANISM_TYPE = 16442; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; +pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; @@ -793,6 +870,7 @@ pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; +pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKN_SURRENDER: CK_NOTIFICATION = 0; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKO_DATA: CK_OBJECT_CLASS = 0; @@ -805,6 +883,8 @@ pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKO_PROFILE: CK_OBJECT_CLASS = 9; +pub const CKO_VALIDATION: CK_OBJECT_CLASS = 10; +pub const CKO_TRUST: CK_OBJECT_CLASS = 11; pub const CKO_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648; pub const CKP_INVALID_ID: CK_PROFILE_ID = 0; pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; @@ -822,6 +902,24 @@ pub const CKP_PKCS5_PBKD2_HMAC_SHA384: CK_PROFILE_ID = 5; pub const CKP_PKCS5_PBKD2_HMAC_SHA512: CK_PROFILE_ID = 6; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_224: CK_PROFILE_ID = 7; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_256: CK_PROFILE_ID = 8; +pub const CKP_ML_DSA_44: CK_PROFILE_ID = 1; +pub const CKP_ML_DSA_65: CK_PROFILE_ID = 2; +pub const CKP_ML_DSA_87: CK_PROFILE_ID = 3; +pub const CKP_ML_KEM_512: CK_PROFILE_ID = 1; +pub const CKP_ML_KEM_768: CK_PROFILE_ID = 2; +pub const CKP_ML_KEM_1024: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHA2_128S: CK_PROFILE_ID = 1; +pub const CKP_SLH_DSA_SHAKE_128S: CK_PROFILE_ID = 2; +pub const CKP_SLH_DSA_SHA2_128F: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHAKE_128F: CK_PROFILE_ID = 4; +pub const CKP_SLH_DSA_SHA2_192S: CK_PROFILE_ID = 5; +pub const CKP_SLH_DSA_SHAKE_192S: CK_PROFILE_ID = 6; +pub const CKP_SLH_DSA_SHA2_192F: CK_PROFILE_ID = 7; +pub const CKP_SLH_DSA_SHAKE_192F: CK_PROFILE_ID = 8; +pub const CKP_SLH_DSA_SHA2_256S: CK_PROFILE_ID = 9; +pub const CKP_SLH_DSA_SHAKE_256S: CK_PROFILE_ID = 10; +pub const CKP_SLH_DSA_SHA2_256F: CK_PROFILE_ID = 11; +pub const CKP_SLH_DSA_SHAKE_256F: CK_PROFILE_ID = 12; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; @@ -920,15 +1018,35 @@ 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_PENDING: CK_RV = 516; +pub const CKR_SESSION_ASYNC_NOT_SUPPORTED: CK_RV = 517; +pub const CKR_SEED_RANDOM_REQUIRED: CK_RV = 518; +pub const CKR_OPERATION_NOT_VALIDATED: CK_RV = 519; +pub const CKR_TOKEN_NOT_INITIALIZED: CK_RV = 520; +pub const CKR_PARAMETER_SET_NOT_SUPPORTED: CK_RV = 521; 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; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; +pub const CKS_LAST_VALIDATION_OK: CK_STATE = 1; +pub const CKT_TRUST_UNKNOWN: u32 = 0; +pub const CKT_TRUSTED: u32 = 1; +pub const CKT_TRUST_ANCHOR: u32 = 2; +pub const CKT_NOT_TRUSTED: u32 = 3; +pub const CKT_TRUST_MUST_VERIFY_TRUST: u32 = 4; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; +pub const CKV_AUTHORITY_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_AUTHORITY_TYPE_NIST_CMVP: u32 = 1; +pub const CKV_AUTHORITY_TYPE_COMMON_CRITERIA: u32 = 2; +pub const CKV_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_TYPE_SOFTWARE: u32 = 1; +pub const CKV_TYPE_HARDWARE: u32 = 2; +pub const CKV_TYPE_FIRMWARE: u32 = 3; +pub const CKV_TYPE_HYBRID: u32 = 4; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CKZ_SALT_SPECIFIED: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = 1; pub type CK_BBOOL = ::std::os::raw::c_uchar; @@ -957,6 +1075,8 @@ 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_HEDGE_TYPE = CK_ULONG; +pub type CK_HEDGE_TYPE_PTR = *mut CK_HEDGE_TYPE; 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; @@ -973,6 +1093,10 @@ 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; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; +pub type CK_ML_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_ML_DSA_PARAMETER_SET_TYPE; +pub type CK_ML_KEM_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_KEM_PARAMETER_SET_TYPE_PTR = *mut CK_ML_KEM_PARAMETER_SET_TYPE; pub type CK_NOTIFICATION = CK_ULONG; pub type CK_NOTIFICATION_PTR = *mut CK_NOTIFICATION; pub type CK_OBJECT_CLASS = CK_ULONG; @@ -1000,14 +1124,24 @@ pub type CK_RV = CK_ULONG; pub type CK_RV_PTR = *mut CK_RV; pub type CK_SESSION_HANDLE = CK_ULONG; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE = CK_ULONG; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE_PTR = *mut CK_SESSION_VALIDATION_FLAGS_TYPE; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_SLH_DSA_PARAMETER_SET_TYPE; pub type CK_SLOT_ID = CK_ULONG; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SP800_108_DKM_LENGTH_METHOD = CK_ULONG; pub type CK_SP800_108_DKM_LENGTH_METHOD_PTR = *mut CK_SP800_108_DKM_LENGTH_METHOD; pub type CK_STATE = CK_ULONG; pub type CK_STATE_PTR = *mut CK_STATE; +pub type CK_TRUST = CK_ULONG; +pub type CK_TRUST_PTR = *mut CK_TRUST; pub type CK_USER_TYPE = CK_ULONG; pub type CK_USER_TYPE_PTR = *mut CK_USER_TYPE; +pub type CK_VALIDATION_AUTHORITY_TYPE = CK_ULONG; +pub type CK_VALIDATION_AUTHORITY_TYPE_PTR = *mut CK_VALIDATION_AUTHORITY_TYPE; +pub type CK_VALIDATION_TYPE = CK_ULONG; +pub type CK_VALIDATION_TYPE_PTR = *mut CK_VALIDATION_TYPE; pub type CK_X2RATCHET_KDF_TYPE = CK_ULONG; pub type CK_X2RATCHET_KDF_TYPE_PTR = *mut CK_X2RATCHET_KDF_TYPE; pub type CK_X3DH_KDF_TYPE = CK_ULONG; @@ -1016,6 +1150,10 @@ pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG; pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE; pub type CK_XEDDSA_HASH_TYPE = CK_ULONG; pub type CK_XEDDSA_HASH_TYPE_PTR = *mut CK_XEDDSA_HASH_TYPE; +pub type CK_XMSSMT_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSSMT_PARAMETER_SET_TYPE_PTR = *mut CK_XMSSMT_PARAMETER_SET_TYPE; +pub type CK_XMSS_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSS_PARAMETER_SET_TYPE_PTR = *mut CK_XMSS_PARAMETER_SET_TYPE; pub type CK_ATTRIBUTE_PTR = *mut CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR_PTR = *mut *mut CK_ATTRIBUTE; pub type CK_C_INITIALIZE_ARGS_PTR = *mut CK_C_INITIALIZE_ARGS; @@ -1028,6 +1166,8 @@ pub type CK_FUNCTION_LIST_PTR = *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_3_0_PTR = *mut CK_FUNCTION_LIST_3_0; pub type CK_FUNCTION_LIST_3_0_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_0; +pub type CK_FUNCTION_LIST_3_2_PTR = *mut CK_FUNCTION_LIST_3_2; +pub type CK_FUNCTION_LIST_3_2_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_2; pub type CK_INFO_PTR = *mut CK_INFO; pub type CK_INFO_PTR_PTR = *mut *mut CK_INFO; pub type CK_INTERFACE_PTR = *mut CK_INTERFACE; @@ -1202,7 +1342,7 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_INTERFACE { - pub pInterfaceName: *mut CK_CHAR, + pub pInterfaceName: *mut CK_UTF8CHAR, pub pFunctionList: *mut ::std::os::raw::c_void, pub flags: CK_FLAGS, } @@ -1396,6 +1536,8 @@ pub type CK_AES_GCM_PARAMS_PTR = *mut CK_AES_GCM_PARAMS; pub type CK_AES_GCM_PARAMS_PTR_PTR = *mut *mut CK_AES_GCM_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_ASYNC_DATA_PTR = *mut CK_ASYNC_DATA; +pub type CK_ASYNC_DATA_PTR_PTR = *mut *mut CK_ASYNC_DATA; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; @@ -1405,6 +1547,8 @@ pub type CK_CCM_MESSAGE_PARAMS_PTR = *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_PARAMS_PTR = *mut CK_CCM_PARAMS; pub type CK_CCM_PARAMS_PTR_PTR = *mut *mut CK_CCM_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR = *mut CK_CCM_WRAP_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_CCM_WRAP_PARAMS; pub type CK_CHACHA20_PARAMS_PTR = *mut CK_CHACHA20_PARAMS; pub type CK_CHACHA20_PARAMS_PTR_PTR = *mut *mut CK_CHACHA20_PARAMS; pub type CK_CMS_SIG_PARAMS_PTR = *mut CK_CMS_SIG_PARAMS; @@ -1427,10 +1571,14 @@ pub type CK_GCM_MESSAGE_PARAMS_PTR = *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_PARAMS_PTR = *mut CK_GCM_PARAMS; pub type CK_GCM_PARAMS_PTR_PTR = *mut *mut CK_GCM_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR = *mut CK_GCM_WRAP_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GCM_WRAP_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR = *mut CK_GOSTR3410_DERIVE_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_DERIVE_PARAMS; 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_HASH_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; +pub type CK_HASH_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; 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; @@ -1489,6 +1637,8 @@ pub type CK_SALSA20_PARAMS_PTR = *mut CK_SALSA20_PARAMS; pub type CK_SALSA20_PARAMS_PTR_PTR = *mut *mut CK_SALSA20_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_SIGN_ADDITIONAL_CONTEXT; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_SIGN_ADDITIONAL_CONTEXT; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR = *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR_PTR = *mut *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_RELAYX_PARAMS_PTR = *mut CK_SKIPJACK_RELAYX_PARAMS; @@ -1501,6 +1651,10 @@ pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_P pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_FEEDBACK_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR = *mut CK_SP800_108_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_KDF_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR = + *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = + *mut *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR = *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR_PTR = *mut *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_RESPOND_PARAMS_PTR = *mut CK_X2RATCHET_RESPOND_PARAMS; @@ -1517,6 +1671,11 @@ 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)] @@ -1666,6 +1825,39 @@ impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_ASYNC_DATA { + pub ulVersion: CK_ULONG, + pub pValue: *mut CK_BYTE, + pub ulValue: CK_ULONG, + pub hObject: CK_OBJECT_HANDLE, + pub hAdditionalObject: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_ASYNC_DATA"][::std::mem::size_of::() - 20usize]; + ["Alignment of CK_ASYNC_DATA"][::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_ASYNC_DATA::ulVersion"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulVersion) - 0usize]; + ["Offset of field: CK_ASYNC_DATA::pValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, pValue) - 4usize]; + ["Offset of field: CK_ASYNC_DATA::ulValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulValue) - 8usize]; + ["Offset of field: CK_ASYNC_DATA::hObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hObject) - 12usize]; + ["Offset of field: CK_ASYNC_DATA::hAdditionalObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hAdditionalObject) - 16usize]; +}; +impl Default for CK_ASYNC_DATA { + 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_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS { pub iv: [CK_BYTE; 16usize], pub pData: *mut CK_BYTE, @@ -1786,6 +1978,48 @@ impl Default for CK_CCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_CCM_WRAP_PARAMS { + pub ulDataLen: CK_ULONG, + pub pNonce: *mut CK_BYTE, + pub ulNonceLen: CK_ULONG, + pub ulNonceFixedBits: CK_ULONG, + pub nonceGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulMACLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_CCM_WRAP_PARAMS"][::std::mem::size_of::() - 32usize]; + ["Alignment of CK_CCM_WRAP_PARAMS"][::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulDataLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulDataLen) - 0usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pNonce"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pNonce) - 4usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceLen) - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceFixedBits"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceFixedBits) - 12usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::nonceGenerator"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, nonceGenerator) - 16usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pAAD) - 20usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulAADLen) - 24usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulMACLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulMACLen) - 28usize]; +}; +impl Default for CK_CCM_WRAP_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_CHACHA20_PARAMS { pub pBlockCounter: *mut CK_BYTE, pub blockCounterBits: CK_ULONG, @@ -2178,6 +2412,45 @@ impl Default for CK_GCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_GCM_WRAP_PARAMS { + pub pIv: *mut CK_BYTE, + pub ulIvLen: CK_ULONG, + pub ulIvFixedBits: CK_ULONG, + pub ivGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulTagBits: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_GCM_WRAP_PARAMS"][::std::mem::size_of::() - 28usize]; + ["Alignment of CK_GCM_WRAP_PARAMS"][::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pIv"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pIv) - 0usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvLen) - 4usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvFixedBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvFixedBits) - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ivGenerator"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ivGenerator) - 12usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pAAD) - 16usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulAADLen) - 20usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulTagBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulTagBits) - 24usize]; +}; +impl Default for CK_GCM_WRAP_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_GOSTR3410_DERIVE_PARAMS { pub kdf: CK_EC_KDF_TYPE, pub pPublicData: *mut CK_BYTE, @@ -2248,6 +2521,38 @@ impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_HASH_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, + pub hash: CK_MECHANISM_TYPE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 16usize]; + ["Alignment of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, pContext) - 4usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hash"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hash) - 12usize]; +}; +impl Default for CK_HASH_SIGN_ADDITIONAL_CONTEXT { + 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_HKDF_PARAMS { pub bExtract: CK_BBOOL, pub bExpand: CK_BBOOL, @@ -3097,6 +3402,35 @@ impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 12usize]; + ["Alignment of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, pContext) - 4usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 8usize]; +}; +impl Default for CK_SIGN_ADDITIONAL_CONTEXT { + 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_SKIPJACK_PRIVATE_WRAP_PARAMS { pub ulPasswordLen: CK_ULONG, pub pPassword: *mut CK_BYTE, @@ -3295,6 +3629,42 @@ impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS { + pub prfHashMechanism: CK_MECHANISM_TYPE, + pub pSessionHash: *mut CK_BYTE, + pub ulSessionHashLen: CK_ULONG, + pub pVersion: *mut CK_VERSION, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::size_of::() - 16usize]; + ["Alignment of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::prfHashMechanism"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + prfHashMechanism + ) - 0usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pSessionHash"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pSessionHash) - 4usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::ulSessionHashLen"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + ulSessionHashLen + ) - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pVersion"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pVersion) - 12usize]; +}; +impl Default for CK_TLS12_EXTENDED_MASTER_KEY_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_SP800_108_KDF_PARAMS { pub prfType: CK_SP800_108_PRF_TYPE, pub ulNumberOfDataParams: CK_ULONG, @@ -3636,24 +4006,6 @@ 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; @@ -4725,6 +5077,427 @@ pub type CK_C_VerifyMessageNext = ::std::option::Option< >; pub type CK_C_MessageVerifyFinal = ::std::option::Option CK_RV>; +pub type CK_C_EncapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_DecapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_VerifySignatureInit = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_VerifySignature = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureUpdate = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureFinal = + ::std::option::Option CK_RV>; +pub type CK_C_GetSessionValidationFlags = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, +>; +pub type CK_C_AsyncComplete = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, +>; +pub type CK_C_AsyncGetID = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_AsyncJoin = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_WrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_UnwrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CK_FUNCTION_LIST_3_2 { + pub version: CK_VERSION, + pub C_Initialize: CK_C_Initialize, + pub C_Finalize: CK_C_Finalize, + pub C_GetInfo: CK_C_GetInfo, + pub C_GetFunctionList: CK_C_GetFunctionList, + pub C_GetSlotList: CK_C_GetSlotList, + pub C_GetSlotInfo: CK_C_GetSlotInfo, + pub C_GetTokenInfo: CK_C_GetTokenInfo, + pub C_GetMechanismList: CK_C_GetMechanismList, + pub C_GetMechanismInfo: CK_C_GetMechanismInfo, + pub C_InitToken: CK_C_InitToken, + pub C_InitPIN: CK_C_InitPIN, + pub C_SetPIN: CK_C_SetPIN, + pub C_OpenSession: CK_C_OpenSession, + pub C_CloseSession: CK_C_CloseSession, + pub C_CloseAllSessions: CK_C_CloseAllSessions, + pub C_GetSessionInfo: CK_C_GetSessionInfo, + pub C_GetOperationState: CK_C_GetOperationState, + pub C_SetOperationState: CK_C_SetOperationState, + pub C_Login: CK_C_Login, + pub C_Logout: CK_C_Logout, + pub C_CreateObject: CK_C_CreateObject, + pub C_CopyObject: CK_C_CopyObject, + pub C_DestroyObject: CK_C_DestroyObject, + pub C_GetObjectSize: CK_C_GetObjectSize, + pub C_GetAttributeValue: CK_C_GetAttributeValue, + pub C_SetAttributeValue: CK_C_SetAttributeValue, + pub C_FindObjectsInit: CK_C_FindObjectsInit, + pub C_FindObjects: CK_C_FindObjects, + pub C_FindObjectsFinal: CK_C_FindObjectsFinal, + pub C_EncryptInit: CK_C_EncryptInit, + pub C_Encrypt: CK_C_Encrypt, + pub C_EncryptUpdate: CK_C_EncryptUpdate, + pub C_EncryptFinal: CK_C_EncryptFinal, + pub C_DecryptInit: CK_C_DecryptInit, + pub C_Decrypt: CK_C_Decrypt, + pub C_DecryptUpdate: CK_C_DecryptUpdate, + pub C_DecryptFinal: CK_C_DecryptFinal, + pub C_DigestInit: CK_C_DigestInit, + pub C_Digest: CK_C_Digest, + pub C_DigestUpdate: CK_C_DigestUpdate, + pub C_DigestKey: CK_C_DigestKey, + pub C_DigestFinal: CK_C_DigestFinal, + pub C_SignInit: CK_C_SignInit, + pub C_Sign: CK_C_Sign, + pub C_SignUpdate: CK_C_SignUpdate, + pub C_SignFinal: CK_C_SignFinal, + pub C_SignRecoverInit: CK_C_SignRecoverInit, + pub C_SignRecover: CK_C_SignRecover, + pub C_VerifyInit: CK_C_VerifyInit, + pub C_Verify: CK_C_Verify, + pub C_VerifyUpdate: CK_C_VerifyUpdate, + pub C_VerifyFinal: CK_C_VerifyFinal, + pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, + pub C_VerifyRecover: CK_C_VerifyRecover, + pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, + pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, + pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, + pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, + pub C_GenerateKey: CK_C_GenerateKey, + pub C_GenerateKeyPair: CK_C_GenerateKeyPair, + pub C_WrapKey: CK_C_WrapKey, + pub C_UnwrapKey: CK_C_UnwrapKey, + pub C_DeriveKey: CK_C_DeriveKey, + pub C_SeedRandom: CK_C_SeedRandom, + pub C_GenerateRandom: CK_C_GenerateRandom, + pub C_GetFunctionStatus: CK_C_GetFunctionStatus, + pub C_CancelFunction: CK_C_CancelFunction, + pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, + pub C_GetInterfaceList: CK_C_GetInterfaceList, + pub C_GetInterface: CK_C_GetInterface, + pub C_LoginUser: CK_C_LoginUser, + pub C_SessionCancel: CK_C_SessionCancel, + pub C_MessageEncryptInit: CK_C_MessageEncryptInit, + pub C_EncryptMessage: CK_C_EncryptMessage, + pub C_EncryptMessageBegin: CK_C_EncryptMessageBegin, + pub C_EncryptMessageNext: CK_C_EncryptMessageNext, + pub C_MessageEncryptFinal: CK_C_MessageEncryptFinal, + pub C_MessageDecryptInit: CK_C_MessageDecryptInit, + pub C_DecryptMessage: CK_C_DecryptMessage, + pub C_DecryptMessageBegin: CK_C_DecryptMessageBegin, + pub C_DecryptMessageNext: CK_C_DecryptMessageNext, + pub C_MessageDecryptFinal: CK_C_MessageDecryptFinal, + pub C_MessageSignInit: CK_C_MessageSignInit, + pub C_SignMessage: CK_C_SignMessage, + pub C_SignMessageBegin: CK_C_SignMessageBegin, + pub C_SignMessageNext: CK_C_SignMessageNext, + pub C_MessageSignFinal: CK_C_MessageSignFinal, + pub C_MessageVerifyInit: CK_C_MessageVerifyInit, + pub C_VerifyMessage: CK_C_VerifyMessage, + pub C_VerifyMessageBegin: CK_C_VerifyMessageBegin, + pub C_VerifyMessageNext: CK_C_VerifyMessageNext, + pub C_MessageVerifyFinal: CK_C_MessageVerifyFinal, + pub C_EncapsulateKey: CK_C_EncapsulateKey, + pub C_DecapsulateKey: CK_C_DecapsulateKey, + pub C_VerifySignatureInit: CK_C_VerifySignatureInit, + pub C_VerifySignature: CK_C_VerifySignature, + pub C_VerifySignatureUpdate: CK_C_VerifySignatureUpdate, + pub C_VerifySignatureFinal: CK_C_VerifySignatureFinal, + pub C_GetSessionValidationFlags: CK_C_GetSessionValidationFlags, + pub C_AsyncComplete: CK_C_AsyncComplete, + pub C_AsyncGetID: CK_C_AsyncGetID, + pub C_AsyncJoin: CK_C_AsyncJoin, + pub C_WrapKeyAuthenticated: CK_C_WrapKeyAuthenticated, + pub C_UnwrapKeyAuthenticated: CK_C_UnwrapKeyAuthenticated, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_FUNCTION_LIST_3_2"][::std::mem::size_of::() - 420usize]; + ["Alignment of CK_FUNCTION_LIST_3_2"][::std::mem::align_of::() - 4usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::version"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, version) - 0usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Initialize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Initialize) - 4usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Finalize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Finalize) - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInfo) - 12usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionList) - 16usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotList) - 20usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotInfo) - 24usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetTokenInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetTokenInfo) - 28usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismList) - 32usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismInfo) - 36usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitToken"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitToken) - 40usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitPIN) - 44usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetPIN) - 48usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_OpenSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_OpenSession) - 52usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseSession) - 56usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseAllSessions"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseAllSessions) - 60usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionInfo) - 64usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetOperationState) - 68usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetOperationState) - 72usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Login"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Login) - 76usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Logout"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Logout) - 80usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CreateObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CreateObject) - 84usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CopyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CopyObject) - 88usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DestroyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DestroyObject) - 92usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetObjectSize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetObjectSize) - 96usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetAttributeValue) - 100usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetAttributeValue) - 104usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsInit) - 108usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjects"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjects) - 112usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsFinal) - 116usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptInit) - 120usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Encrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Encrypt) - 124usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptUpdate) - 128usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptFinal) - 132usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptInit) - 136usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Decrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Decrypt) - 140usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptUpdate) - 144usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptFinal) - 148usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestInit) - 152usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Digest"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Digest) - 156usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestUpdate) - 160usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestKey) - 164usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestFinal) - 168usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignInit) - 172usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Sign"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Sign) - 176usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignUpdate) - 180usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignFinal) - 184usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecoverInit) - 188usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecover) - 192usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyInit) - 196usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Verify"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Verify) - 200usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyUpdate) - 204usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyFinal) - 208usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecoverInit) - 212usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecover) - 216usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestEncryptUpdate) - 220usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptDigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptDigestUpdate) - 224usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignEncryptUpdate) - 228usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptVerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptVerifyUpdate) - 232usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKey) - 236usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKeyPair"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKeyPair) - 240usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKey) - 244usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKey) - 248usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DeriveKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DeriveKey) - 252usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SeedRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SeedRandom) - 256usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateRandom) - 260usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionStatus"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionStatus) - 264usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CancelFunction"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CancelFunction) - 268usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WaitForSlotEvent"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WaitForSlotEvent) - 272usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterfaceList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterfaceList) - 276usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterface"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterface) - 280usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_LoginUser"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_LoginUser) - 284usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SessionCancel"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SessionCancel) - 288usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptInit) - 292usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessage) - 296usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageBegin) - 300usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageNext) - 304usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptFinal) - 308usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptInit) - 312usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessage) - 316usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageBegin) - 320usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageNext) - 324usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptFinal) - 328usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignInit) - 332usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessage) - 336usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageBegin) - 340usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageNext) - 344usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignFinal) - 348usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyInit) - 352usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessage) - 356usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageBegin) - 360usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageNext) - 364usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyFinal) - 368usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncapsulateKey) - 372usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecapsulateKey) - 376usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureInit) - 380usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignature"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignature) - 384usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureUpdate) - 388usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureFinal) - 392usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionValidationFlags"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionValidationFlags) - 396usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncComplete"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncComplete) - 400usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncGetID"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncGetID) - 404usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncJoin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncJoin) - 408usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKeyAuthenticated) - 412usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKeyAuthenticated) - 416usize]; +}; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct CK_FUNCTION_LIST_3_0 { @@ -5932,6 +6705,114 @@ pub struct Pkcs11 { >, pub C_MessageVerifyFinal: Result CK_RV, ::libloading::Error>, + pub C_EncapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_DecapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureInit: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignature: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureUpdate: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureFinal: + Result CK_RV, ::libloading::Error>, + pub C_GetSessionValidationFlags: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncComplete: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncGetID: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncJoin: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_WrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_UnwrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result @@ -6038,6 +6919,20 @@ impl Pkcs11 { let C_VerifyMessageBegin = __library.get(b"C_VerifyMessageBegin\0").map(|sym| *sym); let C_VerifyMessageNext = __library.get(b"C_VerifyMessageNext\0").map(|sym| *sym); let C_MessageVerifyFinal = __library.get(b"C_MessageVerifyFinal\0").map(|sym| *sym); + let C_EncapsulateKey = __library.get(b"C_EncapsulateKey\0").map(|sym| *sym); + let C_DecapsulateKey = __library.get(b"C_DecapsulateKey\0").map(|sym| *sym); + let C_VerifySignatureInit = __library.get(b"C_VerifySignatureInit\0").map(|sym| *sym); + let C_VerifySignature = __library.get(b"C_VerifySignature\0").map(|sym| *sym); + let C_VerifySignatureUpdate = __library.get(b"C_VerifySignatureUpdate\0").map(|sym| *sym); + let C_VerifySignatureFinal = __library.get(b"C_VerifySignatureFinal\0").map(|sym| *sym); + let C_GetSessionValidationFlags = __library + .get(b"C_GetSessionValidationFlags\0") + .map(|sym| *sym); + let C_AsyncComplete = __library.get(b"C_AsyncComplete\0").map(|sym| *sym); + let C_AsyncGetID = __library.get(b"C_AsyncGetID\0").map(|sym| *sym); + let C_AsyncJoin = __library.get(b"C_AsyncJoin\0").map(|sym| *sym); + let C_WrapKeyAuthenticated = __library.get(b"C_WrapKeyAuthenticated\0").map(|sym| *sym); + let C_UnwrapKeyAuthenticated = __library.get(b"C_UnwrapKeyAuthenticated\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, @@ -6132,6 +7027,18 @@ impl Pkcs11 { C_VerifyMessageBegin, C_VerifyMessageNext, C_MessageVerifyFinal, + C_EncapsulateKey, + C_DecapsulateKey, + C_VerifySignatureInit, + C_VerifySignature, + C_VerifySignatureUpdate, + C_VerifySignatureFinal, + C_GetSessionValidationFlags, + C_AsyncComplete, + C_AsyncGetID, + C_AsyncJoin, + C_WrapKeyAuthenticated, + C_UnwrapKeyAuthenticated, }) } pub unsafe fn C_Initialize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV { @@ -7161,4 +8068,165 @@ impl Pkcs11 { .as_ref() .expect("Expected function, got error."))(arg1) } + pub unsafe fn C_EncapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_EncapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_DecapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_DecapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_VerifySignatureInit( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureInit + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_VerifySignature( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignature + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureUpdate( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureUpdate + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV { + (self + .C_VerifySignatureFinal + .as_ref() + .expect("Expected function, got error."))(arg1) + } + pub unsafe fn C_GetSessionValidationFlags( + &self, + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV { + (self + .C_GetSessionValidationFlags + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncComplete( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV { + (self + .C_AsyncComplete + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncGetID( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncGetID + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncJoin( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncJoin + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_WrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_WrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_UnwrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_UnwrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, + ) + } } diff --git a/cryptoki-sys/src/bindings/loongarch64-unknown-linux-gnu.rs b/cryptoki-sys/src/bindings/loongarch64-unknown-linux-gnu.rs index 3b594e91..be845490 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 */ +/* automatically generated by rust-bindgen 0.71.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -35,6 +35,7 @@ pub const CK_SP800_108_OPTIONAL_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_DKM_LENGTH: CK_ULONG = 3; pub const CK_SP800_108_BYTE_ARRAY: CK_ULONG = 4; +pub const CK_SP800_108_KEY_HANDLE: CK_ULONG = 5; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS: CK_ULONG = 1; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS: CK_ULONG = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; @@ -162,6 +163,33 @@ 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_PARAMETER_SET: CK_ATTRIBUTE_TYPE = 1565; +pub const CKA_OBJECT_VALIDATION_FLAGS: CK_ATTRIBUTE_TYPE = 1566; +pub const CKA_VALIDATION_TYPE: CK_ATTRIBUTE_TYPE = 1567; +pub const CKA_VALIDATION_VERSION: CK_ATTRIBUTE_TYPE = 1568; +pub const CKA_VALIDATION_LEVEL: CK_ATTRIBUTE_TYPE = 1569; +pub const CKA_VALIDATION_MODULE_ID: CK_ATTRIBUTE_TYPE = 1570; +pub const CKA_VALIDATION_FLAG: CK_ATTRIBUTE_TYPE = 1571; +pub const CKA_VALIDATION_AUTHORITY_TYPE: CK_ATTRIBUTE_TYPE = 1572; +pub const CKA_VALIDATION_COUNTRY: CK_ATTRIBUTE_TYPE = 1573; +pub const CKA_VALIDATION_CERTIFICATE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 1574; +pub const CKA_VALIDATION_CERTIFICATE_URI: CK_ATTRIBUTE_TYPE = 1575; +pub const CKA_VALIDATION_VENDOR_URI: CK_ATTRIBUTE_TYPE = 1576; +pub const CKA_VALIDATION_PROFILE: CK_ATTRIBUTE_TYPE = 1577; +pub const CKA_ENCAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1578; +pub const CKA_DECAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1579; +pub const CKA_TRUST_SERVER_AUTH: CK_ATTRIBUTE_TYPE = 1580; +pub const CKA_TRUST_CLIENT_AUTH: CK_ATTRIBUTE_TYPE = 1581; +pub const CKA_TRUST_CODE_SIGNING: CK_ATTRIBUTE_TYPE = 1582; +pub const CKA_TRUST_EMAIL_PROTECTION: CK_ATTRIBUTE_TYPE = 1583; +pub const CKA_TRUST_IPSEC_IKE: CK_ATTRIBUTE_TYPE = 1584; +pub const CKA_TRUST_TIME_STAMPING: CK_ATTRIBUTE_TYPE = 1585; +pub const CKA_TRUST_OCSP_SIGNING: CK_ATTRIBUTE_TYPE = 1586; +pub const CKA_ENCAPSULATE: CK_ATTRIBUTE_TYPE = 1587; +pub const CKA_DECAPSULATE: CK_ATTRIBUTE_TYPE = 1588; +pub const CKA_HASH_OF_CERTIFICATE: CK_ATTRIBUTE_TYPE = 1589; +pub const CKA_PUBLIC_CRC64_VALUE: CK_ATTRIBUTE_TYPE = 1590; +pub const CKA_SEED: CK_ATTRIBUTE_TYPE = 1591; 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; @@ -234,6 +262,8 @@ pub const CKF_EC_OID: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_EC_CURVENAME: CK_FLAGS = 67108864; +pub const CKF_ENCAPSULATE: CK_FLAGS = 268435456; +pub const CKF_DECAPSULATE: CK_FLAGS = 536870912; pub const CKF_EXTENSION: CK_FLAGS = 2147483648; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1; @@ -246,6 +276,7 @@ pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; +pub const CKF_ASYNC_SESSION: CK_FLAGS = 8; pub const CKF_TOKEN_PRESENT: CK_FLAGS = 1; pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2; pub const CKF_HW_SLOT: CK_FLAGS = 4; @@ -268,6 +299,8 @@ pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; +pub const CKF_SEED_RANDOM_REQUIRED: CK_FLAGS = 33554432; +pub const CKF_ASYNC_SESSION_SUPPORTED: CK_FLAGS = 67108864; 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; @@ -286,6 +319,9 @@ pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKH_VENDOR_DEFINED: CK_HW_FEATURE_TYPE = 2147483648; +pub const CKH_HEDGE_PREFERRED: CK_HW_FEATURE_TYPE = 0; +pub const CKH_HEDGE_REQUIRED: CK_HW_FEATURE_TYPE = 1; +pub const CKH_DETERMINISTIC_REQUIRED: CK_HW_FEATURE_TYPE = 2; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; @@ -347,6 +383,11 @@ 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_XMSS: CK_KEY_TYPE = 71; +pub const CKK_XMSSMT: CK_KEY_TYPE = 72; +pub const CKK_ML_KEM: CK_KEY_TYPE = 73; +pub const CKK_ML_DSA: CK_KEY_TYPE = 74; +pub const CKK_SLH_DSA: CK_KEY_TYPE = 75; 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; @@ -365,6 +406,7 @@ pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; +pub const CKM_ML_KEM_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 15; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; @@ -372,16 +414,43 @@ pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; +pub const CKM_ML_KEM: CK_MECHANISM_TYPE = 23; pub const CKM_DSA_SHA3_224: CK_MECHANISM_TYPE = 24; pub const CKM_DSA_SHA3_256: CK_MECHANISM_TYPE = 25; pub const CKM_DSA_SHA3_384: CK_MECHANISM_TYPE = 26; pub const CKM_DSA_SHA3_512: CK_MECHANISM_TYPE = 27; +pub const CKM_ML_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 28; +pub const CKM_ML_DSA: CK_MECHANISM_TYPE = 29; +pub const CKM_HASH_ML_DSA: CK_MECHANISM_TYPE = 31; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; +pub const CKM_HASH_ML_DSA_SHA224: CK_MECHANISM_TYPE = 35; +pub const CKM_HASH_ML_DSA_SHA256: CK_MECHANISM_TYPE = 36; +pub const CKM_HASH_ML_DSA_SHA384: CK_MECHANISM_TYPE = 37; +pub const CKM_HASH_ML_DSA_SHA512: CK_MECHANISM_TYPE = 38; +pub const CKM_HASH_ML_DSA_SHA3_224: CK_MECHANISM_TYPE = 39; +pub const CKM_HASH_ML_DSA_SHA3_256: CK_MECHANISM_TYPE = 40; +pub const CKM_HASH_ML_DSA_SHA3_384: CK_MECHANISM_TYPE = 41; +pub const CKM_HASH_ML_DSA_SHA3_512: CK_MECHANISM_TYPE = 42; +pub const CKM_HASH_ML_DSA_SHAKE128: CK_MECHANISM_TYPE = 43; +pub const CKM_HASH_ML_DSA_SHAKE256: CK_MECHANISM_TYPE = 44; +pub const CKM_SLH_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 45; +pub const CKM_SLH_DSA: CK_MECHANISM_TYPE = 46; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; +pub const CKM_HASH_SLH_DSA: CK_MECHANISM_TYPE = 52; +pub const CKM_HASH_SLH_DSA_SHA224: CK_MECHANISM_TYPE = 54; +pub const CKM_HASH_SLH_DSA_SHA256: CK_MECHANISM_TYPE = 55; +pub const CKM_HASH_SLH_DSA_SHA384: CK_MECHANISM_TYPE = 56; +pub const CKM_HASH_SLH_DSA_SHA512: CK_MECHANISM_TYPE = 57; +pub const CKM_HASH_SLH_DSA_SHA3_224: CK_MECHANISM_TYPE = 58; +pub const CKM_HASH_SLH_DSA_SHA3_256: CK_MECHANISM_TYPE = 59; +pub const CKM_HASH_SLH_DSA_SHA3_384: CK_MECHANISM_TYPE = 60; +pub const CKM_HASH_SLH_DSA_SHA3_512: CK_MECHANISM_TYPE = 61; +pub const CKM_HASH_SLH_DSA_SHAKE128: CK_MECHANISM_TYPE = 62; +pub const CKM_HASH_SLH_DSA_SHAKE256: CK_MECHANISM_TYPE = 63; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; @@ -402,6 +471,8 @@ pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 86; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 87; pub const CKM_SHA3_256_RSA_PKCS: CK_MECHANISM_TYPE = 96; pub const CKM_SHA3_384_RSA_PKCS: CK_MECHANISM_TYPE = 97; pub const CKM_SHA3_512_RSA_PKCS: CK_MECHANISM_TYPE = 98; @@ -505,7 +576,6 @@ pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; -pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; @@ -711,7 +781,6 @@ pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABILISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; -pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_DSA_FIPS_G_GEN: CK_MECHANISM_TYPE = 8197; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; @@ -784,8 +853,16 @@ 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_XMSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16436; +pub const CKM_XMSSMT_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16437; +pub const CKM_XMSS: CK_MECHANISM_TYPE = 16438; +pub const CKM_XMSSMT: CK_MECHANISM_TYPE = 16439; +pub const CKM_ECDH_X_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16440; +pub const CKM_ECDH_COF_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16441; +pub const CKM_PUB_KEY_FROM_PRIV_KEY: CK_MECHANISM_TYPE = 16442; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; +pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; @@ -793,6 +870,7 @@ pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; +pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKN_SURRENDER: CK_NOTIFICATION = 0; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKO_DATA: CK_OBJECT_CLASS = 0; @@ -805,6 +883,8 @@ pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKO_PROFILE: CK_OBJECT_CLASS = 9; +pub const CKO_VALIDATION: CK_OBJECT_CLASS = 10; +pub const CKO_TRUST: CK_OBJECT_CLASS = 11; pub const CKO_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648; pub const CKP_INVALID_ID: CK_PROFILE_ID = 0; pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; @@ -822,6 +902,24 @@ pub const CKP_PKCS5_PBKD2_HMAC_SHA384: CK_PROFILE_ID = 5; pub const CKP_PKCS5_PBKD2_HMAC_SHA512: CK_PROFILE_ID = 6; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_224: CK_PROFILE_ID = 7; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_256: CK_PROFILE_ID = 8; +pub const CKP_ML_DSA_44: CK_PROFILE_ID = 1; +pub const CKP_ML_DSA_65: CK_PROFILE_ID = 2; +pub const CKP_ML_DSA_87: CK_PROFILE_ID = 3; +pub const CKP_ML_KEM_512: CK_PROFILE_ID = 1; +pub const CKP_ML_KEM_768: CK_PROFILE_ID = 2; +pub const CKP_ML_KEM_1024: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHA2_128S: CK_PROFILE_ID = 1; +pub const CKP_SLH_DSA_SHAKE_128S: CK_PROFILE_ID = 2; +pub const CKP_SLH_DSA_SHA2_128F: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHAKE_128F: CK_PROFILE_ID = 4; +pub const CKP_SLH_DSA_SHA2_192S: CK_PROFILE_ID = 5; +pub const CKP_SLH_DSA_SHAKE_192S: CK_PROFILE_ID = 6; +pub const CKP_SLH_DSA_SHA2_192F: CK_PROFILE_ID = 7; +pub const CKP_SLH_DSA_SHAKE_192F: CK_PROFILE_ID = 8; +pub const CKP_SLH_DSA_SHA2_256S: CK_PROFILE_ID = 9; +pub const CKP_SLH_DSA_SHAKE_256S: CK_PROFILE_ID = 10; +pub const CKP_SLH_DSA_SHA2_256F: CK_PROFILE_ID = 11; +pub const CKP_SLH_DSA_SHAKE_256F: CK_PROFILE_ID = 12; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; @@ -920,15 +1018,35 @@ 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_PENDING: CK_RV = 516; +pub const CKR_SESSION_ASYNC_NOT_SUPPORTED: CK_RV = 517; +pub const CKR_SEED_RANDOM_REQUIRED: CK_RV = 518; +pub const CKR_OPERATION_NOT_VALIDATED: CK_RV = 519; +pub const CKR_TOKEN_NOT_INITIALIZED: CK_RV = 520; +pub const CKR_PARAMETER_SET_NOT_SUPPORTED: CK_RV = 521; 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; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; +pub const CKS_LAST_VALIDATION_OK: CK_STATE = 1; +pub const CKT_TRUST_UNKNOWN: u32 = 0; +pub const CKT_TRUSTED: u32 = 1; +pub const CKT_TRUST_ANCHOR: u32 = 2; +pub const CKT_NOT_TRUSTED: u32 = 3; +pub const CKT_TRUST_MUST_VERIFY_TRUST: u32 = 4; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; +pub const CKV_AUTHORITY_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_AUTHORITY_TYPE_NIST_CMVP: u32 = 1; +pub const CKV_AUTHORITY_TYPE_COMMON_CRITERIA: u32 = 2; +pub const CKV_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_TYPE_SOFTWARE: u32 = 1; +pub const CKV_TYPE_HARDWARE: u32 = 2; +pub const CKV_TYPE_FIRMWARE: u32 = 3; +pub const CKV_TYPE_HYBRID: u32 = 4; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CKZ_SALT_SPECIFIED: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = 1; pub type CK_BBOOL = ::std::os::raw::c_uchar; @@ -957,6 +1075,8 @@ 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_HEDGE_TYPE = CK_ULONG; +pub type CK_HEDGE_TYPE_PTR = *mut CK_HEDGE_TYPE; 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; @@ -973,6 +1093,10 @@ 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; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; +pub type CK_ML_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_ML_DSA_PARAMETER_SET_TYPE; +pub type CK_ML_KEM_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_KEM_PARAMETER_SET_TYPE_PTR = *mut CK_ML_KEM_PARAMETER_SET_TYPE; pub type CK_NOTIFICATION = CK_ULONG; pub type CK_NOTIFICATION_PTR = *mut CK_NOTIFICATION; pub type CK_OBJECT_CLASS = CK_ULONG; @@ -1000,14 +1124,24 @@ pub type CK_RV = CK_ULONG; pub type CK_RV_PTR = *mut CK_RV; pub type CK_SESSION_HANDLE = CK_ULONG; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE = CK_ULONG; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE_PTR = *mut CK_SESSION_VALIDATION_FLAGS_TYPE; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_SLH_DSA_PARAMETER_SET_TYPE; pub type CK_SLOT_ID = CK_ULONG; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SP800_108_DKM_LENGTH_METHOD = CK_ULONG; pub type CK_SP800_108_DKM_LENGTH_METHOD_PTR = *mut CK_SP800_108_DKM_LENGTH_METHOD; pub type CK_STATE = CK_ULONG; pub type CK_STATE_PTR = *mut CK_STATE; +pub type CK_TRUST = CK_ULONG; +pub type CK_TRUST_PTR = *mut CK_TRUST; pub type CK_USER_TYPE = CK_ULONG; pub type CK_USER_TYPE_PTR = *mut CK_USER_TYPE; +pub type CK_VALIDATION_AUTHORITY_TYPE = CK_ULONG; +pub type CK_VALIDATION_AUTHORITY_TYPE_PTR = *mut CK_VALIDATION_AUTHORITY_TYPE; +pub type CK_VALIDATION_TYPE = CK_ULONG; +pub type CK_VALIDATION_TYPE_PTR = *mut CK_VALIDATION_TYPE; pub type CK_X2RATCHET_KDF_TYPE = CK_ULONG; pub type CK_X2RATCHET_KDF_TYPE_PTR = *mut CK_X2RATCHET_KDF_TYPE; pub type CK_X3DH_KDF_TYPE = CK_ULONG; @@ -1016,6 +1150,10 @@ pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG; pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE; pub type CK_XEDDSA_HASH_TYPE = CK_ULONG; pub type CK_XEDDSA_HASH_TYPE_PTR = *mut CK_XEDDSA_HASH_TYPE; +pub type CK_XMSSMT_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSSMT_PARAMETER_SET_TYPE_PTR = *mut CK_XMSSMT_PARAMETER_SET_TYPE; +pub type CK_XMSS_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSS_PARAMETER_SET_TYPE_PTR = *mut CK_XMSS_PARAMETER_SET_TYPE; pub type CK_ATTRIBUTE_PTR = *mut CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR_PTR = *mut *mut CK_ATTRIBUTE; pub type CK_C_INITIALIZE_ARGS_PTR = *mut CK_C_INITIALIZE_ARGS; @@ -1028,6 +1166,8 @@ pub type CK_FUNCTION_LIST_PTR = *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_3_0_PTR = *mut CK_FUNCTION_LIST_3_0; pub type CK_FUNCTION_LIST_3_0_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_0; +pub type CK_FUNCTION_LIST_3_2_PTR = *mut CK_FUNCTION_LIST_3_2; +pub type CK_FUNCTION_LIST_3_2_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_2; pub type CK_INFO_PTR = *mut CK_INFO; pub type CK_INFO_PTR_PTR = *mut *mut CK_INFO; pub type CK_INTERFACE_PTR = *mut CK_INTERFACE; @@ -1202,7 +1342,7 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_INTERFACE { - pub pInterfaceName: *mut CK_CHAR, + pub pInterfaceName: *mut CK_UTF8CHAR, pub pFunctionList: *mut ::std::os::raw::c_void, pub flags: CK_FLAGS, } @@ -1396,6 +1536,8 @@ pub type CK_AES_GCM_PARAMS_PTR = *mut CK_AES_GCM_PARAMS; pub type CK_AES_GCM_PARAMS_PTR_PTR = *mut *mut CK_AES_GCM_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_ASYNC_DATA_PTR = *mut CK_ASYNC_DATA; +pub type CK_ASYNC_DATA_PTR_PTR = *mut *mut CK_ASYNC_DATA; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; @@ -1405,6 +1547,8 @@ pub type CK_CCM_MESSAGE_PARAMS_PTR = *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_PARAMS_PTR = *mut CK_CCM_PARAMS; pub type CK_CCM_PARAMS_PTR_PTR = *mut *mut CK_CCM_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR = *mut CK_CCM_WRAP_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_CCM_WRAP_PARAMS; pub type CK_CHACHA20_PARAMS_PTR = *mut CK_CHACHA20_PARAMS; pub type CK_CHACHA20_PARAMS_PTR_PTR = *mut *mut CK_CHACHA20_PARAMS; pub type CK_CMS_SIG_PARAMS_PTR = *mut CK_CMS_SIG_PARAMS; @@ -1427,10 +1571,14 @@ pub type CK_GCM_MESSAGE_PARAMS_PTR = *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_PARAMS_PTR = *mut CK_GCM_PARAMS; pub type CK_GCM_PARAMS_PTR_PTR = *mut *mut CK_GCM_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR = *mut CK_GCM_WRAP_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GCM_WRAP_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR = *mut CK_GOSTR3410_DERIVE_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_DERIVE_PARAMS; 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_HASH_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; +pub type CK_HASH_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; 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; @@ -1489,6 +1637,8 @@ pub type CK_SALSA20_PARAMS_PTR = *mut CK_SALSA20_PARAMS; pub type CK_SALSA20_PARAMS_PTR_PTR = *mut *mut CK_SALSA20_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_SIGN_ADDITIONAL_CONTEXT; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_SIGN_ADDITIONAL_CONTEXT; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR = *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR_PTR = *mut *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_RELAYX_PARAMS_PTR = *mut CK_SKIPJACK_RELAYX_PARAMS; @@ -1501,6 +1651,10 @@ pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_P pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_FEEDBACK_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR = *mut CK_SP800_108_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_KDF_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR = + *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = + *mut *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR = *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR_PTR = *mut *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_RESPOND_PARAMS_PTR = *mut CK_X2RATCHET_RESPOND_PARAMS; @@ -1517,6 +1671,11 @@ 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)] @@ -1666,6 +1825,39 @@ impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_ASYNC_DATA { + pub ulVersion: CK_ULONG, + pub pValue: *mut CK_BYTE, + pub ulValue: CK_ULONG, + pub hObject: CK_OBJECT_HANDLE, + pub hAdditionalObject: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_ASYNC_DATA"][::std::mem::size_of::() - 40usize]; + ["Alignment of CK_ASYNC_DATA"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulVersion"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulVersion) - 0usize]; + ["Offset of field: CK_ASYNC_DATA::pValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, pValue) - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulValue) - 16usize]; + ["Offset of field: CK_ASYNC_DATA::hObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hObject) - 24usize]; + ["Offset of field: CK_ASYNC_DATA::hAdditionalObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hAdditionalObject) - 32usize]; +}; +impl Default for CK_ASYNC_DATA { + 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_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS { pub iv: [CK_BYTE; 16usize], pub pData: *mut CK_BYTE, @@ -1786,6 +1978,48 @@ impl Default for CK_CCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_CCM_WRAP_PARAMS { + pub ulDataLen: CK_ULONG, + pub pNonce: *mut CK_BYTE, + pub ulNonceLen: CK_ULONG, + pub ulNonceFixedBits: CK_ULONG, + pub nonceGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulMACLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_CCM_WRAP_PARAMS"][::std::mem::size_of::() - 64usize]; + ["Alignment of CK_CCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulDataLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulDataLen) - 0usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pNonce"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pNonce) - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceLen) - 16usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceFixedBits"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceFixedBits) - 24usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::nonceGenerator"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, nonceGenerator) - 32usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pAAD) - 40usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulAADLen) - 48usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulMACLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulMACLen) - 56usize]; +}; +impl Default for CK_CCM_WRAP_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_CHACHA20_PARAMS { pub pBlockCounter: *mut CK_BYTE, pub blockCounterBits: CK_ULONG, @@ -2178,6 +2412,45 @@ impl Default for CK_GCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_GCM_WRAP_PARAMS { + pub pIv: *mut CK_BYTE, + pub ulIvLen: CK_ULONG, + pub ulIvFixedBits: CK_ULONG, + pub ivGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulTagBits: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_GCM_WRAP_PARAMS"][::std::mem::size_of::() - 56usize]; + ["Alignment of CK_GCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pIv"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pIv) - 0usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvLen) - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvFixedBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvFixedBits) - 16usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ivGenerator"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ivGenerator) - 24usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pAAD) - 32usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulAADLen) - 40usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulTagBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulTagBits) - 48usize]; +}; +impl Default for CK_GCM_WRAP_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_GOSTR3410_DERIVE_PARAMS { pub kdf: CK_EC_KDF_TYPE, pub pPublicData: *mut CK_BYTE, @@ -2248,6 +2521,38 @@ impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_HASH_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, + pub hash: CK_MECHANISM_TYPE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hash"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hash) - 24usize]; +}; +impl Default for CK_HASH_SIGN_ADDITIONAL_CONTEXT { + 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_HKDF_PARAMS { pub bExtract: CK_BBOOL, pub bExpand: CK_BBOOL, @@ -3097,6 +3402,35 @@ impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 24usize]; + ["Alignment of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; +}; +impl Default for CK_SIGN_ADDITIONAL_CONTEXT { + 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_SKIPJACK_PRIVATE_WRAP_PARAMS { pub ulPasswordLen: CK_ULONG, pub pPassword: *mut CK_BYTE, @@ -3295,6 +3629,42 @@ impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS { + pub prfHashMechanism: CK_MECHANISM_TYPE, + pub pSessionHash: *mut CK_BYTE, + pub ulSessionHashLen: CK_ULONG, + pub pVersion: *mut CK_VERSION, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::prfHashMechanism"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + prfHashMechanism + ) - 0usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pSessionHash"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pSessionHash) - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::ulSessionHashLen"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + ulSessionHashLen + ) - 16usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pVersion"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pVersion) - 24usize]; +}; +impl Default for CK_TLS12_EXTENDED_MASTER_KEY_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_SP800_108_KDF_PARAMS { pub prfType: CK_SP800_108_PRF_TYPE, pub ulNumberOfDataParams: CK_ULONG, @@ -3636,24 +4006,6 @@ 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; @@ -4725,6 +5077,427 @@ pub type CK_C_VerifyMessageNext = ::std::option::Option< >; pub type CK_C_MessageVerifyFinal = ::std::option::Option CK_RV>; +pub type CK_C_EncapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_DecapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_VerifySignatureInit = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_VerifySignature = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureUpdate = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureFinal = + ::std::option::Option CK_RV>; +pub type CK_C_GetSessionValidationFlags = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, +>; +pub type CK_C_AsyncComplete = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, +>; +pub type CK_C_AsyncGetID = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_AsyncJoin = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_WrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_UnwrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CK_FUNCTION_LIST_3_2 { + pub version: CK_VERSION, + pub C_Initialize: CK_C_Initialize, + pub C_Finalize: CK_C_Finalize, + pub C_GetInfo: CK_C_GetInfo, + pub C_GetFunctionList: CK_C_GetFunctionList, + pub C_GetSlotList: CK_C_GetSlotList, + pub C_GetSlotInfo: CK_C_GetSlotInfo, + pub C_GetTokenInfo: CK_C_GetTokenInfo, + pub C_GetMechanismList: CK_C_GetMechanismList, + pub C_GetMechanismInfo: CK_C_GetMechanismInfo, + pub C_InitToken: CK_C_InitToken, + pub C_InitPIN: CK_C_InitPIN, + pub C_SetPIN: CK_C_SetPIN, + pub C_OpenSession: CK_C_OpenSession, + pub C_CloseSession: CK_C_CloseSession, + pub C_CloseAllSessions: CK_C_CloseAllSessions, + pub C_GetSessionInfo: CK_C_GetSessionInfo, + pub C_GetOperationState: CK_C_GetOperationState, + pub C_SetOperationState: CK_C_SetOperationState, + pub C_Login: CK_C_Login, + pub C_Logout: CK_C_Logout, + pub C_CreateObject: CK_C_CreateObject, + pub C_CopyObject: CK_C_CopyObject, + pub C_DestroyObject: CK_C_DestroyObject, + pub C_GetObjectSize: CK_C_GetObjectSize, + pub C_GetAttributeValue: CK_C_GetAttributeValue, + pub C_SetAttributeValue: CK_C_SetAttributeValue, + pub C_FindObjectsInit: CK_C_FindObjectsInit, + pub C_FindObjects: CK_C_FindObjects, + pub C_FindObjectsFinal: CK_C_FindObjectsFinal, + pub C_EncryptInit: CK_C_EncryptInit, + pub C_Encrypt: CK_C_Encrypt, + pub C_EncryptUpdate: CK_C_EncryptUpdate, + pub C_EncryptFinal: CK_C_EncryptFinal, + pub C_DecryptInit: CK_C_DecryptInit, + pub C_Decrypt: CK_C_Decrypt, + pub C_DecryptUpdate: CK_C_DecryptUpdate, + pub C_DecryptFinal: CK_C_DecryptFinal, + pub C_DigestInit: CK_C_DigestInit, + pub C_Digest: CK_C_Digest, + pub C_DigestUpdate: CK_C_DigestUpdate, + pub C_DigestKey: CK_C_DigestKey, + pub C_DigestFinal: CK_C_DigestFinal, + pub C_SignInit: CK_C_SignInit, + pub C_Sign: CK_C_Sign, + pub C_SignUpdate: CK_C_SignUpdate, + pub C_SignFinal: CK_C_SignFinal, + pub C_SignRecoverInit: CK_C_SignRecoverInit, + pub C_SignRecover: CK_C_SignRecover, + pub C_VerifyInit: CK_C_VerifyInit, + pub C_Verify: CK_C_Verify, + pub C_VerifyUpdate: CK_C_VerifyUpdate, + pub C_VerifyFinal: CK_C_VerifyFinal, + pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, + pub C_VerifyRecover: CK_C_VerifyRecover, + pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, + pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, + pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, + pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, + pub C_GenerateKey: CK_C_GenerateKey, + pub C_GenerateKeyPair: CK_C_GenerateKeyPair, + pub C_WrapKey: CK_C_WrapKey, + pub C_UnwrapKey: CK_C_UnwrapKey, + pub C_DeriveKey: CK_C_DeriveKey, + pub C_SeedRandom: CK_C_SeedRandom, + pub C_GenerateRandom: CK_C_GenerateRandom, + pub C_GetFunctionStatus: CK_C_GetFunctionStatus, + pub C_CancelFunction: CK_C_CancelFunction, + pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, + pub C_GetInterfaceList: CK_C_GetInterfaceList, + pub C_GetInterface: CK_C_GetInterface, + pub C_LoginUser: CK_C_LoginUser, + pub C_SessionCancel: CK_C_SessionCancel, + pub C_MessageEncryptInit: CK_C_MessageEncryptInit, + pub C_EncryptMessage: CK_C_EncryptMessage, + pub C_EncryptMessageBegin: CK_C_EncryptMessageBegin, + pub C_EncryptMessageNext: CK_C_EncryptMessageNext, + pub C_MessageEncryptFinal: CK_C_MessageEncryptFinal, + pub C_MessageDecryptInit: CK_C_MessageDecryptInit, + pub C_DecryptMessage: CK_C_DecryptMessage, + pub C_DecryptMessageBegin: CK_C_DecryptMessageBegin, + pub C_DecryptMessageNext: CK_C_DecryptMessageNext, + pub C_MessageDecryptFinal: CK_C_MessageDecryptFinal, + pub C_MessageSignInit: CK_C_MessageSignInit, + pub C_SignMessage: CK_C_SignMessage, + pub C_SignMessageBegin: CK_C_SignMessageBegin, + pub C_SignMessageNext: CK_C_SignMessageNext, + pub C_MessageSignFinal: CK_C_MessageSignFinal, + pub C_MessageVerifyInit: CK_C_MessageVerifyInit, + pub C_VerifyMessage: CK_C_VerifyMessage, + pub C_VerifyMessageBegin: CK_C_VerifyMessageBegin, + pub C_VerifyMessageNext: CK_C_VerifyMessageNext, + pub C_MessageVerifyFinal: CK_C_MessageVerifyFinal, + pub C_EncapsulateKey: CK_C_EncapsulateKey, + pub C_DecapsulateKey: CK_C_DecapsulateKey, + pub C_VerifySignatureInit: CK_C_VerifySignatureInit, + pub C_VerifySignature: CK_C_VerifySignature, + pub C_VerifySignatureUpdate: CK_C_VerifySignatureUpdate, + pub C_VerifySignatureFinal: CK_C_VerifySignatureFinal, + pub C_GetSessionValidationFlags: CK_C_GetSessionValidationFlags, + pub C_AsyncComplete: CK_C_AsyncComplete, + pub C_AsyncGetID: CK_C_AsyncGetID, + pub C_AsyncJoin: CK_C_AsyncJoin, + pub C_WrapKeyAuthenticated: CK_C_WrapKeyAuthenticated, + pub C_UnwrapKeyAuthenticated: CK_C_UnwrapKeyAuthenticated, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_FUNCTION_LIST_3_2"][::std::mem::size_of::() - 840usize]; + ["Alignment of CK_FUNCTION_LIST_3_2"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::version"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, version) - 0usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Initialize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Initialize) - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Finalize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Finalize) - 16usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInfo) - 24usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionList) - 32usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotList) - 40usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotInfo) - 48usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetTokenInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetTokenInfo) - 56usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismList) - 64usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismInfo) - 72usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitToken"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitToken) - 80usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitPIN) - 88usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetPIN) - 96usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_OpenSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_OpenSession) - 104usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseSession) - 112usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseAllSessions"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseAllSessions) - 120usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionInfo) - 128usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetOperationState) - 136usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetOperationState) - 144usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Login"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Login) - 152usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Logout"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Logout) - 160usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CreateObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CreateObject) - 168usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CopyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CopyObject) - 176usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DestroyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DestroyObject) - 184usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetObjectSize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetObjectSize) - 192usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetAttributeValue) - 200usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetAttributeValue) - 208usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsInit) - 216usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjects"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjects) - 224usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsFinal) - 232usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptInit) - 240usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Encrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Encrypt) - 248usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptUpdate) - 256usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptFinal) - 264usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptInit) - 272usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Decrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Decrypt) - 280usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptUpdate) - 288usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptFinal) - 296usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestInit) - 304usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Digest"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Digest) - 312usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestUpdate) - 320usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestKey) - 328usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestFinal) - 336usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignInit) - 344usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Sign"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Sign) - 352usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignUpdate) - 360usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignFinal) - 368usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecoverInit) - 376usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecover) - 384usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyInit) - 392usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Verify"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Verify) - 400usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyUpdate) - 408usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyFinal) - 416usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecoverInit) - 424usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecover) - 432usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestEncryptUpdate) - 440usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptDigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptDigestUpdate) - 448usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignEncryptUpdate) - 456usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptVerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptVerifyUpdate) - 464usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKey) - 472usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKeyPair"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKeyPair) - 480usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKey) - 488usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKey) - 496usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DeriveKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DeriveKey) - 504usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SeedRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SeedRandom) - 512usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateRandom) - 520usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionStatus"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionStatus) - 528usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CancelFunction"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CancelFunction) - 536usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WaitForSlotEvent"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WaitForSlotEvent) - 544usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterfaceList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterfaceList) - 552usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterface"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterface) - 560usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_LoginUser"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_LoginUser) - 568usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SessionCancel"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SessionCancel) - 576usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptInit) - 584usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessage) - 592usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageBegin) - 600usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageNext) - 608usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptFinal) - 616usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptInit) - 624usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessage) - 632usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageBegin) - 640usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageNext) - 648usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptFinal) - 656usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignInit) - 664usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessage) - 672usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageBegin) - 680usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageNext) - 688usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignFinal) - 696usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyInit) - 704usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessage) - 712usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageBegin) - 720usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageNext) - 728usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyFinal) - 736usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncapsulateKey) - 744usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecapsulateKey) - 752usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureInit) - 760usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignature"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignature) - 768usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureUpdate) - 776usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureFinal) - 784usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionValidationFlags"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionValidationFlags) - 792usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncComplete"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncComplete) - 800usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncGetID"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncGetID) - 808usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncJoin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncJoin) - 816usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKeyAuthenticated) - 824usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKeyAuthenticated) - 832usize]; +}; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct CK_FUNCTION_LIST_3_0 { @@ -5932,6 +6705,114 @@ pub struct Pkcs11 { >, pub C_MessageVerifyFinal: Result CK_RV, ::libloading::Error>, + pub C_EncapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_DecapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureInit: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignature: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureUpdate: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureFinal: + Result CK_RV, ::libloading::Error>, + pub C_GetSessionValidationFlags: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncComplete: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncGetID: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncJoin: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_WrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_UnwrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result @@ -6038,6 +6919,20 @@ impl Pkcs11 { let C_VerifyMessageBegin = __library.get(b"C_VerifyMessageBegin\0").map(|sym| *sym); let C_VerifyMessageNext = __library.get(b"C_VerifyMessageNext\0").map(|sym| *sym); let C_MessageVerifyFinal = __library.get(b"C_MessageVerifyFinal\0").map(|sym| *sym); + let C_EncapsulateKey = __library.get(b"C_EncapsulateKey\0").map(|sym| *sym); + let C_DecapsulateKey = __library.get(b"C_DecapsulateKey\0").map(|sym| *sym); + let C_VerifySignatureInit = __library.get(b"C_VerifySignatureInit\0").map(|sym| *sym); + let C_VerifySignature = __library.get(b"C_VerifySignature\0").map(|sym| *sym); + let C_VerifySignatureUpdate = __library.get(b"C_VerifySignatureUpdate\0").map(|sym| *sym); + let C_VerifySignatureFinal = __library.get(b"C_VerifySignatureFinal\0").map(|sym| *sym); + let C_GetSessionValidationFlags = __library + .get(b"C_GetSessionValidationFlags\0") + .map(|sym| *sym); + let C_AsyncComplete = __library.get(b"C_AsyncComplete\0").map(|sym| *sym); + let C_AsyncGetID = __library.get(b"C_AsyncGetID\0").map(|sym| *sym); + let C_AsyncJoin = __library.get(b"C_AsyncJoin\0").map(|sym| *sym); + let C_WrapKeyAuthenticated = __library.get(b"C_WrapKeyAuthenticated\0").map(|sym| *sym); + let C_UnwrapKeyAuthenticated = __library.get(b"C_UnwrapKeyAuthenticated\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, @@ -6132,6 +7027,18 @@ impl Pkcs11 { C_VerifyMessageBegin, C_VerifyMessageNext, C_MessageVerifyFinal, + C_EncapsulateKey, + C_DecapsulateKey, + C_VerifySignatureInit, + C_VerifySignature, + C_VerifySignatureUpdate, + C_VerifySignatureFinal, + C_GetSessionValidationFlags, + C_AsyncComplete, + C_AsyncGetID, + C_AsyncJoin, + C_WrapKeyAuthenticated, + C_UnwrapKeyAuthenticated, }) } pub unsafe fn C_Initialize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV { @@ -7161,4 +8068,165 @@ impl Pkcs11 { .as_ref() .expect("Expected function, got error."))(arg1) } + pub unsafe fn C_EncapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_EncapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_DecapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_DecapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_VerifySignatureInit( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureInit + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_VerifySignature( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignature + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureUpdate( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureUpdate + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV { + (self + .C_VerifySignatureFinal + .as_ref() + .expect("Expected function, got error."))(arg1) + } + pub unsafe fn C_GetSessionValidationFlags( + &self, + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV { + (self + .C_GetSessionValidationFlags + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncComplete( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV { + (self + .C_AsyncComplete + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncGetID( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncGetID + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncJoin( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncJoin + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_WrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_WrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_UnwrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_UnwrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, + ) + } } diff --git a/cryptoki-sys/src/bindings/powerpc64-unknown-linux-gnu.rs b/cryptoki-sys/src/bindings/powerpc64-unknown-linux-gnu.rs index 3b594e91..be845490 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 */ +/* automatically generated by rust-bindgen 0.71.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -35,6 +35,7 @@ pub const CK_SP800_108_OPTIONAL_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_DKM_LENGTH: CK_ULONG = 3; pub const CK_SP800_108_BYTE_ARRAY: CK_ULONG = 4; +pub const CK_SP800_108_KEY_HANDLE: CK_ULONG = 5; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS: CK_ULONG = 1; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS: CK_ULONG = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; @@ -162,6 +163,33 @@ 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_PARAMETER_SET: CK_ATTRIBUTE_TYPE = 1565; +pub const CKA_OBJECT_VALIDATION_FLAGS: CK_ATTRIBUTE_TYPE = 1566; +pub const CKA_VALIDATION_TYPE: CK_ATTRIBUTE_TYPE = 1567; +pub const CKA_VALIDATION_VERSION: CK_ATTRIBUTE_TYPE = 1568; +pub const CKA_VALIDATION_LEVEL: CK_ATTRIBUTE_TYPE = 1569; +pub const CKA_VALIDATION_MODULE_ID: CK_ATTRIBUTE_TYPE = 1570; +pub const CKA_VALIDATION_FLAG: CK_ATTRIBUTE_TYPE = 1571; +pub const CKA_VALIDATION_AUTHORITY_TYPE: CK_ATTRIBUTE_TYPE = 1572; +pub const CKA_VALIDATION_COUNTRY: CK_ATTRIBUTE_TYPE = 1573; +pub const CKA_VALIDATION_CERTIFICATE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 1574; +pub const CKA_VALIDATION_CERTIFICATE_URI: CK_ATTRIBUTE_TYPE = 1575; +pub const CKA_VALIDATION_VENDOR_URI: CK_ATTRIBUTE_TYPE = 1576; +pub const CKA_VALIDATION_PROFILE: CK_ATTRIBUTE_TYPE = 1577; +pub const CKA_ENCAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1578; +pub const CKA_DECAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1579; +pub const CKA_TRUST_SERVER_AUTH: CK_ATTRIBUTE_TYPE = 1580; +pub const CKA_TRUST_CLIENT_AUTH: CK_ATTRIBUTE_TYPE = 1581; +pub const CKA_TRUST_CODE_SIGNING: CK_ATTRIBUTE_TYPE = 1582; +pub const CKA_TRUST_EMAIL_PROTECTION: CK_ATTRIBUTE_TYPE = 1583; +pub const CKA_TRUST_IPSEC_IKE: CK_ATTRIBUTE_TYPE = 1584; +pub const CKA_TRUST_TIME_STAMPING: CK_ATTRIBUTE_TYPE = 1585; +pub const CKA_TRUST_OCSP_SIGNING: CK_ATTRIBUTE_TYPE = 1586; +pub const CKA_ENCAPSULATE: CK_ATTRIBUTE_TYPE = 1587; +pub const CKA_DECAPSULATE: CK_ATTRIBUTE_TYPE = 1588; +pub const CKA_HASH_OF_CERTIFICATE: CK_ATTRIBUTE_TYPE = 1589; +pub const CKA_PUBLIC_CRC64_VALUE: CK_ATTRIBUTE_TYPE = 1590; +pub const CKA_SEED: CK_ATTRIBUTE_TYPE = 1591; 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; @@ -234,6 +262,8 @@ pub const CKF_EC_OID: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_EC_CURVENAME: CK_FLAGS = 67108864; +pub const CKF_ENCAPSULATE: CK_FLAGS = 268435456; +pub const CKF_DECAPSULATE: CK_FLAGS = 536870912; pub const CKF_EXTENSION: CK_FLAGS = 2147483648; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1; @@ -246,6 +276,7 @@ pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; +pub const CKF_ASYNC_SESSION: CK_FLAGS = 8; pub const CKF_TOKEN_PRESENT: CK_FLAGS = 1; pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2; pub const CKF_HW_SLOT: CK_FLAGS = 4; @@ -268,6 +299,8 @@ pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; +pub const CKF_SEED_RANDOM_REQUIRED: CK_FLAGS = 33554432; +pub const CKF_ASYNC_SESSION_SUPPORTED: CK_FLAGS = 67108864; 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; @@ -286,6 +319,9 @@ pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKH_VENDOR_DEFINED: CK_HW_FEATURE_TYPE = 2147483648; +pub const CKH_HEDGE_PREFERRED: CK_HW_FEATURE_TYPE = 0; +pub const CKH_HEDGE_REQUIRED: CK_HW_FEATURE_TYPE = 1; +pub const CKH_DETERMINISTIC_REQUIRED: CK_HW_FEATURE_TYPE = 2; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; @@ -347,6 +383,11 @@ 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_XMSS: CK_KEY_TYPE = 71; +pub const CKK_XMSSMT: CK_KEY_TYPE = 72; +pub const CKK_ML_KEM: CK_KEY_TYPE = 73; +pub const CKK_ML_DSA: CK_KEY_TYPE = 74; +pub const CKK_SLH_DSA: CK_KEY_TYPE = 75; 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; @@ -365,6 +406,7 @@ pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; +pub const CKM_ML_KEM_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 15; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; @@ -372,16 +414,43 @@ pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; +pub const CKM_ML_KEM: CK_MECHANISM_TYPE = 23; pub const CKM_DSA_SHA3_224: CK_MECHANISM_TYPE = 24; pub const CKM_DSA_SHA3_256: CK_MECHANISM_TYPE = 25; pub const CKM_DSA_SHA3_384: CK_MECHANISM_TYPE = 26; pub const CKM_DSA_SHA3_512: CK_MECHANISM_TYPE = 27; +pub const CKM_ML_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 28; +pub const CKM_ML_DSA: CK_MECHANISM_TYPE = 29; +pub const CKM_HASH_ML_DSA: CK_MECHANISM_TYPE = 31; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; +pub const CKM_HASH_ML_DSA_SHA224: CK_MECHANISM_TYPE = 35; +pub const CKM_HASH_ML_DSA_SHA256: CK_MECHANISM_TYPE = 36; +pub const CKM_HASH_ML_DSA_SHA384: CK_MECHANISM_TYPE = 37; +pub const CKM_HASH_ML_DSA_SHA512: CK_MECHANISM_TYPE = 38; +pub const CKM_HASH_ML_DSA_SHA3_224: CK_MECHANISM_TYPE = 39; +pub const CKM_HASH_ML_DSA_SHA3_256: CK_MECHANISM_TYPE = 40; +pub const CKM_HASH_ML_DSA_SHA3_384: CK_MECHANISM_TYPE = 41; +pub const CKM_HASH_ML_DSA_SHA3_512: CK_MECHANISM_TYPE = 42; +pub const CKM_HASH_ML_DSA_SHAKE128: CK_MECHANISM_TYPE = 43; +pub const CKM_HASH_ML_DSA_SHAKE256: CK_MECHANISM_TYPE = 44; +pub const CKM_SLH_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 45; +pub const CKM_SLH_DSA: CK_MECHANISM_TYPE = 46; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; +pub const CKM_HASH_SLH_DSA: CK_MECHANISM_TYPE = 52; +pub const CKM_HASH_SLH_DSA_SHA224: CK_MECHANISM_TYPE = 54; +pub const CKM_HASH_SLH_DSA_SHA256: CK_MECHANISM_TYPE = 55; +pub const CKM_HASH_SLH_DSA_SHA384: CK_MECHANISM_TYPE = 56; +pub const CKM_HASH_SLH_DSA_SHA512: CK_MECHANISM_TYPE = 57; +pub const CKM_HASH_SLH_DSA_SHA3_224: CK_MECHANISM_TYPE = 58; +pub const CKM_HASH_SLH_DSA_SHA3_256: CK_MECHANISM_TYPE = 59; +pub const CKM_HASH_SLH_DSA_SHA3_384: CK_MECHANISM_TYPE = 60; +pub const CKM_HASH_SLH_DSA_SHA3_512: CK_MECHANISM_TYPE = 61; +pub const CKM_HASH_SLH_DSA_SHAKE128: CK_MECHANISM_TYPE = 62; +pub const CKM_HASH_SLH_DSA_SHAKE256: CK_MECHANISM_TYPE = 63; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; @@ -402,6 +471,8 @@ pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 86; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 87; pub const CKM_SHA3_256_RSA_PKCS: CK_MECHANISM_TYPE = 96; pub const CKM_SHA3_384_RSA_PKCS: CK_MECHANISM_TYPE = 97; pub const CKM_SHA3_512_RSA_PKCS: CK_MECHANISM_TYPE = 98; @@ -505,7 +576,6 @@ pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; -pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; @@ -711,7 +781,6 @@ pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABILISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; -pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_DSA_FIPS_G_GEN: CK_MECHANISM_TYPE = 8197; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; @@ -784,8 +853,16 @@ 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_XMSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16436; +pub const CKM_XMSSMT_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16437; +pub const CKM_XMSS: CK_MECHANISM_TYPE = 16438; +pub const CKM_XMSSMT: CK_MECHANISM_TYPE = 16439; +pub const CKM_ECDH_X_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16440; +pub const CKM_ECDH_COF_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16441; +pub const CKM_PUB_KEY_FROM_PRIV_KEY: CK_MECHANISM_TYPE = 16442; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; +pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; @@ -793,6 +870,7 @@ pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; +pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKN_SURRENDER: CK_NOTIFICATION = 0; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKO_DATA: CK_OBJECT_CLASS = 0; @@ -805,6 +883,8 @@ pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKO_PROFILE: CK_OBJECT_CLASS = 9; +pub const CKO_VALIDATION: CK_OBJECT_CLASS = 10; +pub const CKO_TRUST: CK_OBJECT_CLASS = 11; pub const CKO_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648; pub const CKP_INVALID_ID: CK_PROFILE_ID = 0; pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; @@ -822,6 +902,24 @@ pub const CKP_PKCS5_PBKD2_HMAC_SHA384: CK_PROFILE_ID = 5; pub const CKP_PKCS5_PBKD2_HMAC_SHA512: CK_PROFILE_ID = 6; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_224: CK_PROFILE_ID = 7; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_256: CK_PROFILE_ID = 8; +pub const CKP_ML_DSA_44: CK_PROFILE_ID = 1; +pub const CKP_ML_DSA_65: CK_PROFILE_ID = 2; +pub const CKP_ML_DSA_87: CK_PROFILE_ID = 3; +pub const CKP_ML_KEM_512: CK_PROFILE_ID = 1; +pub const CKP_ML_KEM_768: CK_PROFILE_ID = 2; +pub const CKP_ML_KEM_1024: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHA2_128S: CK_PROFILE_ID = 1; +pub const CKP_SLH_DSA_SHAKE_128S: CK_PROFILE_ID = 2; +pub const CKP_SLH_DSA_SHA2_128F: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHAKE_128F: CK_PROFILE_ID = 4; +pub const CKP_SLH_DSA_SHA2_192S: CK_PROFILE_ID = 5; +pub const CKP_SLH_DSA_SHAKE_192S: CK_PROFILE_ID = 6; +pub const CKP_SLH_DSA_SHA2_192F: CK_PROFILE_ID = 7; +pub const CKP_SLH_DSA_SHAKE_192F: CK_PROFILE_ID = 8; +pub const CKP_SLH_DSA_SHA2_256S: CK_PROFILE_ID = 9; +pub const CKP_SLH_DSA_SHAKE_256S: CK_PROFILE_ID = 10; +pub const CKP_SLH_DSA_SHA2_256F: CK_PROFILE_ID = 11; +pub const CKP_SLH_DSA_SHAKE_256F: CK_PROFILE_ID = 12; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; @@ -920,15 +1018,35 @@ 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_PENDING: CK_RV = 516; +pub const CKR_SESSION_ASYNC_NOT_SUPPORTED: CK_RV = 517; +pub const CKR_SEED_RANDOM_REQUIRED: CK_RV = 518; +pub const CKR_OPERATION_NOT_VALIDATED: CK_RV = 519; +pub const CKR_TOKEN_NOT_INITIALIZED: CK_RV = 520; +pub const CKR_PARAMETER_SET_NOT_SUPPORTED: CK_RV = 521; 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; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; +pub const CKS_LAST_VALIDATION_OK: CK_STATE = 1; +pub const CKT_TRUST_UNKNOWN: u32 = 0; +pub const CKT_TRUSTED: u32 = 1; +pub const CKT_TRUST_ANCHOR: u32 = 2; +pub const CKT_NOT_TRUSTED: u32 = 3; +pub const CKT_TRUST_MUST_VERIFY_TRUST: u32 = 4; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; +pub const CKV_AUTHORITY_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_AUTHORITY_TYPE_NIST_CMVP: u32 = 1; +pub const CKV_AUTHORITY_TYPE_COMMON_CRITERIA: u32 = 2; +pub const CKV_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_TYPE_SOFTWARE: u32 = 1; +pub const CKV_TYPE_HARDWARE: u32 = 2; +pub const CKV_TYPE_FIRMWARE: u32 = 3; +pub const CKV_TYPE_HYBRID: u32 = 4; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CKZ_SALT_SPECIFIED: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = 1; pub type CK_BBOOL = ::std::os::raw::c_uchar; @@ -957,6 +1075,8 @@ 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_HEDGE_TYPE = CK_ULONG; +pub type CK_HEDGE_TYPE_PTR = *mut CK_HEDGE_TYPE; 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; @@ -973,6 +1093,10 @@ 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; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; +pub type CK_ML_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_ML_DSA_PARAMETER_SET_TYPE; +pub type CK_ML_KEM_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_KEM_PARAMETER_SET_TYPE_PTR = *mut CK_ML_KEM_PARAMETER_SET_TYPE; pub type CK_NOTIFICATION = CK_ULONG; pub type CK_NOTIFICATION_PTR = *mut CK_NOTIFICATION; pub type CK_OBJECT_CLASS = CK_ULONG; @@ -1000,14 +1124,24 @@ pub type CK_RV = CK_ULONG; pub type CK_RV_PTR = *mut CK_RV; pub type CK_SESSION_HANDLE = CK_ULONG; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE = CK_ULONG; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE_PTR = *mut CK_SESSION_VALIDATION_FLAGS_TYPE; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_SLH_DSA_PARAMETER_SET_TYPE; pub type CK_SLOT_ID = CK_ULONG; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SP800_108_DKM_LENGTH_METHOD = CK_ULONG; pub type CK_SP800_108_DKM_LENGTH_METHOD_PTR = *mut CK_SP800_108_DKM_LENGTH_METHOD; pub type CK_STATE = CK_ULONG; pub type CK_STATE_PTR = *mut CK_STATE; +pub type CK_TRUST = CK_ULONG; +pub type CK_TRUST_PTR = *mut CK_TRUST; pub type CK_USER_TYPE = CK_ULONG; pub type CK_USER_TYPE_PTR = *mut CK_USER_TYPE; +pub type CK_VALIDATION_AUTHORITY_TYPE = CK_ULONG; +pub type CK_VALIDATION_AUTHORITY_TYPE_PTR = *mut CK_VALIDATION_AUTHORITY_TYPE; +pub type CK_VALIDATION_TYPE = CK_ULONG; +pub type CK_VALIDATION_TYPE_PTR = *mut CK_VALIDATION_TYPE; pub type CK_X2RATCHET_KDF_TYPE = CK_ULONG; pub type CK_X2RATCHET_KDF_TYPE_PTR = *mut CK_X2RATCHET_KDF_TYPE; pub type CK_X3DH_KDF_TYPE = CK_ULONG; @@ -1016,6 +1150,10 @@ pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG; pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE; pub type CK_XEDDSA_HASH_TYPE = CK_ULONG; pub type CK_XEDDSA_HASH_TYPE_PTR = *mut CK_XEDDSA_HASH_TYPE; +pub type CK_XMSSMT_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSSMT_PARAMETER_SET_TYPE_PTR = *mut CK_XMSSMT_PARAMETER_SET_TYPE; +pub type CK_XMSS_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSS_PARAMETER_SET_TYPE_PTR = *mut CK_XMSS_PARAMETER_SET_TYPE; pub type CK_ATTRIBUTE_PTR = *mut CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR_PTR = *mut *mut CK_ATTRIBUTE; pub type CK_C_INITIALIZE_ARGS_PTR = *mut CK_C_INITIALIZE_ARGS; @@ -1028,6 +1166,8 @@ pub type CK_FUNCTION_LIST_PTR = *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_3_0_PTR = *mut CK_FUNCTION_LIST_3_0; pub type CK_FUNCTION_LIST_3_0_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_0; +pub type CK_FUNCTION_LIST_3_2_PTR = *mut CK_FUNCTION_LIST_3_2; +pub type CK_FUNCTION_LIST_3_2_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_2; pub type CK_INFO_PTR = *mut CK_INFO; pub type CK_INFO_PTR_PTR = *mut *mut CK_INFO; pub type CK_INTERFACE_PTR = *mut CK_INTERFACE; @@ -1202,7 +1342,7 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_INTERFACE { - pub pInterfaceName: *mut CK_CHAR, + pub pInterfaceName: *mut CK_UTF8CHAR, pub pFunctionList: *mut ::std::os::raw::c_void, pub flags: CK_FLAGS, } @@ -1396,6 +1536,8 @@ pub type CK_AES_GCM_PARAMS_PTR = *mut CK_AES_GCM_PARAMS; pub type CK_AES_GCM_PARAMS_PTR_PTR = *mut *mut CK_AES_GCM_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_ASYNC_DATA_PTR = *mut CK_ASYNC_DATA; +pub type CK_ASYNC_DATA_PTR_PTR = *mut *mut CK_ASYNC_DATA; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; @@ -1405,6 +1547,8 @@ pub type CK_CCM_MESSAGE_PARAMS_PTR = *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_PARAMS_PTR = *mut CK_CCM_PARAMS; pub type CK_CCM_PARAMS_PTR_PTR = *mut *mut CK_CCM_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR = *mut CK_CCM_WRAP_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_CCM_WRAP_PARAMS; pub type CK_CHACHA20_PARAMS_PTR = *mut CK_CHACHA20_PARAMS; pub type CK_CHACHA20_PARAMS_PTR_PTR = *mut *mut CK_CHACHA20_PARAMS; pub type CK_CMS_SIG_PARAMS_PTR = *mut CK_CMS_SIG_PARAMS; @@ -1427,10 +1571,14 @@ pub type CK_GCM_MESSAGE_PARAMS_PTR = *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_PARAMS_PTR = *mut CK_GCM_PARAMS; pub type CK_GCM_PARAMS_PTR_PTR = *mut *mut CK_GCM_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR = *mut CK_GCM_WRAP_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GCM_WRAP_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR = *mut CK_GOSTR3410_DERIVE_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_DERIVE_PARAMS; 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_HASH_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; +pub type CK_HASH_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; 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; @@ -1489,6 +1637,8 @@ pub type CK_SALSA20_PARAMS_PTR = *mut CK_SALSA20_PARAMS; pub type CK_SALSA20_PARAMS_PTR_PTR = *mut *mut CK_SALSA20_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_SIGN_ADDITIONAL_CONTEXT; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_SIGN_ADDITIONAL_CONTEXT; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR = *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR_PTR = *mut *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_RELAYX_PARAMS_PTR = *mut CK_SKIPJACK_RELAYX_PARAMS; @@ -1501,6 +1651,10 @@ pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_P pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_FEEDBACK_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR = *mut CK_SP800_108_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_KDF_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR = + *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = + *mut *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR = *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR_PTR = *mut *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_RESPOND_PARAMS_PTR = *mut CK_X2RATCHET_RESPOND_PARAMS; @@ -1517,6 +1671,11 @@ 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)] @@ -1666,6 +1825,39 @@ impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_ASYNC_DATA { + pub ulVersion: CK_ULONG, + pub pValue: *mut CK_BYTE, + pub ulValue: CK_ULONG, + pub hObject: CK_OBJECT_HANDLE, + pub hAdditionalObject: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_ASYNC_DATA"][::std::mem::size_of::() - 40usize]; + ["Alignment of CK_ASYNC_DATA"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulVersion"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulVersion) - 0usize]; + ["Offset of field: CK_ASYNC_DATA::pValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, pValue) - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulValue) - 16usize]; + ["Offset of field: CK_ASYNC_DATA::hObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hObject) - 24usize]; + ["Offset of field: CK_ASYNC_DATA::hAdditionalObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hAdditionalObject) - 32usize]; +}; +impl Default for CK_ASYNC_DATA { + 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_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS { pub iv: [CK_BYTE; 16usize], pub pData: *mut CK_BYTE, @@ -1786,6 +1978,48 @@ impl Default for CK_CCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_CCM_WRAP_PARAMS { + pub ulDataLen: CK_ULONG, + pub pNonce: *mut CK_BYTE, + pub ulNonceLen: CK_ULONG, + pub ulNonceFixedBits: CK_ULONG, + pub nonceGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulMACLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_CCM_WRAP_PARAMS"][::std::mem::size_of::() - 64usize]; + ["Alignment of CK_CCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulDataLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulDataLen) - 0usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pNonce"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pNonce) - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceLen) - 16usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceFixedBits"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceFixedBits) - 24usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::nonceGenerator"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, nonceGenerator) - 32usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pAAD) - 40usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulAADLen) - 48usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulMACLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulMACLen) - 56usize]; +}; +impl Default for CK_CCM_WRAP_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_CHACHA20_PARAMS { pub pBlockCounter: *mut CK_BYTE, pub blockCounterBits: CK_ULONG, @@ -2178,6 +2412,45 @@ impl Default for CK_GCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_GCM_WRAP_PARAMS { + pub pIv: *mut CK_BYTE, + pub ulIvLen: CK_ULONG, + pub ulIvFixedBits: CK_ULONG, + pub ivGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulTagBits: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_GCM_WRAP_PARAMS"][::std::mem::size_of::() - 56usize]; + ["Alignment of CK_GCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pIv"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pIv) - 0usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvLen) - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvFixedBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvFixedBits) - 16usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ivGenerator"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ivGenerator) - 24usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pAAD) - 32usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulAADLen) - 40usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulTagBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulTagBits) - 48usize]; +}; +impl Default for CK_GCM_WRAP_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_GOSTR3410_DERIVE_PARAMS { pub kdf: CK_EC_KDF_TYPE, pub pPublicData: *mut CK_BYTE, @@ -2248,6 +2521,38 @@ impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_HASH_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, + pub hash: CK_MECHANISM_TYPE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hash"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hash) - 24usize]; +}; +impl Default for CK_HASH_SIGN_ADDITIONAL_CONTEXT { + 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_HKDF_PARAMS { pub bExtract: CK_BBOOL, pub bExpand: CK_BBOOL, @@ -3097,6 +3402,35 @@ impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 24usize]; + ["Alignment of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; +}; +impl Default for CK_SIGN_ADDITIONAL_CONTEXT { + 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_SKIPJACK_PRIVATE_WRAP_PARAMS { pub ulPasswordLen: CK_ULONG, pub pPassword: *mut CK_BYTE, @@ -3295,6 +3629,42 @@ impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS { + pub prfHashMechanism: CK_MECHANISM_TYPE, + pub pSessionHash: *mut CK_BYTE, + pub ulSessionHashLen: CK_ULONG, + pub pVersion: *mut CK_VERSION, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::prfHashMechanism"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + prfHashMechanism + ) - 0usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pSessionHash"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pSessionHash) - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::ulSessionHashLen"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + ulSessionHashLen + ) - 16usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pVersion"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pVersion) - 24usize]; +}; +impl Default for CK_TLS12_EXTENDED_MASTER_KEY_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_SP800_108_KDF_PARAMS { pub prfType: CK_SP800_108_PRF_TYPE, pub ulNumberOfDataParams: CK_ULONG, @@ -3636,24 +4006,6 @@ 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; @@ -4725,6 +5077,427 @@ pub type CK_C_VerifyMessageNext = ::std::option::Option< >; pub type CK_C_MessageVerifyFinal = ::std::option::Option CK_RV>; +pub type CK_C_EncapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_DecapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_VerifySignatureInit = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_VerifySignature = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureUpdate = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureFinal = + ::std::option::Option CK_RV>; +pub type CK_C_GetSessionValidationFlags = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, +>; +pub type CK_C_AsyncComplete = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, +>; +pub type CK_C_AsyncGetID = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_AsyncJoin = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_WrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_UnwrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CK_FUNCTION_LIST_3_2 { + pub version: CK_VERSION, + pub C_Initialize: CK_C_Initialize, + pub C_Finalize: CK_C_Finalize, + pub C_GetInfo: CK_C_GetInfo, + pub C_GetFunctionList: CK_C_GetFunctionList, + pub C_GetSlotList: CK_C_GetSlotList, + pub C_GetSlotInfo: CK_C_GetSlotInfo, + pub C_GetTokenInfo: CK_C_GetTokenInfo, + pub C_GetMechanismList: CK_C_GetMechanismList, + pub C_GetMechanismInfo: CK_C_GetMechanismInfo, + pub C_InitToken: CK_C_InitToken, + pub C_InitPIN: CK_C_InitPIN, + pub C_SetPIN: CK_C_SetPIN, + pub C_OpenSession: CK_C_OpenSession, + pub C_CloseSession: CK_C_CloseSession, + pub C_CloseAllSessions: CK_C_CloseAllSessions, + pub C_GetSessionInfo: CK_C_GetSessionInfo, + pub C_GetOperationState: CK_C_GetOperationState, + pub C_SetOperationState: CK_C_SetOperationState, + pub C_Login: CK_C_Login, + pub C_Logout: CK_C_Logout, + pub C_CreateObject: CK_C_CreateObject, + pub C_CopyObject: CK_C_CopyObject, + pub C_DestroyObject: CK_C_DestroyObject, + pub C_GetObjectSize: CK_C_GetObjectSize, + pub C_GetAttributeValue: CK_C_GetAttributeValue, + pub C_SetAttributeValue: CK_C_SetAttributeValue, + pub C_FindObjectsInit: CK_C_FindObjectsInit, + pub C_FindObjects: CK_C_FindObjects, + pub C_FindObjectsFinal: CK_C_FindObjectsFinal, + pub C_EncryptInit: CK_C_EncryptInit, + pub C_Encrypt: CK_C_Encrypt, + pub C_EncryptUpdate: CK_C_EncryptUpdate, + pub C_EncryptFinal: CK_C_EncryptFinal, + pub C_DecryptInit: CK_C_DecryptInit, + pub C_Decrypt: CK_C_Decrypt, + pub C_DecryptUpdate: CK_C_DecryptUpdate, + pub C_DecryptFinal: CK_C_DecryptFinal, + pub C_DigestInit: CK_C_DigestInit, + pub C_Digest: CK_C_Digest, + pub C_DigestUpdate: CK_C_DigestUpdate, + pub C_DigestKey: CK_C_DigestKey, + pub C_DigestFinal: CK_C_DigestFinal, + pub C_SignInit: CK_C_SignInit, + pub C_Sign: CK_C_Sign, + pub C_SignUpdate: CK_C_SignUpdate, + pub C_SignFinal: CK_C_SignFinal, + pub C_SignRecoverInit: CK_C_SignRecoverInit, + pub C_SignRecover: CK_C_SignRecover, + pub C_VerifyInit: CK_C_VerifyInit, + pub C_Verify: CK_C_Verify, + pub C_VerifyUpdate: CK_C_VerifyUpdate, + pub C_VerifyFinal: CK_C_VerifyFinal, + pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, + pub C_VerifyRecover: CK_C_VerifyRecover, + pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, + pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, + pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, + pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, + pub C_GenerateKey: CK_C_GenerateKey, + pub C_GenerateKeyPair: CK_C_GenerateKeyPair, + pub C_WrapKey: CK_C_WrapKey, + pub C_UnwrapKey: CK_C_UnwrapKey, + pub C_DeriveKey: CK_C_DeriveKey, + pub C_SeedRandom: CK_C_SeedRandom, + pub C_GenerateRandom: CK_C_GenerateRandom, + pub C_GetFunctionStatus: CK_C_GetFunctionStatus, + pub C_CancelFunction: CK_C_CancelFunction, + pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, + pub C_GetInterfaceList: CK_C_GetInterfaceList, + pub C_GetInterface: CK_C_GetInterface, + pub C_LoginUser: CK_C_LoginUser, + pub C_SessionCancel: CK_C_SessionCancel, + pub C_MessageEncryptInit: CK_C_MessageEncryptInit, + pub C_EncryptMessage: CK_C_EncryptMessage, + pub C_EncryptMessageBegin: CK_C_EncryptMessageBegin, + pub C_EncryptMessageNext: CK_C_EncryptMessageNext, + pub C_MessageEncryptFinal: CK_C_MessageEncryptFinal, + pub C_MessageDecryptInit: CK_C_MessageDecryptInit, + pub C_DecryptMessage: CK_C_DecryptMessage, + pub C_DecryptMessageBegin: CK_C_DecryptMessageBegin, + pub C_DecryptMessageNext: CK_C_DecryptMessageNext, + pub C_MessageDecryptFinal: CK_C_MessageDecryptFinal, + pub C_MessageSignInit: CK_C_MessageSignInit, + pub C_SignMessage: CK_C_SignMessage, + pub C_SignMessageBegin: CK_C_SignMessageBegin, + pub C_SignMessageNext: CK_C_SignMessageNext, + pub C_MessageSignFinal: CK_C_MessageSignFinal, + pub C_MessageVerifyInit: CK_C_MessageVerifyInit, + pub C_VerifyMessage: CK_C_VerifyMessage, + pub C_VerifyMessageBegin: CK_C_VerifyMessageBegin, + pub C_VerifyMessageNext: CK_C_VerifyMessageNext, + pub C_MessageVerifyFinal: CK_C_MessageVerifyFinal, + pub C_EncapsulateKey: CK_C_EncapsulateKey, + pub C_DecapsulateKey: CK_C_DecapsulateKey, + pub C_VerifySignatureInit: CK_C_VerifySignatureInit, + pub C_VerifySignature: CK_C_VerifySignature, + pub C_VerifySignatureUpdate: CK_C_VerifySignatureUpdate, + pub C_VerifySignatureFinal: CK_C_VerifySignatureFinal, + pub C_GetSessionValidationFlags: CK_C_GetSessionValidationFlags, + pub C_AsyncComplete: CK_C_AsyncComplete, + pub C_AsyncGetID: CK_C_AsyncGetID, + pub C_AsyncJoin: CK_C_AsyncJoin, + pub C_WrapKeyAuthenticated: CK_C_WrapKeyAuthenticated, + pub C_UnwrapKeyAuthenticated: CK_C_UnwrapKeyAuthenticated, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_FUNCTION_LIST_3_2"][::std::mem::size_of::() - 840usize]; + ["Alignment of CK_FUNCTION_LIST_3_2"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::version"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, version) - 0usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Initialize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Initialize) - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Finalize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Finalize) - 16usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInfo) - 24usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionList) - 32usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotList) - 40usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotInfo) - 48usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetTokenInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetTokenInfo) - 56usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismList) - 64usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismInfo) - 72usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitToken"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitToken) - 80usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitPIN) - 88usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetPIN) - 96usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_OpenSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_OpenSession) - 104usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseSession) - 112usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseAllSessions"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseAllSessions) - 120usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionInfo) - 128usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetOperationState) - 136usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetOperationState) - 144usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Login"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Login) - 152usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Logout"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Logout) - 160usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CreateObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CreateObject) - 168usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CopyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CopyObject) - 176usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DestroyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DestroyObject) - 184usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetObjectSize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetObjectSize) - 192usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetAttributeValue) - 200usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetAttributeValue) - 208usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsInit) - 216usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjects"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjects) - 224usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsFinal) - 232usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptInit) - 240usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Encrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Encrypt) - 248usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptUpdate) - 256usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptFinal) - 264usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptInit) - 272usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Decrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Decrypt) - 280usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptUpdate) - 288usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptFinal) - 296usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestInit) - 304usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Digest"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Digest) - 312usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestUpdate) - 320usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestKey) - 328usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestFinal) - 336usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignInit) - 344usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Sign"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Sign) - 352usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignUpdate) - 360usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignFinal) - 368usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecoverInit) - 376usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecover) - 384usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyInit) - 392usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Verify"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Verify) - 400usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyUpdate) - 408usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyFinal) - 416usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecoverInit) - 424usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecover) - 432usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestEncryptUpdate) - 440usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptDigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptDigestUpdate) - 448usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignEncryptUpdate) - 456usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptVerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptVerifyUpdate) - 464usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKey) - 472usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKeyPair"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKeyPair) - 480usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKey) - 488usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKey) - 496usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DeriveKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DeriveKey) - 504usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SeedRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SeedRandom) - 512usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateRandom) - 520usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionStatus"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionStatus) - 528usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CancelFunction"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CancelFunction) - 536usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WaitForSlotEvent"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WaitForSlotEvent) - 544usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterfaceList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterfaceList) - 552usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterface"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterface) - 560usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_LoginUser"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_LoginUser) - 568usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SessionCancel"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SessionCancel) - 576usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptInit) - 584usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessage) - 592usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageBegin) - 600usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageNext) - 608usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptFinal) - 616usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptInit) - 624usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessage) - 632usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageBegin) - 640usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageNext) - 648usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptFinal) - 656usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignInit) - 664usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessage) - 672usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageBegin) - 680usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageNext) - 688usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignFinal) - 696usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyInit) - 704usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessage) - 712usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageBegin) - 720usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageNext) - 728usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyFinal) - 736usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncapsulateKey) - 744usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecapsulateKey) - 752usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureInit) - 760usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignature"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignature) - 768usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureUpdate) - 776usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureFinal) - 784usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionValidationFlags"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionValidationFlags) - 792usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncComplete"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncComplete) - 800usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncGetID"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncGetID) - 808usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncJoin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncJoin) - 816usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKeyAuthenticated) - 824usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKeyAuthenticated) - 832usize]; +}; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct CK_FUNCTION_LIST_3_0 { @@ -5932,6 +6705,114 @@ pub struct Pkcs11 { >, pub C_MessageVerifyFinal: Result CK_RV, ::libloading::Error>, + pub C_EncapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_DecapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureInit: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignature: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureUpdate: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureFinal: + Result CK_RV, ::libloading::Error>, + pub C_GetSessionValidationFlags: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncComplete: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncGetID: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncJoin: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_WrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_UnwrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result @@ -6038,6 +6919,20 @@ impl Pkcs11 { let C_VerifyMessageBegin = __library.get(b"C_VerifyMessageBegin\0").map(|sym| *sym); let C_VerifyMessageNext = __library.get(b"C_VerifyMessageNext\0").map(|sym| *sym); let C_MessageVerifyFinal = __library.get(b"C_MessageVerifyFinal\0").map(|sym| *sym); + let C_EncapsulateKey = __library.get(b"C_EncapsulateKey\0").map(|sym| *sym); + let C_DecapsulateKey = __library.get(b"C_DecapsulateKey\0").map(|sym| *sym); + let C_VerifySignatureInit = __library.get(b"C_VerifySignatureInit\0").map(|sym| *sym); + let C_VerifySignature = __library.get(b"C_VerifySignature\0").map(|sym| *sym); + let C_VerifySignatureUpdate = __library.get(b"C_VerifySignatureUpdate\0").map(|sym| *sym); + let C_VerifySignatureFinal = __library.get(b"C_VerifySignatureFinal\0").map(|sym| *sym); + let C_GetSessionValidationFlags = __library + .get(b"C_GetSessionValidationFlags\0") + .map(|sym| *sym); + let C_AsyncComplete = __library.get(b"C_AsyncComplete\0").map(|sym| *sym); + let C_AsyncGetID = __library.get(b"C_AsyncGetID\0").map(|sym| *sym); + let C_AsyncJoin = __library.get(b"C_AsyncJoin\0").map(|sym| *sym); + let C_WrapKeyAuthenticated = __library.get(b"C_WrapKeyAuthenticated\0").map(|sym| *sym); + let C_UnwrapKeyAuthenticated = __library.get(b"C_UnwrapKeyAuthenticated\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, @@ -6132,6 +7027,18 @@ impl Pkcs11 { C_VerifyMessageBegin, C_VerifyMessageNext, C_MessageVerifyFinal, + C_EncapsulateKey, + C_DecapsulateKey, + C_VerifySignatureInit, + C_VerifySignature, + C_VerifySignatureUpdate, + C_VerifySignatureFinal, + C_GetSessionValidationFlags, + C_AsyncComplete, + C_AsyncGetID, + C_AsyncJoin, + C_WrapKeyAuthenticated, + C_UnwrapKeyAuthenticated, }) } pub unsafe fn C_Initialize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV { @@ -7161,4 +8068,165 @@ impl Pkcs11 { .as_ref() .expect("Expected function, got error."))(arg1) } + pub unsafe fn C_EncapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_EncapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_DecapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_DecapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_VerifySignatureInit( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureInit + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_VerifySignature( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignature + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureUpdate( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureUpdate + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV { + (self + .C_VerifySignatureFinal + .as_ref() + .expect("Expected function, got error."))(arg1) + } + pub unsafe fn C_GetSessionValidationFlags( + &self, + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV { + (self + .C_GetSessionValidationFlags + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncComplete( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV { + (self + .C_AsyncComplete + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncGetID( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncGetID + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncJoin( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncJoin + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_WrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_WrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_UnwrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_UnwrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, + ) + } } diff --git a/cryptoki-sys/src/bindings/riscv64gc-unknown-linux-gnu.rs b/cryptoki-sys/src/bindings/riscv64gc-unknown-linux-gnu.rs index 3b594e91..be845490 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 */ +/* automatically generated by rust-bindgen 0.71.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -35,6 +35,7 @@ pub const CK_SP800_108_OPTIONAL_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_DKM_LENGTH: CK_ULONG = 3; pub const CK_SP800_108_BYTE_ARRAY: CK_ULONG = 4; +pub const CK_SP800_108_KEY_HANDLE: CK_ULONG = 5; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS: CK_ULONG = 1; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS: CK_ULONG = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; @@ -162,6 +163,33 @@ 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_PARAMETER_SET: CK_ATTRIBUTE_TYPE = 1565; +pub const CKA_OBJECT_VALIDATION_FLAGS: CK_ATTRIBUTE_TYPE = 1566; +pub const CKA_VALIDATION_TYPE: CK_ATTRIBUTE_TYPE = 1567; +pub const CKA_VALIDATION_VERSION: CK_ATTRIBUTE_TYPE = 1568; +pub const CKA_VALIDATION_LEVEL: CK_ATTRIBUTE_TYPE = 1569; +pub const CKA_VALIDATION_MODULE_ID: CK_ATTRIBUTE_TYPE = 1570; +pub const CKA_VALIDATION_FLAG: CK_ATTRIBUTE_TYPE = 1571; +pub const CKA_VALIDATION_AUTHORITY_TYPE: CK_ATTRIBUTE_TYPE = 1572; +pub const CKA_VALIDATION_COUNTRY: CK_ATTRIBUTE_TYPE = 1573; +pub const CKA_VALIDATION_CERTIFICATE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 1574; +pub const CKA_VALIDATION_CERTIFICATE_URI: CK_ATTRIBUTE_TYPE = 1575; +pub const CKA_VALIDATION_VENDOR_URI: CK_ATTRIBUTE_TYPE = 1576; +pub const CKA_VALIDATION_PROFILE: CK_ATTRIBUTE_TYPE = 1577; +pub const CKA_ENCAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1578; +pub const CKA_DECAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1579; +pub const CKA_TRUST_SERVER_AUTH: CK_ATTRIBUTE_TYPE = 1580; +pub const CKA_TRUST_CLIENT_AUTH: CK_ATTRIBUTE_TYPE = 1581; +pub const CKA_TRUST_CODE_SIGNING: CK_ATTRIBUTE_TYPE = 1582; +pub const CKA_TRUST_EMAIL_PROTECTION: CK_ATTRIBUTE_TYPE = 1583; +pub const CKA_TRUST_IPSEC_IKE: CK_ATTRIBUTE_TYPE = 1584; +pub const CKA_TRUST_TIME_STAMPING: CK_ATTRIBUTE_TYPE = 1585; +pub const CKA_TRUST_OCSP_SIGNING: CK_ATTRIBUTE_TYPE = 1586; +pub const CKA_ENCAPSULATE: CK_ATTRIBUTE_TYPE = 1587; +pub const CKA_DECAPSULATE: CK_ATTRIBUTE_TYPE = 1588; +pub const CKA_HASH_OF_CERTIFICATE: CK_ATTRIBUTE_TYPE = 1589; +pub const CKA_PUBLIC_CRC64_VALUE: CK_ATTRIBUTE_TYPE = 1590; +pub const CKA_SEED: CK_ATTRIBUTE_TYPE = 1591; 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; @@ -234,6 +262,8 @@ pub const CKF_EC_OID: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_EC_CURVENAME: CK_FLAGS = 67108864; +pub const CKF_ENCAPSULATE: CK_FLAGS = 268435456; +pub const CKF_DECAPSULATE: CK_FLAGS = 536870912; pub const CKF_EXTENSION: CK_FLAGS = 2147483648; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1; @@ -246,6 +276,7 @@ pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; +pub const CKF_ASYNC_SESSION: CK_FLAGS = 8; pub const CKF_TOKEN_PRESENT: CK_FLAGS = 1; pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2; pub const CKF_HW_SLOT: CK_FLAGS = 4; @@ -268,6 +299,8 @@ pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; +pub const CKF_SEED_RANDOM_REQUIRED: CK_FLAGS = 33554432; +pub const CKF_ASYNC_SESSION_SUPPORTED: CK_FLAGS = 67108864; 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; @@ -286,6 +319,9 @@ pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKH_VENDOR_DEFINED: CK_HW_FEATURE_TYPE = 2147483648; +pub const CKH_HEDGE_PREFERRED: CK_HW_FEATURE_TYPE = 0; +pub const CKH_HEDGE_REQUIRED: CK_HW_FEATURE_TYPE = 1; +pub const CKH_DETERMINISTIC_REQUIRED: CK_HW_FEATURE_TYPE = 2; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; @@ -347,6 +383,11 @@ 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_XMSS: CK_KEY_TYPE = 71; +pub const CKK_XMSSMT: CK_KEY_TYPE = 72; +pub const CKK_ML_KEM: CK_KEY_TYPE = 73; +pub const CKK_ML_DSA: CK_KEY_TYPE = 74; +pub const CKK_SLH_DSA: CK_KEY_TYPE = 75; 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; @@ -365,6 +406,7 @@ pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; +pub const CKM_ML_KEM_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 15; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; @@ -372,16 +414,43 @@ pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; +pub const CKM_ML_KEM: CK_MECHANISM_TYPE = 23; pub const CKM_DSA_SHA3_224: CK_MECHANISM_TYPE = 24; pub const CKM_DSA_SHA3_256: CK_MECHANISM_TYPE = 25; pub const CKM_DSA_SHA3_384: CK_MECHANISM_TYPE = 26; pub const CKM_DSA_SHA3_512: CK_MECHANISM_TYPE = 27; +pub const CKM_ML_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 28; +pub const CKM_ML_DSA: CK_MECHANISM_TYPE = 29; +pub const CKM_HASH_ML_DSA: CK_MECHANISM_TYPE = 31; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; +pub const CKM_HASH_ML_DSA_SHA224: CK_MECHANISM_TYPE = 35; +pub const CKM_HASH_ML_DSA_SHA256: CK_MECHANISM_TYPE = 36; +pub const CKM_HASH_ML_DSA_SHA384: CK_MECHANISM_TYPE = 37; +pub const CKM_HASH_ML_DSA_SHA512: CK_MECHANISM_TYPE = 38; +pub const CKM_HASH_ML_DSA_SHA3_224: CK_MECHANISM_TYPE = 39; +pub const CKM_HASH_ML_DSA_SHA3_256: CK_MECHANISM_TYPE = 40; +pub const CKM_HASH_ML_DSA_SHA3_384: CK_MECHANISM_TYPE = 41; +pub const CKM_HASH_ML_DSA_SHA3_512: CK_MECHANISM_TYPE = 42; +pub const CKM_HASH_ML_DSA_SHAKE128: CK_MECHANISM_TYPE = 43; +pub const CKM_HASH_ML_DSA_SHAKE256: CK_MECHANISM_TYPE = 44; +pub const CKM_SLH_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 45; +pub const CKM_SLH_DSA: CK_MECHANISM_TYPE = 46; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; +pub const CKM_HASH_SLH_DSA: CK_MECHANISM_TYPE = 52; +pub const CKM_HASH_SLH_DSA_SHA224: CK_MECHANISM_TYPE = 54; +pub const CKM_HASH_SLH_DSA_SHA256: CK_MECHANISM_TYPE = 55; +pub const CKM_HASH_SLH_DSA_SHA384: CK_MECHANISM_TYPE = 56; +pub const CKM_HASH_SLH_DSA_SHA512: CK_MECHANISM_TYPE = 57; +pub const CKM_HASH_SLH_DSA_SHA3_224: CK_MECHANISM_TYPE = 58; +pub const CKM_HASH_SLH_DSA_SHA3_256: CK_MECHANISM_TYPE = 59; +pub const CKM_HASH_SLH_DSA_SHA3_384: CK_MECHANISM_TYPE = 60; +pub const CKM_HASH_SLH_DSA_SHA3_512: CK_MECHANISM_TYPE = 61; +pub const CKM_HASH_SLH_DSA_SHAKE128: CK_MECHANISM_TYPE = 62; +pub const CKM_HASH_SLH_DSA_SHAKE256: CK_MECHANISM_TYPE = 63; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; @@ -402,6 +471,8 @@ pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 86; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 87; pub const CKM_SHA3_256_RSA_PKCS: CK_MECHANISM_TYPE = 96; pub const CKM_SHA3_384_RSA_PKCS: CK_MECHANISM_TYPE = 97; pub const CKM_SHA3_512_RSA_PKCS: CK_MECHANISM_TYPE = 98; @@ -505,7 +576,6 @@ pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; -pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; @@ -711,7 +781,6 @@ pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABILISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; -pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_DSA_FIPS_G_GEN: CK_MECHANISM_TYPE = 8197; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; @@ -784,8 +853,16 @@ 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_XMSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16436; +pub const CKM_XMSSMT_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16437; +pub const CKM_XMSS: CK_MECHANISM_TYPE = 16438; +pub const CKM_XMSSMT: CK_MECHANISM_TYPE = 16439; +pub const CKM_ECDH_X_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16440; +pub const CKM_ECDH_COF_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16441; +pub const CKM_PUB_KEY_FROM_PRIV_KEY: CK_MECHANISM_TYPE = 16442; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; +pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; @@ -793,6 +870,7 @@ pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; +pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKN_SURRENDER: CK_NOTIFICATION = 0; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKO_DATA: CK_OBJECT_CLASS = 0; @@ -805,6 +883,8 @@ pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKO_PROFILE: CK_OBJECT_CLASS = 9; +pub const CKO_VALIDATION: CK_OBJECT_CLASS = 10; +pub const CKO_TRUST: CK_OBJECT_CLASS = 11; pub const CKO_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648; pub const CKP_INVALID_ID: CK_PROFILE_ID = 0; pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; @@ -822,6 +902,24 @@ pub const CKP_PKCS5_PBKD2_HMAC_SHA384: CK_PROFILE_ID = 5; pub const CKP_PKCS5_PBKD2_HMAC_SHA512: CK_PROFILE_ID = 6; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_224: CK_PROFILE_ID = 7; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_256: CK_PROFILE_ID = 8; +pub const CKP_ML_DSA_44: CK_PROFILE_ID = 1; +pub const CKP_ML_DSA_65: CK_PROFILE_ID = 2; +pub const CKP_ML_DSA_87: CK_PROFILE_ID = 3; +pub const CKP_ML_KEM_512: CK_PROFILE_ID = 1; +pub const CKP_ML_KEM_768: CK_PROFILE_ID = 2; +pub const CKP_ML_KEM_1024: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHA2_128S: CK_PROFILE_ID = 1; +pub const CKP_SLH_DSA_SHAKE_128S: CK_PROFILE_ID = 2; +pub const CKP_SLH_DSA_SHA2_128F: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHAKE_128F: CK_PROFILE_ID = 4; +pub const CKP_SLH_DSA_SHA2_192S: CK_PROFILE_ID = 5; +pub const CKP_SLH_DSA_SHAKE_192S: CK_PROFILE_ID = 6; +pub const CKP_SLH_DSA_SHA2_192F: CK_PROFILE_ID = 7; +pub const CKP_SLH_DSA_SHAKE_192F: CK_PROFILE_ID = 8; +pub const CKP_SLH_DSA_SHA2_256S: CK_PROFILE_ID = 9; +pub const CKP_SLH_DSA_SHAKE_256S: CK_PROFILE_ID = 10; +pub const CKP_SLH_DSA_SHA2_256F: CK_PROFILE_ID = 11; +pub const CKP_SLH_DSA_SHAKE_256F: CK_PROFILE_ID = 12; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; @@ -920,15 +1018,35 @@ 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_PENDING: CK_RV = 516; +pub const CKR_SESSION_ASYNC_NOT_SUPPORTED: CK_RV = 517; +pub const CKR_SEED_RANDOM_REQUIRED: CK_RV = 518; +pub const CKR_OPERATION_NOT_VALIDATED: CK_RV = 519; +pub const CKR_TOKEN_NOT_INITIALIZED: CK_RV = 520; +pub const CKR_PARAMETER_SET_NOT_SUPPORTED: CK_RV = 521; 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; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; +pub const CKS_LAST_VALIDATION_OK: CK_STATE = 1; +pub const CKT_TRUST_UNKNOWN: u32 = 0; +pub const CKT_TRUSTED: u32 = 1; +pub const CKT_TRUST_ANCHOR: u32 = 2; +pub const CKT_NOT_TRUSTED: u32 = 3; +pub const CKT_TRUST_MUST_VERIFY_TRUST: u32 = 4; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; +pub const CKV_AUTHORITY_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_AUTHORITY_TYPE_NIST_CMVP: u32 = 1; +pub const CKV_AUTHORITY_TYPE_COMMON_CRITERIA: u32 = 2; +pub const CKV_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_TYPE_SOFTWARE: u32 = 1; +pub const CKV_TYPE_HARDWARE: u32 = 2; +pub const CKV_TYPE_FIRMWARE: u32 = 3; +pub const CKV_TYPE_HYBRID: u32 = 4; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CKZ_SALT_SPECIFIED: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = 1; pub type CK_BBOOL = ::std::os::raw::c_uchar; @@ -957,6 +1075,8 @@ 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_HEDGE_TYPE = CK_ULONG; +pub type CK_HEDGE_TYPE_PTR = *mut CK_HEDGE_TYPE; 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; @@ -973,6 +1093,10 @@ 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; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; +pub type CK_ML_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_ML_DSA_PARAMETER_SET_TYPE; +pub type CK_ML_KEM_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_KEM_PARAMETER_SET_TYPE_PTR = *mut CK_ML_KEM_PARAMETER_SET_TYPE; pub type CK_NOTIFICATION = CK_ULONG; pub type CK_NOTIFICATION_PTR = *mut CK_NOTIFICATION; pub type CK_OBJECT_CLASS = CK_ULONG; @@ -1000,14 +1124,24 @@ pub type CK_RV = CK_ULONG; pub type CK_RV_PTR = *mut CK_RV; pub type CK_SESSION_HANDLE = CK_ULONG; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE = CK_ULONG; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE_PTR = *mut CK_SESSION_VALIDATION_FLAGS_TYPE; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_SLH_DSA_PARAMETER_SET_TYPE; pub type CK_SLOT_ID = CK_ULONG; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SP800_108_DKM_LENGTH_METHOD = CK_ULONG; pub type CK_SP800_108_DKM_LENGTH_METHOD_PTR = *mut CK_SP800_108_DKM_LENGTH_METHOD; pub type CK_STATE = CK_ULONG; pub type CK_STATE_PTR = *mut CK_STATE; +pub type CK_TRUST = CK_ULONG; +pub type CK_TRUST_PTR = *mut CK_TRUST; pub type CK_USER_TYPE = CK_ULONG; pub type CK_USER_TYPE_PTR = *mut CK_USER_TYPE; +pub type CK_VALIDATION_AUTHORITY_TYPE = CK_ULONG; +pub type CK_VALIDATION_AUTHORITY_TYPE_PTR = *mut CK_VALIDATION_AUTHORITY_TYPE; +pub type CK_VALIDATION_TYPE = CK_ULONG; +pub type CK_VALIDATION_TYPE_PTR = *mut CK_VALIDATION_TYPE; pub type CK_X2RATCHET_KDF_TYPE = CK_ULONG; pub type CK_X2RATCHET_KDF_TYPE_PTR = *mut CK_X2RATCHET_KDF_TYPE; pub type CK_X3DH_KDF_TYPE = CK_ULONG; @@ -1016,6 +1150,10 @@ pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG; pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE; pub type CK_XEDDSA_HASH_TYPE = CK_ULONG; pub type CK_XEDDSA_HASH_TYPE_PTR = *mut CK_XEDDSA_HASH_TYPE; +pub type CK_XMSSMT_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSSMT_PARAMETER_SET_TYPE_PTR = *mut CK_XMSSMT_PARAMETER_SET_TYPE; +pub type CK_XMSS_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSS_PARAMETER_SET_TYPE_PTR = *mut CK_XMSS_PARAMETER_SET_TYPE; pub type CK_ATTRIBUTE_PTR = *mut CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR_PTR = *mut *mut CK_ATTRIBUTE; pub type CK_C_INITIALIZE_ARGS_PTR = *mut CK_C_INITIALIZE_ARGS; @@ -1028,6 +1166,8 @@ pub type CK_FUNCTION_LIST_PTR = *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_3_0_PTR = *mut CK_FUNCTION_LIST_3_0; pub type CK_FUNCTION_LIST_3_0_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_0; +pub type CK_FUNCTION_LIST_3_2_PTR = *mut CK_FUNCTION_LIST_3_2; +pub type CK_FUNCTION_LIST_3_2_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_2; pub type CK_INFO_PTR = *mut CK_INFO; pub type CK_INFO_PTR_PTR = *mut *mut CK_INFO; pub type CK_INTERFACE_PTR = *mut CK_INTERFACE; @@ -1202,7 +1342,7 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_INTERFACE { - pub pInterfaceName: *mut CK_CHAR, + pub pInterfaceName: *mut CK_UTF8CHAR, pub pFunctionList: *mut ::std::os::raw::c_void, pub flags: CK_FLAGS, } @@ -1396,6 +1536,8 @@ pub type CK_AES_GCM_PARAMS_PTR = *mut CK_AES_GCM_PARAMS; pub type CK_AES_GCM_PARAMS_PTR_PTR = *mut *mut CK_AES_GCM_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_ASYNC_DATA_PTR = *mut CK_ASYNC_DATA; +pub type CK_ASYNC_DATA_PTR_PTR = *mut *mut CK_ASYNC_DATA; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; @@ -1405,6 +1547,8 @@ pub type CK_CCM_MESSAGE_PARAMS_PTR = *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_PARAMS_PTR = *mut CK_CCM_PARAMS; pub type CK_CCM_PARAMS_PTR_PTR = *mut *mut CK_CCM_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR = *mut CK_CCM_WRAP_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_CCM_WRAP_PARAMS; pub type CK_CHACHA20_PARAMS_PTR = *mut CK_CHACHA20_PARAMS; pub type CK_CHACHA20_PARAMS_PTR_PTR = *mut *mut CK_CHACHA20_PARAMS; pub type CK_CMS_SIG_PARAMS_PTR = *mut CK_CMS_SIG_PARAMS; @@ -1427,10 +1571,14 @@ pub type CK_GCM_MESSAGE_PARAMS_PTR = *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_PARAMS_PTR = *mut CK_GCM_PARAMS; pub type CK_GCM_PARAMS_PTR_PTR = *mut *mut CK_GCM_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR = *mut CK_GCM_WRAP_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GCM_WRAP_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR = *mut CK_GOSTR3410_DERIVE_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_DERIVE_PARAMS; 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_HASH_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; +pub type CK_HASH_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; 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; @@ -1489,6 +1637,8 @@ pub type CK_SALSA20_PARAMS_PTR = *mut CK_SALSA20_PARAMS; pub type CK_SALSA20_PARAMS_PTR_PTR = *mut *mut CK_SALSA20_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_SIGN_ADDITIONAL_CONTEXT; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_SIGN_ADDITIONAL_CONTEXT; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR = *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR_PTR = *mut *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_RELAYX_PARAMS_PTR = *mut CK_SKIPJACK_RELAYX_PARAMS; @@ -1501,6 +1651,10 @@ pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_P pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_FEEDBACK_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR = *mut CK_SP800_108_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_KDF_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR = + *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = + *mut *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR = *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR_PTR = *mut *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_RESPOND_PARAMS_PTR = *mut CK_X2RATCHET_RESPOND_PARAMS; @@ -1517,6 +1671,11 @@ 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)] @@ -1666,6 +1825,39 @@ impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_ASYNC_DATA { + pub ulVersion: CK_ULONG, + pub pValue: *mut CK_BYTE, + pub ulValue: CK_ULONG, + pub hObject: CK_OBJECT_HANDLE, + pub hAdditionalObject: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_ASYNC_DATA"][::std::mem::size_of::() - 40usize]; + ["Alignment of CK_ASYNC_DATA"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulVersion"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulVersion) - 0usize]; + ["Offset of field: CK_ASYNC_DATA::pValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, pValue) - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulValue) - 16usize]; + ["Offset of field: CK_ASYNC_DATA::hObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hObject) - 24usize]; + ["Offset of field: CK_ASYNC_DATA::hAdditionalObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hAdditionalObject) - 32usize]; +}; +impl Default for CK_ASYNC_DATA { + 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_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS { pub iv: [CK_BYTE; 16usize], pub pData: *mut CK_BYTE, @@ -1786,6 +1978,48 @@ impl Default for CK_CCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_CCM_WRAP_PARAMS { + pub ulDataLen: CK_ULONG, + pub pNonce: *mut CK_BYTE, + pub ulNonceLen: CK_ULONG, + pub ulNonceFixedBits: CK_ULONG, + pub nonceGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulMACLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_CCM_WRAP_PARAMS"][::std::mem::size_of::() - 64usize]; + ["Alignment of CK_CCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulDataLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulDataLen) - 0usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pNonce"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pNonce) - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceLen) - 16usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceFixedBits"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceFixedBits) - 24usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::nonceGenerator"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, nonceGenerator) - 32usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pAAD) - 40usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulAADLen) - 48usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulMACLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulMACLen) - 56usize]; +}; +impl Default for CK_CCM_WRAP_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_CHACHA20_PARAMS { pub pBlockCounter: *mut CK_BYTE, pub blockCounterBits: CK_ULONG, @@ -2178,6 +2412,45 @@ impl Default for CK_GCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_GCM_WRAP_PARAMS { + pub pIv: *mut CK_BYTE, + pub ulIvLen: CK_ULONG, + pub ulIvFixedBits: CK_ULONG, + pub ivGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulTagBits: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_GCM_WRAP_PARAMS"][::std::mem::size_of::() - 56usize]; + ["Alignment of CK_GCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pIv"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pIv) - 0usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvLen) - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvFixedBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvFixedBits) - 16usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ivGenerator"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ivGenerator) - 24usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pAAD) - 32usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulAADLen) - 40usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulTagBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulTagBits) - 48usize]; +}; +impl Default for CK_GCM_WRAP_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_GOSTR3410_DERIVE_PARAMS { pub kdf: CK_EC_KDF_TYPE, pub pPublicData: *mut CK_BYTE, @@ -2248,6 +2521,38 @@ impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_HASH_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, + pub hash: CK_MECHANISM_TYPE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hash"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hash) - 24usize]; +}; +impl Default for CK_HASH_SIGN_ADDITIONAL_CONTEXT { + 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_HKDF_PARAMS { pub bExtract: CK_BBOOL, pub bExpand: CK_BBOOL, @@ -3097,6 +3402,35 @@ impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 24usize]; + ["Alignment of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; +}; +impl Default for CK_SIGN_ADDITIONAL_CONTEXT { + 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_SKIPJACK_PRIVATE_WRAP_PARAMS { pub ulPasswordLen: CK_ULONG, pub pPassword: *mut CK_BYTE, @@ -3295,6 +3629,42 @@ impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS { + pub prfHashMechanism: CK_MECHANISM_TYPE, + pub pSessionHash: *mut CK_BYTE, + pub ulSessionHashLen: CK_ULONG, + pub pVersion: *mut CK_VERSION, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::prfHashMechanism"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + prfHashMechanism + ) - 0usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pSessionHash"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pSessionHash) - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::ulSessionHashLen"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + ulSessionHashLen + ) - 16usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pVersion"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pVersion) - 24usize]; +}; +impl Default for CK_TLS12_EXTENDED_MASTER_KEY_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_SP800_108_KDF_PARAMS { pub prfType: CK_SP800_108_PRF_TYPE, pub ulNumberOfDataParams: CK_ULONG, @@ -3636,24 +4006,6 @@ 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; @@ -4725,6 +5077,427 @@ pub type CK_C_VerifyMessageNext = ::std::option::Option< >; pub type CK_C_MessageVerifyFinal = ::std::option::Option CK_RV>; +pub type CK_C_EncapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_DecapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_VerifySignatureInit = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_VerifySignature = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureUpdate = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureFinal = + ::std::option::Option CK_RV>; +pub type CK_C_GetSessionValidationFlags = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, +>; +pub type CK_C_AsyncComplete = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, +>; +pub type CK_C_AsyncGetID = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_AsyncJoin = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_WrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_UnwrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CK_FUNCTION_LIST_3_2 { + pub version: CK_VERSION, + pub C_Initialize: CK_C_Initialize, + pub C_Finalize: CK_C_Finalize, + pub C_GetInfo: CK_C_GetInfo, + pub C_GetFunctionList: CK_C_GetFunctionList, + pub C_GetSlotList: CK_C_GetSlotList, + pub C_GetSlotInfo: CK_C_GetSlotInfo, + pub C_GetTokenInfo: CK_C_GetTokenInfo, + pub C_GetMechanismList: CK_C_GetMechanismList, + pub C_GetMechanismInfo: CK_C_GetMechanismInfo, + pub C_InitToken: CK_C_InitToken, + pub C_InitPIN: CK_C_InitPIN, + pub C_SetPIN: CK_C_SetPIN, + pub C_OpenSession: CK_C_OpenSession, + pub C_CloseSession: CK_C_CloseSession, + pub C_CloseAllSessions: CK_C_CloseAllSessions, + pub C_GetSessionInfo: CK_C_GetSessionInfo, + pub C_GetOperationState: CK_C_GetOperationState, + pub C_SetOperationState: CK_C_SetOperationState, + pub C_Login: CK_C_Login, + pub C_Logout: CK_C_Logout, + pub C_CreateObject: CK_C_CreateObject, + pub C_CopyObject: CK_C_CopyObject, + pub C_DestroyObject: CK_C_DestroyObject, + pub C_GetObjectSize: CK_C_GetObjectSize, + pub C_GetAttributeValue: CK_C_GetAttributeValue, + pub C_SetAttributeValue: CK_C_SetAttributeValue, + pub C_FindObjectsInit: CK_C_FindObjectsInit, + pub C_FindObjects: CK_C_FindObjects, + pub C_FindObjectsFinal: CK_C_FindObjectsFinal, + pub C_EncryptInit: CK_C_EncryptInit, + pub C_Encrypt: CK_C_Encrypt, + pub C_EncryptUpdate: CK_C_EncryptUpdate, + pub C_EncryptFinal: CK_C_EncryptFinal, + pub C_DecryptInit: CK_C_DecryptInit, + pub C_Decrypt: CK_C_Decrypt, + pub C_DecryptUpdate: CK_C_DecryptUpdate, + pub C_DecryptFinal: CK_C_DecryptFinal, + pub C_DigestInit: CK_C_DigestInit, + pub C_Digest: CK_C_Digest, + pub C_DigestUpdate: CK_C_DigestUpdate, + pub C_DigestKey: CK_C_DigestKey, + pub C_DigestFinal: CK_C_DigestFinal, + pub C_SignInit: CK_C_SignInit, + pub C_Sign: CK_C_Sign, + pub C_SignUpdate: CK_C_SignUpdate, + pub C_SignFinal: CK_C_SignFinal, + pub C_SignRecoverInit: CK_C_SignRecoverInit, + pub C_SignRecover: CK_C_SignRecover, + pub C_VerifyInit: CK_C_VerifyInit, + pub C_Verify: CK_C_Verify, + pub C_VerifyUpdate: CK_C_VerifyUpdate, + pub C_VerifyFinal: CK_C_VerifyFinal, + pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, + pub C_VerifyRecover: CK_C_VerifyRecover, + pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, + pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, + pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, + pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, + pub C_GenerateKey: CK_C_GenerateKey, + pub C_GenerateKeyPair: CK_C_GenerateKeyPair, + pub C_WrapKey: CK_C_WrapKey, + pub C_UnwrapKey: CK_C_UnwrapKey, + pub C_DeriveKey: CK_C_DeriveKey, + pub C_SeedRandom: CK_C_SeedRandom, + pub C_GenerateRandom: CK_C_GenerateRandom, + pub C_GetFunctionStatus: CK_C_GetFunctionStatus, + pub C_CancelFunction: CK_C_CancelFunction, + pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, + pub C_GetInterfaceList: CK_C_GetInterfaceList, + pub C_GetInterface: CK_C_GetInterface, + pub C_LoginUser: CK_C_LoginUser, + pub C_SessionCancel: CK_C_SessionCancel, + pub C_MessageEncryptInit: CK_C_MessageEncryptInit, + pub C_EncryptMessage: CK_C_EncryptMessage, + pub C_EncryptMessageBegin: CK_C_EncryptMessageBegin, + pub C_EncryptMessageNext: CK_C_EncryptMessageNext, + pub C_MessageEncryptFinal: CK_C_MessageEncryptFinal, + pub C_MessageDecryptInit: CK_C_MessageDecryptInit, + pub C_DecryptMessage: CK_C_DecryptMessage, + pub C_DecryptMessageBegin: CK_C_DecryptMessageBegin, + pub C_DecryptMessageNext: CK_C_DecryptMessageNext, + pub C_MessageDecryptFinal: CK_C_MessageDecryptFinal, + pub C_MessageSignInit: CK_C_MessageSignInit, + pub C_SignMessage: CK_C_SignMessage, + pub C_SignMessageBegin: CK_C_SignMessageBegin, + pub C_SignMessageNext: CK_C_SignMessageNext, + pub C_MessageSignFinal: CK_C_MessageSignFinal, + pub C_MessageVerifyInit: CK_C_MessageVerifyInit, + pub C_VerifyMessage: CK_C_VerifyMessage, + pub C_VerifyMessageBegin: CK_C_VerifyMessageBegin, + pub C_VerifyMessageNext: CK_C_VerifyMessageNext, + pub C_MessageVerifyFinal: CK_C_MessageVerifyFinal, + pub C_EncapsulateKey: CK_C_EncapsulateKey, + pub C_DecapsulateKey: CK_C_DecapsulateKey, + pub C_VerifySignatureInit: CK_C_VerifySignatureInit, + pub C_VerifySignature: CK_C_VerifySignature, + pub C_VerifySignatureUpdate: CK_C_VerifySignatureUpdate, + pub C_VerifySignatureFinal: CK_C_VerifySignatureFinal, + pub C_GetSessionValidationFlags: CK_C_GetSessionValidationFlags, + pub C_AsyncComplete: CK_C_AsyncComplete, + pub C_AsyncGetID: CK_C_AsyncGetID, + pub C_AsyncJoin: CK_C_AsyncJoin, + pub C_WrapKeyAuthenticated: CK_C_WrapKeyAuthenticated, + pub C_UnwrapKeyAuthenticated: CK_C_UnwrapKeyAuthenticated, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_FUNCTION_LIST_3_2"][::std::mem::size_of::() - 840usize]; + ["Alignment of CK_FUNCTION_LIST_3_2"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::version"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, version) - 0usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Initialize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Initialize) - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Finalize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Finalize) - 16usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInfo) - 24usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionList) - 32usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotList) - 40usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotInfo) - 48usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetTokenInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetTokenInfo) - 56usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismList) - 64usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismInfo) - 72usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitToken"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitToken) - 80usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitPIN) - 88usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetPIN) - 96usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_OpenSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_OpenSession) - 104usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseSession) - 112usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseAllSessions"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseAllSessions) - 120usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionInfo) - 128usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetOperationState) - 136usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetOperationState) - 144usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Login"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Login) - 152usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Logout"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Logout) - 160usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CreateObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CreateObject) - 168usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CopyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CopyObject) - 176usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DestroyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DestroyObject) - 184usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetObjectSize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetObjectSize) - 192usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetAttributeValue) - 200usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetAttributeValue) - 208usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsInit) - 216usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjects"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjects) - 224usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsFinal) - 232usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptInit) - 240usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Encrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Encrypt) - 248usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptUpdate) - 256usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptFinal) - 264usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptInit) - 272usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Decrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Decrypt) - 280usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptUpdate) - 288usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptFinal) - 296usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestInit) - 304usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Digest"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Digest) - 312usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestUpdate) - 320usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestKey) - 328usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestFinal) - 336usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignInit) - 344usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Sign"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Sign) - 352usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignUpdate) - 360usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignFinal) - 368usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecoverInit) - 376usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecover) - 384usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyInit) - 392usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Verify"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Verify) - 400usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyUpdate) - 408usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyFinal) - 416usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecoverInit) - 424usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecover) - 432usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestEncryptUpdate) - 440usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptDigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptDigestUpdate) - 448usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignEncryptUpdate) - 456usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptVerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptVerifyUpdate) - 464usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKey) - 472usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKeyPair"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKeyPair) - 480usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKey) - 488usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKey) - 496usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DeriveKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DeriveKey) - 504usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SeedRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SeedRandom) - 512usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateRandom) - 520usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionStatus"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionStatus) - 528usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CancelFunction"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CancelFunction) - 536usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WaitForSlotEvent"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WaitForSlotEvent) - 544usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterfaceList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterfaceList) - 552usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterface"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterface) - 560usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_LoginUser"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_LoginUser) - 568usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SessionCancel"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SessionCancel) - 576usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptInit) - 584usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessage) - 592usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageBegin) - 600usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageNext) - 608usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptFinal) - 616usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptInit) - 624usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessage) - 632usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageBegin) - 640usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageNext) - 648usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptFinal) - 656usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignInit) - 664usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessage) - 672usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageBegin) - 680usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageNext) - 688usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignFinal) - 696usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyInit) - 704usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessage) - 712usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageBegin) - 720usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageNext) - 728usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyFinal) - 736usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncapsulateKey) - 744usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecapsulateKey) - 752usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureInit) - 760usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignature"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignature) - 768usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureUpdate) - 776usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureFinal) - 784usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionValidationFlags"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionValidationFlags) - 792usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncComplete"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncComplete) - 800usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncGetID"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncGetID) - 808usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncJoin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncJoin) - 816usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKeyAuthenticated) - 824usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKeyAuthenticated) - 832usize]; +}; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct CK_FUNCTION_LIST_3_0 { @@ -5932,6 +6705,114 @@ pub struct Pkcs11 { >, pub C_MessageVerifyFinal: Result CK_RV, ::libloading::Error>, + pub C_EncapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_DecapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureInit: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignature: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureUpdate: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureFinal: + Result CK_RV, ::libloading::Error>, + pub C_GetSessionValidationFlags: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncComplete: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncGetID: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncJoin: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_WrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_UnwrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result @@ -6038,6 +6919,20 @@ impl Pkcs11 { let C_VerifyMessageBegin = __library.get(b"C_VerifyMessageBegin\0").map(|sym| *sym); let C_VerifyMessageNext = __library.get(b"C_VerifyMessageNext\0").map(|sym| *sym); let C_MessageVerifyFinal = __library.get(b"C_MessageVerifyFinal\0").map(|sym| *sym); + let C_EncapsulateKey = __library.get(b"C_EncapsulateKey\0").map(|sym| *sym); + let C_DecapsulateKey = __library.get(b"C_DecapsulateKey\0").map(|sym| *sym); + let C_VerifySignatureInit = __library.get(b"C_VerifySignatureInit\0").map(|sym| *sym); + let C_VerifySignature = __library.get(b"C_VerifySignature\0").map(|sym| *sym); + let C_VerifySignatureUpdate = __library.get(b"C_VerifySignatureUpdate\0").map(|sym| *sym); + let C_VerifySignatureFinal = __library.get(b"C_VerifySignatureFinal\0").map(|sym| *sym); + let C_GetSessionValidationFlags = __library + .get(b"C_GetSessionValidationFlags\0") + .map(|sym| *sym); + let C_AsyncComplete = __library.get(b"C_AsyncComplete\0").map(|sym| *sym); + let C_AsyncGetID = __library.get(b"C_AsyncGetID\0").map(|sym| *sym); + let C_AsyncJoin = __library.get(b"C_AsyncJoin\0").map(|sym| *sym); + let C_WrapKeyAuthenticated = __library.get(b"C_WrapKeyAuthenticated\0").map(|sym| *sym); + let C_UnwrapKeyAuthenticated = __library.get(b"C_UnwrapKeyAuthenticated\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, @@ -6132,6 +7027,18 @@ impl Pkcs11 { C_VerifyMessageBegin, C_VerifyMessageNext, C_MessageVerifyFinal, + C_EncapsulateKey, + C_DecapsulateKey, + C_VerifySignatureInit, + C_VerifySignature, + C_VerifySignatureUpdate, + C_VerifySignatureFinal, + C_GetSessionValidationFlags, + C_AsyncComplete, + C_AsyncGetID, + C_AsyncJoin, + C_WrapKeyAuthenticated, + C_UnwrapKeyAuthenticated, }) } pub unsafe fn C_Initialize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV { @@ -7161,4 +8068,165 @@ impl Pkcs11 { .as_ref() .expect("Expected function, got error."))(arg1) } + pub unsafe fn C_EncapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_EncapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_DecapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_DecapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_VerifySignatureInit( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureInit + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_VerifySignature( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignature + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureUpdate( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureUpdate + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV { + (self + .C_VerifySignatureFinal + .as_ref() + .expect("Expected function, got error."))(arg1) + } + pub unsafe fn C_GetSessionValidationFlags( + &self, + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV { + (self + .C_GetSessionValidationFlags + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncComplete( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV { + (self + .C_AsyncComplete + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncGetID( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncGetID + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncJoin( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncJoin + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_WrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_WrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_UnwrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_UnwrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, + ) + } } diff --git a/cryptoki-sys/src/bindings/x86_64-apple-darwin.rs b/cryptoki-sys/src/bindings/x86_64-apple-darwin.rs index 3b594e91..be845490 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 */ +/* automatically generated by rust-bindgen 0.71.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -35,6 +35,7 @@ pub const CK_SP800_108_OPTIONAL_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_DKM_LENGTH: CK_ULONG = 3; pub const CK_SP800_108_BYTE_ARRAY: CK_ULONG = 4; +pub const CK_SP800_108_KEY_HANDLE: CK_ULONG = 5; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS: CK_ULONG = 1; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS: CK_ULONG = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; @@ -162,6 +163,33 @@ 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_PARAMETER_SET: CK_ATTRIBUTE_TYPE = 1565; +pub const CKA_OBJECT_VALIDATION_FLAGS: CK_ATTRIBUTE_TYPE = 1566; +pub const CKA_VALIDATION_TYPE: CK_ATTRIBUTE_TYPE = 1567; +pub const CKA_VALIDATION_VERSION: CK_ATTRIBUTE_TYPE = 1568; +pub const CKA_VALIDATION_LEVEL: CK_ATTRIBUTE_TYPE = 1569; +pub const CKA_VALIDATION_MODULE_ID: CK_ATTRIBUTE_TYPE = 1570; +pub const CKA_VALIDATION_FLAG: CK_ATTRIBUTE_TYPE = 1571; +pub const CKA_VALIDATION_AUTHORITY_TYPE: CK_ATTRIBUTE_TYPE = 1572; +pub const CKA_VALIDATION_COUNTRY: CK_ATTRIBUTE_TYPE = 1573; +pub const CKA_VALIDATION_CERTIFICATE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 1574; +pub const CKA_VALIDATION_CERTIFICATE_URI: CK_ATTRIBUTE_TYPE = 1575; +pub const CKA_VALIDATION_VENDOR_URI: CK_ATTRIBUTE_TYPE = 1576; +pub const CKA_VALIDATION_PROFILE: CK_ATTRIBUTE_TYPE = 1577; +pub const CKA_ENCAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1578; +pub const CKA_DECAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1579; +pub const CKA_TRUST_SERVER_AUTH: CK_ATTRIBUTE_TYPE = 1580; +pub const CKA_TRUST_CLIENT_AUTH: CK_ATTRIBUTE_TYPE = 1581; +pub const CKA_TRUST_CODE_SIGNING: CK_ATTRIBUTE_TYPE = 1582; +pub const CKA_TRUST_EMAIL_PROTECTION: CK_ATTRIBUTE_TYPE = 1583; +pub const CKA_TRUST_IPSEC_IKE: CK_ATTRIBUTE_TYPE = 1584; +pub const CKA_TRUST_TIME_STAMPING: CK_ATTRIBUTE_TYPE = 1585; +pub const CKA_TRUST_OCSP_SIGNING: CK_ATTRIBUTE_TYPE = 1586; +pub const CKA_ENCAPSULATE: CK_ATTRIBUTE_TYPE = 1587; +pub const CKA_DECAPSULATE: CK_ATTRIBUTE_TYPE = 1588; +pub const CKA_HASH_OF_CERTIFICATE: CK_ATTRIBUTE_TYPE = 1589; +pub const CKA_PUBLIC_CRC64_VALUE: CK_ATTRIBUTE_TYPE = 1590; +pub const CKA_SEED: CK_ATTRIBUTE_TYPE = 1591; 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; @@ -234,6 +262,8 @@ pub const CKF_EC_OID: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_EC_CURVENAME: CK_FLAGS = 67108864; +pub const CKF_ENCAPSULATE: CK_FLAGS = 268435456; +pub const CKF_DECAPSULATE: CK_FLAGS = 536870912; pub const CKF_EXTENSION: CK_FLAGS = 2147483648; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1; @@ -246,6 +276,7 @@ pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; +pub const CKF_ASYNC_SESSION: CK_FLAGS = 8; pub const CKF_TOKEN_PRESENT: CK_FLAGS = 1; pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2; pub const CKF_HW_SLOT: CK_FLAGS = 4; @@ -268,6 +299,8 @@ pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; +pub const CKF_SEED_RANDOM_REQUIRED: CK_FLAGS = 33554432; +pub const CKF_ASYNC_SESSION_SUPPORTED: CK_FLAGS = 67108864; 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; @@ -286,6 +319,9 @@ pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKH_VENDOR_DEFINED: CK_HW_FEATURE_TYPE = 2147483648; +pub const CKH_HEDGE_PREFERRED: CK_HW_FEATURE_TYPE = 0; +pub const CKH_HEDGE_REQUIRED: CK_HW_FEATURE_TYPE = 1; +pub const CKH_DETERMINISTIC_REQUIRED: CK_HW_FEATURE_TYPE = 2; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; @@ -347,6 +383,11 @@ 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_XMSS: CK_KEY_TYPE = 71; +pub const CKK_XMSSMT: CK_KEY_TYPE = 72; +pub const CKK_ML_KEM: CK_KEY_TYPE = 73; +pub const CKK_ML_DSA: CK_KEY_TYPE = 74; +pub const CKK_SLH_DSA: CK_KEY_TYPE = 75; 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; @@ -365,6 +406,7 @@ pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; +pub const CKM_ML_KEM_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 15; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; @@ -372,16 +414,43 @@ pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; +pub const CKM_ML_KEM: CK_MECHANISM_TYPE = 23; pub const CKM_DSA_SHA3_224: CK_MECHANISM_TYPE = 24; pub const CKM_DSA_SHA3_256: CK_MECHANISM_TYPE = 25; pub const CKM_DSA_SHA3_384: CK_MECHANISM_TYPE = 26; pub const CKM_DSA_SHA3_512: CK_MECHANISM_TYPE = 27; +pub const CKM_ML_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 28; +pub const CKM_ML_DSA: CK_MECHANISM_TYPE = 29; +pub const CKM_HASH_ML_DSA: CK_MECHANISM_TYPE = 31; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; +pub const CKM_HASH_ML_DSA_SHA224: CK_MECHANISM_TYPE = 35; +pub const CKM_HASH_ML_DSA_SHA256: CK_MECHANISM_TYPE = 36; +pub const CKM_HASH_ML_DSA_SHA384: CK_MECHANISM_TYPE = 37; +pub const CKM_HASH_ML_DSA_SHA512: CK_MECHANISM_TYPE = 38; +pub const CKM_HASH_ML_DSA_SHA3_224: CK_MECHANISM_TYPE = 39; +pub const CKM_HASH_ML_DSA_SHA3_256: CK_MECHANISM_TYPE = 40; +pub const CKM_HASH_ML_DSA_SHA3_384: CK_MECHANISM_TYPE = 41; +pub const CKM_HASH_ML_DSA_SHA3_512: CK_MECHANISM_TYPE = 42; +pub const CKM_HASH_ML_DSA_SHAKE128: CK_MECHANISM_TYPE = 43; +pub const CKM_HASH_ML_DSA_SHAKE256: CK_MECHANISM_TYPE = 44; +pub const CKM_SLH_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 45; +pub const CKM_SLH_DSA: CK_MECHANISM_TYPE = 46; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; +pub const CKM_HASH_SLH_DSA: CK_MECHANISM_TYPE = 52; +pub const CKM_HASH_SLH_DSA_SHA224: CK_MECHANISM_TYPE = 54; +pub const CKM_HASH_SLH_DSA_SHA256: CK_MECHANISM_TYPE = 55; +pub const CKM_HASH_SLH_DSA_SHA384: CK_MECHANISM_TYPE = 56; +pub const CKM_HASH_SLH_DSA_SHA512: CK_MECHANISM_TYPE = 57; +pub const CKM_HASH_SLH_DSA_SHA3_224: CK_MECHANISM_TYPE = 58; +pub const CKM_HASH_SLH_DSA_SHA3_256: CK_MECHANISM_TYPE = 59; +pub const CKM_HASH_SLH_DSA_SHA3_384: CK_MECHANISM_TYPE = 60; +pub const CKM_HASH_SLH_DSA_SHA3_512: CK_MECHANISM_TYPE = 61; +pub const CKM_HASH_SLH_DSA_SHAKE128: CK_MECHANISM_TYPE = 62; +pub const CKM_HASH_SLH_DSA_SHAKE256: CK_MECHANISM_TYPE = 63; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; @@ -402,6 +471,8 @@ pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 86; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 87; pub const CKM_SHA3_256_RSA_PKCS: CK_MECHANISM_TYPE = 96; pub const CKM_SHA3_384_RSA_PKCS: CK_MECHANISM_TYPE = 97; pub const CKM_SHA3_512_RSA_PKCS: CK_MECHANISM_TYPE = 98; @@ -505,7 +576,6 @@ pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; -pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; @@ -711,7 +781,6 @@ pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABILISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; -pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_DSA_FIPS_G_GEN: CK_MECHANISM_TYPE = 8197; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; @@ -784,8 +853,16 @@ 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_XMSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16436; +pub const CKM_XMSSMT_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16437; +pub const CKM_XMSS: CK_MECHANISM_TYPE = 16438; +pub const CKM_XMSSMT: CK_MECHANISM_TYPE = 16439; +pub const CKM_ECDH_X_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16440; +pub const CKM_ECDH_COF_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16441; +pub const CKM_PUB_KEY_FROM_PRIV_KEY: CK_MECHANISM_TYPE = 16442; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; +pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; @@ -793,6 +870,7 @@ pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; +pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKN_SURRENDER: CK_NOTIFICATION = 0; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKO_DATA: CK_OBJECT_CLASS = 0; @@ -805,6 +883,8 @@ pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKO_PROFILE: CK_OBJECT_CLASS = 9; +pub const CKO_VALIDATION: CK_OBJECT_CLASS = 10; +pub const CKO_TRUST: CK_OBJECT_CLASS = 11; pub const CKO_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648; pub const CKP_INVALID_ID: CK_PROFILE_ID = 0; pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; @@ -822,6 +902,24 @@ pub const CKP_PKCS5_PBKD2_HMAC_SHA384: CK_PROFILE_ID = 5; pub const CKP_PKCS5_PBKD2_HMAC_SHA512: CK_PROFILE_ID = 6; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_224: CK_PROFILE_ID = 7; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_256: CK_PROFILE_ID = 8; +pub const CKP_ML_DSA_44: CK_PROFILE_ID = 1; +pub const CKP_ML_DSA_65: CK_PROFILE_ID = 2; +pub const CKP_ML_DSA_87: CK_PROFILE_ID = 3; +pub const CKP_ML_KEM_512: CK_PROFILE_ID = 1; +pub const CKP_ML_KEM_768: CK_PROFILE_ID = 2; +pub const CKP_ML_KEM_1024: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHA2_128S: CK_PROFILE_ID = 1; +pub const CKP_SLH_DSA_SHAKE_128S: CK_PROFILE_ID = 2; +pub const CKP_SLH_DSA_SHA2_128F: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHAKE_128F: CK_PROFILE_ID = 4; +pub const CKP_SLH_DSA_SHA2_192S: CK_PROFILE_ID = 5; +pub const CKP_SLH_DSA_SHAKE_192S: CK_PROFILE_ID = 6; +pub const CKP_SLH_DSA_SHA2_192F: CK_PROFILE_ID = 7; +pub const CKP_SLH_DSA_SHAKE_192F: CK_PROFILE_ID = 8; +pub const CKP_SLH_DSA_SHA2_256S: CK_PROFILE_ID = 9; +pub const CKP_SLH_DSA_SHAKE_256S: CK_PROFILE_ID = 10; +pub const CKP_SLH_DSA_SHA2_256F: CK_PROFILE_ID = 11; +pub const CKP_SLH_DSA_SHAKE_256F: CK_PROFILE_ID = 12; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; @@ -920,15 +1018,35 @@ 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_PENDING: CK_RV = 516; +pub const CKR_SESSION_ASYNC_NOT_SUPPORTED: CK_RV = 517; +pub const CKR_SEED_RANDOM_REQUIRED: CK_RV = 518; +pub const CKR_OPERATION_NOT_VALIDATED: CK_RV = 519; +pub const CKR_TOKEN_NOT_INITIALIZED: CK_RV = 520; +pub const CKR_PARAMETER_SET_NOT_SUPPORTED: CK_RV = 521; 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; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; +pub const CKS_LAST_VALIDATION_OK: CK_STATE = 1; +pub const CKT_TRUST_UNKNOWN: u32 = 0; +pub const CKT_TRUSTED: u32 = 1; +pub const CKT_TRUST_ANCHOR: u32 = 2; +pub const CKT_NOT_TRUSTED: u32 = 3; +pub const CKT_TRUST_MUST_VERIFY_TRUST: u32 = 4; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; +pub const CKV_AUTHORITY_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_AUTHORITY_TYPE_NIST_CMVP: u32 = 1; +pub const CKV_AUTHORITY_TYPE_COMMON_CRITERIA: u32 = 2; +pub const CKV_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_TYPE_SOFTWARE: u32 = 1; +pub const CKV_TYPE_HARDWARE: u32 = 2; +pub const CKV_TYPE_FIRMWARE: u32 = 3; +pub const CKV_TYPE_HYBRID: u32 = 4; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CKZ_SALT_SPECIFIED: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = 1; pub type CK_BBOOL = ::std::os::raw::c_uchar; @@ -957,6 +1075,8 @@ 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_HEDGE_TYPE = CK_ULONG; +pub type CK_HEDGE_TYPE_PTR = *mut CK_HEDGE_TYPE; 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; @@ -973,6 +1093,10 @@ 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; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; +pub type CK_ML_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_ML_DSA_PARAMETER_SET_TYPE; +pub type CK_ML_KEM_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_KEM_PARAMETER_SET_TYPE_PTR = *mut CK_ML_KEM_PARAMETER_SET_TYPE; pub type CK_NOTIFICATION = CK_ULONG; pub type CK_NOTIFICATION_PTR = *mut CK_NOTIFICATION; pub type CK_OBJECT_CLASS = CK_ULONG; @@ -1000,14 +1124,24 @@ pub type CK_RV = CK_ULONG; pub type CK_RV_PTR = *mut CK_RV; pub type CK_SESSION_HANDLE = CK_ULONG; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE = CK_ULONG; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE_PTR = *mut CK_SESSION_VALIDATION_FLAGS_TYPE; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_SLH_DSA_PARAMETER_SET_TYPE; pub type CK_SLOT_ID = CK_ULONG; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SP800_108_DKM_LENGTH_METHOD = CK_ULONG; pub type CK_SP800_108_DKM_LENGTH_METHOD_PTR = *mut CK_SP800_108_DKM_LENGTH_METHOD; pub type CK_STATE = CK_ULONG; pub type CK_STATE_PTR = *mut CK_STATE; +pub type CK_TRUST = CK_ULONG; +pub type CK_TRUST_PTR = *mut CK_TRUST; pub type CK_USER_TYPE = CK_ULONG; pub type CK_USER_TYPE_PTR = *mut CK_USER_TYPE; +pub type CK_VALIDATION_AUTHORITY_TYPE = CK_ULONG; +pub type CK_VALIDATION_AUTHORITY_TYPE_PTR = *mut CK_VALIDATION_AUTHORITY_TYPE; +pub type CK_VALIDATION_TYPE = CK_ULONG; +pub type CK_VALIDATION_TYPE_PTR = *mut CK_VALIDATION_TYPE; pub type CK_X2RATCHET_KDF_TYPE = CK_ULONG; pub type CK_X2RATCHET_KDF_TYPE_PTR = *mut CK_X2RATCHET_KDF_TYPE; pub type CK_X3DH_KDF_TYPE = CK_ULONG; @@ -1016,6 +1150,10 @@ pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG; pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE; pub type CK_XEDDSA_HASH_TYPE = CK_ULONG; pub type CK_XEDDSA_HASH_TYPE_PTR = *mut CK_XEDDSA_HASH_TYPE; +pub type CK_XMSSMT_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSSMT_PARAMETER_SET_TYPE_PTR = *mut CK_XMSSMT_PARAMETER_SET_TYPE; +pub type CK_XMSS_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSS_PARAMETER_SET_TYPE_PTR = *mut CK_XMSS_PARAMETER_SET_TYPE; pub type CK_ATTRIBUTE_PTR = *mut CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR_PTR = *mut *mut CK_ATTRIBUTE; pub type CK_C_INITIALIZE_ARGS_PTR = *mut CK_C_INITIALIZE_ARGS; @@ -1028,6 +1166,8 @@ pub type CK_FUNCTION_LIST_PTR = *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_3_0_PTR = *mut CK_FUNCTION_LIST_3_0; pub type CK_FUNCTION_LIST_3_0_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_0; +pub type CK_FUNCTION_LIST_3_2_PTR = *mut CK_FUNCTION_LIST_3_2; +pub type CK_FUNCTION_LIST_3_2_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_2; pub type CK_INFO_PTR = *mut CK_INFO; pub type CK_INFO_PTR_PTR = *mut *mut CK_INFO; pub type CK_INTERFACE_PTR = *mut CK_INTERFACE; @@ -1202,7 +1342,7 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_INTERFACE { - pub pInterfaceName: *mut CK_CHAR, + pub pInterfaceName: *mut CK_UTF8CHAR, pub pFunctionList: *mut ::std::os::raw::c_void, pub flags: CK_FLAGS, } @@ -1396,6 +1536,8 @@ pub type CK_AES_GCM_PARAMS_PTR = *mut CK_AES_GCM_PARAMS; pub type CK_AES_GCM_PARAMS_PTR_PTR = *mut *mut CK_AES_GCM_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_ASYNC_DATA_PTR = *mut CK_ASYNC_DATA; +pub type CK_ASYNC_DATA_PTR_PTR = *mut *mut CK_ASYNC_DATA; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; @@ -1405,6 +1547,8 @@ pub type CK_CCM_MESSAGE_PARAMS_PTR = *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_PARAMS_PTR = *mut CK_CCM_PARAMS; pub type CK_CCM_PARAMS_PTR_PTR = *mut *mut CK_CCM_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR = *mut CK_CCM_WRAP_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_CCM_WRAP_PARAMS; pub type CK_CHACHA20_PARAMS_PTR = *mut CK_CHACHA20_PARAMS; pub type CK_CHACHA20_PARAMS_PTR_PTR = *mut *mut CK_CHACHA20_PARAMS; pub type CK_CMS_SIG_PARAMS_PTR = *mut CK_CMS_SIG_PARAMS; @@ -1427,10 +1571,14 @@ pub type CK_GCM_MESSAGE_PARAMS_PTR = *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_PARAMS_PTR = *mut CK_GCM_PARAMS; pub type CK_GCM_PARAMS_PTR_PTR = *mut *mut CK_GCM_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR = *mut CK_GCM_WRAP_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GCM_WRAP_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR = *mut CK_GOSTR3410_DERIVE_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_DERIVE_PARAMS; 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_HASH_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; +pub type CK_HASH_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; 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; @@ -1489,6 +1637,8 @@ pub type CK_SALSA20_PARAMS_PTR = *mut CK_SALSA20_PARAMS; pub type CK_SALSA20_PARAMS_PTR_PTR = *mut *mut CK_SALSA20_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_SIGN_ADDITIONAL_CONTEXT; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_SIGN_ADDITIONAL_CONTEXT; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR = *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR_PTR = *mut *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_RELAYX_PARAMS_PTR = *mut CK_SKIPJACK_RELAYX_PARAMS; @@ -1501,6 +1651,10 @@ pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_P pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_FEEDBACK_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR = *mut CK_SP800_108_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_KDF_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR = + *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = + *mut *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR = *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR_PTR = *mut *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_RESPOND_PARAMS_PTR = *mut CK_X2RATCHET_RESPOND_PARAMS; @@ -1517,6 +1671,11 @@ 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)] @@ -1666,6 +1825,39 @@ impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_ASYNC_DATA { + pub ulVersion: CK_ULONG, + pub pValue: *mut CK_BYTE, + pub ulValue: CK_ULONG, + pub hObject: CK_OBJECT_HANDLE, + pub hAdditionalObject: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_ASYNC_DATA"][::std::mem::size_of::() - 40usize]; + ["Alignment of CK_ASYNC_DATA"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulVersion"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulVersion) - 0usize]; + ["Offset of field: CK_ASYNC_DATA::pValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, pValue) - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulValue) - 16usize]; + ["Offset of field: CK_ASYNC_DATA::hObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hObject) - 24usize]; + ["Offset of field: CK_ASYNC_DATA::hAdditionalObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hAdditionalObject) - 32usize]; +}; +impl Default for CK_ASYNC_DATA { + 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_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS { pub iv: [CK_BYTE; 16usize], pub pData: *mut CK_BYTE, @@ -1786,6 +1978,48 @@ impl Default for CK_CCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_CCM_WRAP_PARAMS { + pub ulDataLen: CK_ULONG, + pub pNonce: *mut CK_BYTE, + pub ulNonceLen: CK_ULONG, + pub ulNonceFixedBits: CK_ULONG, + pub nonceGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulMACLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_CCM_WRAP_PARAMS"][::std::mem::size_of::() - 64usize]; + ["Alignment of CK_CCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulDataLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulDataLen) - 0usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pNonce"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pNonce) - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceLen) - 16usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceFixedBits"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceFixedBits) - 24usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::nonceGenerator"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, nonceGenerator) - 32usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pAAD) - 40usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulAADLen) - 48usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulMACLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulMACLen) - 56usize]; +}; +impl Default for CK_CCM_WRAP_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_CHACHA20_PARAMS { pub pBlockCounter: *mut CK_BYTE, pub blockCounterBits: CK_ULONG, @@ -2178,6 +2412,45 @@ impl Default for CK_GCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_GCM_WRAP_PARAMS { + pub pIv: *mut CK_BYTE, + pub ulIvLen: CK_ULONG, + pub ulIvFixedBits: CK_ULONG, + pub ivGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulTagBits: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_GCM_WRAP_PARAMS"][::std::mem::size_of::() - 56usize]; + ["Alignment of CK_GCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pIv"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pIv) - 0usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvLen) - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvFixedBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvFixedBits) - 16usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ivGenerator"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ivGenerator) - 24usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pAAD) - 32usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulAADLen) - 40usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulTagBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulTagBits) - 48usize]; +}; +impl Default for CK_GCM_WRAP_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_GOSTR3410_DERIVE_PARAMS { pub kdf: CK_EC_KDF_TYPE, pub pPublicData: *mut CK_BYTE, @@ -2248,6 +2521,38 @@ impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_HASH_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, + pub hash: CK_MECHANISM_TYPE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hash"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hash) - 24usize]; +}; +impl Default for CK_HASH_SIGN_ADDITIONAL_CONTEXT { + 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_HKDF_PARAMS { pub bExtract: CK_BBOOL, pub bExpand: CK_BBOOL, @@ -3097,6 +3402,35 @@ impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 24usize]; + ["Alignment of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; +}; +impl Default for CK_SIGN_ADDITIONAL_CONTEXT { + 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_SKIPJACK_PRIVATE_WRAP_PARAMS { pub ulPasswordLen: CK_ULONG, pub pPassword: *mut CK_BYTE, @@ -3295,6 +3629,42 @@ impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS { + pub prfHashMechanism: CK_MECHANISM_TYPE, + pub pSessionHash: *mut CK_BYTE, + pub ulSessionHashLen: CK_ULONG, + pub pVersion: *mut CK_VERSION, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::prfHashMechanism"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + prfHashMechanism + ) - 0usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pSessionHash"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pSessionHash) - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::ulSessionHashLen"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + ulSessionHashLen + ) - 16usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pVersion"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pVersion) - 24usize]; +}; +impl Default for CK_TLS12_EXTENDED_MASTER_KEY_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_SP800_108_KDF_PARAMS { pub prfType: CK_SP800_108_PRF_TYPE, pub ulNumberOfDataParams: CK_ULONG, @@ -3636,24 +4006,6 @@ 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; @@ -4725,6 +5077,427 @@ pub type CK_C_VerifyMessageNext = ::std::option::Option< >; pub type CK_C_MessageVerifyFinal = ::std::option::Option CK_RV>; +pub type CK_C_EncapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_DecapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_VerifySignatureInit = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_VerifySignature = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureUpdate = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureFinal = + ::std::option::Option CK_RV>; +pub type CK_C_GetSessionValidationFlags = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, +>; +pub type CK_C_AsyncComplete = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, +>; +pub type CK_C_AsyncGetID = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_AsyncJoin = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_WrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_UnwrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CK_FUNCTION_LIST_3_2 { + pub version: CK_VERSION, + pub C_Initialize: CK_C_Initialize, + pub C_Finalize: CK_C_Finalize, + pub C_GetInfo: CK_C_GetInfo, + pub C_GetFunctionList: CK_C_GetFunctionList, + pub C_GetSlotList: CK_C_GetSlotList, + pub C_GetSlotInfo: CK_C_GetSlotInfo, + pub C_GetTokenInfo: CK_C_GetTokenInfo, + pub C_GetMechanismList: CK_C_GetMechanismList, + pub C_GetMechanismInfo: CK_C_GetMechanismInfo, + pub C_InitToken: CK_C_InitToken, + pub C_InitPIN: CK_C_InitPIN, + pub C_SetPIN: CK_C_SetPIN, + pub C_OpenSession: CK_C_OpenSession, + pub C_CloseSession: CK_C_CloseSession, + pub C_CloseAllSessions: CK_C_CloseAllSessions, + pub C_GetSessionInfo: CK_C_GetSessionInfo, + pub C_GetOperationState: CK_C_GetOperationState, + pub C_SetOperationState: CK_C_SetOperationState, + pub C_Login: CK_C_Login, + pub C_Logout: CK_C_Logout, + pub C_CreateObject: CK_C_CreateObject, + pub C_CopyObject: CK_C_CopyObject, + pub C_DestroyObject: CK_C_DestroyObject, + pub C_GetObjectSize: CK_C_GetObjectSize, + pub C_GetAttributeValue: CK_C_GetAttributeValue, + pub C_SetAttributeValue: CK_C_SetAttributeValue, + pub C_FindObjectsInit: CK_C_FindObjectsInit, + pub C_FindObjects: CK_C_FindObjects, + pub C_FindObjectsFinal: CK_C_FindObjectsFinal, + pub C_EncryptInit: CK_C_EncryptInit, + pub C_Encrypt: CK_C_Encrypt, + pub C_EncryptUpdate: CK_C_EncryptUpdate, + pub C_EncryptFinal: CK_C_EncryptFinal, + pub C_DecryptInit: CK_C_DecryptInit, + pub C_Decrypt: CK_C_Decrypt, + pub C_DecryptUpdate: CK_C_DecryptUpdate, + pub C_DecryptFinal: CK_C_DecryptFinal, + pub C_DigestInit: CK_C_DigestInit, + pub C_Digest: CK_C_Digest, + pub C_DigestUpdate: CK_C_DigestUpdate, + pub C_DigestKey: CK_C_DigestKey, + pub C_DigestFinal: CK_C_DigestFinal, + pub C_SignInit: CK_C_SignInit, + pub C_Sign: CK_C_Sign, + pub C_SignUpdate: CK_C_SignUpdate, + pub C_SignFinal: CK_C_SignFinal, + pub C_SignRecoverInit: CK_C_SignRecoverInit, + pub C_SignRecover: CK_C_SignRecover, + pub C_VerifyInit: CK_C_VerifyInit, + pub C_Verify: CK_C_Verify, + pub C_VerifyUpdate: CK_C_VerifyUpdate, + pub C_VerifyFinal: CK_C_VerifyFinal, + pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, + pub C_VerifyRecover: CK_C_VerifyRecover, + pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, + pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, + pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, + pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, + pub C_GenerateKey: CK_C_GenerateKey, + pub C_GenerateKeyPair: CK_C_GenerateKeyPair, + pub C_WrapKey: CK_C_WrapKey, + pub C_UnwrapKey: CK_C_UnwrapKey, + pub C_DeriveKey: CK_C_DeriveKey, + pub C_SeedRandom: CK_C_SeedRandom, + pub C_GenerateRandom: CK_C_GenerateRandom, + pub C_GetFunctionStatus: CK_C_GetFunctionStatus, + pub C_CancelFunction: CK_C_CancelFunction, + pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, + pub C_GetInterfaceList: CK_C_GetInterfaceList, + pub C_GetInterface: CK_C_GetInterface, + pub C_LoginUser: CK_C_LoginUser, + pub C_SessionCancel: CK_C_SessionCancel, + pub C_MessageEncryptInit: CK_C_MessageEncryptInit, + pub C_EncryptMessage: CK_C_EncryptMessage, + pub C_EncryptMessageBegin: CK_C_EncryptMessageBegin, + pub C_EncryptMessageNext: CK_C_EncryptMessageNext, + pub C_MessageEncryptFinal: CK_C_MessageEncryptFinal, + pub C_MessageDecryptInit: CK_C_MessageDecryptInit, + pub C_DecryptMessage: CK_C_DecryptMessage, + pub C_DecryptMessageBegin: CK_C_DecryptMessageBegin, + pub C_DecryptMessageNext: CK_C_DecryptMessageNext, + pub C_MessageDecryptFinal: CK_C_MessageDecryptFinal, + pub C_MessageSignInit: CK_C_MessageSignInit, + pub C_SignMessage: CK_C_SignMessage, + pub C_SignMessageBegin: CK_C_SignMessageBegin, + pub C_SignMessageNext: CK_C_SignMessageNext, + pub C_MessageSignFinal: CK_C_MessageSignFinal, + pub C_MessageVerifyInit: CK_C_MessageVerifyInit, + pub C_VerifyMessage: CK_C_VerifyMessage, + pub C_VerifyMessageBegin: CK_C_VerifyMessageBegin, + pub C_VerifyMessageNext: CK_C_VerifyMessageNext, + pub C_MessageVerifyFinal: CK_C_MessageVerifyFinal, + pub C_EncapsulateKey: CK_C_EncapsulateKey, + pub C_DecapsulateKey: CK_C_DecapsulateKey, + pub C_VerifySignatureInit: CK_C_VerifySignatureInit, + pub C_VerifySignature: CK_C_VerifySignature, + pub C_VerifySignatureUpdate: CK_C_VerifySignatureUpdate, + pub C_VerifySignatureFinal: CK_C_VerifySignatureFinal, + pub C_GetSessionValidationFlags: CK_C_GetSessionValidationFlags, + pub C_AsyncComplete: CK_C_AsyncComplete, + pub C_AsyncGetID: CK_C_AsyncGetID, + pub C_AsyncJoin: CK_C_AsyncJoin, + pub C_WrapKeyAuthenticated: CK_C_WrapKeyAuthenticated, + pub C_UnwrapKeyAuthenticated: CK_C_UnwrapKeyAuthenticated, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_FUNCTION_LIST_3_2"][::std::mem::size_of::() - 840usize]; + ["Alignment of CK_FUNCTION_LIST_3_2"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::version"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, version) - 0usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Initialize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Initialize) - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Finalize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Finalize) - 16usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInfo) - 24usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionList) - 32usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotList) - 40usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotInfo) - 48usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetTokenInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetTokenInfo) - 56usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismList) - 64usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismInfo) - 72usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitToken"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitToken) - 80usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitPIN) - 88usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetPIN) - 96usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_OpenSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_OpenSession) - 104usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseSession) - 112usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseAllSessions"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseAllSessions) - 120usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionInfo) - 128usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetOperationState) - 136usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetOperationState) - 144usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Login"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Login) - 152usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Logout"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Logout) - 160usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CreateObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CreateObject) - 168usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CopyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CopyObject) - 176usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DestroyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DestroyObject) - 184usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetObjectSize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetObjectSize) - 192usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetAttributeValue) - 200usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetAttributeValue) - 208usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsInit) - 216usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjects"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjects) - 224usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsFinal) - 232usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptInit) - 240usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Encrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Encrypt) - 248usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptUpdate) - 256usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptFinal) - 264usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptInit) - 272usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Decrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Decrypt) - 280usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptUpdate) - 288usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptFinal) - 296usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestInit) - 304usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Digest"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Digest) - 312usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestUpdate) - 320usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestKey) - 328usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestFinal) - 336usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignInit) - 344usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Sign"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Sign) - 352usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignUpdate) - 360usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignFinal) - 368usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecoverInit) - 376usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecover) - 384usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyInit) - 392usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Verify"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Verify) - 400usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyUpdate) - 408usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyFinal) - 416usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecoverInit) - 424usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecover) - 432usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestEncryptUpdate) - 440usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptDigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptDigestUpdate) - 448usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignEncryptUpdate) - 456usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptVerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptVerifyUpdate) - 464usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKey) - 472usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKeyPair"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKeyPair) - 480usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKey) - 488usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKey) - 496usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DeriveKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DeriveKey) - 504usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SeedRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SeedRandom) - 512usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateRandom) - 520usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionStatus"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionStatus) - 528usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CancelFunction"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CancelFunction) - 536usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WaitForSlotEvent"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WaitForSlotEvent) - 544usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterfaceList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterfaceList) - 552usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterface"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterface) - 560usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_LoginUser"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_LoginUser) - 568usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SessionCancel"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SessionCancel) - 576usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptInit) - 584usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessage) - 592usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageBegin) - 600usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageNext) - 608usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptFinal) - 616usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptInit) - 624usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessage) - 632usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageBegin) - 640usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageNext) - 648usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptFinal) - 656usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignInit) - 664usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessage) - 672usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageBegin) - 680usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageNext) - 688usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignFinal) - 696usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyInit) - 704usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessage) - 712usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageBegin) - 720usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageNext) - 728usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyFinal) - 736usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncapsulateKey) - 744usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecapsulateKey) - 752usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureInit) - 760usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignature"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignature) - 768usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureUpdate) - 776usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureFinal) - 784usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionValidationFlags"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionValidationFlags) - 792usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncComplete"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncComplete) - 800usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncGetID"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncGetID) - 808usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncJoin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncJoin) - 816usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKeyAuthenticated) - 824usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKeyAuthenticated) - 832usize]; +}; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct CK_FUNCTION_LIST_3_0 { @@ -5932,6 +6705,114 @@ pub struct Pkcs11 { >, pub C_MessageVerifyFinal: Result CK_RV, ::libloading::Error>, + pub C_EncapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_DecapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureInit: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignature: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureUpdate: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureFinal: + Result CK_RV, ::libloading::Error>, + pub C_GetSessionValidationFlags: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncComplete: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncGetID: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncJoin: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_WrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_UnwrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result @@ -6038,6 +6919,20 @@ impl Pkcs11 { let C_VerifyMessageBegin = __library.get(b"C_VerifyMessageBegin\0").map(|sym| *sym); let C_VerifyMessageNext = __library.get(b"C_VerifyMessageNext\0").map(|sym| *sym); let C_MessageVerifyFinal = __library.get(b"C_MessageVerifyFinal\0").map(|sym| *sym); + let C_EncapsulateKey = __library.get(b"C_EncapsulateKey\0").map(|sym| *sym); + let C_DecapsulateKey = __library.get(b"C_DecapsulateKey\0").map(|sym| *sym); + let C_VerifySignatureInit = __library.get(b"C_VerifySignatureInit\0").map(|sym| *sym); + let C_VerifySignature = __library.get(b"C_VerifySignature\0").map(|sym| *sym); + let C_VerifySignatureUpdate = __library.get(b"C_VerifySignatureUpdate\0").map(|sym| *sym); + let C_VerifySignatureFinal = __library.get(b"C_VerifySignatureFinal\0").map(|sym| *sym); + let C_GetSessionValidationFlags = __library + .get(b"C_GetSessionValidationFlags\0") + .map(|sym| *sym); + let C_AsyncComplete = __library.get(b"C_AsyncComplete\0").map(|sym| *sym); + let C_AsyncGetID = __library.get(b"C_AsyncGetID\0").map(|sym| *sym); + let C_AsyncJoin = __library.get(b"C_AsyncJoin\0").map(|sym| *sym); + let C_WrapKeyAuthenticated = __library.get(b"C_WrapKeyAuthenticated\0").map(|sym| *sym); + let C_UnwrapKeyAuthenticated = __library.get(b"C_UnwrapKeyAuthenticated\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, @@ -6132,6 +7027,18 @@ impl Pkcs11 { C_VerifyMessageBegin, C_VerifyMessageNext, C_MessageVerifyFinal, + C_EncapsulateKey, + C_DecapsulateKey, + C_VerifySignatureInit, + C_VerifySignature, + C_VerifySignatureUpdate, + C_VerifySignatureFinal, + C_GetSessionValidationFlags, + C_AsyncComplete, + C_AsyncGetID, + C_AsyncJoin, + C_WrapKeyAuthenticated, + C_UnwrapKeyAuthenticated, }) } pub unsafe fn C_Initialize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV { @@ -7161,4 +8068,165 @@ impl Pkcs11 { .as_ref() .expect("Expected function, got error."))(arg1) } + pub unsafe fn C_EncapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_EncapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_DecapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_DecapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_VerifySignatureInit( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureInit + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_VerifySignature( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignature + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureUpdate( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureUpdate + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV { + (self + .C_VerifySignatureFinal + .as_ref() + .expect("Expected function, got error."))(arg1) + } + pub unsafe fn C_GetSessionValidationFlags( + &self, + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV { + (self + .C_GetSessionValidationFlags + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncComplete( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV { + (self + .C_AsyncComplete + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncGetID( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncGetID + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncJoin( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncJoin + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_WrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_WrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_UnwrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_UnwrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, + ) + } } 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 d9a938c1..270aa7f1 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 */ +/* automatically generated by rust-bindgen 0.71.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -35,6 +35,7 @@ pub const CK_SP800_108_OPTIONAL_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_DKM_LENGTH: CK_ULONG = 3; pub const CK_SP800_108_BYTE_ARRAY: CK_ULONG = 4; +pub const CK_SP800_108_KEY_HANDLE: CK_ULONG = 5; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS: CK_ULONG = 1; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS: CK_ULONG = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; @@ -162,6 +163,33 @@ 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_PARAMETER_SET: CK_ATTRIBUTE_TYPE = 1565; +pub const CKA_OBJECT_VALIDATION_FLAGS: CK_ATTRIBUTE_TYPE = 1566; +pub const CKA_VALIDATION_TYPE: CK_ATTRIBUTE_TYPE = 1567; +pub const CKA_VALIDATION_VERSION: CK_ATTRIBUTE_TYPE = 1568; +pub const CKA_VALIDATION_LEVEL: CK_ATTRIBUTE_TYPE = 1569; +pub const CKA_VALIDATION_MODULE_ID: CK_ATTRIBUTE_TYPE = 1570; +pub const CKA_VALIDATION_FLAG: CK_ATTRIBUTE_TYPE = 1571; +pub const CKA_VALIDATION_AUTHORITY_TYPE: CK_ATTRIBUTE_TYPE = 1572; +pub const CKA_VALIDATION_COUNTRY: CK_ATTRIBUTE_TYPE = 1573; +pub const CKA_VALIDATION_CERTIFICATE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 1574; +pub const CKA_VALIDATION_CERTIFICATE_URI: CK_ATTRIBUTE_TYPE = 1575; +pub const CKA_VALIDATION_VENDOR_URI: CK_ATTRIBUTE_TYPE = 1576; +pub const CKA_VALIDATION_PROFILE: CK_ATTRIBUTE_TYPE = 1577; +pub const CKA_ENCAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1578; +pub const CKA_DECAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1579; +pub const CKA_TRUST_SERVER_AUTH: CK_ATTRIBUTE_TYPE = 1580; +pub const CKA_TRUST_CLIENT_AUTH: CK_ATTRIBUTE_TYPE = 1581; +pub const CKA_TRUST_CODE_SIGNING: CK_ATTRIBUTE_TYPE = 1582; +pub const CKA_TRUST_EMAIL_PROTECTION: CK_ATTRIBUTE_TYPE = 1583; +pub const CKA_TRUST_IPSEC_IKE: CK_ATTRIBUTE_TYPE = 1584; +pub const CKA_TRUST_TIME_STAMPING: CK_ATTRIBUTE_TYPE = 1585; +pub const CKA_TRUST_OCSP_SIGNING: CK_ATTRIBUTE_TYPE = 1586; +pub const CKA_ENCAPSULATE: CK_ATTRIBUTE_TYPE = 1587; +pub const CKA_DECAPSULATE: CK_ATTRIBUTE_TYPE = 1588; +pub const CKA_HASH_OF_CERTIFICATE: CK_ATTRIBUTE_TYPE = 1589; +pub const CKA_PUBLIC_CRC64_VALUE: CK_ATTRIBUTE_TYPE = 1590; +pub const CKA_SEED: CK_ATTRIBUTE_TYPE = 1591; 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; @@ -234,6 +262,8 @@ pub const CKF_EC_OID: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_EC_CURVENAME: CK_FLAGS = 67108864; +pub const CKF_ENCAPSULATE: CK_FLAGS = 268435456; +pub const CKF_DECAPSULATE: CK_FLAGS = 536870912; pub const CKF_EXTENSION: CK_FLAGS = 2147483648; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1; @@ -246,6 +276,7 @@ pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; +pub const CKF_ASYNC_SESSION: CK_FLAGS = 8; pub const CKF_TOKEN_PRESENT: CK_FLAGS = 1; pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2; pub const CKF_HW_SLOT: CK_FLAGS = 4; @@ -268,6 +299,8 @@ pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; +pub const CKF_SEED_RANDOM_REQUIRED: CK_FLAGS = 33554432; +pub const CKF_ASYNC_SESSION_SUPPORTED: CK_FLAGS = 67108864; 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; @@ -286,6 +319,9 @@ pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKH_VENDOR_DEFINED: CK_HW_FEATURE_TYPE = 2147483648; +pub const CKH_HEDGE_PREFERRED: CK_HW_FEATURE_TYPE = 0; +pub const CKH_HEDGE_REQUIRED: CK_HW_FEATURE_TYPE = 1; +pub const CKH_DETERMINISTIC_REQUIRED: CK_HW_FEATURE_TYPE = 2; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; @@ -347,6 +383,11 @@ 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_XMSS: CK_KEY_TYPE = 71; +pub const CKK_XMSSMT: CK_KEY_TYPE = 72; +pub const CKK_ML_KEM: CK_KEY_TYPE = 73; +pub const CKK_ML_DSA: CK_KEY_TYPE = 74; +pub const CKK_SLH_DSA: CK_KEY_TYPE = 75; 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; @@ -365,6 +406,7 @@ pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; +pub const CKM_ML_KEM_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 15; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; @@ -372,16 +414,43 @@ pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; +pub const CKM_ML_KEM: CK_MECHANISM_TYPE = 23; pub const CKM_DSA_SHA3_224: CK_MECHANISM_TYPE = 24; pub const CKM_DSA_SHA3_256: CK_MECHANISM_TYPE = 25; pub const CKM_DSA_SHA3_384: CK_MECHANISM_TYPE = 26; pub const CKM_DSA_SHA3_512: CK_MECHANISM_TYPE = 27; +pub const CKM_ML_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 28; +pub const CKM_ML_DSA: CK_MECHANISM_TYPE = 29; +pub const CKM_HASH_ML_DSA: CK_MECHANISM_TYPE = 31; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; +pub const CKM_HASH_ML_DSA_SHA224: CK_MECHANISM_TYPE = 35; +pub const CKM_HASH_ML_DSA_SHA256: CK_MECHANISM_TYPE = 36; +pub const CKM_HASH_ML_DSA_SHA384: CK_MECHANISM_TYPE = 37; +pub const CKM_HASH_ML_DSA_SHA512: CK_MECHANISM_TYPE = 38; +pub const CKM_HASH_ML_DSA_SHA3_224: CK_MECHANISM_TYPE = 39; +pub const CKM_HASH_ML_DSA_SHA3_256: CK_MECHANISM_TYPE = 40; +pub const CKM_HASH_ML_DSA_SHA3_384: CK_MECHANISM_TYPE = 41; +pub const CKM_HASH_ML_DSA_SHA3_512: CK_MECHANISM_TYPE = 42; +pub const CKM_HASH_ML_DSA_SHAKE128: CK_MECHANISM_TYPE = 43; +pub const CKM_HASH_ML_DSA_SHAKE256: CK_MECHANISM_TYPE = 44; +pub const CKM_SLH_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 45; +pub const CKM_SLH_DSA: CK_MECHANISM_TYPE = 46; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; +pub const CKM_HASH_SLH_DSA: CK_MECHANISM_TYPE = 52; +pub const CKM_HASH_SLH_DSA_SHA224: CK_MECHANISM_TYPE = 54; +pub const CKM_HASH_SLH_DSA_SHA256: CK_MECHANISM_TYPE = 55; +pub const CKM_HASH_SLH_DSA_SHA384: CK_MECHANISM_TYPE = 56; +pub const CKM_HASH_SLH_DSA_SHA512: CK_MECHANISM_TYPE = 57; +pub const CKM_HASH_SLH_DSA_SHA3_224: CK_MECHANISM_TYPE = 58; +pub const CKM_HASH_SLH_DSA_SHA3_256: CK_MECHANISM_TYPE = 59; +pub const CKM_HASH_SLH_DSA_SHA3_384: CK_MECHANISM_TYPE = 60; +pub const CKM_HASH_SLH_DSA_SHA3_512: CK_MECHANISM_TYPE = 61; +pub const CKM_HASH_SLH_DSA_SHAKE128: CK_MECHANISM_TYPE = 62; +pub const CKM_HASH_SLH_DSA_SHAKE256: CK_MECHANISM_TYPE = 63; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; @@ -402,6 +471,8 @@ pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 86; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 87; pub const CKM_SHA3_256_RSA_PKCS: CK_MECHANISM_TYPE = 96; pub const CKM_SHA3_384_RSA_PKCS: CK_MECHANISM_TYPE = 97; pub const CKM_SHA3_512_RSA_PKCS: CK_MECHANISM_TYPE = 98; @@ -505,7 +576,6 @@ pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; -pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; @@ -711,7 +781,6 @@ pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABILISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; -pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_DSA_FIPS_G_GEN: CK_MECHANISM_TYPE = 8197; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; @@ -784,8 +853,16 @@ 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_XMSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16436; +pub const CKM_XMSSMT_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16437; +pub const CKM_XMSS: CK_MECHANISM_TYPE = 16438; +pub const CKM_XMSSMT: CK_MECHANISM_TYPE = 16439; +pub const CKM_ECDH_X_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16440; +pub const CKM_ECDH_COF_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16441; +pub const CKM_PUB_KEY_FROM_PRIV_KEY: CK_MECHANISM_TYPE = 16442; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; +pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; @@ -793,6 +870,7 @@ pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; +pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKN_SURRENDER: CK_NOTIFICATION = 0; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKO_DATA: CK_OBJECT_CLASS = 0; @@ -805,6 +883,8 @@ pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKO_PROFILE: CK_OBJECT_CLASS = 9; +pub const CKO_VALIDATION: CK_OBJECT_CLASS = 10; +pub const CKO_TRUST: CK_OBJECT_CLASS = 11; pub const CKO_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648; pub const CKP_INVALID_ID: CK_PROFILE_ID = 0; pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; @@ -822,6 +902,24 @@ pub const CKP_PKCS5_PBKD2_HMAC_SHA384: CK_PROFILE_ID = 5; pub const CKP_PKCS5_PBKD2_HMAC_SHA512: CK_PROFILE_ID = 6; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_224: CK_PROFILE_ID = 7; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_256: CK_PROFILE_ID = 8; +pub const CKP_ML_DSA_44: CK_PROFILE_ID = 1; +pub const CKP_ML_DSA_65: CK_PROFILE_ID = 2; +pub const CKP_ML_DSA_87: CK_PROFILE_ID = 3; +pub const CKP_ML_KEM_512: CK_PROFILE_ID = 1; +pub const CKP_ML_KEM_768: CK_PROFILE_ID = 2; +pub const CKP_ML_KEM_1024: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHA2_128S: CK_PROFILE_ID = 1; +pub const CKP_SLH_DSA_SHAKE_128S: CK_PROFILE_ID = 2; +pub const CKP_SLH_DSA_SHA2_128F: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHAKE_128F: CK_PROFILE_ID = 4; +pub const CKP_SLH_DSA_SHA2_192S: CK_PROFILE_ID = 5; +pub const CKP_SLH_DSA_SHAKE_192S: CK_PROFILE_ID = 6; +pub const CKP_SLH_DSA_SHA2_192F: CK_PROFILE_ID = 7; +pub const CKP_SLH_DSA_SHAKE_192F: CK_PROFILE_ID = 8; +pub const CKP_SLH_DSA_SHA2_256S: CK_PROFILE_ID = 9; +pub const CKP_SLH_DSA_SHAKE_256S: CK_PROFILE_ID = 10; +pub const CKP_SLH_DSA_SHA2_256F: CK_PROFILE_ID = 11; +pub const CKP_SLH_DSA_SHAKE_256F: CK_PROFILE_ID = 12; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; @@ -920,15 +1018,35 @@ 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_PENDING: CK_RV = 516; +pub const CKR_SESSION_ASYNC_NOT_SUPPORTED: CK_RV = 517; +pub const CKR_SEED_RANDOM_REQUIRED: CK_RV = 518; +pub const CKR_OPERATION_NOT_VALIDATED: CK_RV = 519; +pub const CKR_TOKEN_NOT_INITIALIZED: CK_RV = 520; +pub const CKR_PARAMETER_SET_NOT_SUPPORTED: CK_RV = 521; 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; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; +pub const CKS_LAST_VALIDATION_OK: CK_STATE = 1; +pub const CKT_TRUST_UNKNOWN: u32 = 0; +pub const CKT_TRUSTED: u32 = 1; +pub const CKT_TRUST_ANCHOR: u32 = 2; +pub const CKT_NOT_TRUSTED: u32 = 3; +pub const CKT_TRUST_MUST_VERIFY_TRUST: u32 = 4; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; +pub const CKV_AUTHORITY_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_AUTHORITY_TYPE_NIST_CMVP: u32 = 1; +pub const CKV_AUTHORITY_TYPE_COMMON_CRITERIA: u32 = 2; +pub const CKV_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_TYPE_SOFTWARE: u32 = 1; +pub const CKV_TYPE_HARDWARE: u32 = 2; +pub const CKV_TYPE_FIRMWARE: u32 = 3; +pub const CKV_TYPE_HYBRID: u32 = 4; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CKZ_SALT_SPECIFIED: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = 1; pub type CK_BBOOL = ::std::os::raw::c_uchar; @@ -957,6 +1075,8 @@ 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_HEDGE_TYPE = CK_ULONG; +pub type CK_HEDGE_TYPE_PTR = *mut CK_HEDGE_TYPE; 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; @@ -973,6 +1093,10 @@ 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; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; +pub type CK_ML_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_ML_DSA_PARAMETER_SET_TYPE; +pub type CK_ML_KEM_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_KEM_PARAMETER_SET_TYPE_PTR = *mut CK_ML_KEM_PARAMETER_SET_TYPE; pub type CK_NOTIFICATION = CK_ULONG; pub type CK_NOTIFICATION_PTR = *mut CK_NOTIFICATION; pub type CK_OBJECT_CLASS = CK_ULONG; @@ -1000,14 +1124,24 @@ pub type CK_RV = CK_ULONG; pub type CK_RV_PTR = *mut CK_RV; pub type CK_SESSION_HANDLE = CK_ULONG; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE = CK_ULONG; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE_PTR = *mut CK_SESSION_VALIDATION_FLAGS_TYPE; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_SLH_DSA_PARAMETER_SET_TYPE; pub type CK_SLOT_ID = CK_ULONG; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SP800_108_DKM_LENGTH_METHOD = CK_ULONG; pub type CK_SP800_108_DKM_LENGTH_METHOD_PTR = *mut CK_SP800_108_DKM_LENGTH_METHOD; pub type CK_STATE = CK_ULONG; pub type CK_STATE_PTR = *mut CK_STATE; +pub type CK_TRUST = CK_ULONG; +pub type CK_TRUST_PTR = *mut CK_TRUST; pub type CK_USER_TYPE = CK_ULONG; pub type CK_USER_TYPE_PTR = *mut CK_USER_TYPE; +pub type CK_VALIDATION_AUTHORITY_TYPE = CK_ULONG; +pub type CK_VALIDATION_AUTHORITY_TYPE_PTR = *mut CK_VALIDATION_AUTHORITY_TYPE; +pub type CK_VALIDATION_TYPE = CK_ULONG; +pub type CK_VALIDATION_TYPE_PTR = *mut CK_VALIDATION_TYPE; pub type CK_X2RATCHET_KDF_TYPE = CK_ULONG; pub type CK_X2RATCHET_KDF_TYPE_PTR = *mut CK_X2RATCHET_KDF_TYPE; pub type CK_X3DH_KDF_TYPE = CK_ULONG; @@ -1016,6 +1150,10 @@ pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG; pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE; pub type CK_XEDDSA_HASH_TYPE = CK_ULONG; pub type CK_XEDDSA_HASH_TYPE_PTR = *mut CK_XEDDSA_HASH_TYPE; +pub type CK_XMSSMT_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSSMT_PARAMETER_SET_TYPE_PTR = *mut CK_XMSSMT_PARAMETER_SET_TYPE; +pub type CK_XMSS_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSS_PARAMETER_SET_TYPE_PTR = *mut CK_XMSS_PARAMETER_SET_TYPE; pub type CK_ATTRIBUTE_PTR = *mut CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR_PTR = *mut *mut CK_ATTRIBUTE; pub type CK_C_INITIALIZE_ARGS_PTR = *mut CK_C_INITIALIZE_ARGS; @@ -1028,6 +1166,8 @@ pub type CK_FUNCTION_LIST_PTR = *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_3_0_PTR = *mut CK_FUNCTION_LIST_3_0; pub type CK_FUNCTION_LIST_3_0_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_0; +pub type CK_FUNCTION_LIST_3_2_PTR = *mut CK_FUNCTION_LIST_3_2; +pub type CK_FUNCTION_LIST_3_2_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_2; pub type CK_INFO_PTR = *mut CK_INFO; pub type CK_INFO_PTR_PTR = *mut *mut CK_INFO; pub type CK_INTERFACE_PTR = *mut CK_INTERFACE; @@ -1202,7 +1342,7 @@ const _: () = { #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct CK_INTERFACE { - pub pInterfaceName: *mut CK_CHAR, + pub pInterfaceName: *mut CK_UTF8CHAR, pub pFunctionList: *mut ::std::os::raw::c_void, pub flags: CK_FLAGS, } @@ -1396,6 +1536,8 @@ pub type CK_AES_GCM_PARAMS_PTR = *mut CK_AES_GCM_PARAMS; pub type CK_AES_GCM_PARAMS_PTR_PTR = *mut *mut CK_AES_GCM_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_ASYNC_DATA_PTR = *mut CK_ASYNC_DATA; +pub type CK_ASYNC_DATA_PTR_PTR = *mut *mut CK_ASYNC_DATA; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; @@ -1405,6 +1547,8 @@ pub type CK_CCM_MESSAGE_PARAMS_PTR = *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_PARAMS_PTR = *mut CK_CCM_PARAMS; pub type CK_CCM_PARAMS_PTR_PTR = *mut *mut CK_CCM_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR = *mut CK_CCM_WRAP_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_CCM_WRAP_PARAMS; pub type CK_CHACHA20_PARAMS_PTR = *mut CK_CHACHA20_PARAMS; pub type CK_CHACHA20_PARAMS_PTR_PTR = *mut *mut CK_CHACHA20_PARAMS; pub type CK_CMS_SIG_PARAMS_PTR = *mut CK_CMS_SIG_PARAMS; @@ -1427,10 +1571,14 @@ pub type CK_GCM_MESSAGE_PARAMS_PTR = *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_PARAMS_PTR = *mut CK_GCM_PARAMS; pub type CK_GCM_PARAMS_PTR_PTR = *mut *mut CK_GCM_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR = *mut CK_GCM_WRAP_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GCM_WRAP_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR = *mut CK_GOSTR3410_DERIVE_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_DERIVE_PARAMS; 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_HASH_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; +pub type CK_HASH_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; 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; @@ -1489,6 +1637,8 @@ pub type CK_SALSA20_PARAMS_PTR = *mut CK_SALSA20_PARAMS; pub type CK_SALSA20_PARAMS_PTR_PTR = *mut *mut CK_SALSA20_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_SIGN_ADDITIONAL_CONTEXT; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_SIGN_ADDITIONAL_CONTEXT; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR = *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR_PTR = *mut *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_RELAYX_PARAMS_PTR = *mut CK_SKIPJACK_RELAYX_PARAMS; @@ -1501,6 +1651,10 @@ pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_P pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_FEEDBACK_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR = *mut CK_SP800_108_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_KDF_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR = + *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = + *mut *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR = *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR_PTR = *mut *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_RESPOND_PARAMS_PTR = *mut CK_X2RATCHET_RESPOND_PARAMS; @@ -1517,6 +1671,11 @@ 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)] @@ -1666,6 +1825,39 @@ impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C, packed)] #[derive(Debug, Copy, Clone)] +pub struct CK_ASYNC_DATA { + pub ulVersion: CK_ULONG, + pub pValue: *mut CK_BYTE, + pub ulValue: CK_ULONG, + pub hObject: CK_OBJECT_HANDLE, + pub hAdditionalObject: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_ASYNC_DATA"][::std::mem::size_of::() - 24usize]; + ["Alignment of CK_ASYNC_DATA"][::std::mem::align_of::() - 1usize]; + ["Offset of field: CK_ASYNC_DATA::ulVersion"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulVersion) - 0usize]; + ["Offset of field: CK_ASYNC_DATA::pValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, pValue) - 4usize]; + ["Offset of field: CK_ASYNC_DATA::ulValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulValue) - 12usize]; + ["Offset of field: CK_ASYNC_DATA::hObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hObject) - 16usize]; + ["Offset of field: CK_ASYNC_DATA::hAdditionalObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hAdditionalObject) - 20usize]; +}; +impl Default for CK_ASYNC_DATA { + 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_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS { pub iv: [CK_BYTE; 16usize], pub pData: *mut CK_BYTE, @@ -1786,6 +1978,48 @@ impl Default for CK_CCM_PARAMS { } #[repr(C, packed)] #[derive(Debug, Copy, Clone)] +pub struct CK_CCM_WRAP_PARAMS { + pub ulDataLen: CK_ULONG, + pub pNonce: *mut CK_BYTE, + pub ulNonceLen: CK_ULONG, + pub ulNonceFixedBits: CK_ULONG, + pub nonceGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulMACLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_CCM_WRAP_PARAMS"][::std::mem::size_of::() - 40usize]; + ["Alignment of CK_CCM_WRAP_PARAMS"][::std::mem::align_of::() - 1usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulDataLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulDataLen) - 0usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pNonce"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pNonce) - 4usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceLen) - 12usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceFixedBits"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceFixedBits) - 16usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::nonceGenerator"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, nonceGenerator) - 20usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pAAD) - 24usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulAADLen) - 32usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulMACLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulMACLen) - 36usize]; +}; +impl Default for CK_CCM_WRAP_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_CHACHA20_PARAMS { pub pBlockCounter: *mut CK_BYTE, pub blockCounterBits: CK_ULONG, @@ -2178,6 +2412,45 @@ impl Default for CK_GCM_PARAMS { } #[repr(C, packed)] #[derive(Debug, Copy, Clone)] +pub struct CK_GCM_WRAP_PARAMS { + pub pIv: *mut CK_BYTE, + pub ulIvLen: CK_ULONG, + pub ulIvFixedBits: CK_ULONG, + pub ivGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulTagBits: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_GCM_WRAP_PARAMS"][::std::mem::size_of::() - 36usize]; + ["Alignment of CK_GCM_WRAP_PARAMS"][::std::mem::align_of::() - 1usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pIv"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pIv) - 0usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvLen) - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvFixedBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvFixedBits) - 12usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ivGenerator"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ivGenerator) - 16usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pAAD) - 20usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulAADLen) - 28usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulTagBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulTagBits) - 32usize]; +}; +impl Default for CK_GCM_WRAP_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_GOSTR3410_DERIVE_PARAMS { pub kdf: CK_EC_KDF_TYPE, pub pPublicData: *mut CK_BYTE, @@ -2248,6 +2521,38 @@ impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS { } #[repr(C, packed)] #[derive(Debug, Copy, Clone)] +pub struct CK_HASH_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, + pub hash: CK_MECHANISM_TYPE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 20usize]; + ["Alignment of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 1usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, pContext) - 4usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 12usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hash"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hash) - 16usize]; +}; +impl Default for CK_HASH_SIGN_ADDITIONAL_CONTEXT { + 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_HKDF_PARAMS { pub bExtract: CK_BBOOL, pub bExpand: CK_BBOOL, @@ -3097,6 +3402,35 @@ impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C, packed)] #[derive(Debug, Copy, Clone)] +pub struct CK_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 16usize]; + ["Alignment of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 1usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, pContext) - 4usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 12usize]; +}; +impl Default for CK_SIGN_ADDITIONAL_CONTEXT { + 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_SKIPJACK_PRIVATE_WRAP_PARAMS { pub ulPasswordLen: CK_ULONG, pub pPassword: *mut CK_BYTE, @@ -3295,6 +3629,42 @@ impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS { } #[repr(C, packed)] #[derive(Debug, Copy, Clone)] +pub struct CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS { + pub prfHashMechanism: CK_MECHANISM_TYPE, + pub pSessionHash: *mut CK_BYTE, + pub ulSessionHashLen: CK_ULONG, + pub pVersion: *mut CK_VERSION, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::size_of::() - 24usize]; + ["Alignment of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::align_of::() - 1usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::prfHashMechanism"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + prfHashMechanism + ) - 0usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pSessionHash"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pSessionHash) - 4usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::ulSessionHashLen"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + ulSessionHashLen + ) - 12usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pVersion"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pVersion) - 16usize]; +}; +impl Default for CK_TLS12_EXTENDED_MASTER_KEY_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_SP800_108_KDF_PARAMS { pub prfType: CK_SP800_108_PRF_TYPE, pub ulNumberOfDataParams: CK_ULONG, @@ -3636,24 +4006,6 @@ 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; @@ -4725,6 +5077,427 @@ pub type CK_C_VerifyMessageNext = ::std::option::Option< >; pub type CK_C_MessageVerifyFinal = ::std::option::Option CK_RV>; +pub type CK_C_EncapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_DecapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_VerifySignatureInit = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_VerifySignature = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureUpdate = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureFinal = + ::std::option::Option CK_RV>; +pub type CK_C_GetSessionValidationFlags = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, +>; +pub type CK_C_AsyncComplete = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, +>; +pub type CK_C_AsyncGetID = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_AsyncJoin = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_WrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_UnwrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +#[repr(C, packed)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CK_FUNCTION_LIST_3_2 { + pub version: CK_VERSION, + pub C_Initialize: CK_C_Initialize, + pub C_Finalize: CK_C_Finalize, + pub C_GetInfo: CK_C_GetInfo, + pub C_GetFunctionList: CK_C_GetFunctionList, + pub C_GetSlotList: CK_C_GetSlotList, + pub C_GetSlotInfo: CK_C_GetSlotInfo, + pub C_GetTokenInfo: CK_C_GetTokenInfo, + pub C_GetMechanismList: CK_C_GetMechanismList, + pub C_GetMechanismInfo: CK_C_GetMechanismInfo, + pub C_InitToken: CK_C_InitToken, + pub C_InitPIN: CK_C_InitPIN, + pub C_SetPIN: CK_C_SetPIN, + pub C_OpenSession: CK_C_OpenSession, + pub C_CloseSession: CK_C_CloseSession, + pub C_CloseAllSessions: CK_C_CloseAllSessions, + pub C_GetSessionInfo: CK_C_GetSessionInfo, + pub C_GetOperationState: CK_C_GetOperationState, + pub C_SetOperationState: CK_C_SetOperationState, + pub C_Login: CK_C_Login, + pub C_Logout: CK_C_Logout, + pub C_CreateObject: CK_C_CreateObject, + pub C_CopyObject: CK_C_CopyObject, + pub C_DestroyObject: CK_C_DestroyObject, + pub C_GetObjectSize: CK_C_GetObjectSize, + pub C_GetAttributeValue: CK_C_GetAttributeValue, + pub C_SetAttributeValue: CK_C_SetAttributeValue, + pub C_FindObjectsInit: CK_C_FindObjectsInit, + pub C_FindObjects: CK_C_FindObjects, + pub C_FindObjectsFinal: CK_C_FindObjectsFinal, + pub C_EncryptInit: CK_C_EncryptInit, + pub C_Encrypt: CK_C_Encrypt, + pub C_EncryptUpdate: CK_C_EncryptUpdate, + pub C_EncryptFinal: CK_C_EncryptFinal, + pub C_DecryptInit: CK_C_DecryptInit, + pub C_Decrypt: CK_C_Decrypt, + pub C_DecryptUpdate: CK_C_DecryptUpdate, + pub C_DecryptFinal: CK_C_DecryptFinal, + pub C_DigestInit: CK_C_DigestInit, + pub C_Digest: CK_C_Digest, + pub C_DigestUpdate: CK_C_DigestUpdate, + pub C_DigestKey: CK_C_DigestKey, + pub C_DigestFinal: CK_C_DigestFinal, + pub C_SignInit: CK_C_SignInit, + pub C_Sign: CK_C_Sign, + pub C_SignUpdate: CK_C_SignUpdate, + pub C_SignFinal: CK_C_SignFinal, + pub C_SignRecoverInit: CK_C_SignRecoverInit, + pub C_SignRecover: CK_C_SignRecover, + pub C_VerifyInit: CK_C_VerifyInit, + pub C_Verify: CK_C_Verify, + pub C_VerifyUpdate: CK_C_VerifyUpdate, + pub C_VerifyFinal: CK_C_VerifyFinal, + pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, + pub C_VerifyRecover: CK_C_VerifyRecover, + pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, + pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, + pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, + pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, + pub C_GenerateKey: CK_C_GenerateKey, + pub C_GenerateKeyPair: CK_C_GenerateKeyPair, + pub C_WrapKey: CK_C_WrapKey, + pub C_UnwrapKey: CK_C_UnwrapKey, + pub C_DeriveKey: CK_C_DeriveKey, + pub C_SeedRandom: CK_C_SeedRandom, + pub C_GenerateRandom: CK_C_GenerateRandom, + pub C_GetFunctionStatus: CK_C_GetFunctionStatus, + pub C_CancelFunction: CK_C_CancelFunction, + pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, + pub C_GetInterfaceList: CK_C_GetInterfaceList, + pub C_GetInterface: CK_C_GetInterface, + pub C_LoginUser: CK_C_LoginUser, + pub C_SessionCancel: CK_C_SessionCancel, + pub C_MessageEncryptInit: CK_C_MessageEncryptInit, + pub C_EncryptMessage: CK_C_EncryptMessage, + pub C_EncryptMessageBegin: CK_C_EncryptMessageBegin, + pub C_EncryptMessageNext: CK_C_EncryptMessageNext, + pub C_MessageEncryptFinal: CK_C_MessageEncryptFinal, + pub C_MessageDecryptInit: CK_C_MessageDecryptInit, + pub C_DecryptMessage: CK_C_DecryptMessage, + pub C_DecryptMessageBegin: CK_C_DecryptMessageBegin, + pub C_DecryptMessageNext: CK_C_DecryptMessageNext, + pub C_MessageDecryptFinal: CK_C_MessageDecryptFinal, + pub C_MessageSignInit: CK_C_MessageSignInit, + pub C_SignMessage: CK_C_SignMessage, + pub C_SignMessageBegin: CK_C_SignMessageBegin, + pub C_SignMessageNext: CK_C_SignMessageNext, + pub C_MessageSignFinal: CK_C_MessageSignFinal, + pub C_MessageVerifyInit: CK_C_MessageVerifyInit, + pub C_VerifyMessage: CK_C_VerifyMessage, + pub C_VerifyMessageBegin: CK_C_VerifyMessageBegin, + pub C_VerifyMessageNext: CK_C_VerifyMessageNext, + pub C_MessageVerifyFinal: CK_C_MessageVerifyFinal, + pub C_EncapsulateKey: CK_C_EncapsulateKey, + pub C_DecapsulateKey: CK_C_DecapsulateKey, + pub C_VerifySignatureInit: CK_C_VerifySignatureInit, + pub C_VerifySignature: CK_C_VerifySignature, + pub C_VerifySignatureUpdate: CK_C_VerifySignatureUpdate, + pub C_VerifySignatureFinal: CK_C_VerifySignatureFinal, + pub C_GetSessionValidationFlags: CK_C_GetSessionValidationFlags, + pub C_AsyncComplete: CK_C_AsyncComplete, + pub C_AsyncGetID: CK_C_AsyncGetID, + pub C_AsyncJoin: CK_C_AsyncJoin, + pub C_WrapKeyAuthenticated: CK_C_WrapKeyAuthenticated, + pub C_UnwrapKeyAuthenticated: CK_C_UnwrapKeyAuthenticated, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_FUNCTION_LIST_3_2"][::std::mem::size_of::() - 834usize]; + ["Alignment of CK_FUNCTION_LIST_3_2"][::std::mem::align_of::() - 1usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::version"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, version) - 0usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Initialize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Initialize) - 2usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Finalize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Finalize) - 10usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInfo) - 18usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionList) - 26usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotList) - 34usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotInfo) - 42usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetTokenInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetTokenInfo) - 50usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismList) - 58usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismInfo) - 66usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitToken"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitToken) - 74usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitPIN) - 82usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetPIN) - 90usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_OpenSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_OpenSession) - 98usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseSession) - 106usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseAllSessions"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseAllSessions) - 114usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionInfo) - 122usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetOperationState) - 130usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetOperationState) - 138usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Login"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Login) - 146usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Logout"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Logout) - 154usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CreateObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CreateObject) - 162usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CopyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CopyObject) - 170usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DestroyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DestroyObject) - 178usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetObjectSize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetObjectSize) - 186usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetAttributeValue) - 194usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetAttributeValue) - 202usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsInit) - 210usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjects"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjects) - 218usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsFinal) - 226usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptInit) - 234usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Encrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Encrypt) - 242usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptUpdate) - 250usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptFinal) - 258usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptInit) - 266usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Decrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Decrypt) - 274usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptUpdate) - 282usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptFinal) - 290usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestInit) - 298usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Digest"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Digest) - 306usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestUpdate) - 314usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestKey) - 322usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestFinal) - 330usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignInit) - 338usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Sign"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Sign) - 346usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignUpdate) - 354usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignFinal) - 362usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecoverInit) - 370usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecover) - 378usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyInit) - 386usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Verify"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Verify) - 394usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyUpdate) - 402usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyFinal) - 410usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecoverInit) - 418usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecover) - 426usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestEncryptUpdate) - 434usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptDigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptDigestUpdate) - 442usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignEncryptUpdate) - 450usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptVerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptVerifyUpdate) - 458usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKey) - 466usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKeyPair"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKeyPair) - 474usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKey) - 482usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKey) - 490usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DeriveKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DeriveKey) - 498usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SeedRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SeedRandom) - 506usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateRandom) - 514usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionStatus"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionStatus) - 522usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CancelFunction"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CancelFunction) - 530usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WaitForSlotEvent"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WaitForSlotEvent) - 538usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterfaceList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterfaceList) - 546usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterface"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterface) - 554usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_LoginUser"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_LoginUser) - 562usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SessionCancel"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SessionCancel) - 570usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptInit) - 578usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessage) - 586usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageBegin) - 594usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageNext) - 602usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptFinal) - 610usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptInit) - 618usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessage) - 626usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageBegin) - 634usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageNext) - 642usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptFinal) - 650usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignInit) - 658usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessage) - 666usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageBegin) - 674usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageNext) - 682usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignFinal) - 690usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyInit) - 698usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessage) - 706usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageBegin) - 714usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageNext) - 722usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyFinal) - 730usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncapsulateKey) - 738usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecapsulateKey) - 746usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureInit) - 754usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignature"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignature) - 762usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureUpdate) - 770usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureFinal) - 778usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionValidationFlags"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionValidationFlags) - 786usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncComplete"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncComplete) - 794usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncGetID"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncGetID) - 802usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncJoin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncJoin) - 810usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKeyAuthenticated) - 818usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKeyAuthenticated) - 826usize]; +}; #[repr(C, packed)] #[derive(Debug, Default, Copy, Clone)] pub struct CK_FUNCTION_LIST_3_0 { @@ -5932,6 +6705,114 @@ pub struct Pkcs11 { >, pub C_MessageVerifyFinal: Result CK_RV, ::libloading::Error>, + pub C_EncapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_DecapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureInit: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignature: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureUpdate: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureFinal: + Result CK_RV, ::libloading::Error>, + pub C_GetSessionValidationFlags: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncComplete: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncGetID: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncJoin: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_WrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_UnwrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result @@ -6038,6 +6919,20 @@ impl Pkcs11 { let C_VerifyMessageBegin = __library.get(b"C_VerifyMessageBegin\0").map(|sym| *sym); let C_VerifyMessageNext = __library.get(b"C_VerifyMessageNext\0").map(|sym| *sym); let C_MessageVerifyFinal = __library.get(b"C_MessageVerifyFinal\0").map(|sym| *sym); + let C_EncapsulateKey = __library.get(b"C_EncapsulateKey\0").map(|sym| *sym); + let C_DecapsulateKey = __library.get(b"C_DecapsulateKey\0").map(|sym| *sym); + let C_VerifySignatureInit = __library.get(b"C_VerifySignatureInit\0").map(|sym| *sym); + let C_VerifySignature = __library.get(b"C_VerifySignature\0").map(|sym| *sym); + let C_VerifySignatureUpdate = __library.get(b"C_VerifySignatureUpdate\0").map(|sym| *sym); + let C_VerifySignatureFinal = __library.get(b"C_VerifySignatureFinal\0").map(|sym| *sym); + let C_GetSessionValidationFlags = __library + .get(b"C_GetSessionValidationFlags\0") + .map(|sym| *sym); + let C_AsyncComplete = __library.get(b"C_AsyncComplete\0").map(|sym| *sym); + let C_AsyncGetID = __library.get(b"C_AsyncGetID\0").map(|sym| *sym); + let C_AsyncJoin = __library.get(b"C_AsyncJoin\0").map(|sym| *sym); + let C_WrapKeyAuthenticated = __library.get(b"C_WrapKeyAuthenticated\0").map(|sym| *sym); + let C_UnwrapKeyAuthenticated = __library.get(b"C_UnwrapKeyAuthenticated\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, @@ -6132,6 +7027,18 @@ impl Pkcs11 { C_VerifyMessageBegin, C_VerifyMessageNext, C_MessageVerifyFinal, + C_EncapsulateKey, + C_DecapsulateKey, + C_VerifySignatureInit, + C_VerifySignature, + C_VerifySignatureUpdate, + C_VerifySignatureFinal, + C_GetSessionValidationFlags, + C_AsyncComplete, + C_AsyncGetID, + C_AsyncJoin, + C_WrapKeyAuthenticated, + C_UnwrapKeyAuthenticated, }) } pub unsafe fn C_Initialize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV { @@ -7161,4 +8068,165 @@ impl Pkcs11 { .as_ref() .expect("Expected function, got error."))(arg1) } + pub unsafe fn C_EncapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_EncapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_DecapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_DecapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_VerifySignatureInit( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureInit + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_VerifySignature( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignature + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureUpdate( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureUpdate + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV { + (self + .C_VerifySignatureFinal + .as_ref() + .expect("Expected function, got error."))(arg1) + } + pub unsafe fn C_GetSessionValidationFlags( + &self, + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV { + (self + .C_GetSessionValidationFlags + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncComplete( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV { + (self + .C_AsyncComplete + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncGetID( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncGetID + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncJoin( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncJoin + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_WrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_WrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_UnwrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_UnwrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, + ) + } } diff --git a/cryptoki-sys/src/bindings/x86_64-unknown-freebsd.rs b/cryptoki-sys/src/bindings/x86_64-unknown-freebsd.rs index 3b594e91..be845490 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 */ +/* automatically generated by rust-bindgen 0.71.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -35,6 +35,7 @@ pub const CK_SP800_108_OPTIONAL_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_DKM_LENGTH: CK_ULONG = 3; pub const CK_SP800_108_BYTE_ARRAY: CK_ULONG = 4; +pub const CK_SP800_108_KEY_HANDLE: CK_ULONG = 5; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS: CK_ULONG = 1; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS: CK_ULONG = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; @@ -162,6 +163,33 @@ 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_PARAMETER_SET: CK_ATTRIBUTE_TYPE = 1565; +pub const CKA_OBJECT_VALIDATION_FLAGS: CK_ATTRIBUTE_TYPE = 1566; +pub const CKA_VALIDATION_TYPE: CK_ATTRIBUTE_TYPE = 1567; +pub const CKA_VALIDATION_VERSION: CK_ATTRIBUTE_TYPE = 1568; +pub const CKA_VALIDATION_LEVEL: CK_ATTRIBUTE_TYPE = 1569; +pub const CKA_VALIDATION_MODULE_ID: CK_ATTRIBUTE_TYPE = 1570; +pub const CKA_VALIDATION_FLAG: CK_ATTRIBUTE_TYPE = 1571; +pub const CKA_VALIDATION_AUTHORITY_TYPE: CK_ATTRIBUTE_TYPE = 1572; +pub const CKA_VALIDATION_COUNTRY: CK_ATTRIBUTE_TYPE = 1573; +pub const CKA_VALIDATION_CERTIFICATE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 1574; +pub const CKA_VALIDATION_CERTIFICATE_URI: CK_ATTRIBUTE_TYPE = 1575; +pub const CKA_VALIDATION_VENDOR_URI: CK_ATTRIBUTE_TYPE = 1576; +pub const CKA_VALIDATION_PROFILE: CK_ATTRIBUTE_TYPE = 1577; +pub const CKA_ENCAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1578; +pub const CKA_DECAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1579; +pub const CKA_TRUST_SERVER_AUTH: CK_ATTRIBUTE_TYPE = 1580; +pub const CKA_TRUST_CLIENT_AUTH: CK_ATTRIBUTE_TYPE = 1581; +pub const CKA_TRUST_CODE_SIGNING: CK_ATTRIBUTE_TYPE = 1582; +pub const CKA_TRUST_EMAIL_PROTECTION: CK_ATTRIBUTE_TYPE = 1583; +pub const CKA_TRUST_IPSEC_IKE: CK_ATTRIBUTE_TYPE = 1584; +pub const CKA_TRUST_TIME_STAMPING: CK_ATTRIBUTE_TYPE = 1585; +pub const CKA_TRUST_OCSP_SIGNING: CK_ATTRIBUTE_TYPE = 1586; +pub const CKA_ENCAPSULATE: CK_ATTRIBUTE_TYPE = 1587; +pub const CKA_DECAPSULATE: CK_ATTRIBUTE_TYPE = 1588; +pub const CKA_HASH_OF_CERTIFICATE: CK_ATTRIBUTE_TYPE = 1589; +pub const CKA_PUBLIC_CRC64_VALUE: CK_ATTRIBUTE_TYPE = 1590; +pub const CKA_SEED: CK_ATTRIBUTE_TYPE = 1591; 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; @@ -234,6 +262,8 @@ pub const CKF_EC_OID: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_EC_CURVENAME: CK_FLAGS = 67108864; +pub const CKF_ENCAPSULATE: CK_FLAGS = 268435456; +pub const CKF_DECAPSULATE: CK_FLAGS = 536870912; pub const CKF_EXTENSION: CK_FLAGS = 2147483648; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1; @@ -246,6 +276,7 @@ pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; +pub const CKF_ASYNC_SESSION: CK_FLAGS = 8; pub const CKF_TOKEN_PRESENT: CK_FLAGS = 1; pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2; pub const CKF_HW_SLOT: CK_FLAGS = 4; @@ -268,6 +299,8 @@ pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; +pub const CKF_SEED_RANDOM_REQUIRED: CK_FLAGS = 33554432; +pub const CKF_ASYNC_SESSION_SUPPORTED: CK_FLAGS = 67108864; 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; @@ -286,6 +319,9 @@ pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKH_VENDOR_DEFINED: CK_HW_FEATURE_TYPE = 2147483648; +pub const CKH_HEDGE_PREFERRED: CK_HW_FEATURE_TYPE = 0; +pub const CKH_HEDGE_REQUIRED: CK_HW_FEATURE_TYPE = 1; +pub const CKH_DETERMINISTIC_REQUIRED: CK_HW_FEATURE_TYPE = 2; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; @@ -347,6 +383,11 @@ 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_XMSS: CK_KEY_TYPE = 71; +pub const CKK_XMSSMT: CK_KEY_TYPE = 72; +pub const CKK_ML_KEM: CK_KEY_TYPE = 73; +pub const CKK_ML_DSA: CK_KEY_TYPE = 74; +pub const CKK_SLH_DSA: CK_KEY_TYPE = 75; 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; @@ -365,6 +406,7 @@ pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; +pub const CKM_ML_KEM_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 15; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; @@ -372,16 +414,43 @@ pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; +pub const CKM_ML_KEM: CK_MECHANISM_TYPE = 23; pub const CKM_DSA_SHA3_224: CK_MECHANISM_TYPE = 24; pub const CKM_DSA_SHA3_256: CK_MECHANISM_TYPE = 25; pub const CKM_DSA_SHA3_384: CK_MECHANISM_TYPE = 26; pub const CKM_DSA_SHA3_512: CK_MECHANISM_TYPE = 27; +pub const CKM_ML_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 28; +pub const CKM_ML_DSA: CK_MECHANISM_TYPE = 29; +pub const CKM_HASH_ML_DSA: CK_MECHANISM_TYPE = 31; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; +pub const CKM_HASH_ML_DSA_SHA224: CK_MECHANISM_TYPE = 35; +pub const CKM_HASH_ML_DSA_SHA256: CK_MECHANISM_TYPE = 36; +pub const CKM_HASH_ML_DSA_SHA384: CK_MECHANISM_TYPE = 37; +pub const CKM_HASH_ML_DSA_SHA512: CK_MECHANISM_TYPE = 38; +pub const CKM_HASH_ML_DSA_SHA3_224: CK_MECHANISM_TYPE = 39; +pub const CKM_HASH_ML_DSA_SHA3_256: CK_MECHANISM_TYPE = 40; +pub const CKM_HASH_ML_DSA_SHA3_384: CK_MECHANISM_TYPE = 41; +pub const CKM_HASH_ML_DSA_SHA3_512: CK_MECHANISM_TYPE = 42; +pub const CKM_HASH_ML_DSA_SHAKE128: CK_MECHANISM_TYPE = 43; +pub const CKM_HASH_ML_DSA_SHAKE256: CK_MECHANISM_TYPE = 44; +pub const CKM_SLH_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 45; +pub const CKM_SLH_DSA: CK_MECHANISM_TYPE = 46; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; +pub const CKM_HASH_SLH_DSA: CK_MECHANISM_TYPE = 52; +pub const CKM_HASH_SLH_DSA_SHA224: CK_MECHANISM_TYPE = 54; +pub const CKM_HASH_SLH_DSA_SHA256: CK_MECHANISM_TYPE = 55; +pub const CKM_HASH_SLH_DSA_SHA384: CK_MECHANISM_TYPE = 56; +pub const CKM_HASH_SLH_DSA_SHA512: CK_MECHANISM_TYPE = 57; +pub const CKM_HASH_SLH_DSA_SHA3_224: CK_MECHANISM_TYPE = 58; +pub const CKM_HASH_SLH_DSA_SHA3_256: CK_MECHANISM_TYPE = 59; +pub const CKM_HASH_SLH_DSA_SHA3_384: CK_MECHANISM_TYPE = 60; +pub const CKM_HASH_SLH_DSA_SHA3_512: CK_MECHANISM_TYPE = 61; +pub const CKM_HASH_SLH_DSA_SHAKE128: CK_MECHANISM_TYPE = 62; +pub const CKM_HASH_SLH_DSA_SHAKE256: CK_MECHANISM_TYPE = 63; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; @@ -402,6 +471,8 @@ pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 86; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 87; pub const CKM_SHA3_256_RSA_PKCS: CK_MECHANISM_TYPE = 96; pub const CKM_SHA3_384_RSA_PKCS: CK_MECHANISM_TYPE = 97; pub const CKM_SHA3_512_RSA_PKCS: CK_MECHANISM_TYPE = 98; @@ -505,7 +576,6 @@ pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; -pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; @@ -711,7 +781,6 @@ pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABILISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; -pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_DSA_FIPS_G_GEN: CK_MECHANISM_TYPE = 8197; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; @@ -784,8 +853,16 @@ 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_XMSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16436; +pub const CKM_XMSSMT_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16437; +pub const CKM_XMSS: CK_MECHANISM_TYPE = 16438; +pub const CKM_XMSSMT: CK_MECHANISM_TYPE = 16439; +pub const CKM_ECDH_X_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16440; +pub const CKM_ECDH_COF_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16441; +pub const CKM_PUB_KEY_FROM_PRIV_KEY: CK_MECHANISM_TYPE = 16442; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; +pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; @@ -793,6 +870,7 @@ pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; +pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKN_SURRENDER: CK_NOTIFICATION = 0; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKO_DATA: CK_OBJECT_CLASS = 0; @@ -805,6 +883,8 @@ pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKO_PROFILE: CK_OBJECT_CLASS = 9; +pub const CKO_VALIDATION: CK_OBJECT_CLASS = 10; +pub const CKO_TRUST: CK_OBJECT_CLASS = 11; pub const CKO_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648; pub const CKP_INVALID_ID: CK_PROFILE_ID = 0; pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; @@ -822,6 +902,24 @@ pub const CKP_PKCS5_PBKD2_HMAC_SHA384: CK_PROFILE_ID = 5; pub const CKP_PKCS5_PBKD2_HMAC_SHA512: CK_PROFILE_ID = 6; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_224: CK_PROFILE_ID = 7; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_256: CK_PROFILE_ID = 8; +pub const CKP_ML_DSA_44: CK_PROFILE_ID = 1; +pub const CKP_ML_DSA_65: CK_PROFILE_ID = 2; +pub const CKP_ML_DSA_87: CK_PROFILE_ID = 3; +pub const CKP_ML_KEM_512: CK_PROFILE_ID = 1; +pub const CKP_ML_KEM_768: CK_PROFILE_ID = 2; +pub const CKP_ML_KEM_1024: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHA2_128S: CK_PROFILE_ID = 1; +pub const CKP_SLH_DSA_SHAKE_128S: CK_PROFILE_ID = 2; +pub const CKP_SLH_DSA_SHA2_128F: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHAKE_128F: CK_PROFILE_ID = 4; +pub const CKP_SLH_DSA_SHA2_192S: CK_PROFILE_ID = 5; +pub const CKP_SLH_DSA_SHAKE_192S: CK_PROFILE_ID = 6; +pub const CKP_SLH_DSA_SHA2_192F: CK_PROFILE_ID = 7; +pub const CKP_SLH_DSA_SHAKE_192F: CK_PROFILE_ID = 8; +pub const CKP_SLH_DSA_SHA2_256S: CK_PROFILE_ID = 9; +pub const CKP_SLH_DSA_SHAKE_256S: CK_PROFILE_ID = 10; +pub const CKP_SLH_DSA_SHA2_256F: CK_PROFILE_ID = 11; +pub const CKP_SLH_DSA_SHAKE_256F: CK_PROFILE_ID = 12; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; @@ -920,15 +1018,35 @@ 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_PENDING: CK_RV = 516; +pub const CKR_SESSION_ASYNC_NOT_SUPPORTED: CK_RV = 517; +pub const CKR_SEED_RANDOM_REQUIRED: CK_RV = 518; +pub const CKR_OPERATION_NOT_VALIDATED: CK_RV = 519; +pub const CKR_TOKEN_NOT_INITIALIZED: CK_RV = 520; +pub const CKR_PARAMETER_SET_NOT_SUPPORTED: CK_RV = 521; 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; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; +pub const CKS_LAST_VALIDATION_OK: CK_STATE = 1; +pub const CKT_TRUST_UNKNOWN: u32 = 0; +pub const CKT_TRUSTED: u32 = 1; +pub const CKT_TRUST_ANCHOR: u32 = 2; +pub const CKT_NOT_TRUSTED: u32 = 3; +pub const CKT_TRUST_MUST_VERIFY_TRUST: u32 = 4; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; +pub const CKV_AUTHORITY_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_AUTHORITY_TYPE_NIST_CMVP: u32 = 1; +pub const CKV_AUTHORITY_TYPE_COMMON_CRITERIA: u32 = 2; +pub const CKV_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_TYPE_SOFTWARE: u32 = 1; +pub const CKV_TYPE_HARDWARE: u32 = 2; +pub const CKV_TYPE_FIRMWARE: u32 = 3; +pub const CKV_TYPE_HYBRID: u32 = 4; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CKZ_SALT_SPECIFIED: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = 1; pub type CK_BBOOL = ::std::os::raw::c_uchar; @@ -957,6 +1075,8 @@ 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_HEDGE_TYPE = CK_ULONG; +pub type CK_HEDGE_TYPE_PTR = *mut CK_HEDGE_TYPE; 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; @@ -973,6 +1093,10 @@ 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; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; +pub type CK_ML_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_ML_DSA_PARAMETER_SET_TYPE; +pub type CK_ML_KEM_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_KEM_PARAMETER_SET_TYPE_PTR = *mut CK_ML_KEM_PARAMETER_SET_TYPE; pub type CK_NOTIFICATION = CK_ULONG; pub type CK_NOTIFICATION_PTR = *mut CK_NOTIFICATION; pub type CK_OBJECT_CLASS = CK_ULONG; @@ -1000,14 +1124,24 @@ pub type CK_RV = CK_ULONG; pub type CK_RV_PTR = *mut CK_RV; pub type CK_SESSION_HANDLE = CK_ULONG; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE = CK_ULONG; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE_PTR = *mut CK_SESSION_VALIDATION_FLAGS_TYPE; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_SLH_DSA_PARAMETER_SET_TYPE; pub type CK_SLOT_ID = CK_ULONG; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SP800_108_DKM_LENGTH_METHOD = CK_ULONG; pub type CK_SP800_108_DKM_LENGTH_METHOD_PTR = *mut CK_SP800_108_DKM_LENGTH_METHOD; pub type CK_STATE = CK_ULONG; pub type CK_STATE_PTR = *mut CK_STATE; +pub type CK_TRUST = CK_ULONG; +pub type CK_TRUST_PTR = *mut CK_TRUST; pub type CK_USER_TYPE = CK_ULONG; pub type CK_USER_TYPE_PTR = *mut CK_USER_TYPE; +pub type CK_VALIDATION_AUTHORITY_TYPE = CK_ULONG; +pub type CK_VALIDATION_AUTHORITY_TYPE_PTR = *mut CK_VALIDATION_AUTHORITY_TYPE; +pub type CK_VALIDATION_TYPE = CK_ULONG; +pub type CK_VALIDATION_TYPE_PTR = *mut CK_VALIDATION_TYPE; pub type CK_X2RATCHET_KDF_TYPE = CK_ULONG; pub type CK_X2RATCHET_KDF_TYPE_PTR = *mut CK_X2RATCHET_KDF_TYPE; pub type CK_X3DH_KDF_TYPE = CK_ULONG; @@ -1016,6 +1150,10 @@ pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG; pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE; pub type CK_XEDDSA_HASH_TYPE = CK_ULONG; pub type CK_XEDDSA_HASH_TYPE_PTR = *mut CK_XEDDSA_HASH_TYPE; +pub type CK_XMSSMT_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSSMT_PARAMETER_SET_TYPE_PTR = *mut CK_XMSSMT_PARAMETER_SET_TYPE; +pub type CK_XMSS_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSS_PARAMETER_SET_TYPE_PTR = *mut CK_XMSS_PARAMETER_SET_TYPE; pub type CK_ATTRIBUTE_PTR = *mut CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR_PTR = *mut *mut CK_ATTRIBUTE; pub type CK_C_INITIALIZE_ARGS_PTR = *mut CK_C_INITIALIZE_ARGS; @@ -1028,6 +1166,8 @@ pub type CK_FUNCTION_LIST_PTR = *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_3_0_PTR = *mut CK_FUNCTION_LIST_3_0; pub type CK_FUNCTION_LIST_3_0_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_0; +pub type CK_FUNCTION_LIST_3_2_PTR = *mut CK_FUNCTION_LIST_3_2; +pub type CK_FUNCTION_LIST_3_2_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_2; pub type CK_INFO_PTR = *mut CK_INFO; pub type CK_INFO_PTR_PTR = *mut *mut CK_INFO; pub type CK_INTERFACE_PTR = *mut CK_INTERFACE; @@ -1202,7 +1342,7 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_INTERFACE { - pub pInterfaceName: *mut CK_CHAR, + pub pInterfaceName: *mut CK_UTF8CHAR, pub pFunctionList: *mut ::std::os::raw::c_void, pub flags: CK_FLAGS, } @@ -1396,6 +1536,8 @@ pub type CK_AES_GCM_PARAMS_PTR = *mut CK_AES_GCM_PARAMS; pub type CK_AES_GCM_PARAMS_PTR_PTR = *mut *mut CK_AES_GCM_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_ASYNC_DATA_PTR = *mut CK_ASYNC_DATA; +pub type CK_ASYNC_DATA_PTR_PTR = *mut *mut CK_ASYNC_DATA; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; @@ -1405,6 +1547,8 @@ pub type CK_CCM_MESSAGE_PARAMS_PTR = *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_PARAMS_PTR = *mut CK_CCM_PARAMS; pub type CK_CCM_PARAMS_PTR_PTR = *mut *mut CK_CCM_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR = *mut CK_CCM_WRAP_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_CCM_WRAP_PARAMS; pub type CK_CHACHA20_PARAMS_PTR = *mut CK_CHACHA20_PARAMS; pub type CK_CHACHA20_PARAMS_PTR_PTR = *mut *mut CK_CHACHA20_PARAMS; pub type CK_CMS_SIG_PARAMS_PTR = *mut CK_CMS_SIG_PARAMS; @@ -1427,10 +1571,14 @@ pub type CK_GCM_MESSAGE_PARAMS_PTR = *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_PARAMS_PTR = *mut CK_GCM_PARAMS; pub type CK_GCM_PARAMS_PTR_PTR = *mut *mut CK_GCM_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR = *mut CK_GCM_WRAP_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GCM_WRAP_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR = *mut CK_GOSTR3410_DERIVE_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_DERIVE_PARAMS; 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_HASH_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; +pub type CK_HASH_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; 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; @@ -1489,6 +1637,8 @@ pub type CK_SALSA20_PARAMS_PTR = *mut CK_SALSA20_PARAMS; pub type CK_SALSA20_PARAMS_PTR_PTR = *mut *mut CK_SALSA20_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_SIGN_ADDITIONAL_CONTEXT; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_SIGN_ADDITIONAL_CONTEXT; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR = *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR_PTR = *mut *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_RELAYX_PARAMS_PTR = *mut CK_SKIPJACK_RELAYX_PARAMS; @@ -1501,6 +1651,10 @@ pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_P pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_FEEDBACK_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR = *mut CK_SP800_108_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_KDF_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR = + *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = + *mut *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR = *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR_PTR = *mut *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_RESPOND_PARAMS_PTR = *mut CK_X2RATCHET_RESPOND_PARAMS; @@ -1517,6 +1671,11 @@ 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)] @@ -1666,6 +1825,39 @@ impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_ASYNC_DATA { + pub ulVersion: CK_ULONG, + pub pValue: *mut CK_BYTE, + pub ulValue: CK_ULONG, + pub hObject: CK_OBJECT_HANDLE, + pub hAdditionalObject: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_ASYNC_DATA"][::std::mem::size_of::() - 40usize]; + ["Alignment of CK_ASYNC_DATA"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulVersion"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulVersion) - 0usize]; + ["Offset of field: CK_ASYNC_DATA::pValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, pValue) - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulValue) - 16usize]; + ["Offset of field: CK_ASYNC_DATA::hObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hObject) - 24usize]; + ["Offset of field: CK_ASYNC_DATA::hAdditionalObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hAdditionalObject) - 32usize]; +}; +impl Default for CK_ASYNC_DATA { + 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_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS { pub iv: [CK_BYTE; 16usize], pub pData: *mut CK_BYTE, @@ -1786,6 +1978,48 @@ impl Default for CK_CCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_CCM_WRAP_PARAMS { + pub ulDataLen: CK_ULONG, + pub pNonce: *mut CK_BYTE, + pub ulNonceLen: CK_ULONG, + pub ulNonceFixedBits: CK_ULONG, + pub nonceGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulMACLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_CCM_WRAP_PARAMS"][::std::mem::size_of::() - 64usize]; + ["Alignment of CK_CCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulDataLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulDataLen) - 0usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pNonce"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pNonce) - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceLen) - 16usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceFixedBits"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceFixedBits) - 24usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::nonceGenerator"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, nonceGenerator) - 32usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pAAD) - 40usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulAADLen) - 48usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulMACLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulMACLen) - 56usize]; +}; +impl Default for CK_CCM_WRAP_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_CHACHA20_PARAMS { pub pBlockCounter: *mut CK_BYTE, pub blockCounterBits: CK_ULONG, @@ -2178,6 +2412,45 @@ impl Default for CK_GCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_GCM_WRAP_PARAMS { + pub pIv: *mut CK_BYTE, + pub ulIvLen: CK_ULONG, + pub ulIvFixedBits: CK_ULONG, + pub ivGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulTagBits: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_GCM_WRAP_PARAMS"][::std::mem::size_of::() - 56usize]; + ["Alignment of CK_GCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pIv"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pIv) - 0usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvLen) - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvFixedBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvFixedBits) - 16usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ivGenerator"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ivGenerator) - 24usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pAAD) - 32usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulAADLen) - 40usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulTagBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulTagBits) - 48usize]; +}; +impl Default for CK_GCM_WRAP_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_GOSTR3410_DERIVE_PARAMS { pub kdf: CK_EC_KDF_TYPE, pub pPublicData: *mut CK_BYTE, @@ -2248,6 +2521,38 @@ impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_HASH_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, + pub hash: CK_MECHANISM_TYPE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hash"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hash) - 24usize]; +}; +impl Default for CK_HASH_SIGN_ADDITIONAL_CONTEXT { + 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_HKDF_PARAMS { pub bExtract: CK_BBOOL, pub bExpand: CK_BBOOL, @@ -3097,6 +3402,35 @@ impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 24usize]; + ["Alignment of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; +}; +impl Default for CK_SIGN_ADDITIONAL_CONTEXT { + 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_SKIPJACK_PRIVATE_WRAP_PARAMS { pub ulPasswordLen: CK_ULONG, pub pPassword: *mut CK_BYTE, @@ -3295,6 +3629,42 @@ impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS { + pub prfHashMechanism: CK_MECHANISM_TYPE, + pub pSessionHash: *mut CK_BYTE, + pub ulSessionHashLen: CK_ULONG, + pub pVersion: *mut CK_VERSION, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::prfHashMechanism"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + prfHashMechanism + ) - 0usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pSessionHash"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pSessionHash) - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::ulSessionHashLen"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + ulSessionHashLen + ) - 16usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pVersion"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pVersion) - 24usize]; +}; +impl Default for CK_TLS12_EXTENDED_MASTER_KEY_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_SP800_108_KDF_PARAMS { pub prfType: CK_SP800_108_PRF_TYPE, pub ulNumberOfDataParams: CK_ULONG, @@ -3636,24 +4006,6 @@ 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; @@ -4725,6 +5077,427 @@ pub type CK_C_VerifyMessageNext = ::std::option::Option< >; pub type CK_C_MessageVerifyFinal = ::std::option::Option CK_RV>; +pub type CK_C_EncapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_DecapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_VerifySignatureInit = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_VerifySignature = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureUpdate = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureFinal = + ::std::option::Option CK_RV>; +pub type CK_C_GetSessionValidationFlags = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, +>; +pub type CK_C_AsyncComplete = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, +>; +pub type CK_C_AsyncGetID = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_AsyncJoin = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_WrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_UnwrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CK_FUNCTION_LIST_3_2 { + pub version: CK_VERSION, + pub C_Initialize: CK_C_Initialize, + pub C_Finalize: CK_C_Finalize, + pub C_GetInfo: CK_C_GetInfo, + pub C_GetFunctionList: CK_C_GetFunctionList, + pub C_GetSlotList: CK_C_GetSlotList, + pub C_GetSlotInfo: CK_C_GetSlotInfo, + pub C_GetTokenInfo: CK_C_GetTokenInfo, + pub C_GetMechanismList: CK_C_GetMechanismList, + pub C_GetMechanismInfo: CK_C_GetMechanismInfo, + pub C_InitToken: CK_C_InitToken, + pub C_InitPIN: CK_C_InitPIN, + pub C_SetPIN: CK_C_SetPIN, + pub C_OpenSession: CK_C_OpenSession, + pub C_CloseSession: CK_C_CloseSession, + pub C_CloseAllSessions: CK_C_CloseAllSessions, + pub C_GetSessionInfo: CK_C_GetSessionInfo, + pub C_GetOperationState: CK_C_GetOperationState, + pub C_SetOperationState: CK_C_SetOperationState, + pub C_Login: CK_C_Login, + pub C_Logout: CK_C_Logout, + pub C_CreateObject: CK_C_CreateObject, + pub C_CopyObject: CK_C_CopyObject, + pub C_DestroyObject: CK_C_DestroyObject, + pub C_GetObjectSize: CK_C_GetObjectSize, + pub C_GetAttributeValue: CK_C_GetAttributeValue, + pub C_SetAttributeValue: CK_C_SetAttributeValue, + pub C_FindObjectsInit: CK_C_FindObjectsInit, + pub C_FindObjects: CK_C_FindObjects, + pub C_FindObjectsFinal: CK_C_FindObjectsFinal, + pub C_EncryptInit: CK_C_EncryptInit, + pub C_Encrypt: CK_C_Encrypt, + pub C_EncryptUpdate: CK_C_EncryptUpdate, + pub C_EncryptFinal: CK_C_EncryptFinal, + pub C_DecryptInit: CK_C_DecryptInit, + pub C_Decrypt: CK_C_Decrypt, + pub C_DecryptUpdate: CK_C_DecryptUpdate, + pub C_DecryptFinal: CK_C_DecryptFinal, + pub C_DigestInit: CK_C_DigestInit, + pub C_Digest: CK_C_Digest, + pub C_DigestUpdate: CK_C_DigestUpdate, + pub C_DigestKey: CK_C_DigestKey, + pub C_DigestFinal: CK_C_DigestFinal, + pub C_SignInit: CK_C_SignInit, + pub C_Sign: CK_C_Sign, + pub C_SignUpdate: CK_C_SignUpdate, + pub C_SignFinal: CK_C_SignFinal, + pub C_SignRecoverInit: CK_C_SignRecoverInit, + pub C_SignRecover: CK_C_SignRecover, + pub C_VerifyInit: CK_C_VerifyInit, + pub C_Verify: CK_C_Verify, + pub C_VerifyUpdate: CK_C_VerifyUpdate, + pub C_VerifyFinal: CK_C_VerifyFinal, + pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, + pub C_VerifyRecover: CK_C_VerifyRecover, + pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, + pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, + pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, + pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, + pub C_GenerateKey: CK_C_GenerateKey, + pub C_GenerateKeyPair: CK_C_GenerateKeyPair, + pub C_WrapKey: CK_C_WrapKey, + pub C_UnwrapKey: CK_C_UnwrapKey, + pub C_DeriveKey: CK_C_DeriveKey, + pub C_SeedRandom: CK_C_SeedRandom, + pub C_GenerateRandom: CK_C_GenerateRandom, + pub C_GetFunctionStatus: CK_C_GetFunctionStatus, + pub C_CancelFunction: CK_C_CancelFunction, + pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, + pub C_GetInterfaceList: CK_C_GetInterfaceList, + pub C_GetInterface: CK_C_GetInterface, + pub C_LoginUser: CK_C_LoginUser, + pub C_SessionCancel: CK_C_SessionCancel, + pub C_MessageEncryptInit: CK_C_MessageEncryptInit, + pub C_EncryptMessage: CK_C_EncryptMessage, + pub C_EncryptMessageBegin: CK_C_EncryptMessageBegin, + pub C_EncryptMessageNext: CK_C_EncryptMessageNext, + pub C_MessageEncryptFinal: CK_C_MessageEncryptFinal, + pub C_MessageDecryptInit: CK_C_MessageDecryptInit, + pub C_DecryptMessage: CK_C_DecryptMessage, + pub C_DecryptMessageBegin: CK_C_DecryptMessageBegin, + pub C_DecryptMessageNext: CK_C_DecryptMessageNext, + pub C_MessageDecryptFinal: CK_C_MessageDecryptFinal, + pub C_MessageSignInit: CK_C_MessageSignInit, + pub C_SignMessage: CK_C_SignMessage, + pub C_SignMessageBegin: CK_C_SignMessageBegin, + pub C_SignMessageNext: CK_C_SignMessageNext, + pub C_MessageSignFinal: CK_C_MessageSignFinal, + pub C_MessageVerifyInit: CK_C_MessageVerifyInit, + pub C_VerifyMessage: CK_C_VerifyMessage, + pub C_VerifyMessageBegin: CK_C_VerifyMessageBegin, + pub C_VerifyMessageNext: CK_C_VerifyMessageNext, + pub C_MessageVerifyFinal: CK_C_MessageVerifyFinal, + pub C_EncapsulateKey: CK_C_EncapsulateKey, + pub C_DecapsulateKey: CK_C_DecapsulateKey, + pub C_VerifySignatureInit: CK_C_VerifySignatureInit, + pub C_VerifySignature: CK_C_VerifySignature, + pub C_VerifySignatureUpdate: CK_C_VerifySignatureUpdate, + pub C_VerifySignatureFinal: CK_C_VerifySignatureFinal, + pub C_GetSessionValidationFlags: CK_C_GetSessionValidationFlags, + pub C_AsyncComplete: CK_C_AsyncComplete, + pub C_AsyncGetID: CK_C_AsyncGetID, + pub C_AsyncJoin: CK_C_AsyncJoin, + pub C_WrapKeyAuthenticated: CK_C_WrapKeyAuthenticated, + pub C_UnwrapKeyAuthenticated: CK_C_UnwrapKeyAuthenticated, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_FUNCTION_LIST_3_2"][::std::mem::size_of::() - 840usize]; + ["Alignment of CK_FUNCTION_LIST_3_2"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::version"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, version) - 0usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Initialize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Initialize) - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Finalize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Finalize) - 16usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInfo) - 24usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionList) - 32usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotList) - 40usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotInfo) - 48usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetTokenInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetTokenInfo) - 56usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismList) - 64usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismInfo) - 72usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitToken"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitToken) - 80usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitPIN) - 88usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetPIN) - 96usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_OpenSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_OpenSession) - 104usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseSession) - 112usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseAllSessions"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseAllSessions) - 120usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionInfo) - 128usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetOperationState) - 136usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetOperationState) - 144usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Login"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Login) - 152usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Logout"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Logout) - 160usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CreateObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CreateObject) - 168usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CopyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CopyObject) - 176usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DestroyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DestroyObject) - 184usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetObjectSize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetObjectSize) - 192usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetAttributeValue) - 200usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetAttributeValue) - 208usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsInit) - 216usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjects"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjects) - 224usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsFinal) - 232usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptInit) - 240usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Encrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Encrypt) - 248usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptUpdate) - 256usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptFinal) - 264usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptInit) - 272usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Decrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Decrypt) - 280usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptUpdate) - 288usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptFinal) - 296usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestInit) - 304usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Digest"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Digest) - 312usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestUpdate) - 320usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestKey) - 328usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestFinal) - 336usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignInit) - 344usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Sign"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Sign) - 352usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignUpdate) - 360usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignFinal) - 368usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecoverInit) - 376usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecover) - 384usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyInit) - 392usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Verify"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Verify) - 400usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyUpdate) - 408usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyFinal) - 416usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecoverInit) - 424usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecover) - 432usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestEncryptUpdate) - 440usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptDigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptDigestUpdate) - 448usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignEncryptUpdate) - 456usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptVerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptVerifyUpdate) - 464usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKey) - 472usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKeyPair"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKeyPair) - 480usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKey) - 488usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKey) - 496usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DeriveKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DeriveKey) - 504usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SeedRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SeedRandom) - 512usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateRandom) - 520usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionStatus"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionStatus) - 528usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CancelFunction"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CancelFunction) - 536usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WaitForSlotEvent"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WaitForSlotEvent) - 544usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterfaceList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterfaceList) - 552usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterface"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterface) - 560usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_LoginUser"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_LoginUser) - 568usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SessionCancel"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SessionCancel) - 576usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptInit) - 584usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessage) - 592usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageBegin) - 600usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageNext) - 608usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptFinal) - 616usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptInit) - 624usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessage) - 632usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageBegin) - 640usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageNext) - 648usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptFinal) - 656usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignInit) - 664usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessage) - 672usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageBegin) - 680usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageNext) - 688usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignFinal) - 696usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyInit) - 704usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessage) - 712usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageBegin) - 720usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageNext) - 728usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyFinal) - 736usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncapsulateKey) - 744usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecapsulateKey) - 752usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureInit) - 760usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignature"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignature) - 768usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureUpdate) - 776usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureFinal) - 784usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionValidationFlags"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionValidationFlags) - 792usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncComplete"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncComplete) - 800usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncGetID"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncGetID) - 808usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncJoin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncJoin) - 816usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKeyAuthenticated) - 824usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKeyAuthenticated) - 832usize]; +}; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct CK_FUNCTION_LIST_3_0 { @@ -5932,6 +6705,114 @@ pub struct Pkcs11 { >, pub C_MessageVerifyFinal: Result CK_RV, ::libloading::Error>, + pub C_EncapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_DecapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureInit: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignature: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureUpdate: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureFinal: + Result CK_RV, ::libloading::Error>, + pub C_GetSessionValidationFlags: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncComplete: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncGetID: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncJoin: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_WrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_UnwrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result @@ -6038,6 +6919,20 @@ impl Pkcs11 { let C_VerifyMessageBegin = __library.get(b"C_VerifyMessageBegin\0").map(|sym| *sym); let C_VerifyMessageNext = __library.get(b"C_VerifyMessageNext\0").map(|sym| *sym); let C_MessageVerifyFinal = __library.get(b"C_MessageVerifyFinal\0").map(|sym| *sym); + let C_EncapsulateKey = __library.get(b"C_EncapsulateKey\0").map(|sym| *sym); + let C_DecapsulateKey = __library.get(b"C_DecapsulateKey\0").map(|sym| *sym); + let C_VerifySignatureInit = __library.get(b"C_VerifySignatureInit\0").map(|sym| *sym); + let C_VerifySignature = __library.get(b"C_VerifySignature\0").map(|sym| *sym); + let C_VerifySignatureUpdate = __library.get(b"C_VerifySignatureUpdate\0").map(|sym| *sym); + let C_VerifySignatureFinal = __library.get(b"C_VerifySignatureFinal\0").map(|sym| *sym); + let C_GetSessionValidationFlags = __library + .get(b"C_GetSessionValidationFlags\0") + .map(|sym| *sym); + let C_AsyncComplete = __library.get(b"C_AsyncComplete\0").map(|sym| *sym); + let C_AsyncGetID = __library.get(b"C_AsyncGetID\0").map(|sym| *sym); + let C_AsyncJoin = __library.get(b"C_AsyncJoin\0").map(|sym| *sym); + let C_WrapKeyAuthenticated = __library.get(b"C_WrapKeyAuthenticated\0").map(|sym| *sym); + let C_UnwrapKeyAuthenticated = __library.get(b"C_UnwrapKeyAuthenticated\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, @@ -6132,6 +7027,18 @@ impl Pkcs11 { C_VerifyMessageBegin, C_VerifyMessageNext, C_MessageVerifyFinal, + C_EncapsulateKey, + C_DecapsulateKey, + C_VerifySignatureInit, + C_VerifySignature, + C_VerifySignatureUpdate, + C_VerifySignatureFinal, + C_GetSessionValidationFlags, + C_AsyncComplete, + C_AsyncGetID, + C_AsyncJoin, + C_WrapKeyAuthenticated, + C_UnwrapKeyAuthenticated, }) } pub unsafe fn C_Initialize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV { @@ -7161,4 +8068,165 @@ impl Pkcs11 { .as_ref() .expect("Expected function, got error."))(arg1) } + pub unsafe fn C_EncapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_EncapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_DecapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_DecapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_VerifySignatureInit( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureInit + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_VerifySignature( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignature + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureUpdate( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureUpdate + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV { + (self + .C_VerifySignatureFinal + .as_ref() + .expect("Expected function, got error."))(arg1) + } + pub unsafe fn C_GetSessionValidationFlags( + &self, + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV { + (self + .C_GetSessionValidationFlags + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncComplete( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV { + (self + .C_AsyncComplete + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncGetID( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncGetID + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncJoin( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncJoin + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_WrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_WrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_UnwrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_UnwrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, + ) + } } 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 3b594e91..be845490 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 */ +/* automatically generated by rust-bindgen 0.71.1 */ pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3; -pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1; +pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; @@ -35,6 +35,7 @@ pub const CK_SP800_108_OPTIONAL_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_COUNTER: CK_ULONG = 2; pub const CK_SP800_108_DKM_LENGTH: CK_ULONG = 3; pub const CK_SP800_108_BYTE_ARRAY: CK_ULONG = 4; +pub const CK_SP800_108_KEY_HANDLE: CK_ULONG = 5; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS: CK_ULONG = 1; pub const CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS: CK_ULONG = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; @@ -162,6 +163,33 @@ 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_PARAMETER_SET: CK_ATTRIBUTE_TYPE = 1565; +pub const CKA_OBJECT_VALIDATION_FLAGS: CK_ATTRIBUTE_TYPE = 1566; +pub const CKA_VALIDATION_TYPE: CK_ATTRIBUTE_TYPE = 1567; +pub const CKA_VALIDATION_VERSION: CK_ATTRIBUTE_TYPE = 1568; +pub const CKA_VALIDATION_LEVEL: CK_ATTRIBUTE_TYPE = 1569; +pub const CKA_VALIDATION_MODULE_ID: CK_ATTRIBUTE_TYPE = 1570; +pub const CKA_VALIDATION_FLAG: CK_ATTRIBUTE_TYPE = 1571; +pub const CKA_VALIDATION_AUTHORITY_TYPE: CK_ATTRIBUTE_TYPE = 1572; +pub const CKA_VALIDATION_COUNTRY: CK_ATTRIBUTE_TYPE = 1573; +pub const CKA_VALIDATION_CERTIFICATE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 1574; +pub const CKA_VALIDATION_CERTIFICATE_URI: CK_ATTRIBUTE_TYPE = 1575; +pub const CKA_VALIDATION_VENDOR_URI: CK_ATTRIBUTE_TYPE = 1576; +pub const CKA_VALIDATION_PROFILE: CK_ATTRIBUTE_TYPE = 1577; +pub const CKA_ENCAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1578; +pub const CKA_DECAPSULATE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1579; +pub const CKA_TRUST_SERVER_AUTH: CK_ATTRIBUTE_TYPE = 1580; +pub const CKA_TRUST_CLIENT_AUTH: CK_ATTRIBUTE_TYPE = 1581; +pub const CKA_TRUST_CODE_SIGNING: CK_ATTRIBUTE_TYPE = 1582; +pub const CKA_TRUST_EMAIL_PROTECTION: CK_ATTRIBUTE_TYPE = 1583; +pub const CKA_TRUST_IPSEC_IKE: CK_ATTRIBUTE_TYPE = 1584; +pub const CKA_TRUST_TIME_STAMPING: CK_ATTRIBUTE_TYPE = 1585; +pub const CKA_TRUST_OCSP_SIGNING: CK_ATTRIBUTE_TYPE = 1586; +pub const CKA_ENCAPSULATE: CK_ATTRIBUTE_TYPE = 1587; +pub const CKA_DECAPSULATE: CK_ATTRIBUTE_TYPE = 1588; +pub const CKA_HASH_OF_CERTIFICATE: CK_ATTRIBUTE_TYPE = 1589; +pub const CKA_PUBLIC_CRC64_VALUE: CK_ATTRIBUTE_TYPE = 1590; +pub const CKA_SEED: CK_ATTRIBUTE_TYPE = 1591; 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; @@ -234,6 +262,8 @@ pub const CKF_EC_OID: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_EC_CURVENAME: CK_FLAGS = 67108864; +pub const CKF_ENCAPSULATE: CK_FLAGS = 268435456; +pub const CKF_DECAPSULATE: CK_FLAGS = 536870912; pub const CKF_EXTENSION: CK_FLAGS = 2147483648; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1; @@ -246,6 +276,7 @@ pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; +pub const CKF_ASYNC_SESSION: CK_FLAGS = 8; pub const CKF_TOKEN_PRESENT: CK_FLAGS = 1; pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2; pub const CKF_HW_SLOT: CK_FLAGS = 4; @@ -268,6 +299,8 @@ pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; +pub const CKF_SEED_RANDOM_REQUIRED: CK_FLAGS = 33554432; +pub const CKF_ASYNC_SESSION_SUPPORTED: CK_FLAGS = 67108864; 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; @@ -286,6 +319,9 @@ pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKH_VENDOR_DEFINED: CK_HW_FEATURE_TYPE = 2147483648; +pub const CKH_HEDGE_PREFERRED: CK_HW_FEATURE_TYPE = 0; +pub const CKH_HEDGE_REQUIRED: CK_HW_FEATURE_TYPE = 1; +pub const CKH_DETERMINISTIC_REQUIRED: CK_HW_FEATURE_TYPE = 2; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; @@ -347,6 +383,11 @@ 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_XMSS: CK_KEY_TYPE = 71; +pub const CKK_XMSSMT: CK_KEY_TYPE = 72; +pub const CKK_ML_KEM: CK_KEY_TYPE = 73; +pub const CKK_ML_DSA: CK_KEY_TYPE = 74; +pub const CKK_SLH_DSA: CK_KEY_TYPE = 75; 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; @@ -365,6 +406,7 @@ pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; +pub const CKM_ML_KEM_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 15; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; @@ -372,16 +414,43 @@ pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; +pub const CKM_ML_KEM: CK_MECHANISM_TYPE = 23; pub const CKM_DSA_SHA3_224: CK_MECHANISM_TYPE = 24; pub const CKM_DSA_SHA3_256: CK_MECHANISM_TYPE = 25; pub const CKM_DSA_SHA3_384: CK_MECHANISM_TYPE = 26; pub const CKM_DSA_SHA3_512: CK_MECHANISM_TYPE = 27; +pub const CKM_ML_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 28; +pub const CKM_ML_DSA: CK_MECHANISM_TYPE = 29; +pub const CKM_HASH_ML_DSA: CK_MECHANISM_TYPE = 31; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; +pub const CKM_HASH_ML_DSA_SHA224: CK_MECHANISM_TYPE = 35; +pub const CKM_HASH_ML_DSA_SHA256: CK_MECHANISM_TYPE = 36; +pub const CKM_HASH_ML_DSA_SHA384: CK_MECHANISM_TYPE = 37; +pub const CKM_HASH_ML_DSA_SHA512: CK_MECHANISM_TYPE = 38; +pub const CKM_HASH_ML_DSA_SHA3_224: CK_MECHANISM_TYPE = 39; +pub const CKM_HASH_ML_DSA_SHA3_256: CK_MECHANISM_TYPE = 40; +pub const CKM_HASH_ML_DSA_SHA3_384: CK_MECHANISM_TYPE = 41; +pub const CKM_HASH_ML_DSA_SHA3_512: CK_MECHANISM_TYPE = 42; +pub const CKM_HASH_ML_DSA_SHAKE128: CK_MECHANISM_TYPE = 43; +pub const CKM_HASH_ML_DSA_SHAKE256: CK_MECHANISM_TYPE = 44; +pub const CKM_SLH_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 45; +pub const CKM_SLH_DSA: CK_MECHANISM_TYPE = 46; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; +pub const CKM_HASH_SLH_DSA: CK_MECHANISM_TYPE = 52; +pub const CKM_HASH_SLH_DSA_SHA224: CK_MECHANISM_TYPE = 54; +pub const CKM_HASH_SLH_DSA_SHA256: CK_MECHANISM_TYPE = 55; +pub const CKM_HASH_SLH_DSA_SHA384: CK_MECHANISM_TYPE = 56; +pub const CKM_HASH_SLH_DSA_SHA512: CK_MECHANISM_TYPE = 57; +pub const CKM_HASH_SLH_DSA_SHA3_224: CK_MECHANISM_TYPE = 58; +pub const CKM_HASH_SLH_DSA_SHA3_256: CK_MECHANISM_TYPE = 59; +pub const CKM_HASH_SLH_DSA_SHA3_384: CK_MECHANISM_TYPE = 60; +pub const CKM_HASH_SLH_DSA_SHA3_512: CK_MECHANISM_TYPE = 61; +pub const CKM_HASH_SLH_DSA_SHAKE128: CK_MECHANISM_TYPE = 62; +pub const CKM_HASH_SLH_DSA_SHAKE256: CK_MECHANISM_TYPE = 63; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; @@ -402,6 +471,8 @@ pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 86; +pub const CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 87; pub const CKM_SHA3_256_RSA_PKCS: CK_MECHANISM_TYPE = 96; pub const CKM_SHA3_384_RSA_PKCS: CK_MECHANISM_TYPE = 97; pub const CKM_SHA3_512_RSA_PKCS: CK_MECHANISM_TYPE = 98; @@ -505,7 +576,6 @@ pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; -pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; @@ -711,7 +781,6 @@ pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABILISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; -pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_DSA_FIPS_G_GEN: CK_MECHANISM_TYPE = 8197; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; @@ -784,8 +853,16 @@ 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_XMSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16436; +pub const CKM_XMSSMT_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16437; +pub const CKM_XMSS: CK_MECHANISM_TYPE = 16438; +pub const CKM_XMSSMT: CK_MECHANISM_TYPE = 16439; +pub const CKM_ECDH_X_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16440; +pub const CKM_ECDH_COF_AES_KEY_WRAP: CK_MECHANISM_TYPE = 16441; +pub const CKM_PUB_KEY_FROM_PRIV_KEY: CK_MECHANISM_TYPE = 16442; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; +pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; @@ -793,6 +870,7 @@ pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; +pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKN_SURRENDER: CK_NOTIFICATION = 0; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKO_DATA: CK_OBJECT_CLASS = 0; @@ -805,6 +883,8 @@ pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKO_PROFILE: CK_OBJECT_CLASS = 9; +pub const CKO_VALIDATION: CK_OBJECT_CLASS = 10; +pub const CKO_TRUST: CK_OBJECT_CLASS = 11; pub const CKO_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648; pub const CKP_INVALID_ID: CK_PROFILE_ID = 0; pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1; @@ -822,6 +902,24 @@ pub const CKP_PKCS5_PBKD2_HMAC_SHA384: CK_PROFILE_ID = 5; pub const CKP_PKCS5_PBKD2_HMAC_SHA512: CK_PROFILE_ID = 6; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_224: CK_PROFILE_ID = 7; pub const CKP_PKCS5_PBKD2_HMAC_SHA512_256: CK_PROFILE_ID = 8; +pub const CKP_ML_DSA_44: CK_PROFILE_ID = 1; +pub const CKP_ML_DSA_65: CK_PROFILE_ID = 2; +pub const CKP_ML_DSA_87: CK_PROFILE_ID = 3; +pub const CKP_ML_KEM_512: CK_PROFILE_ID = 1; +pub const CKP_ML_KEM_768: CK_PROFILE_ID = 2; +pub const CKP_ML_KEM_1024: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHA2_128S: CK_PROFILE_ID = 1; +pub const CKP_SLH_DSA_SHAKE_128S: CK_PROFILE_ID = 2; +pub const CKP_SLH_DSA_SHA2_128F: CK_PROFILE_ID = 3; +pub const CKP_SLH_DSA_SHAKE_128F: CK_PROFILE_ID = 4; +pub const CKP_SLH_DSA_SHA2_192S: CK_PROFILE_ID = 5; +pub const CKP_SLH_DSA_SHAKE_192S: CK_PROFILE_ID = 6; +pub const CKP_SLH_DSA_SHA2_192F: CK_PROFILE_ID = 7; +pub const CKP_SLH_DSA_SHAKE_192F: CK_PROFILE_ID = 8; +pub const CKP_SLH_DSA_SHA2_256S: CK_PROFILE_ID = 9; +pub const CKP_SLH_DSA_SHAKE_256S: CK_PROFILE_ID = 10; +pub const CKP_SLH_DSA_SHA2_256F: CK_PROFILE_ID = 11; +pub const CKP_SLH_DSA_SHAKE_256F: CK_PROFILE_ID = 12; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; @@ -920,15 +1018,35 @@ 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_PENDING: CK_RV = 516; +pub const CKR_SESSION_ASYNC_NOT_SUPPORTED: CK_RV = 517; +pub const CKR_SEED_RANDOM_REQUIRED: CK_RV = 518; +pub const CKR_OPERATION_NOT_VALIDATED: CK_RV = 519; +pub const CKR_TOKEN_NOT_INITIALIZED: CK_RV = 520; +pub const CKR_PARAMETER_SET_NOT_SUPPORTED: CK_RV = 521; 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; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; +pub const CKS_LAST_VALIDATION_OK: CK_STATE = 1; +pub const CKT_TRUST_UNKNOWN: u32 = 0; +pub const CKT_TRUSTED: u32 = 1; +pub const CKT_TRUST_ANCHOR: u32 = 2; +pub const CKT_NOT_TRUSTED: u32 = 3; +pub const CKT_TRUST_MUST_VERIFY_TRUST: u32 = 4; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; +pub const CKV_AUTHORITY_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_AUTHORITY_TYPE_NIST_CMVP: u32 = 1; +pub const CKV_AUTHORITY_TYPE_COMMON_CRITERIA: u32 = 2; +pub const CKV_TYPE_UNSPECIFIED: u32 = 0; +pub const CKV_TYPE_SOFTWARE: u32 = 1; +pub const CKV_TYPE_HARDWARE: u32 = 2; +pub const CKV_TYPE_FIRMWARE: u32 = 3; +pub const CKV_TYPE_HYBRID: u32 = 4; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CKZ_SALT_SPECIFIED: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = 1; pub type CK_BBOOL = ::std::os::raw::c_uchar; @@ -957,6 +1075,8 @@ 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_HEDGE_TYPE = CK_ULONG; +pub type CK_HEDGE_TYPE_PTR = *mut CK_HEDGE_TYPE; 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; @@ -973,6 +1093,10 @@ 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; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; +pub type CK_ML_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_ML_DSA_PARAMETER_SET_TYPE; +pub type CK_ML_KEM_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_ML_KEM_PARAMETER_SET_TYPE_PTR = *mut CK_ML_KEM_PARAMETER_SET_TYPE; pub type CK_NOTIFICATION = CK_ULONG; pub type CK_NOTIFICATION_PTR = *mut CK_NOTIFICATION; pub type CK_OBJECT_CLASS = CK_ULONG; @@ -1000,14 +1124,24 @@ pub type CK_RV = CK_ULONG; pub type CK_RV_PTR = *mut CK_RV; pub type CK_SESSION_HANDLE = CK_ULONG; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE = CK_ULONG; +pub type CK_SESSION_VALIDATION_FLAGS_TYPE_PTR = *mut CK_SESSION_VALIDATION_FLAGS_TYPE; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_SLH_DSA_PARAMETER_SET_TYPE_PTR = *mut CK_SLH_DSA_PARAMETER_SET_TYPE; pub type CK_SLOT_ID = CK_ULONG; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SP800_108_DKM_LENGTH_METHOD = CK_ULONG; pub type CK_SP800_108_DKM_LENGTH_METHOD_PTR = *mut CK_SP800_108_DKM_LENGTH_METHOD; pub type CK_STATE = CK_ULONG; pub type CK_STATE_PTR = *mut CK_STATE; +pub type CK_TRUST = CK_ULONG; +pub type CK_TRUST_PTR = *mut CK_TRUST; pub type CK_USER_TYPE = CK_ULONG; pub type CK_USER_TYPE_PTR = *mut CK_USER_TYPE; +pub type CK_VALIDATION_AUTHORITY_TYPE = CK_ULONG; +pub type CK_VALIDATION_AUTHORITY_TYPE_PTR = *mut CK_VALIDATION_AUTHORITY_TYPE; +pub type CK_VALIDATION_TYPE = CK_ULONG; +pub type CK_VALIDATION_TYPE_PTR = *mut CK_VALIDATION_TYPE; pub type CK_X2RATCHET_KDF_TYPE = CK_ULONG; pub type CK_X2RATCHET_KDF_TYPE_PTR = *mut CK_X2RATCHET_KDF_TYPE; pub type CK_X3DH_KDF_TYPE = CK_ULONG; @@ -1016,6 +1150,10 @@ pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG; pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE; pub type CK_XEDDSA_HASH_TYPE = CK_ULONG; pub type CK_XEDDSA_HASH_TYPE_PTR = *mut CK_XEDDSA_HASH_TYPE; +pub type CK_XMSSMT_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSSMT_PARAMETER_SET_TYPE_PTR = *mut CK_XMSSMT_PARAMETER_SET_TYPE; +pub type CK_XMSS_PARAMETER_SET_TYPE = CK_ULONG; +pub type CK_XMSS_PARAMETER_SET_TYPE_PTR = *mut CK_XMSS_PARAMETER_SET_TYPE; pub type CK_ATTRIBUTE_PTR = *mut CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR_PTR = *mut *mut CK_ATTRIBUTE; pub type CK_C_INITIALIZE_ARGS_PTR = *mut CK_C_INITIALIZE_ARGS; @@ -1028,6 +1166,8 @@ pub type CK_FUNCTION_LIST_PTR = *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_3_0_PTR = *mut CK_FUNCTION_LIST_3_0; pub type CK_FUNCTION_LIST_3_0_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_0; +pub type CK_FUNCTION_LIST_3_2_PTR = *mut CK_FUNCTION_LIST_3_2; +pub type CK_FUNCTION_LIST_3_2_PTR_PTR = *mut *mut CK_FUNCTION_LIST_3_2; pub type CK_INFO_PTR = *mut CK_INFO; pub type CK_INFO_PTR_PTR = *mut *mut CK_INFO; pub type CK_INTERFACE_PTR = *mut CK_INTERFACE; @@ -1202,7 +1342,7 @@ const _: () = { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_INTERFACE { - pub pInterfaceName: *mut CK_CHAR, + pub pInterfaceName: *mut CK_UTF8CHAR, pub pFunctionList: *mut ::std::os::raw::c_void, pub flags: CK_FLAGS, } @@ -1396,6 +1536,8 @@ pub type CK_AES_GCM_PARAMS_PTR = *mut CK_AES_GCM_PARAMS; pub type CK_AES_GCM_PARAMS_PTR_PTR = *mut *mut CK_AES_GCM_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_ASYNC_DATA_PTR = *mut CK_ASYNC_DATA; +pub type CK_ASYNC_DATA_PTR_PTR = *mut *mut CK_ASYNC_DATA; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS; @@ -1405,6 +1547,8 @@ pub type CK_CCM_MESSAGE_PARAMS_PTR = *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_CCM_MESSAGE_PARAMS; pub type CK_CCM_PARAMS_PTR = *mut CK_CCM_PARAMS; pub type CK_CCM_PARAMS_PTR_PTR = *mut *mut CK_CCM_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR = *mut CK_CCM_WRAP_PARAMS; +pub type CK_CCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_CCM_WRAP_PARAMS; pub type CK_CHACHA20_PARAMS_PTR = *mut CK_CHACHA20_PARAMS; pub type CK_CHACHA20_PARAMS_PTR_PTR = *mut *mut CK_CHACHA20_PARAMS; pub type CK_CMS_SIG_PARAMS_PTR = *mut CK_CMS_SIG_PARAMS; @@ -1427,10 +1571,14 @@ pub type CK_GCM_MESSAGE_PARAMS_PTR = *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_MESSAGE_PARAMS_PTR_PTR = *mut *mut CK_GCM_MESSAGE_PARAMS; pub type CK_GCM_PARAMS_PTR = *mut CK_GCM_PARAMS; pub type CK_GCM_PARAMS_PTR_PTR = *mut *mut CK_GCM_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR = *mut CK_GCM_WRAP_PARAMS; +pub type CK_GCM_WRAP_PARAMS_PTR_PTR = *mut *mut CK_GCM_WRAP_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR = *mut CK_GOSTR3410_DERIVE_PARAMS; pub type CK_GOSTR3410_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_GOSTR3410_DERIVE_PARAMS; 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_HASH_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; +pub type CK_HASH_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_HASH_SIGN_ADDITIONAL_CONTEXT; 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; @@ -1489,6 +1637,8 @@ pub type CK_SALSA20_PARAMS_PTR = *mut CK_SALSA20_PARAMS; pub type CK_SALSA20_PARAMS_PTR_PTR = *mut *mut CK_SALSA20_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR = *mut CK_SIGN_ADDITIONAL_CONTEXT; +pub type CK_SIGN_ADDITIONAL_CONTEXT_PTR_PTR = *mut *mut CK_SIGN_ADDITIONAL_CONTEXT; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR = *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR_PTR = *mut *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS; pub type CK_SKIPJACK_RELAYX_PARAMS_PTR = *mut CK_SKIPJACK_RELAYX_PARAMS; @@ -1501,6 +1651,10 @@ pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_P pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_FEEDBACK_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR = *mut CK_SP800_108_KDF_PARAMS; pub type CK_SP800_108_KDF_PARAMS_PTR_PTR = *mut *mut CK_SP800_108_KDF_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR = + *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; +pub type CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = + *mut *mut CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR = *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR_PTR = *mut *mut CK_X2RATCHET_INITIALIZE_PARAMS; pub type CK_X2RATCHET_RESPOND_PARAMS_PTR = *mut CK_X2RATCHET_RESPOND_PARAMS; @@ -1517,6 +1671,11 @@ 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)] @@ -1666,6 +1825,39 @@ impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_ASYNC_DATA { + pub ulVersion: CK_ULONG, + pub pValue: *mut CK_BYTE, + pub ulValue: CK_ULONG, + pub hObject: CK_OBJECT_HANDLE, + pub hAdditionalObject: CK_OBJECT_HANDLE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_ASYNC_DATA"][::std::mem::size_of::() - 40usize]; + ["Alignment of CK_ASYNC_DATA"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulVersion"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulVersion) - 0usize]; + ["Offset of field: CK_ASYNC_DATA::pValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, pValue) - 8usize]; + ["Offset of field: CK_ASYNC_DATA::ulValue"] + [::std::mem::offset_of!(CK_ASYNC_DATA, ulValue) - 16usize]; + ["Offset of field: CK_ASYNC_DATA::hObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hObject) - 24usize]; + ["Offset of field: CK_ASYNC_DATA::hAdditionalObject"] + [::std::mem::offset_of!(CK_ASYNC_DATA, hAdditionalObject) - 32usize]; +}; +impl Default for CK_ASYNC_DATA { + 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_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS { pub iv: [CK_BYTE; 16usize], pub pData: *mut CK_BYTE, @@ -1786,6 +1978,48 @@ impl Default for CK_CCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_CCM_WRAP_PARAMS { + pub ulDataLen: CK_ULONG, + pub pNonce: *mut CK_BYTE, + pub ulNonceLen: CK_ULONG, + pub ulNonceFixedBits: CK_ULONG, + pub nonceGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulMACLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_CCM_WRAP_PARAMS"][::std::mem::size_of::() - 64usize]; + ["Alignment of CK_CCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulDataLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulDataLen) - 0usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pNonce"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pNonce) - 8usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceLen) - 16usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulNonceFixedBits"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulNonceFixedBits) - 24usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::nonceGenerator"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, nonceGenerator) - 32usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, pAAD) - 40usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulAADLen) - 48usize]; + ["Offset of field: CK_CCM_WRAP_PARAMS::ulMACLen"] + [::std::mem::offset_of!(CK_CCM_WRAP_PARAMS, ulMACLen) - 56usize]; +}; +impl Default for CK_CCM_WRAP_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_CHACHA20_PARAMS { pub pBlockCounter: *mut CK_BYTE, pub blockCounterBits: CK_ULONG, @@ -2178,6 +2412,45 @@ impl Default for CK_GCM_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_GCM_WRAP_PARAMS { + pub pIv: *mut CK_BYTE, + pub ulIvLen: CK_ULONG, + pub ulIvFixedBits: CK_ULONG, + pub ivGenerator: CK_GENERATOR_FUNCTION, + pub pAAD: *mut CK_BYTE, + pub ulAADLen: CK_ULONG, + pub ulTagBits: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_GCM_WRAP_PARAMS"][::std::mem::size_of::() - 56usize]; + ["Alignment of CK_GCM_WRAP_PARAMS"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pIv"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pIv) - 0usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvLen) - 8usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulIvFixedBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulIvFixedBits) - 16usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ivGenerator"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ivGenerator) - 24usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::pAAD"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, pAAD) - 32usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulAADLen"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulAADLen) - 40usize]; + ["Offset of field: CK_GCM_WRAP_PARAMS::ulTagBits"] + [::std::mem::offset_of!(CK_GCM_WRAP_PARAMS, ulTagBits) - 48usize]; +}; +impl Default for CK_GCM_WRAP_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_GOSTR3410_DERIVE_PARAMS { pub kdf: CK_EC_KDF_TYPE, pub pPublicData: *mut CK_BYTE, @@ -2248,6 +2521,38 @@ impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_HASH_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, + pub hash: CK_MECHANISM_TYPE, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_HASH_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; + ["Offset of field: CK_HASH_SIGN_ADDITIONAL_CONTEXT::hash"] + [::std::mem::offset_of!(CK_HASH_SIGN_ADDITIONAL_CONTEXT, hash) - 24usize]; +}; +impl Default for CK_HASH_SIGN_ADDITIONAL_CONTEXT { + 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_HKDF_PARAMS { pub bExtract: CK_BBOOL, pub bExpand: CK_BBOOL, @@ -3097,6 +3402,35 @@ impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_SIGN_ADDITIONAL_CONTEXT { + pub hedgeVariant: CK_HEDGE_TYPE, + pub pContext: *mut CK_BYTE, + pub ulContextLen: CK_ULONG, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::size_of::() - 24usize]; + ["Alignment of CK_SIGN_ADDITIONAL_CONTEXT"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::hedgeVariant"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, hedgeVariant) - 0usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::pContext"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, pContext) - 8usize]; + ["Offset of field: CK_SIGN_ADDITIONAL_CONTEXT::ulContextLen"] + [::std::mem::offset_of!(CK_SIGN_ADDITIONAL_CONTEXT, ulContextLen) - 16usize]; +}; +impl Default for CK_SIGN_ADDITIONAL_CONTEXT { + 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_SKIPJACK_PRIVATE_WRAP_PARAMS { pub ulPasswordLen: CK_ULONG, pub pPassword: *mut CK_BYTE, @@ -3295,6 +3629,42 @@ impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS { + pub prfHashMechanism: CK_MECHANISM_TYPE, + pub pSessionHash: *mut CK_BYTE, + pub ulSessionHashLen: CK_ULONG, + pub pVersion: *mut CK_VERSION, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::size_of::() - 32usize]; + ["Alignment of CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::prfHashMechanism"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + prfHashMechanism + ) - 0usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pSessionHash"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pSessionHash) - 8usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::ulSessionHashLen"][::std::mem::offset_of!( + CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, + ulSessionHashLen + ) - 16usize]; + ["Offset of field: CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS::pVersion"] + [::std::mem::offset_of!(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS, pVersion) - 24usize]; +}; +impl Default for CK_TLS12_EXTENDED_MASTER_KEY_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_SP800_108_KDF_PARAMS { pub prfType: CK_SP800_108_PRF_TYPE, pub ulNumberOfDataParams: CK_ULONG, @@ -3636,24 +4006,6 @@ 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; @@ -4725,6 +5077,427 @@ pub type CK_C_VerifyMessageNext = ::std::option::Option< >; pub type CK_C_MessageVerifyFinal = ::std::option::Option CK_RV>; +pub type CK_C_EncapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_DecapsulateKey = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +pub type CK_C_VerifySignatureInit = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_VerifySignature = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureUpdate = ::std::option::Option< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, +>; +pub type CK_C_VerifySignatureFinal = + ::std::option::Option CK_RV>; +pub type CK_C_GetSessionValidationFlags = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, +>; +pub type CK_C_AsyncComplete = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, +>; +pub type CK_C_AsyncGetID = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_AsyncJoin = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_WrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, +>; +pub type CK_C_UnwrapKeyAuthenticated = ::std::option::Option< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CK_FUNCTION_LIST_3_2 { + pub version: CK_VERSION, + pub C_Initialize: CK_C_Initialize, + pub C_Finalize: CK_C_Finalize, + pub C_GetInfo: CK_C_GetInfo, + pub C_GetFunctionList: CK_C_GetFunctionList, + pub C_GetSlotList: CK_C_GetSlotList, + pub C_GetSlotInfo: CK_C_GetSlotInfo, + pub C_GetTokenInfo: CK_C_GetTokenInfo, + pub C_GetMechanismList: CK_C_GetMechanismList, + pub C_GetMechanismInfo: CK_C_GetMechanismInfo, + pub C_InitToken: CK_C_InitToken, + pub C_InitPIN: CK_C_InitPIN, + pub C_SetPIN: CK_C_SetPIN, + pub C_OpenSession: CK_C_OpenSession, + pub C_CloseSession: CK_C_CloseSession, + pub C_CloseAllSessions: CK_C_CloseAllSessions, + pub C_GetSessionInfo: CK_C_GetSessionInfo, + pub C_GetOperationState: CK_C_GetOperationState, + pub C_SetOperationState: CK_C_SetOperationState, + pub C_Login: CK_C_Login, + pub C_Logout: CK_C_Logout, + pub C_CreateObject: CK_C_CreateObject, + pub C_CopyObject: CK_C_CopyObject, + pub C_DestroyObject: CK_C_DestroyObject, + pub C_GetObjectSize: CK_C_GetObjectSize, + pub C_GetAttributeValue: CK_C_GetAttributeValue, + pub C_SetAttributeValue: CK_C_SetAttributeValue, + pub C_FindObjectsInit: CK_C_FindObjectsInit, + pub C_FindObjects: CK_C_FindObjects, + pub C_FindObjectsFinal: CK_C_FindObjectsFinal, + pub C_EncryptInit: CK_C_EncryptInit, + pub C_Encrypt: CK_C_Encrypt, + pub C_EncryptUpdate: CK_C_EncryptUpdate, + pub C_EncryptFinal: CK_C_EncryptFinal, + pub C_DecryptInit: CK_C_DecryptInit, + pub C_Decrypt: CK_C_Decrypt, + pub C_DecryptUpdate: CK_C_DecryptUpdate, + pub C_DecryptFinal: CK_C_DecryptFinal, + pub C_DigestInit: CK_C_DigestInit, + pub C_Digest: CK_C_Digest, + pub C_DigestUpdate: CK_C_DigestUpdate, + pub C_DigestKey: CK_C_DigestKey, + pub C_DigestFinal: CK_C_DigestFinal, + pub C_SignInit: CK_C_SignInit, + pub C_Sign: CK_C_Sign, + pub C_SignUpdate: CK_C_SignUpdate, + pub C_SignFinal: CK_C_SignFinal, + pub C_SignRecoverInit: CK_C_SignRecoverInit, + pub C_SignRecover: CK_C_SignRecover, + pub C_VerifyInit: CK_C_VerifyInit, + pub C_Verify: CK_C_Verify, + pub C_VerifyUpdate: CK_C_VerifyUpdate, + pub C_VerifyFinal: CK_C_VerifyFinal, + pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, + pub C_VerifyRecover: CK_C_VerifyRecover, + pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, + pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, + pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, + pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, + pub C_GenerateKey: CK_C_GenerateKey, + pub C_GenerateKeyPair: CK_C_GenerateKeyPair, + pub C_WrapKey: CK_C_WrapKey, + pub C_UnwrapKey: CK_C_UnwrapKey, + pub C_DeriveKey: CK_C_DeriveKey, + pub C_SeedRandom: CK_C_SeedRandom, + pub C_GenerateRandom: CK_C_GenerateRandom, + pub C_GetFunctionStatus: CK_C_GetFunctionStatus, + pub C_CancelFunction: CK_C_CancelFunction, + pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, + pub C_GetInterfaceList: CK_C_GetInterfaceList, + pub C_GetInterface: CK_C_GetInterface, + pub C_LoginUser: CK_C_LoginUser, + pub C_SessionCancel: CK_C_SessionCancel, + pub C_MessageEncryptInit: CK_C_MessageEncryptInit, + pub C_EncryptMessage: CK_C_EncryptMessage, + pub C_EncryptMessageBegin: CK_C_EncryptMessageBegin, + pub C_EncryptMessageNext: CK_C_EncryptMessageNext, + pub C_MessageEncryptFinal: CK_C_MessageEncryptFinal, + pub C_MessageDecryptInit: CK_C_MessageDecryptInit, + pub C_DecryptMessage: CK_C_DecryptMessage, + pub C_DecryptMessageBegin: CK_C_DecryptMessageBegin, + pub C_DecryptMessageNext: CK_C_DecryptMessageNext, + pub C_MessageDecryptFinal: CK_C_MessageDecryptFinal, + pub C_MessageSignInit: CK_C_MessageSignInit, + pub C_SignMessage: CK_C_SignMessage, + pub C_SignMessageBegin: CK_C_SignMessageBegin, + pub C_SignMessageNext: CK_C_SignMessageNext, + pub C_MessageSignFinal: CK_C_MessageSignFinal, + pub C_MessageVerifyInit: CK_C_MessageVerifyInit, + pub C_VerifyMessage: CK_C_VerifyMessage, + pub C_VerifyMessageBegin: CK_C_VerifyMessageBegin, + pub C_VerifyMessageNext: CK_C_VerifyMessageNext, + pub C_MessageVerifyFinal: CK_C_MessageVerifyFinal, + pub C_EncapsulateKey: CK_C_EncapsulateKey, + pub C_DecapsulateKey: CK_C_DecapsulateKey, + pub C_VerifySignatureInit: CK_C_VerifySignatureInit, + pub C_VerifySignature: CK_C_VerifySignature, + pub C_VerifySignatureUpdate: CK_C_VerifySignatureUpdate, + pub C_VerifySignatureFinal: CK_C_VerifySignatureFinal, + pub C_GetSessionValidationFlags: CK_C_GetSessionValidationFlags, + pub C_AsyncComplete: CK_C_AsyncComplete, + pub C_AsyncGetID: CK_C_AsyncGetID, + pub C_AsyncJoin: CK_C_AsyncJoin, + pub C_WrapKeyAuthenticated: CK_C_WrapKeyAuthenticated, + pub C_UnwrapKeyAuthenticated: CK_C_UnwrapKeyAuthenticated, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CK_FUNCTION_LIST_3_2"][::std::mem::size_of::() - 840usize]; + ["Alignment of CK_FUNCTION_LIST_3_2"][::std::mem::align_of::() - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::version"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, version) - 0usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Initialize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Initialize) - 8usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Finalize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Finalize) - 16usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInfo) - 24usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionList) - 32usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotList) - 40usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSlotInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSlotInfo) - 48usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetTokenInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetTokenInfo) - 56usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismList) - 64usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetMechanismInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetMechanismInfo) - 72usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitToken"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitToken) - 80usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_InitPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_InitPIN) - 88usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetPIN"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetPIN) - 96usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_OpenSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_OpenSession) - 104usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseSession"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseSession) - 112usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CloseAllSessions"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CloseAllSessions) - 120usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionInfo"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionInfo) - 128usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetOperationState) - 136usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetOperationState"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetOperationState) - 144usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Login"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Login) - 152usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Logout"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Logout) - 160usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CreateObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CreateObject) - 168usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CopyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CopyObject) - 176usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DestroyObject"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DestroyObject) - 184usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetObjectSize"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetObjectSize) - 192usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetAttributeValue) - 200usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SetAttributeValue"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SetAttributeValue) - 208usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsInit) - 216usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjects"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjects) - 224usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_FindObjectsFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_FindObjectsFinal) - 232usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptInit) - 240usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Encrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Encrypt) - 248usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptUpdate) - 256usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptFinal) - 264usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptInit) - 272usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Decrypt"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Decrypt) - 280usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptUpdate) - 288usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptFinal) - 296usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestInit) - 304usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Digest"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Digest) - 312usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestUpdate) - 320usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestKey) - 328usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestFinal) - 336usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignInit) - 344usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Sign"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Sign) - 352usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignUpdate) - 360usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignFinal) - 368usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecoverInit) - 376usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignRecover) - 384usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyInit) - 392usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_Verify"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_Verify) - 400usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyUpdate) - 408usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyFinal) - 416usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecoverInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecoverInit) - 424usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyRecover"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyRecover) - 432usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DigestEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DigestEncryptUpdate) - 440usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptDigestUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptDigestUpdate) - 448usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignEncryptUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignEncryptUpdate) - 456usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptVerifyUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptVerifyUpdate) - 464usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKey) - 472usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateKeyPair"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateKeyPair) - 480usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKey) - 488usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKey) - 496usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DeriveKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DeriveKey) - 504usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SeedRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SeedRandom) - 512usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GenerateRandom"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GenerateRandom) - 520usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetFunctionStatus"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetFunctionStatus) - 528usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_CancelFunction"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_CancelFunction) - 536usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WaitForSlotEvent"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WaitForSlotEvent) - 544usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterfaceList"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterfaceList) - 552usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetInterface"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetInterface) - 560usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_LoginUser"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_LoginUser) - 568usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SessionCancel"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SessionCancel) - 576usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptInit) - 584usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessage) - 592usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageBegin) - 600usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncryptMessageNext) - 608usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageEncryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageEncryptFinal) - 616usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptInit) - 624usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessage) - 632usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageBegin) - 640usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecryptMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecryptMessageNext) - 648usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageDecryptFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageDecryptFinal) - 656usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignInit) - 664usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessage) - 672usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageBegin) - 680usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_SignMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_SignMessageNext) - 688usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageSignFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageSignFinal) - 696usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyInit) - 704usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessage"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessage) - 712usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageBegin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageBegin) - 720usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifyMessageNext"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifyMessageNext) - 728usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_MessageVerifyFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_MessageVerifyFinal) - 736usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_EncapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_EncapsulateKey) - 744usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_DecapsulateKey"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_DecapsulateKey) - 752usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureInit"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureInit) - 760usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignature"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignature) - 768usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureUpdate"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureUpdate) - 776usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_VerifySignatureFinal"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_VerifySignatureFinal) - 784usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_GetSessionValidationFlags"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_GetSessionValidationFlags) - 792usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncComplete"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncComplete) - 800usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncGetID"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncGetID) - 808usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_AsyncJoin"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_AsyncJoin) - 816usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_WrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_WrapKeyAuthenticated) - 824usize]; + ["Offset of field: CK_FUNCTION_LIST_3_2::C_UnwrapKeyAuthenticated"] + [::std::mem::offset_of!(CK_FUNCTION_LIST_3_2, C_UnwrapKeyAuthenticated) - 832usize]; +}; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct CK_FUNCTION_LIST_3_0 { @@ -5932,6 +6705,114 @@ pub struct Pkcs11 { >, pub C_MessageVerifyFinal: Result CK_RV, ::libloading::Error>, + pub C_EncapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_DecapsulateKey: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureInit: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignature: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureUpdate: Result< + unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV, + ::libloading::Error, + >, + pub C_VerifySignatureFinal: + Result CK_RV, ::libloading::Error>, + pub C_GetSessionValidationFlags: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncComplete: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncGetID: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_AsyncJoin: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_WrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV, + ::libloading::Error, + >, + pub C_UnwrapKeyAuthenticated: Result< + unsafe extern "C" fn( + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV, + ::libloading::Error, + >, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result @@ -6038,6 +6919,20 @@ impl Pkcs11 { let C_VerifyMessageBegin = __library.get(b"C_VerifyMessageBegin\0").map(|sym| *sym); let C_VerifyMessageNext = __library.get(b"C_VerifyMessageNext\0").map(|sym| *sym); let C_MessageVerifyFinal = __library.get(b"C_MessageVerifyFinal\0").map(|sym| *sym); + let C_EncapsulateKey = __library.get(b"C_EncapsulateKey\0").map(|sym| *sym); + let C_DecapsulateKey = __library.get(b"C_DecapsulateKey\0").map(|sym| *sym); + let C_VerifySignatureInit = __library.get(b"C_VerifySignatureInit\0").map(|sym| *sym); + let C_VerifySignature = __library.get(b"C_VerifySignature\0").map(|sym| *sym); + let C_VerifySignatureUpdate = __library.get(b"C_VerifySignatureUpdate\0").map(|sym| *sym); + let C_VerifySignatureFinal = __library.get(b"C_VerifySignatureFinal\0").map(|sym| *sym); + let C_GetSessionValidationFlags = __library + .get(b"C_GetSessionValidationFlags\0") + .map(|sym| *sym); + let C_AsyncComplete = __library.get(b"C_AsyncComplete\0").map(|sym| *sym); + let C_AsyncGetID = __library.get(b"C_AsyncGetID\0").map(|sym| *sym); + let C_AsyncJoin = __library.get(b"C_AsyncJoin\0").map(|sym| *sym); + let C_WrapKeyAuthenticated = __library.get(b"C_WrapKeyAuthenticated\0").map(|sym| *sym); + let C_UnwrapKeyAuthenticated = __library.get(b"C_UnwrapKeyAuthenticated\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, @@ -6132,6 +7027,18 @@ impl Pkcs11 { C_VerifyMessageBegin, C_VerifyMessageNext, C_MessageVerifyFinal, + C_EncapsulateKey, + C_DecapsulateKey, + C_VerifySignatureInit, + C_VerifySignature, + C_VerifySignatureUpdate, + C_VerifySignatureFinal, + C_GetSessionValidationFlags, + C_AsyncComplete, + C_AsyncGetID, + C_AsyncJoin, + C_WrapKeyAuthenticated, + C_UnwrapKeyAuthenticated, }) } pub unsafe fn C_Initialize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV { @@ -7161,4 +8068,165 @@ impl Pkcs11 { .as_ref() .expect("Expected function, got error."))(arg1) } + pub unsafe fn C_EncapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: *mut CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_EncapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_DecapsulateKey( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_ATTRIBUTE, + arg5: CK_ULONG, + arg6: *mut CK_BYTE, + arg7: CK_ULONG, + arg8: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_DecapsulateKey + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_VerifySignatureInit( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureInit + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_VerifySignature( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignature + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureUpdate( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_BYTE, + arg3: CK_ULONG, + ) -> CK_RV { + (self + .C_VerifySignatureUpdate + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_VerifySignatureFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV { + (self + .C_VerifySignatureFinal + .as_ref() + .expect("Expected function, got error."))(arg1) + } + pub unsafe fn C_GetSessionValidationFlags( + &self, + arg1: CK_SESSION_HANDLE, + arg2: CK_SESSION_VALIDATION_FLAGS_TYPE, + arg3: *mut CK_FLAGS, + ) -> CK_RV { + (self + .C_GetSessionValidationFlags + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncComplete( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ASYNC_DATA, + ) -> CK_RV { + (self + .C_AsyncComplete + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncGetID( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncGetID + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3) + } + pub unsafe fn C_AsyncJoin( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_UTF8CHAR, + arg3: CK_ULONG, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + ) -> CK_RV { + (self + .C_AsyncJoin + .as_ref() + .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5) + } + pub unsafe fn C_WrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: CK_OBJECT_HANDLE, + arg5: *mut CK_BYTE, + arg6: *mut CK_ULONG, + arg7: *mut CK_BYTE, + arg8: *mut CK_ULONG, + ) -> CK_RV { + (self + .C_WrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, + ) + } + pub unsafe fn C_UnwrapKeyAuthenticated( + &self, + arg1: CK_SESSION_HANDLE, + arg2: *mut CK_MECHANISM, + arg3: CK_OBJECT_HANDLE, + arg4: *mut CK_BYTE, + arg5: CK_ULONG, + arg6: *mut CK_ATTRIBUTE, + arg7: CK_ULONG, + arg8: *mut CK_BYTE, + arg9: CK_ULONG, + arg10: *mut CK_OBJECT_HANDLE, + ) -> CK_RV { + (self + .C_UnwrapKeyAuthenticated + .as_ref() + .expect("Expected function, got error."))( + arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, + ) + } } diff --git a/cryptoki-sys/src/lib.rs b/cryptoki-sys/src/lib.rs index 45b97ab4..384b286f 100644 --- a/cryptoki-sys/src/lib.rs +++ b/cryptoki-sys/src/lib.rs @@ -7,6 +7,8 @@ #![allow(clippy::missing_safety_doc)] #![allow(clippy::string_lit_as_bytes)] #![allow(clippy::too_many_arguments)] +// Public items exportedby this crate should match the C API +#![allow(clippy::type_complexity)] // Public items exportedby this crate should match the C style #![allow(clippy::upper_case_acronyms)] // Suppress warnings from bindgen-generated code diff --git a/cryptoki-sys/vendor/README.md b/cryptoki-sys/vendor/README.md index bcc343de..bae2eecf 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.1/pkcs11.h: +This is downloaded from https://github.com/latchset/pkcs11-headers/blob/57ab27526e16bb16f4ecaed248aefd0200ada958/public-domain/3.2-prerelease/pkcs11.h: ```shell -wget https://raw.githubusercontent.com/latchset/pkcs11-headers/0ecf659eaa743472192bf3af2579144c5f8c053f/public-domain/3.1/pkcs11.h +wget https://raw.githubusercontent.com/latchset/pkcs11-headers/57ab27526e16bb16f4ecaed248aefd0200ada958/public-domain/3.2-prerelease/pkcs11.h ``` diff --git a/cryptoki-sys/vendor/pkcs11.h b/cryptoki-sys/vendor/pkcs11.h index 21bdc4be..4140fd70 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 1 +#define CRYPTOKI_VERSION_MINOR 2 #define CRYPTOKI_VERSION_AMENDMENT 0 #if defined(_WIN32) || defined(CRYPTOKI_FORCE_WIN32) @@ -47,6 +47,7 @@ ULONGDEF(CK_EC_KDF_TYPE); ULONGDEF(CK_EXTRACT_PARAMS); ULONGDEF(CK_FLAGS); ULONGDEF(CK_GENERATOR_FUNCTION); +ULONGDEF(CK_HEDGE_TYPE); ULONGDEF(CK_HSS_LEVELS); ULONGDEF(CK_HW_FEATURE_TYPE); ULONGDEF(CK_JAVA_MIDP_SECURITY_DOMAIN); @@ -55,6 +56,8 @@ ULONGDEF(CK_LMS_TYPE); ULONGDEF(CK_LMOTS_TYPE); ULONGDEF(CK_MAC_GENERAL_PARAMS); ULONGDEF(CK_MECHANISM_TYPE); +ULONGDEF(CK_ML_DSA_PARAMETER_SET_TYPE); +ULONGDEF(CK_ML_KEM_PARAMETER_SET_TYPE); ULONGDEF(CK_NOTIFICATION); ULONGDEF(CK_OBJECT_CLASS); ULONGDEF(CK_OBJECT_HANDLE); @@ -68,14 +71,21 @@ ULONGDEF(CK_RSA_PKCS_MGF_TYPE); ULONGDEF(CK_RSA_PKCS_OAEP_SOURCE_TYPE); ULONGDEF(CK_RV); ULONGDEF(CK_SESSION_HANDLE); +ULONGDEF(CK_SESSION_VALIDATION_FLAGS_TYPE); +ULONGDEF(CK_SLH_DSA_PARAMETER_SET_TYPE); ULONGDEF(CK_SLOT_ID); ULONGDEF(CK_SP800_108_DKM_LENGTH_METHOD); ULONGDEF(CK_STATE); +ULONGDEF(CK_TRUST); ULONGDEF(CK_USER_TYPE); +ULONGDEF(CK_VALIDATION_AUTHORITY_TYPE); +ULONGDEF(CK_VALIDATION_TYPE); ULONGDEF(CK_X2RATCHET_KDF_TYPE); ULONGDEF(CK_X3DH_KDF_TYPE); ULONGDEF(CK_X9_42_DH_KDF_TYPE); ULONGDEF(CK_XEDDSA_HASH_TYPE); +ULONGDEF(CK_XMSSMT_PARAMETER_SET_TYPE); +ULONGDEF(CK_XMSS_PARAMETER_SET_TYPE); /* domain specific values and constants */ @@ -118,6 +128,7 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CK_SP800_108_COUNTER 0x00000002UL #define CK_SP800_108_DKM_LENGTH 0x00000003UL #define CK_SP800_108_BYTE_ARRAY 0x00000004UL +#define CK_SP800_108_KEY_HANDLE 0x00000005UL /* CK (SP800 DKM) */ #define CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS 0x00000001UL @@ -249,6 +260,33 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKA_HSS_LMS_TYPES 0x0000061AUL #define CKA_HSS_LMOTS_TYPES 0x0000061BUL #define CKA_HSS_KEYS_REMAINING 0x0000061CUL +#define CKA_PARAMETER_SET 0x0000061DUL +#define CKA_OBJECT_VALIDATION_FLAGS 0x0000061EUL +#define CKA_VALIDATION_TYPE 0x0000061FUL +#define CKA_VALIDATION_VERSION 0x00000620UL +#define CKA_VALIDATION_LEVEL 0x00000621UL +#define CKA_VALIDATION_MODULE_ID 0x00000622UL +#define CKA_VALIDATION_FLAG 0x00000623UL +#define CKA_VALIDATION_AUTHORITY_TYPE 0x00000624UL +#define CKA_VALIDATION_COUNTRY 0x00000625UL +#define CKA_VALIDATION_CERTIFICATE_IDENTIFIER 0x00000626UL +#define CKA_VALIDATION_CERTIFICATE_URI 0x00000627UL +#define CKA_VALIDATION_VENDOR_URI 0x00000628UL +#define CKA_VALIDATION_PROFILE 0x00000629UL +#define CKA_ENCAPSULATE_TEMPLATE 0x0000062AUL +#define CKA_DECAPSULATE_TEMPLATE 0x0000062BUL +#define CKA_TRUST_SERVER_AUTH 0x0000062CUL +#define CKA_TRUST_CLIENT_AUTH 0x0000062DUL +#define CKA_TRUST_CODE_SIGNING 0x0000062EUL +#define CKA_TRUST_EMAIL_PROTECTION 0x0000062FUL +#define CKA_TRUST_IPSEC_IKE 0x00000630UL +#define CKA_TRUST_TIME_STAMPING 0x00000631UL +#define CKA_TRUST_OCSP_SIGNING 0x00000632UL +#define CKA_ENCAPSULATE 0x00000633UL +#define CKA_DECAPSULATE 0x00000634UL +#define CKA_HASH_OF_CERTIFICATE 0x00000635UL +#define CKA_PUBLIC_CRC64_VALUE 0x00000636UL +#define CKA_SEED 0x00000637UL #define CKA_VENDOR_DEFINED 0x80000000UL /* Array attributes */ #define CKA_WRAP_TEMPLATE 0x40000211UL @@ -339,6 +377,8 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKF_EC_UNCOMPRESS 0x01000000UL #define CKF_EC_COMPRESS 0x02000000UL #define CKF_EC_CURVENAME 0x04000000UL +#define CKF_ENCAPSULATE 0x10000000UL +#define CKF_DECAPSULATE 0x20000000UL #define CKF_EXTENSION 0x80000000UL /* Deprecated */ #ifdef PKCS11_DEPRECATED @@ -362,6 +402,7 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); /* CKF (session) */ #define CKF_RW_SESSION 0x00000002UL #define CKF_SERIAL_SESSION 0x00000004UL +#define CKF_ASYNC_SESSION 0x00000008UL /* CFK (slot) */ #define CKF_TOKEN_PRESENT 0x00000001UL @@ -388,6 +429,8 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKF_SO_PIN_LOCKED 0x00400000UL #define CKF_SO_PIN_TO_BE_CHANGED 0x00800000UL #define CKF_ERROR_STATE 0x01000000UL +#define CKF_SEED_RANDOM_REQUIRED 0x02000000UL +#define CKF_ASYNC_SESSION_SUPPORTED 0x04000000UL /* CKG (GCM) */ #define CKG_NO_GENERATE 0x00000000UL @@ -407,12 +450,17 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKG_MGF1_SHA3_384 0x00000008UL #define CKG_MGF1_SHA3_512 0x00000009UL -/* CKH */ +/* CKH (clock) */ #define CKH_MONOTONIC_COUNTER 0x00000001UL #define CKH_CLOCK 0x00000002UL #define CKH_USER_INTERFACE 0x00000003UL #define CKH_VENDOR_DEFINED 0x80000000UL +/* CKH (hedge type) */ +#define CKH_HEDGE_PREFERRED 0x00000000UL +#define CKH_HEDGE_REQUIRED 0x00000001UL +#define CKH_DETERMINISTIC_REQUIRED 0x00000002UL + /* CKK */ #define CKK_RSA 0x00000000UL #define CKK_DSA 0x00000001UL @@ -475,6 +523,11 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKK_SHA512_256_HMAC 0x00000044UL #define CKK_SHA512_T_HMAC 0x00000045UL #define CKK_HSS 0x00000046UL +#define CKK_XMSS 0x00000047UL +#define CKK_XMSSMT 0x00000048UL +#define CKK_ML_KEM 0x00000049UL +#define CKK_ML_DSA 0x0000004AUL +#define CKK_SLH_DSA 0x0000004BUL #define CKK_VENDOR_DEFINED 0x80000000UL /* Deprecated */ #ifdef PKCS11_DEPRECATED @@ -498,6 +551,7 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKM_SHA1_RSA_X9_31 0x0000000CUL #define CKM_RSA_PKCS_PSS 0x0000000DUL #define CKM_SHA1_RSA_PKCS_PSS 0x0000000EUL +#define CKM_ML_KEM_KEY_PAIR_GEN 0x0000000FUL #define CKM_DSA_KEY_PAIR_GEN 0x00000010UL #define CKM_DSA 0x00000011UL #define CKM_DSA_SHA1 0x00000012UL @@ -505,16 +559,43 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKM_DSA_SHA256 0x00000014UL #define CKM_DSA_SHA384 0x00000015UL #define CKM_DSA_SHA512 0x00000016UL +#define CKM_ML_KEM 0x00000017UL #define CKM_DSA_SHA3_224 0x00000018UL #define CKM_DSA_SHA3_256 0x00000019UL #define CKM_DSA_SHA3_384 0x0000001AUL #define CKM_DSA_SHA3_512 0x0000001BUL +#define CKM_ML_DSA_KEY_PAIR_GEN 0x0000001CUL +#define CKM_ML_DSA 0x0000001DUL +#define CKM_HASH_ML_DSA 0x0000001FUL #define CKM_DH_PKCS_KEY_PAIR_GEN 0x00000020UL #define CKM_DH_PKCS_DERIVE 0x00000021UL +#define CKM_HASH_ML_DSA_SHA224 0x00000023UL +#define CKM_HASH_ML_DSA_SHA256 0x00000024UL +#define CKM_HASH_ML_DSA_SHA384 0x00000025UL +#define CKM_HASH_ML_DSA_SHA512 0x00000026UL +#define CKM_HASH_ML_DSA_SHA3_224 0x00000027UL +#define CKM_HASH_ML_DSA_SHA3_256 0x00000028UL +#define CKM_HASH_ML_DSA_SHA3_384 0x00000029UL +#define CKM_HASH_ML_DSA_SHA3_512 0x0000002AUL +#define CKM_HASH_ML_DSA_SHAKE128 0x0000002BUL +#define CKM_HASH_ML_DSA_SHAKE256 0x0000002CUL +#define CKM_SLH_DSA_KEY_PAIR_GEN 0x0000002DUL +#define CKM_SLH_DSA 0x0000002EUL #define CKM_X9_42_DH_KEY_PAIR_GEN 0x00000030UL #define CKM_X9_42_DH_DERIVE 0x00000031UL #define CKM_X9_42_DH_HYBRID_DERIVE 0x00000032UL #define CKM_X9_42_MQV_DERIVE 0x00000033UL +#define CKM_HASH_SLH_DSA 0x00000034UL +#define CKM_HASH_SLH_DSA_SHA224 0x00000036UL +#define CKM_HASH_SLH_DSA_SHA256 0x00000037UL +#define CKM_HASH_SLH_DSA_SHA384 0x00000038UL +#define CKM_HASH_SLH_DSA_SHA512 0x00000039UL +#define CKM_HASH_SLH_DSA_SHA3_224 0x0000003AUL +#define CKM_HASH_SLH_DSA_SHA3_256 0x0000003BUL +#define CKM_HASH_SLH_DSA_SHA3_384 0x0000003CUL +#define CKM_HASH_SLH_DSA_SHA3_512 0x0000003DUL +#define CKM_HASH_SLH_DSA_SHAKE128 0x0000003EUL +#define CKM_HASH_SLH_DSA_SHAKE256 0x0000003FUL #define CKM_SHA256_RSA_PKCS 0x00000040UL #define CKM_SHA384_RSA_PKCS 0x00000041UL #define CKM_SHA512_RSA_PKCS 0x00000042UL @@ -535,6 +616,8 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKM_SHA512_T_HMAC 0x00000051UL #define CKM_SHA512_T_HMAC_GENERAL 0x00000052UL #define CKM_SHA512_T_KEY_DERIVATION 0x00000053UL +#define CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE 0x00000056UL +#define CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH 0x00000057UL #define CKM_SHA3_256_RSA_PKCS 0x00000060UL #define CKM_SHA3_384_RSA_PKCS 0x00000061UL #define CKM_SHA3_512_RSA_PKCS 0x00000062UL @@ -638,7 +721,6 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKM_CAST3_MAC_GENERAL 0x00000314UL #define CKM_CAST3_CBC_PAD 0x00000315UL #define CKM_CAST128_KEY_GEN 0x00000320UL -#define CKM_CAST5_ECB 0x00000321UL #define CKM_CAST128_ECB 0x00000321UL #define CKM_CAST128_MAC 0x00000323UL #define CKM_CAST128_CBC 0x00000322UL @@ -844,7 +926,6 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKM_DH_PKCS_PARAMETER_GEN 0x00002001UL #define CKM_X9_42_DH_PARAMETER_GEN 0x00002002UL #define CKM_DSA_PROBABILISTIC_PARAMETER_GEN 0x00002003UL -#define CKM_DSA_PROBABLISTIC_PARAMETER_GEN 0x00002003UL #define CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN 0x00002004UL #define CKM_DSA_FIPS_G_GEN 0x00002005UL #define CKM_AES_OFB 0x00002104UL @@ -917,10 +998,18 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKM_IKE1_EXTENDED_DERIVE 0x00004031UL #define CKM_HSS_KEY_PAIR_GEN 0x00004032UL #define CKM_HSS 0x00004033UL -#define CKM_VENDOR_DEFINED 0x80000000UL +#define CKM_XMSS_KEY_PAIR_GEN 0x00004034UL +#define CKM_XMSSMT_KEY_PAIR_GEN 0x00004035UL +#define CKM_XMSS 0x00004036UL +#define CKM_XMSSMT 0x00004037UL +#define CKM_ECDH_X_AES_KEY_WRAP 0x00004038UL +#define CKM_ECDH_COF_AES_KEY_WRAP 0x00004039UL +#define CKM_PUB_KEY_FROM_PRIV_KEY 0x0000403AUL +#define CKM_VENDOR_DEFINED 0x80000000UL /* Deprecated */ #ifdef PKCS11_DEPRECATED #define CKM_CAST5_KEY_GEN 0x00000320UL +#define CKM_CAST5_ECB 0x00000321UL #define CKM_CAST5_CBC 0x00000322UL #define CKM_CAST5_MAC 0x00000323UL #define CKM_CAST5_MAC_GENERAL 0x00000324UL @@ -928,6 +1017,7 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKM_PBE_MD5_CAST5_CBC 0x000003A4UL #define CKM_PBE_SHA1_CAST5_CBC 0x000003A5UL #define CKM_ECDSA_KEY_PAIR_GEN 0x00001040UL +#define CKM_DSA_PROBABLISTIC_PARAMETER_GEN 0x00002003UL #endif /* CKN */ @@ -945,6 +1035,8 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKO_MECHANISM 0x00000007UL #define CKO_OTP_KEY 0x00000008UL #define CKO_PROFILE 0x00000009UL +#define CKO_VALIDATION 0x0000000AUL +#define CKO_TRUST 0x0000000BUL #define CKO_VENDOR_DEFINED 0x80000000UL /* CKP (profile) */ @@ -967,6 +1059,30 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKP_PKCS5_PBKD2_HMAC_SHA512_224 0x00000007UL #define CKP_PKCS5_PBKD2_HMAC_SHA512_256 0x00000008UL +/* CKP (ML-DSA) */ +#define CKP_ML_DSA_44 0x00000001UL +#define CKP_ML_DSA_65 0x00000002UL +#define CKP_ML_DSA_87 0x00000003UL + +/* CKP (ML_KEM) */ +#define CKP_ML_KEM_512 0x00000001UL +#define CKP_ML_KEM_768 0x00000002UL +#define CKP_ML_KEM_1024 0x00000003UL + +/* CKP (SLH-DSA) */ +#define CKP_SLH_DSA_SHA2_128S 0x00000001UL +#define CKP_SLH_DSA_SHAKE_128S 0x00000002UL +#define CKP_SLH_DSA_SHA2_128F 0x00000003UL +#define CKP_SLH_DSA_SHAKE_128F 0x00000004UL +#define CKP_SLH_DSA_SHA2_192S 0x00000005UL +#define CKP_SLH_DSA_SHAKE_192S 0x00000006UL +#define CKP_SLH_DSA_SHA2_192F 0x00000007UL +#define CKP_SLH_DSA_SHAKE_192F 0x00000008UL +#define CKP_SLH_DSA_SHA2_256S 0x00000009UL +#define CKP_SLH_DSA_SHAKE_256S 0x0000000AUL +#define CKP_SLH_DSA_SHA2_256F 0x0000000BUL +#define CKP_SLH_DSA_SHAKE_256F 0x0000000CUL + /* CKR */ #define CKR_OK 0x00000000UL #define CKR_CANCEL 0x00000001UL @@ -1066,9 +1182,14 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKR_TOKEN_RESOURCE_EXCEEDED 0x00000201UL #define CKR_OPERATION_CANCEL_FAILED 0x00000202UL #define CKR_KEY_EXHAUSTED 0x00000203UL +#define CKR_PENDING 0x00000204UL +#define CKR_SESSION_ASYNC_NOT_SUPPORTED 0x00000205UL +#define CKR_SEED_RANDOM_REQUIRED 0x00000206UL +#define CKR_OPERATION_NOT_VALIDATED 0x00000207UL +#define CKR_TOKEN_NOT_INITIALIZED 0x00000208UL +#define CKR_PARAMETER_SET_NOT_SUPPORTED 0x00000209UL #define CKR_VENDOR_DEFINED 0x80000000UL - /* CKS */ #define CKS_RO_PUBLIC_SESSION 0UL #define CKS_RO_USER_FUNCTIONS 1UL @@ -1076,11 +1197,33 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE); #define CKS_RW_USER_FUNCTIONS 3UL #define CKS_RW_SO_FUNCTIONS 4UL +/* CKS (validation) */ +#define CKS_LAST_VALIDATION_OK 0x00000001UL + +/* CKT (trust) */ +#define CKT_TRUST_UNKNOWN 0x00000000UL +#define CKT_TRUSTED 0x00000001UL +#define CKT_TRUST_ANCHOR 0x00000002UL +#define CKT_NOT_TRUSTED 0x00000003UL +#define CKT_TRUST_MUST_VERIFY_TRUST 0x00000004UL + /* CKU */ #define CKU_SO 0UL #define CKU_USER 1UL #define CKU_CONTEXT_SPECIFIC 2UL +/* CKV (validation authority) */ +#define CKV_AUTHORITY_TYPE_UNSPECIFIED 0x00000000UL +#define CKV_AUTHORITY_TYPE_NIST_CMVP 0x00000001UL +#define CKV_AUTHORITY_TYPE_COMMON_CRITERIA 0x00000002UL + +/* CKV (validation type) */ +#define CKV_TYPE_UNSPECIFIED 0x00000000UL +#define CKV_TYPE_SOFTWARE 0x00000001UL +#define CKV_TYPE_HARDWARE 0x00000002UL +#define CKV_TYPE_FIRMWARE 0x00000003UL +#define CKV_TYPE_HYBRID 0x00000004UL + /* CKZ (data) */ #define CKZ_DATA_SPECIFIED 0x00000001UL @@ -1100,6 +1243,7 @@ STRUCTDEF(CK_DATE); STRUCTDEF(CK_DERIVED_KEY); STRUCTDEF(CK_FUNCTION_LIST); STRUCTDEF(CK_FUNCTION_LIST_3_0); +STRUCTDEF(CK_FUNCTION_LIST_3_2); STRUCTDEF(CK_INFO); STRUCTDEF(CK_INTERFACE); STRUCTDEF(CK_MECHANISM); @@ -1159,7 +1303,7 @@ struct CK_INFO { }; struct CK_INTERFACE { - CK_CHAR * pInterfaceName; + CK_UTF8CHAR * pInterfaceName; void * pFunctionList; CK_FLAGS flags; }; @@ -1218,10 +1362,12 @@ STRUCTDEF(CK_AES_CCM_PARAMS); STRUCTDEF(CK_AES_CTR_PARAMS); STRUCTDEF(CK_AES_GCM_PARAMS); STRUCTDEF(CK_ARIA_CBC_ENCRYPT_DATA_PARAMS); +STRUCTDEF(CK_ASYNC_DATA); STRUCTDEF(CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS); STRUCTDEF(CK_CAMELLIA_CTR_PARAMS); STRUCTDEF(CK_CCM_MESSAGE_PARAMS); STRUCTDEF(CK_CCM_PARAMS); +STRUCTDEF(CK_CCM_WRAP_PARAMS); STRUCTDEF(CK_CHACHA20_PARAMS); STRUCTDEF(CK_CMS_SIG_PARAMS); STRUCTDEF(CK_DES_CBC_ENCRYPT_DATA_PARAMS); @@ -1233,8 +1379,10 @@ STRUCTDEF(CK_ECMQV_DERIVE_PARAMS); STRUCTDEF(CK_EDDSA_PARAMS); STRUCTDEF(CK_GCM_MESSAGE_PARAMS); STRUCTDEF(CK_GCM_PARAMS); +STRUCTDEF(CK_GCM_WRAP_PARAMS); STRUCTDEF(CK_GOSTR3410_DERIVE_PARAMS); STRUCTDEF(CK_GOSTR3410_KEY_WRAP_PARAMS); +STRUCTDEF(CK_HASH_SIGN_ADDITIONAL_CONTEXT); STRUCTDEF(CK_HKDF_PARAMS); STRUCTDEF(CK_IKE_PRF_DERIVE_PARAMS); STRUCTDEF(CK_IKE1_EXTENDED_DERIVE_PARAMS); @@ -1263,12 +1411,14 @@ STRUCTDEF(CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS); STRUCTDEF(CK_SALSA20_CHACHA20_POLY1305_PARAMS); STRUCTDEF(CK_SALSA20_PARAMS); STRUCTDEF(CK_SEED_CBC_ENCRYPT_DATA_PARAMS); +STRUCTDEF(CK_SIGN_ADDITIONAL_CONTEXT); STRUCTDEF(CK_SKIPJACK_PRIVATE_WRAP_PARAMS); STRUCTDEF(CK_SKIPJACK_RELAYX_PARAMS); STRUCTDEF(CK_SP800_108_COUNTER_FORMAT); STRUCTDEF(CK_SP800_108_DKM_LENGTH_FORMAT); STRUCTDEF(CK_SP800_108_FEEDBACK_KDF_PARAMS); STRUCTDEF(CK_SP800_108_KDF_PARAMS); +STRUCTDEF(CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS); STRUCTDEF(CK_X2RATCHET_INITIALIZE_PARAMS); STRUCTDEF(CK_X2RATCHET_RESPOND_PARAMS); STRUCTDEF(CK_X3DH_INITIATE_PARAMS); @@ -1314,6 +1464,14 @@ struct CK_ARIA_CBC_ENCRYPT_DATA_PARAMS { CK_ULONG length; }; +struct CK_ASYNC_DATA { + CK_ULONG ulVersion; + CK_BYTE * pValue; + CK_ULONG ulValue; + CK_OBJECT_HANDLE hObject; + CK_OBJECT_HANDLE hAdditionalObject; +}; + struct CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS { CK_BYTE iv[16]; CK_BYTE * pData; @@ -1343,6 +1501,16 @@ struct CK_CCM_PARAMS { CK_ULONG ulAADLen; CK_ULONG ulMACLen; }; +struct CK_CCM_WRAP_PARAMS { + CK_ULONG ulDataLen; + CK_BYTE * pNonce; + CK_ULONG ulNonceLen; + CK_ULONG ulNonceFixedBits; + CK_GENERATOR_FUNCTION nonceGenerator; + CK_BYTE * pAAD; + CK_ULONG ulAADLen; + CK_ULONG ulMACLen; +}; struct CK_CHACHA20_PARAMS { CK_BYTE * pBlockCounter; @@ -1439,6 +1607,16 @@ struct CK_GCM_PARAMS { CK_ULONG ulTagBits; }; +struct CK_GCM_WRAP_PARAMS { + CK_BYTE * pIv; + CK_ULONG ulIvLen; + CK_ULONG ulIvFixedBits; + CK_GENERATOR_FUNCTION ivGenerator; + CK_BYTE * pAAD; + CK_ULONG ulAADLen; + CK_ULONG ulTagBits; +}; + struct CK_GOSTR3410_DERIVE_PARAMS { CK_EC_KDF_TYPE kdf; CK_BYTE * pPublicData; @@ -1455,6 +1633,13 @@ struct CK_GOSTR3410_KEY_WRAP_PARAMS { CK_OBJECT_HANDLE hKey; }; +struct CK_HASH_SIGN_ADDITIONAL_CONTEXT { + CK_HEDGE_TYPE hedgeVariant; + CK_BYTE * pContext; + CK_ULONG ulContextLen; + CK_MECHANISM_TYPE hash; +}; + struct CK_HKDF_PARAMS { CK_BBOOL bExtract; CK_BBOOL bExpand; @@ -1660,6 +1845,12 @@ struct CK_SEED_CBC_ENCRYPT_DATA_PARAMS { CK_ULONG length; }; +struct CK_SIGN_ADDITIONAL_CONTEXT { + CK_HEDGE_TYPE hedgeVariant; + CK_BYTE * pContext; + CK_ULONG ulContextLen; +}; + struct CK_SKIPJACK_PRIVATE_WRAP_PARAMS { CK_ULONG ulPasswordLen; CK_BYTE * pPassword; @@ -1715,6 +1906,13 @@ struct CK_SP800_108_FEEDBACK_KDF_PARAMS CK_DERIVED_KEY * pAdditionalDerivedKeys; }; +struct CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS { + CK_MECHANISM_TYPE prfHashMechanism; + CK_BYTE * pSessionHash; + CK_ULONG ulSessionHashLen; + CK_VERSION * pVersion; +}; + struct CK_SP800_108_KDF_PARAMS { CK_SP800_108_PRF_TYPE prfType; @@ -1802,12 +2000,6 @@ 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); @@ -2082,6 +2274,34 @@ extern CK_RV C_VerifyMessageBegin(CK_SESSION_HANDLE, void *, CK_ULONG); extern CK_RV C_VerifyMessageNext(CK_SESSION_HANDLE, void *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG); extern CK_RV C_MessageVerifyFinal(CK_SESSION_HANDLE); +extern CK_RV C_EncapsulateKey(CK_SESSION_HANDLE, CK_MECHANISM *, + CK_OBJECT_HANDLE, CK_ATTRIBUTE *, CK_ULONG, + CK_BYTE *, CK_ULONG *, CK_OBJECT_HANDLE *); +extern CK_RV C_DecapsulateKey(CK_SESSION_HANDLE, CK_MECHANISM *, + CK_OBJECT_HANDLE, CK_ATTRIBUTE *, CK_ULONG, + CK_BYTE *, CK_ULONG, CK_OBJECT_HANDLE *); +extern CK_RV C_VerifySignatureInit(CK_SESSION_HANDLE, CK_MECHANISM *, + CK_OBJECT_HANDLE, CK_BYTE *, CK_ULONG); +extern CK_RV C_VerifySignature(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG); +extern CK_RV C_VerifySignatureUpdate(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG); +extern CK_RV C_VerifySignatureFinal(CK_SESSION_HANDLE); +extern CK_RV C_GetSessionValidationFlags(CK_SESSION_HANDLE, + CK_SESSION_VALIDATION_FLAGS_TYPE, + CK_FLAGS *); +extern CK_RV C_AsyncComplete(CK_SESSION_HANDLE, CK_UTF8CHAR *, + CK_ASYNC_DATA *); +extern CK_RV C_AsyncGetID(CK_SESSION_HANDLE, CK_UTF8CHAR *, CK_ULONG *); +extern CK_RV C_AsyncJoin(CK_SESSION_HANDLE, CK_UTF8CHAR *, CK_ULONG, CK_BYTE *, + CK_ULONG); +extern CK_RV C_WrapKeyAuthenticated(CK_SESSION_HANDLE, CK_MECHANISM *, + CK_OBJECT_HANDLE, CK_OBJECT_HANDLE, + CK_BYTE *, CK_ULONG *, CK_BYTE *, + CK_ULONG *); +extern CK_RV C_UnwrapKeyAuthenticated(CK_SESSION_HANDLE, CK_MECHANISM *, + CK_OBJECT_HANDLE, CK_BYTE *, + CK_ULONG, CK_ATTRIBUTE *, + CK_ULONG, CK_BYTE *, CK_ULONG, + CK_OBJECT_HANDLE *); typedef CK_RV (* CK_C_Initialize)(void *); typedef CK_RV (* CK_C_Finalize)(void *); @@ -2242,6 +2462,146 @@ typedef CK_RV (* CK_C_VerifyMessageNext)(CK_SESSION_HANDLE, void *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG); typedef CK_RV (* CK_C_MessageVerifyFinal)(CK_SESSION_HANDLE); +typedef CK_RV (* CK_C_EncapsulateKey)(CK_SESSION_HANDLE, CK_MECHANISM *, + CK_OBJECT_HANDLE, CK_ATTRIBUTE *, + CK_ULONG, CK_BYTE *, CK_ULONG *, + CK_OBJECT_HANDLE *); +typedef CK_RV (* CK_C_DecapsulateKey)(CK_SESSION_HANDLE, CK_MECHANISM *, + CK_OBJECT_HANDLE, CK_ATTRIBUTE *, + CK_ULONG, CK_BYTE *, CK_ULONG, + CK_OBJECT_HANDLE *); +typedef CK_RV (* CK_C_VerifySignatureInit)(CK_SESSION_HANDLE, CK_MECHANISM *, + CK_OBJECT_HANDLE, CK_BYTE *, + CK_ULONG); +typedef CK_RV (* CK_C_VerifySignature)(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG); +typedef CK_RV (* CK_C_VerifySignatureUpdate)(CK_SESSION_HANDLE, CK_BYTE *, + CK_ULONG); +typedef CK_RV (* CK_C_VerifySignatureFinal)(CK_SESSION_HANDLE); +typedef CK_RV (* CK_C_GetSessionValidationFlags)(CK_SESSION_HANDLE, + CK_SESSION_VALIDATION_FLAGS_TYPE, + CK_FLAGS *); +typedef CK_RV (* CK_C_AsyncComplete)(CK_SESSION_HANDLE, CK_UTF8CHAR *, + CK_ASYNC_DATA *); +typedef CK_RV (* CK_C_AsyncGetID)(CK_SESSION_HANDLE, CK_UTF8CHAR *, CK_ULONG *); +typedef CK_RV (* CK_C_AsyncJoin)(CK_SESSION_HANDLE, CK_UTF8CHAR *, CK_ULONG, + CK_BYTE *, CK_ULONG); +typedef CK_RV (* CK_C_WrapKeyAuthenticated)(CK_SESSION_HANDLE, CK_MECHANISM *, + CK_OBJECT_HANDLE, CK_OBJECT_HANDLE, + CK_BYTE *, CK_ULONG *, CK_BYTE *, + CK_ULONG *); +typedef CK_RV (* CK_C_UnwrapKeyAuthenticated)(CK_SESSION_HANDLE, CK_MECHANISM *, + CK_OBJECT_HANDLE, CK_BYTE *, + CK_ULONG, CK_ATTRIBUTE *, + CK_ULONG, CK_BYTE *, CK_ULONG, + CK_OBJECT_HANDLE *); + +struct CK_FUNCTION_LIST_3_2 { + CK_VERSION version; + CK_C_Initialize C_Initialize; + CK_C_Finalize C_Finalize; + CK_C_GetInfo C_GetInfo; + CK_C_GetFunctionList C_GetFunctionList; + CK_C_GetSlotList C_GetSlotList; + CK_C_GetSlotInfo C_GetSlotInfo; + CK_C_GetTokenInfo C_GetTokenInfo; + CK_C_GetMechanismList C_GetMechanismList; + CK_C_GetMechanismInfo C_GetMechanismInfo; + CK_C_InitToken C_InitToken; + CK_C_InitPIN C_InitPIN; + CK_C_SetPIN C_SetPIN; + CK_C_OpenSession C_OpenSession; + CK_C_CloseSession C_CloseSession; + CK_C_CloseAllSessions C_CloseAllSessions; + CK_C_GetSessionInfo C_GetSessionInfo; + CK_C_GetOperationState C_GetOperationState; + CK_C_SetOperationState C_SetOperationState; + CK_C_Login C_Login; + CK_C_Logout C_Logout; + CK_C_CreateObject C_CreateObject; + CK_C_CopyObject C_CopyObject; + CK_C_DestroyObject C_DestroyObject; + CK_C_GetObjectSize C_GetObjectSize; + CK_C_GetAttributeValue C_GetAttributeValue; + CK_C_SetAttributeValue C_SetAttributeValue; + CK_C_FindObjectsInit C_FindObjectsInit; + CK_C_FindObjects C_FindObjects; + CK_C_FindObjectsFinal C_FindObjectsFinal; + CK_C_EncryptInit C_EncryptInit; + CK_C_Encrypt C_Encrypt; + CK_C_EncryptUpdate C_EncryptUpdate; + CK_C_EncryptFinal C_EncryptFinal; + CK_C_DecryptInit C_DecryptInit; + CK_C_Decrypt C_Decrypt; + CK_C_DecryptUpdate C_DecryptUpdate; + CK_C_DecryptFinal C_DecryptFinal; + CK_C_DigestInit C_DigestInit; + CK_C_Digest C_Digest; + CK_C_DigestUpdate C_DigestUpdate; + CK_C_DigestKey C_DigestKey; + CK_C_DigestFinal C_DigestFinal; + CK_C_SignInit C_SignInit; + CK_C_Sign C_Sign; + CK_C_SignUpdate C_SignUpdate; + CK_C_SignFinal C_SignFinal; + CK_C_SignRecoverInit C_SignRecoverInit; + CK_C_SignRecover C_SignRecover; + CK_C_VerifyInit C_VerifyInit; + CK_C_Verify C_Verify; + CK_C_VerifyUpdate C_VerifyUpdate; + CK_C_VerifyFinal C_VerifyFinal; + CK_C_VerifyRecoverInit C_VerifyRecoverInit; + CK_C_VerifyRecover C_VerifyRecover; + CK_C_DigestEncryptUpdate C_DigestEncryptUpdate; + CK_C_DecryptDigestUpdate C_DecryptDigestUpdate; + CK_C_SignEncryptUpdate C_SignEncryptUpdate; + CK_C_DecryptVerifyUpdate C_DecryptVerifyUpdate; + CK_C_GenerateKey C_GenerateKey; + CK_C_GenerateKeyPair C_GenerateKeyPair; + CK_C_WrapKey C_WrapKey; + CK_C_UnwrapKey C_UnwrapKey; + CK_C_DeriveKey C_DeriveKey; + CK_C_SeedRandom C_SeedRandom; + CK_C_GenerateRandom C_GenerateRandom; + CK_C_GetFunctionStatus C_GetFunctionStatus; + CK_C_CancelFunction C_CancelFunction; + CK_C_WaitForSlotEvent C_WaitForSlotEvent; + CK_C_GetInterfaceList C_GetInterfaceList; + CK_C_GetInterface C_GetInterface; + CK_C_LoginUser C_LoginUser; + CK_C_SessionCancel C_SessionCancel; + CK_C_MessageEncryptInit C_MessageEncryptInit; + CK_C_EncryptMessage C_EncryptMessage; + CK_C_EncryptMessageBegin C_EncryptMessageBegin; + CK_C_EncryptMessageNext C_EncryptMessageNext; + CK_C_MessageEncryptFinal C_MessageEncryptFinal; + CK_C_MessageDecryptInit C_MessageDecryptInit; + CK_C_DecryptMessage C_DecryptMessage; + CK_C_DecryptMessageBegin C_DecryptMessageBegin; + CK_C_DecryptMessageNext C_DecryptMessageNext; + CK_C_MessageDecryptFinal C_MessageDecryptFinal; + CK_C_MessageSignInit C_MessageSignInit; + CK_C_SignMessage C_SignMessage; + CK_C_SignMessageBegin C_SignMessageBegin; + CK_C_SignMessageNext C_SignMessageNext; + CK_C_MessageSignFinal C_MessageSignFinal; + CK_C_MessageVerifyInit C_MessageVerifyInit; + CK_C_VerifyMessage C_VerifyMessage; + CK_C_VerifyMessageBegin C_VerifyMessageBegin; + CK_C_VerifyMessageNext C_VerifyMessageNext; + CK_C_MessageVerifyFinal C_MessageVerifyFinal; + CK_C_EncapsulateKey C_EncapsulateKey; + CK_C_DecapsulateKey C_DecapsulateKey; + CK_C_VerifySignatureInit C_VerifySignatureInit; + CK_C_VerifySignature C_VerifySignature; + CK_C_VerifySignatureUpdate C_VerifySignatureUpdate; + CK_C_VerifySignatureFinal C_VerifySignatureFinal; + CK_C_GetSessionValidationFlags C_GetSessionValidationFlags; + CK_C_AsyncComplete C_AsyncComplete; + CK_C_AsyncGetID C_AsyncGetID; + CK_C_AsyncJoin C_AsyncJoin; + CK_C_WrapKeyAuthenticated C_WrapKeyAuthenticated ; + CK_C_UnwrapKeyAuthenticated C_UnwrapKeyAuthenticated ; +}; struct CK_FUNCTION_LIST_3_0 { CK_VERSION version; diff --git a/cryptoki/src/context/general_purpose.rs b/cryptoki/src/context/general_purpose.rs index be7ead9d..2ec0442b 100644 --- a/cryptoki/src/context/general_purpose.rs +++ b/cryptoki/src/context/general_purpose.rs @@ -141,6 +141,19 @@ pub enum Function { VerifyMessageBegin, VerifyMessageNext, MessageVerifyFinal, + /* PKCS #11 3.2 */ + EncapsulateKey, + DecapsulateKey, + VerifySignatureInit, + VerifySignature, + VerifySignatureUpdate, + VerifySignatureFinal, + GetSessionValidationFlags, + AsyncComplete, + AsyncGetID, + AsyncJoin, + WrapKeyAuthenticated, + UnwrapKeyAuthenticated, } impl Display for Function { @@ -245,5 +258,18 @@ pub(super) fn is_fn_supported(ctx: &Pkcs11, function: Function) -> bool { Function::VerifyMessageBegin => check_fn!(ctx, VerifyMessageBegin), Function::VerifyMessageNext => check_fn!(ctx, VerifyMessageNext), Function::MessageVerifyFinal => check_fn!(ctx, MessageVerifyFinal), + /* PKCS #11 3.0 */ + Function::EncapsulateKey => check_fn!(ctx, EncapsulateKey), + Function::DecapsulateKey => check_fn!(ctx, DecapsulateKey), + Function::VerifySignatureInit => check_fn!(ctx, VerifySignatureInit), + Function::VerifySignature => check_fn!(ctx, VerifySignature), + Function::VerifySignatureUpdate => check_fn!(ctx, VerifySignatureUpdate), + Function::VerifySignatureFinal => check_fn!(ctx, VerifySignatureFinal), + Function::GetSessionValidationFlags => check_fn!(ctx, GetSessionValidationFlags), + Function::AsyncComplete => check_fn!(ctx, AsyncComplete), + Function::AsyncGetID => check_fn!(ctx, AsyncGetID), + Function::AsyncJoin => check_fn!(ctx, AsyncJoin), + Function::WrapKeyAuthenticated => check_fn!(ctx, WrapKeyAuthenticated), + Function::UnwrapKeyAuthenticated => check_fn!(ctx, UnwrapKeyAuthenticated), } } diff --git a/cryptoki/src/context/mod.rs b/cryptoki/src/context/mod.rs index e320ef11..2b3eec53 100644 --- a/cryptoki/src/context/mod.rs +++ b/cryptoki/src/context/mod.rs @@ -44,12 +44,11 @@ use std::sync::RwLock; #[derive(Debug)] enum FunctionList { /// PKCS #11 2.40 CK_FUNCTION_LIST - V2(cryptoki_sys::CK_FUNCTION_LIST_3_0), + V2(cryptoki_sys::CK_FUNCTION_LIST_3_2), /// 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), + V3_0(cryptoki_sys::CK_FUNCTION_LIST_3_2), + /// 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 @@ -70,10 +69,11 @@ impl fmt::Debug for Pkcs11Impl { impl Pkcs11Impl { #[inline(always)] - pub(crate) fn get_function_list(&self) -> cryptoki_sys::CK_FUNCTION_LIST_3_0 { + pub(crate) fn get_function_list(&self) -> cryptoki_sys::CK_FUNCTION_LIST_3_2 { match self.function_list { FunctionList::V2(l) => l, FunctionList::V3_0(l) => l, + FunctionList::V3_2(l) => l, } } @@ -133,8 +133,8 @@ impl Pkcs11 { } unsafe fn _new(pkcs11_lib: cryptoki_sys::Pkcs11) -> Result { - /* First try the 3.0 API to get default interface. It might have some more functions than - * the 2.4 API */ + /* First try the 3.* API to get default interface. It might have some more functions than + * the 2.40 API */ let mut interface = mem::MaybeUninit::uninit(); if pkcs11_lib.C_GetInterface.is_ok() { Rv::from(pkcs11_lib.C_GetInterface( @@ -152,12 +152,23 @@ impl Pkcs11 { ifce.pFunctionList as *mut cryptoki_sys::CK_FUNCTION_LIST; let list: cryptoki_sys::CK_FUNCTION_LIST = *list_ptr; if list.version.major >= 3 { + if list.version.minor >= 2 { + let list32_ptr: *mut cryptoki_sys::CK_FUNCTION_LIST_3_2 = + ifce.pFunctionList as *mut cryptoki_sys::CK_FUNCTION_LIST_3_2; + return Ok(Pkcs11 { + impl_: Arc::new(Pkcs11Impl { + _pkcs11_lib: pkcs11_lib, + function_list: FunctionList::V3_2(*list32_ptr), + }), + initialized: Arc::new(RwLock::new(false)), + }); + } let list30_ptr: *mut cryptoki_sys::CK_FUNCTION_LIST_3_0 = ifce.pFunctionList as *mut cryptoki_sys::CK_FUNCTION_LIST_3_0; return Ok(Pkcs11 { impl_: Arc::new(Pkcs11Impl { _pkcs11_lib: pkcs11_lib, - function_list: FunctionList::V3_0(*list30_ptr), + function_list: FunctionList::V3_0(v30tov32(*list30_ptr)), }), initialized: Arc::new(RwLock::new(false)), }); @@ -219,9 +230,9 @@ impl Pkcs11 { } } -/// 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 { +// 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_2 { + cryptoki_sys::CK_FUNCTION_LIST_3_2 { version: f.version, C_Initialize: f.C_Initialize, C_Finalize: f.C_Finalize, @@ -315,5 +326,127 @@ fn v2tov3(f: cryptoki_sys::CK_FUNCTION_LIST) -> cryptoki_sys::CK_FUNCTION_LIST_3 C_VerifyMessageBegin: None, C_VerifyMessageNext: None, C_MessageVerifyFinal: None, + C_EncapsulateKey: None, + C_DecapsulateKey: None, + C_VerifySignatureInit: None, + C_VerifySignature: None, + C_VerifySignatureUpdate: None, + C_VerifySignatureFinal: None, + C_GetSessionValidationFlags: None, + C_AsyncComplete: None, + C_AsyncGetID: None, + C_AsyncJoin: None, + C_WrapKeyAuthenticated: None, + C_UnwrapKeyAuthenticated: None, + } +} + +fn v30tov32(f: cryptoki_sys::CK_FUNCTION_LIST_3_0) -> cryptoki_sys::CK_FUNCTION_LIST_3_2 { + cryptoki_sys::CK_FUNCTION_LIST_3_2 { + 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: f.C_GetInterfaceList, + C_GetInterface: f.C_GetInterface, + C_LoginUser: f.C_LoginUser, + C_SessionCancel: f.C_SessionCancel, + C_MessageEncryptInit: f.C_MessageEncryptInit, + C_EncryptMessage: f.C_EncryptMessage, + C_EncryptMessageBegin: f.C_EncryptMessageBegin, + C_EncryptMessageNext: f.C_EncryptMessageNext, + C_MessageEncryptFinal: f.C_MessageEncryptFinal, + C_MessageDecryptInit: f.C_MessageDecryptInit, + C_DecryptMessage: f.C_DecryptMessage, + C_DecryptMessageBegin: f.C_DecryptMessageBegin, + C_DecryptMessageNext: f.C_DecryptMessageNext, + C_MessageDecryptFinal: f.C_MessageDecryptFinal, + C_MessageSignInit: f.C_MessageSignInit, + C_SignMessage: f.C_SignMessage, + C_SignMessageBegin: f.C_SignMessageBegin, + C_SignMessageNext: f.C_SignMessageNext, + C_MessageSignFinal: f.C_MessageSignFinal, + C_MessageVerifyInit: f.C_MessageVerifyInit, + C_VerifyMessage: f.C_VerifyMessage, + C_VerifyMessageBegin: f.C_VerifyMessageBegin, + C_VerifyMessageNext: f.C_VerifyMessageNext, + C_MessageVerifyFinal: f.C_MessageVerifyFinal, + C_EncapsulateKey: None, + C_DecapsulateKey: None, + C_VerifySignatureInit: None, + C_VerifySignature: None, + C_VerifySignatureUpdate: None, + C_VerifySignatureFinal: None, + C_GetSessionValidationFlags: None, + C_AsyncComplete: None, + C_AsyncGetID: None, + C_AsyncJoin: None, + C_WrapKeyAuthenticated: None, + C_UnwrapKeyAuthenticated: None, } } diff --git a/cryptoki/src/mechanism/mechanism_info.rs b/cryptoki/src/mechanism/mechanism_info.rs index d20b957d..bc92d3fd 100644 --- a/cryptoki/src/mechanism/mechanism_info.rs +++ b/cryptoki/src/mechanism/mechanism_info.rs @@ -32,6 +32,8 @@ bitflags! { const MESSAGE_ENCRYPT = CKF_MESSAGE_ENCRYPT; const MESSAGE_DECRYPT = CKF_MESSAGE_DECRYPT; const MULTI_MESSAGE = CKF_MULTI_MESSAGE; + const ENCAPSULATE = CKF_ENCAPSULATE; + const DECAPSULATE = CKF_DECAPSULATE; } } @@ -252,6 +254,18 @@ impl MechanismInfo { pub fn multi_message(&self) -> bool { self.flags.contains(MechanismInfoFlags::MULTI_MESSAGE) } + + /// True if the mechanism can be used to encapsulate other keys + /// + pub fn encapsulate(&self) -> bool { + self.flags.contains(MechanismInfoFlags::ENCAPSULATE) + } + + /// True if the mechanism can be used to decapsulate other keys + /// + pub fn decapsulate(&self) -> bool { + self.flags.contains(MechanismInfoFlags::DECAPSULATE) + } } impl std::fmt::Display for MechanismInfo { @@ -294,7 +308,7 @@ 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 | MESSAGE_ENCRYPT | MESSAGE_DECRYPT | \ -MULTI_MESSAGE"; +MULTI_MESSAGE | ENCAPSULATE | DECAPSULATE"; let all = MechanismInfoFlags::all(); let observed = format!("{all:#?}"); println!("{observed}"); diff --git a/cryptoki/src/mechanism/mldsa.rs b/cryptoki/src/mechanism/mldsa.rs new file mode 100644 index 00000000..b593bcf8 --- /dev/null +++ b/cryptoki/src/mechanism/mldsa.rs @@ -0,0 +1,152 @@ +//! ML-DSA mechanism types + +use crate::mechanism::{Mechanism, MechanismType}; + +use cryptoki_sys::*; +use std::{convert::TryInto, marker::PhantomData, ptr::null_mut}; + +/// The hedge type for ML-DSA signature +#[derive(Debug, Clone, Copy, PartialEq)] +pub enum HedgeType { + /// CKH_HEDGE_PREFERRED: Default + /// token may create either a hedged signature or a deterministic signature + Preferred, + /// CKH_HEDGE_REQUIRED + /// token must produce a hedged signature or fail + Required, + /// CKH_DETERMINISTIC_REQUIRED + /// token must produce a deterministic signature or fail + DeterministicRequired, +} + +impl HedgeType { + /// Convert the enum to Cryptoki value + pub fn into_ck(&self) -> CK_HEDGE_TYPE { + match self { + HedgeType::Preferred => CKH_HEDGE_PREFERRED, + HedgeType::Required => CKH_HEDGE_REQUIRED, + HedgeType::DeterministicRequired => CKH_DETERMINISTIC_REQUIRED, + } + } +} + +/// The ML-DSA additional context for signatures +/// +/// This structure wraps `CK_SIGN_ADDITIONAL_CONTEXT` structure. +#[derive(Debug, Clone, Copy)] +pub struct SignAdditionalContext<'a> { + inner: Option, + /// Marker type to ensure we don't outlive the data + _marker: PhantomData<&'a [u8]>, +} + +impl SignAdditionalContext<'_> { + /// Construct ML-DSA signature parameters. + /// + /// # Arguments + /// + /// * `hedge` - The HedgeType. + /// * `context` - The context. + /// + /// # Returns + /// + /// A new SignAdditionalContext struct. + pub fn new(hedge: HedgeType, context: Option<&[u8]>) -> Self { + if hedge == HedgeType::Preferred && context.is_none() { + return Self { + inner: None, + _marker: PhantomData, + }; + } + + let (p_context, ul_context_len) = match context { + Some(c) => ( + c.as_ptr() as *mut _, + c.len().try_into().expect("usize can not fit in CK_ULONG"), + ), + None => (null_mut() as *mut _, 0), + }; + Self { + inner: Some(CK_SIGN_ADDITIONAL_CONTEXT { + hedgeVariant: hedge.into_ck(), + pContext: p_context, + ulContextLen: ul_context_len, + }), + _marker: PhantomData, + } + } + + /// Retrieve the inner `CK_SIGN_ADDITIONAL_CONTEXT` struct, if present. + /// + /// This method provides a reference to the `CK_SIGN_ADDITIONAL_CONTEXT` + /// struct encapsulated within the `SignAdditionalContext`, if the signature + /// scheme requires additional parameters. + /// + /// # Returns + /// + /// `Some(&CK_SIGN_ADDITIONAL_CONTEXT)` if the signature scheme has associated + /// parameters, otherwise `None`. + pub fn inner(&self) -> Option<&CK_SIGN_ADDITIONAL_CONTEXT> { + self.inner.as_ref() + } +} + +/// The ML-DSA additional context for signatures with hashing information +/// +/// This structure wraps `CK_HASH_SIGN_ADDITIONAL_CONTEXT` structure. +#[derive(Debug, Clone, Copy)] +pub struct HashSignAdditionalContext<'a> { + inner: CK_HASH_SIGN_ADDITIONAL_CONTEXT, + /// Marker type to ensure we don't outlive the data + _marker: PhantomData<&'a [u8]>, +} + +impl HashSignAdditionalContext<'_> { + /// Construct HashML-DSA Signature parameters. + /// + /// # Arguments + /// + /// * `hedge` - The HedgeType. + /// * `context` - The context + /// * `hash` - The hash type + /// + /// # Returns + /// + /// A new SignAdditionalContext struct. + pub fn new(hedge: HedgeType, context: Option<&[u8]>, hash: MechanismType) -> Self { + let (p_context, ul_context_len) = match context { + Some(c) => ( + c.as_ptr() as *mut _, + c.len().try_into().expect("usize can not fit in CK_ULONG"), + ), + None => (null_mut(), 0), + }; + Self { + inner: CK_HASH_SIGN_ADDITIONAL_CONTEXT { + hedgeVariant: hedge.into_ck(), + pContext: p_context, + ulContextLen: ul_context_len, + hash: hash.into(), + }, + _marker: PhantomData, + } + } + + /// Retrieve the inner `CK_HASH_SIGN_ADDITIONAL_CONTEXT` struct. + /// + /// This method provides a reference to the `CK_HASH_SIGN_ADDITIONAL_CONTEXT` + /// struct encapsulated within the `HashSignAdditionalContext`. + /// + /// # Returns + /// + /// `&CK_HASH_SIGN_ADDITIONAL_CONTEXT`. + pub fn inner(&self) -> &CK_HASH_SIGN_ADDITIONAL_CONTEXT { + &self.inner + } +} + +impl<'a> From> for Mechanism<'a> { + fn from(params: HashSignAdditionalContext<'a>) -> Self { + Mechanism::HashMlDsa(params) + } +} diff --git a/cryptoki/src/mechanism/mod.rs b/cryptoki/src/mechanism/mod.rs index b5ca489d..cf68f902 100644 --- a/cryptoki/src/mechanism/mod.rs +++ b/cryptoki/src/mechanism/mod.rs @@ -8,6 +8,7 @@ pub mod ekdf; pub mod elliptic_curve; pub mod hkdf; mod mechanism_info; +pub mod mldsa; pub mod rsa; pub mod vendor_defined; @@ -326,6 +327,66 @@ impl MechanismType { /// HKDF-DATA mechanism pub const HKDF_DATA: MechanismType = MechanismType { val: CKM_HKDF_DATA }; + // ML-KEM + /// ML-KEM key pair generation mechanism + pub const ML_KEM_KEY_PAIR_GEN: MechanismType = MechanismType { + val: CKM_ML_KEM_KEY_PAIR_GEN, + }; + /// ML-KEM encapsulation and decapsulation mechanism + pub const ML_KEM: MechanismType = MechanismType { val: CKM_ML_KEM }; + + // ML-DSA + /// ML-DSA key pair generation mechanism + pub const ML_DSA_KEY_PAIR_GEN: MechanismType = MechanismType { + val: CKM_ML_DSA_KEY_PAIR_GEN, + }; + /// ML-DSA signature mechanism + pub const ML_DSA: MechanismType = MechanismType { val: CKM_ML_DSA }; + /// HashML-DSA signature mechanism + pub const HASH_ML_DSA: MechanismType = MechanismType { + val: CKM_HASH_ML_DSA, + }; + /// HashML-DSA signature mechanism with SHA224 + pub const HASH_ML_DSA_SHA224: MechanismType = MechanismType { + val: CKM_HASH_ML_DSA_SHA224, + }; + /// HashML-DSA signature mechanism with SHA256 + pub const HASH_ML_DSA_SHA256: MechanismType = MechanismType { + val: CKM_HASH_ML_DSA_SHA256, + }; + /// HashML-DSA signature mechanism with SHA384 + pub const HASH_ML_DSA_SHA384: MechanismType = MechanismType { + val: CKM_HASH_ML_DSA_SHA384, + }; + /// HashML-DSA signature mechanism with SHA512 + pub const HASH_ML_DSA_SHA512: MechanismType = MechanismType { + val: CKM_HASH_ML_DSA_SHA512, + }; + /// HashML-DSA signature mechanism with SHA3-224 + pub const HASH_ML_DSA_SHA3_224: MechanismType = MechanismType { + val: CKM_HASH_ML_DSA_SHA3_224, + }; + /// HashML-DSA signature mechanism with SHA3-256 + pub const HASH_ML_DSA_SHA3_256: MechanismType = MechanismType { + val: CKM_HASH_ML_DSA_SHA3_256, + }; + /// HashML-DSA signature mechanism with SHA3-384 + pub const HASH_ML_DSA_SHA3_384: MechanismType = MechanismType { + val: CKM_HASH_ML_DSA_SHA3_384, + }; + /// HashML-DSA signature mechanism with SHA3-512 + pub const HASH_ML_DSA_SHA3_512: MechanismType = MechanismType { + val: CKM_HASH_ML_DSA_SHA3_512, + }; + /// HashML-DSA signature mechanism with SHAKE128 + pub const HASH_ML_DSA_SHAKE128: MechanismType = MechanismType { + val: CKM_HASH_ML_DSA_SHAKE128, + }; + /// HashML-DSA signature mechanism with SHAKE256 + pub const HASH_ML_DSA_SHAKE256: MechanismType = MechanismType { + val: CKM_HASH_ML_DSA_SHAKE256, + }; + /// Create vendor defined mechanism /// /// # Arguments @@ -715,6 +776,21 @@ impl MechanismType { CKM_HKDF_KEY_GEN => String::from(stringify!(CKM_HKDF_KEY_GEN)), CKM_HKDF_DERIVE => String::from(stringify!(CKM_HKDF_DERIVE)), CKM_HKDF_DATA => String::from(stringify!(CKM_HKDF_DATA)), + CKM_ML_KEM_KEY_PAIR_GEN => String::from(stringify!(CKM_ML_KEM_KEY_PAIR_GEN)), + CKM_ML_KEM => String::from(stringify!(CKM_ML_KEM)), + CKM_ML_DSA_KEY_PAIR_GEN => String::from(stringify!(CKM_ML_DSA_KEY_PAIR_GEN)), + CKM_ML_DSA => String::from(stringify!(CKM_ML_DSA)), + CKM_HASH_ML_DSA => String::from(stringify!(CKM_HASH_ML_DSA)), + CKM_HASH_ML_DSA_SHA224 => String::from(stringify!(CKM_HASH_ML_DSA_SHA224)), + CKM_HASH_ML_DSA_SHA256 => String::from(stringify!(CKM_HASH_ML_DSA_SHA256)), + CKM_HASH_ML_DSA_SHA384 => String::from(stringify!(CKM_HASH_ML_DSA_SHA384)), + CKM_HASH_ML_DSA_SHA512 => String::from(stringify!(CKM_HASH_ML_DSA_SHA512)), + CKM_HASH_ML_DSA_SHA3_224 => String::from(stringify!(CKM_HASH_ML_DSA_SHA3_224)), + CKM_HASH_ML_DSA_SHA3_256 => String::from(stringify!(CKM_HASH_ML_DSA_SHA3_256)), + CKM_HASH_ML_DSA_SHA3_384 => String::from(stringify!(CKM_HASH_ML_DSA_SHA3_384)), + CKM_HASH_ML_DSA_SHA3_512 => String::from(stringify!(CKM_HASH_ML_DSA_SHA3_512)), + CKM_HASH_ML_DSA_SHAKE128 => String::from(stringify!(CKM_HASH_ML_DSA_SHAKE128)), + CKM_HASH_ML_DSA_SHAKE256 => String::from(stringify!(CKM_HASH_ML_DSA_SHAKE256)), _ => format!("unknown {mech:08x}"), } } @@ -799,6 +875,20 @@ impl TryFrom for MechanismType { CKM_HKDF_KEY_GEN => Ok(MechanismType::HKDF_KEY_GEN), CKM_HKDF_DERIVE => Ok(MechanismType::HKDF_DERIVE), CKM_HKDF_DATA => Ok(MechanismType::HKDF_DATA), + CKM_ML_KEM_KEY_PAIR_GEN => Ok(MechanismType::ML_KEM_KEY_PAIR_GEN), + CKM_ML_KEM => Ok(MechanismType::ML_KEM), + CKM_ML_DSA_KEY_PAIR_GEN => Ok(MechanismType::ML_DSA_KEY_PAIR_GEN), + CKM_ML_DSA => Ok(MechanismType::ML_DSA), + CKM_HASH_ML_DSA => Ok(MechanismType::HASH_ML_DSA), + CKM_HASH_ML_DSA_SHA224 => Ok(MechanismType::HASH_ML_DSA_SHA224), + CKM_HASH_ML_DSA_SHA256 => Ok(MechanismType::HASH_ML_DSA_SHA256), + CKM_HASH_ML_DSA_SHA384 => Ok(MechanismType::HASH_ML_DSA_SHA384), + CKM_HASH_ML_DSA_SHA512 => Ok(MechanismType::HASH_ML_DSA_SHA512), + CKM_HASH_ML_DSA_SHA3_224 => Ok(MechanismType::HASH_ML_DSA_SHA3_224), + CKM_HASH_ML_DSA_SHA3_256 => Ok(MechanismType::HASH_ML_DSA_SHA3_256), + CKM_HASH_ML_DSA_SHA3_384 => Ok(MechanismType::HASH_ML_DSA_SHA3_384), + CKM_HASH_ML_DSA_SHA3_512 => Ok(MechanismType::HASH_ML_DSA_SHA3_512), + CKM_HASH_ML_DSA_SHAKE128 => Ok(MechanismType::HASH_ML_DSA_SHAKE128), other => { error!("Mechanism type {} is not supported.", other); Err(Error::NotSupported) @@ -1021,6 +1111,40 @@ pub enum Mechanism<'a> { /// HKDF-DATA mechanism HkdfData(hkdf::HkdfParams<'a>), + // ML-KEM + /// ML-KEM key pair generation mechanism + MlKemKeyPairGen, + /// ML-KEM key encacpsulation/decapsulation mechanism + MlKem, + + // ML-DSA + /// ML-DSA key pair generation mechanism + MlDsaKeyPairGen, + /// ML-DSA signature mechanism + MlDsa(mldsa::SignAdditionalContext<'a>), + /// HashML-DSA signature mechanism + HashMlDsa(mldsa::HashSignAdditionalContext<'a>), + /// HashML-DSA signature mechanism with SHA224 + HashMlDsaSha224(mldsa::SignAdditionalContext<'a>), + /// HashML-DSA signature mechanism with SHA256 + HashMlDsaSha256(mldsa::SignAdditionalContext<'a>), + /// HashML-DSA signature mechanism with SHA384 + HashMlDsaSha384(mldsa::SignAdditionalContext<'a>), + /// HashML-DSA signature mechanism with SHA512 + HashMlDsaSha512(mldsa::SignAdditionalContext<'a>), + /// HashML-DSA signature mechanism with SHA3-224 + HashMlDsaSha3_224(mldsa::SignAdditionalContext<'a>), + /// HashML-DSA signature mechanism with SHA3-256 + HashMlDsaSha3_256(mldsa::SignAdditionalContext<'a>), + /// HashML-DSA signature mechanism with SHA3-384 + HashMlDsaSha3_384(mldsa::SignAdditionalContext<'a>), + /// HashML-DSA signature mechanism with SHA3-512 + HashMlDsaSha3_512(mldsa::SignAdditionalContext<'a>), + /// HashML-DSA signature mechanism with SHAKE128 + HashMlDsaShake128(mldsa::SignAdditionalContext<'a>), + /// HashML-DSA signature mechanism with SHAKE256 + HashMlDsaShake256(mldsa::SignAdditionalContext<'a>), + /// Vendor defined mechanism VendorDefined(VendorDefinedMechanism<'a>), } @@ -1102,6 +1226,23 @@ impl Mechanism<'_> { Mechanism::HkdfDerive(_) => MechanismType::HKDF_DERIVE, Mechanism::HkdfData(_) => MechanismType::HKDF_DATA, + Mechanism::MlKemKeyPairGen => MechanismType::ML_KEM_KEY_PAIR_GEN, + Mechanism::MlKem => MechanismType::ML_KEM, + + Mechanism::MlDsaKeyPairGen => MechanismType::ML_DSA_KEY_PAIR_GEN, + Mechanism::MlDsa(_) => MechanismType::ML_DSA, + Mechanism::HashMlDsa(_) => MechanismType::HASH_ML_DSA, + Mechanism::HashMlDsaSha224(_) => MechanismType::HASH_ML_DSA_SHA224, + Mechanism::HashMlDsaSha256(_) => MechanismType::HASH_ML_DSA_SHA256, + Mechanism::HashMlDsaSha384(_) => MechanismType::HASH_ML_DSA_SHA384, + Mechanism::HashMlDsaSha512(_) => MechanismType::HASH_ML_DSA_SHA512, + Mechanism::HashMlDsaSha3_224(_) => MechanismType::HASH_ML_DSA_SHA3_224, + Mechanism::HashMlDsaSha3_256(_) => MechanismType::HASH_ML_DSA_SHA3_256, + Mechanism::HashMlDsaSha3_384(_) => MechanismType::HASH_ML_DSA_SHA3_384, + Mechanism::HashMlDsaSha3_512(_) => MechanismType::HASH_ML_DSA_SHA3_512, + Mechanism::HashMlDsaShake128(_) => MechanismType::HASH_ML_DSA_SHAKE128, + Mechanism::HashMlDsaShake256(_) => MechanismType::HASH_ML_DSA_SHAKE256, + Mechanism::VendorDefined(vm) => MechanismType { val: vm.inner.mechanism, }, @@ -1154,6 +1295,25 @@ impl From<&Mechanism<'_>> for CK_MECHANISM { Mechanism::HkdfDerive(params) | Mechanism::HkdfData(params) => { make_mechanism(mechanism, params) } + Mechanism::HashMlDsa(params) => make_mechanism(mechanism, params), + Mechanism::MlDsa(params) + | Mechanism::HashMlDsaSha224(params) + | Mechanism::HashMlDsaSha256(params) + | Mechanism::HashMlDsaSha384(params) + | Mechanism::HashMlDsaSha512(params) + | Mechanism::HashMlDsaSha3_224(params) + | Mechanism::HashMlDsaSha3_256(params) + | Mechanism::HashMlDsaSha3_384(params) + | Mechanism::HashMlDsaSha3_512(params) + | Mechanism::HashMlDsaShake128(params) + | Mechanism::HashMlDsaShake256(params) => match params.inner() { + None => CK_MECHANISM { + mechanism, + pParameter: null_mut(), + ulParameterLen: 0, + }, + Some(params) => make_mechanism(mechanism, params), + }, // Mechanisms without parameters Mechanism::AesKeyGen | Mechanism::AesEcb @@ -1198,7 +1358,10 @@ impl From<&Mechanism<'_>> for CK_MECHANISM { | Mechanism::Sha384KeyGen | Mechanism::Sha512KeyGen | Mechanism::GenericSecretKeyGen - | Mechanism::HkdfKeyGen => CK_MECHANISM { + | Mechanism::HkdfKeyGen + | Mechanism::MlKemKeyPairGen + | Mechanism::MlKem + | Mechanism::MlDsaKeyPairGen => CK_MECHANISM { mechanism, pParameter: null_mut(), ulParameterLen: 0, diff --git a/cryptoki/src/object.rs b/cryptoki/src/object.rs index 9f159236..10f2a44b 100644 --- a/cryptoki/src/object.rs +++ b/cryptoki/src/object.rs @@ -44,6 +44,8 @@ pub enum AttributeType { Coefficient, /// Determines if an object can be copied Copyable, + /// Determines if a key supports key decapsulation + Decapsulate, /// Determines if a key supports decryption Decrypt, /// Determines if it is possible to derive other keys from the key @@ -54,6 +56,8 @@ pub enum AttributeType { EcParams, /// DER-encoded Elliptic Curve point EcPoint, + /// Determines if a key supports key encapsulation + Encapsulate, /// Determines if a key supports encryption Encrypt, /// The end date for the object @@ -140,6 +144,14 @@ pub enum AttributeType { Wrap, /// Indicates that the key can only be wrapped with a wrapping key that has the Trusted attribute WrapWithTrusted, + /// Seed to derive private key + Seed, + /// Algorithm-specific parameter set + ParameterSet, + /// ML-KEM parameter set + MlKemParameterSet, + /// ML-DSA parameter set + MlDsaParameterSet, } impl AttributeType { @@ -258,6 +270,8 @@ impl AttributeType { CKA_UNWRAP_TEMPLATE => String::from(stringify!(CKA_UNWRAP_TEMPLATE)), CKA_DERIVE_TEMPLATE => String::from(stringify!(CKA_DERIVE_TEMPLATE)), CKA_ALLOWED_MECHANISMS => String::from(stringify!(CKA_ALLOWED_MECHANISMS)), + CKA_SEED => String::from(stringify!(CKA_SEED)), + CKA_PARAMETER_SET => String::from(stringify!(CKA_PARAMETER_SET)), CKA_VENDOR_DEFINED..=MAX_CU_ULONG => { format!("{}_{}", stringify!(CKA_VENDOR_DEFINED), val) } @@ -288,11 +302,13 @@ impl From for CK_ATTRIBUTE_TYPE { AttributeType::Class => CKA_CLASS, AttributeType::Coefficient => CKA_COEFFICIENT, AttributeType::Copyable => CKA_COPYABLE, + AttributeType::Decapsulate => CKA_DECAPSULATE, AttributeType::Decrypt => CKA_DECRYPT, AttributeType::Derive => CKA_DERIVE, AttributeType::Destroyable => CKA_DESTROYABLE, AttributeType::EcParams => CKA_EC_PARAMS, AttributeType::EcPoint => CKA_EC_POINT, + AttributeType::Encapsulate => CKA_ENCAPSULATE, AttributeType::Encrypt => CKA_ENCRYPT, AttributeType::EndDate => CKA_END_DATE, AttributeType::Exponent1 => CKA_EXPONENT_1, @@ -306,12 +322,15 @@ impl From for CK_ATTRIBUTE_TYPE { AttributeType::KeyType => CKA_KEY_TYPE, AttributeType::Label => CKA_LABEL, AttributeType::Local => CKA_LOCAL, + AttributeType::MlDsaParameterSet => CKA_PARAMETER_SET, + AttributeType::MlKemParameterSet => CKA_PARAMETER_SET, AttributeType::Modifiable => CKA_MODIFIABLE, AttributeType::Modulus => CKA_MODULUS, AttributeType::ModulusBits => CKA_MODULUS_BITS, AttributeType::NeverExtractable => CKA_NEVER_EXTRACTABLE, AttributeType::ObjectId => CKA_OBJECT_ID, AttributeType::Owner => CKA_OWNER, + AttributeType::ParameterSet => CKA_PARAMETER_SET, AttributeType::Prime => CKA_PRIME, AttributeType::Prime1 => CKA_PRIME_1, AttributeType::Prime2 => CKA_PRIME_2, @@ -319,6 +338,7 @@ impl From for CK_ATTRIBUTE_TYPE { AttributeType::PrivateExponent => CKA_PRIVATE_EXPONENT, AttributeType::PublicExponent => CKA_PUBLIC_EXPONENT, AttributeType::PublicKeyInfo => CKA_PUBLIC_KEY_INFO, + AttributeType::Seed => CKA_SEED, AttributeType::Sensitive => CKA_SENSITIVE, AttributeType::SerialNumber => CKA_SERIAL_NUMBER, AttributeType::Sign => CKA_SIGN, @@ -357,11 +377,13 @@ impl TryFrom for AttributeType { CKA_CLASS => Ok(AttributeType::Class), CKA_COEFFICIENT => Ok(AttributeType::Coefficient), CKA_COPYABLE => Ok(AttributeType::Copyable), + CKA_DECAPSULATE => Ok(AttributeType::Decapsulate), CKA_DECRYPT => Ok(AttributeType::Decrypt), CKA_DERIVE => Ok(AttributeType::Derive), CKA_DESTROYABLE => Ok(AttributeType::Destroyable), CKA_EC_PARAMS => Ok(AttributeType::EcParams), CKA_EC_POINT => Ok(AttributeType::EcPoint), + CKA_ENCAPSULATE => Ok(AttributeType::Encapsulate), CKA_ENCRYPT => Ok(AttributeType::Encrypt), CKA_END_DATE => Ok(AttributeType::EndDate), CKA_EXPONENT_1 => Ok(AttributeType::Exponent1), @@ -381,6 +403,7 @@ impl TryFrom for AttributeType { CKA_NEVER_EXTRACTABLE => Ok(AttributeType::NeverExtractable), CKA_OBJECT_ID => Ok(AttributeType::ObjectId), CKA_OWNER => Ok(AttributeType::Owner), + CKA_PARAMETER_SET => Ok(AttributeType::ParameterSet), CKA_PRIME => Ok(AttributeType::Prime), CKA_PRIME_1 => Ok(AttributeType::Prime1), CKA_PRIME_2 => Ok(AttributeType::Prime2), @@ -388,6 +411,7 @@ impl TryFrom for AttributeType { CKA_PRIVATE_EXPONENT => Ok(AttributeType::PrivateExponent), CKA_PUBLIC_EXPONENT => Ok(AttributeType::PublicExponent), CKA_PUBLIC_KEY_INFO => Ok(AttributeType::PublicKeyInfo), + CKA_SEED => Ok(AttributeType::Seed), CKA_SENSITIVE => Ok(AttributeType::Sensitive), CKA_SERIAL_NUMBER => Ok(AttributeType::SerialNumber), CKA_SIGN => Ok(AttributeType::Sign), @@ -441,6 +465,8 @@ pub enum Attribute { Coefficient(Vec), /// Determines if an object can be copied Copyable(bool), + /// Determines if a key supports key decapsulation + Decapsulate(bool), /// Determines if a key supports decryption Decrypt(bool), /// Determines if it is possible to derive other keys from the key @@ -451,6 +477,8 @@ pub enum Attribute { EcParams(Vec), /// Elliptic Curve point EcPoint(Vec), + /// Determines if a key supports key encapsulation + Encapsulate(bool), /// Determines if a key supports encryption Encrypt(bool), /// The end date of the object @@ -477,6 +505,10 @@ pub enum Attribute { Label(Vec), /// Indicates if the key was generated locally or copied from a locally created object Local(bool), + /// ML-DSA parameter set + MlDsaParameterSet(MlDsaParameterSetType), + /// ML-KEM parameter set + MlKemParameterSet(MlKemParameterSetType), /// Determines if the object can be modified Modifiable(bool), /// Modulus value of a key @@ -489,6 +521,8 @@ pub enum Attribute { ObjectId(Vec), /// DER encoding of the attribute certificate's subject field Owner(Vec), + /// Algorithm specific parameter set + ParameterSet(Vec), /// Prime number value of a key Prime(Vec), /// The prime `p` of an RSA private key @@ -503,6 +537,8 @@ pub enum Attribute { PublicExponent(Vec), /// DER-encoding of the SubjectPublicKeyInfo PublicKeyInfo(Vec), + /// Seed to derive private key + Seed(Vec), /// Determines if the key is sensitive Sensitive(bool), /// DER encoding of the certificate serial number @@ -555,11 +591,13 @@ impl Attribute { Attribute::Class(_) => AttributeType::Class, Attribute::Coefficient(_) => AttributeType::Coefficient, Attribute::Copyable(_) => AttributeType::Copyable, + Attribute::Decapsulate(_) => AttributeType::Decapsulate, Attribute::Decrypt(_) => AttributeType::Decrypt, Attribute::Derive(_) => AttributeType::Derive, Attribute::Destroyable(_) => AttributeType::Destroyable, Attribute::EcParams(_) => AttributeType::EcParams, Attribute::EcPoint(_) => AttributeType::EcPoint, + Attribute::Encapsulate(_) => AttributeType::Encapsulate, Attribute::Encrypt(_) => AttributeType::Encrypt, Attribute::EndDate(_) => AttributeType::EndDate, Attribute::Exponent1(_) => AttributeType::Exponent1, @@ -573,12 +611,15 @@ impl Attribute { Attribute::KeyType(_) => AttributeType::KeyType, Attribute::Label(_) => AttributeType::Label, Attribute::Local(_) => AttributeType::Local, + Attribute::MlDsaParameterSet(_) => AttributeType::MlDsaParameterSet, + Attribute::MlKemParameterSet(_) => AttributeType::MlKemParameterSet, Attribute::Modifiable(_) => AttributeType::Modifiable, Attribute::Modulus(_) => AttributeType::Modulus, Attribute::ModulusBits(_) => AttributeType::ModulusBits, Attribute::NeverExtractable(_) => AttributeType::NeverExtractable, Attribute::ObjectId(_) => AttributeType::ObjectId, Attribute::Owner(_) => AttributeType::Owner, + Attribute::ParameterSet(_) => AttributeType::ParameterSet, Attribute::Prime(_) => AttributeType::Prime, Attribute::Prime1(_) => AttributeType::Prime1, Attribute::Prime2(_) => AttributeType::Prime2, @@ -586,6 +627,7 @@ impl Attribute { Attribute::PrivateExponent(_) => AttributeType::PrivateExponent, Attribute::PublicExponent(_) => AttributeType::PublicExponent, Attribute::PublicKeyInfo(_) => AttributeType::PublicKeyInfo, + Attribute::Seed(_) => AttributeType::Seed, Attribute::Sensitive(_) => AttributeType::Sensitive, Attribute::SerialNumber(_) => AttributeType::SerialNumber, Attribute::Sign(_) => AttributeType::Sign, @@ -612,9 +654,11 @@ impl Attribute { Attribute::AlwaysAuthenticate(_) | Attribute::AlwaysSensitive(_) | Attribute::Copyable(_) + | Attribute::Decapsulate(_) | Attribute::Decrypt(_) | Attribute::Derive(_) | Attribute::Destroyable(_) + | Attribute::Encapsulate(_) | Attribute::Encrypt(_) | Attribute::Extractable(_) | Attribute::Local(_) @@ -655,17 +699,21 @@ impl Attribute { Attribute::ModulusBits(_) => size_of::(), Attribute::ObjectId(bytes) => bytes.len(), Attribute::Owner(bytes) => bytes.len(), + Attribute::ParameterSet(bytes) => bytes.len(), Attribute::Prime(bytes) => bytes.len(), Attribute::Prime1(bytes) => bytes.len(), Attribute::Prime2(bytes) => bytes.len(), Attribute::PrivateExponent(bytes) => bytes.len(), Attribute::PublicExponent(bytes) => bytes.len(), Attribute::PublicKeyInfo(bytes) => bytes.len(), + Attribute::Seed(bytes) => bytes.len(), Attribute::SerialNumber(bytes) => bytes.len(), Attribute::Subject(bytes) => bytes.len(), Attribute::Value(bytes) => bytes.len(), Attribute::ValueLen(_) => size_of::(), Attribute::EndDate(_) | Attribute::StartDate(_) => size_of::(), + Attribute::MlKemParameterSet(_) => size_of::(), + Attribute::MlDsaParameterSet(_) => size_of::(), Attribute::AllowedMechanisms(mechanisms) => { size_of::() * mechanisms.len() @@ -692,9 +740,11 @@ impl Attribute { Attribute::AlwaysAuthenticate(b) | Attribute::AlwaysSensitive(b) | Attribute::Copyable(b) + | Attribute::Decapsulate(b) | Attribute::Decrypt(b) | Attribute::Derive(b) | Attribute::Destroyable(b) + | Attribute::Encapsulate(b) | Attribute::Encrypt(b) | Attribute::Extractable(b) | Attribute::Local(b) @@ -731,6 +781,7 @@ impl Attribute { | Attribute::Issuer(bytes) | Attribute::Label(bytes) | Attribute::ObjectId(bytes) + | Attribute::ParameterSet(bytes) | Attribute::Prime(bytes) | Attribute::Prime1(bytes) | Attribute::Prime2(bytes) @@ -739,6 +790,7 @@ impl Attribute { | Attribute::PublicKeyInfo(bytes) | Attribute::Modulus(bytes) | Attribute::Owner(bytes) + | Attribute::Seed(bytes) | Attribute::SerialNumber(bytes) | Attribute::Subject(bytes) | Attribute::Url(bytes) @@ -752,6 +804,8 @@ impl Attribute { Attribute::Class(object_class) => object_class as *const _ as *mut c_void, Attribute::KeyGenMechanism(mech) => mech as *const _ as *mut c_void, Attribute::KeyType(key_type) => key_type as *const _ as *mut c_void, + Attribute::MlKemParameterSet(p) => p as *const _ as *mut c_void, + Attribute::MlDsaParameterSet(p) => p as *const _ as *mut c_void, Attribute::AllowedMechanisms(mechanisms) => mechanisms.as_ptr() as *mut c_void, Attribute::EndDate(date) | Attribute::StartDate(date) => { date as *const _ as *mut c_void @@ -808,9 +862,11 @@ impl TryFrom for Attribute { Ok(Attribute::AlwaysSensitive(try_u8_into_bool(val)?)) } AttributeType::Copyable => Ok(Attribute::Copyable(try_u8_into_bool(val)?)), + AttributeType::Decapsulate => Ok(Attribute::Decapsulate(try_u8_into_bool(val)?)), AttributeType::Decrypt => Ok(Attribute::Decrypt(try_u8_into_bool(val)?)), AttributeType::Derive => Ok(Attribute::Derive(try_u8_into_bool(val)?)), AttributeType::Destroyable => Ok(Attribute::Destroyable(try_u8_into_bool(val)?)), + AttributeType::Encapsulate => Ok(Attribute::Encapsulate(try_u8_into_bool(val)?)), AttributeType::Encrypt => Ok(Attribute::Encrypt(try_u8_into_bool(val)?)), AttributeType::Extractable => Ok(Attribute::Extractable(try_u8_into_bool(val)?)), AttributeType::Local => Ok(Attribute::Local(try_u8_into_bool(val)?)), @@ -857,6 +913,7 @@ impl TryFrom for Attribute { } AttributeType::Issuer => Ok(Attribute::Issuer(val.to_vec())), AttributeType::Label => Ok(Attribute::Label(val.to_vec())), + AttributeType::ParameterSet => Ok(Attribute::ParameterSet(val.to_vec())), AttributeType::Prime => Ok(Attribute::Prime(val.to_vec())), AttributeType::Prime1 => Ok(Attribute::Prime1(val.to_vec())), AttributeType::Prime2 => Ok(Attribute::Prime2(val.to_vec())), @@ -866,6 +923,7 @@ impl TryFrom for Attribute { AttributeType::Modulus => Ok(Attribute::Modulus(val.to_vec())), AttributeType::ObjectId => Ok(Attribute::ObjectId(val.to_vec())), AttributeType::Owner => Ok(Attribute::Owner(val.to_vec())), + AttributeType::Seed => Ok(Attribute::Seed(val.to_vec())), AttributeType::SerialNumber => Ok(Attribute::SerialNumber(val.to_vec())), AttributeType::Subject => Ok(Attribute::Subject(val.to_vec())), AttributeType::Url => Ok(Attribute::Url(val.to_vec())), @@ -884,6 +942,12 @@ impl TryFrom for Attribute { AttributeType::KeyType => Ok(Attribute::KeyType( CK_KEY_TYPE::from_ne_bytes(val.try_into()?).try_into()?, )), + AttributeType::MlKemParameterSet => Ok(Attribute::MlKemParameterSet( + CK_ML_KEM_PARAMETER_SET_TYPE::from_ne_bytes(val.try_into()?).try_into()?, + )), + AttributeType::MlDsaParameterSet => Ok(Attribute::MlDsaParameterSet( + CK_ML_DSA_PARAMETER_SET_TYPE::from_ne_bytes(val.try_into()?).try_into()?, + )), AttributeType::AllowedMechanisms => { let val = unsafe { std::slice::from_raw_parts( @@ -986,6 +1050,134 @@ impl std::fmt::UpperHex for ObjectHandle { } } +#[derive(Copy, Debug, Clone, PartialEq, Eq)] +#[repr(transparent)] +/// Identifier of the ML-KEM parameter set +pub struct MlKemParameterSetType { + val: CK_ML_KEM_PARAMETER_SET_TYPE, +} + +impl MlKemParameterSetType { + /// ML-KEM 512 + pub const ML_KEM_512: MlKemParameterSetType = MlKemParameterSetType { + val: CKP_ML_KEM_512, + }; + /// ML-KEM 768 + pub const ML_KEM_768: MlKemParameterSetType = MlKemParameterSetType { + val: CKP_ML_KEM_768, + }; + /// ML-KEM 1024 + pub const ML_KEM_1024: MlKemParameterSetType = MlKemParameterSetType { + val: CKP_ML_KEM_1024, + }; + + pub(crate) fn stringify(val: CK_ML_KEM_PARAMETER_SET_TYPE) -> String { + match val { + CKP_ML_KEM_512 => String::from(stringify!(CKP_ML_KEM_512)), + CKP_ML_KEM_768 => String::from(stringify!(CKP_ML_KEM_768)), + CKP_ML_KEM_1024 => String::from(stringify!(CKP_ML_KEM_1024)), + _ => format!("unknown ({val:08x})"), + } + } +} + +impl std::fmt::Display for MlKemParameterSetType { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", MlKemParameterSetType::stringify(self.val)) + } +} + +impl Deref for MlKemParameterSetType { + type Target = CK_ML_KEM_PARAMETER_SET_TYPE; + + fn deref(&self) -> &Self::Target { + &self.val + } +} + +impl From for CK_ML_KEM_PARAMETER_SET_TYPE { + fn from(val: MlKemParameterSetType) -> Self { + *val + } +} + +impl TryFrom for MlKemParameterSetType { + type Error = Error; + + fn try_from(val: CK_ML_KEM_PARAMETER_SET_TYPE) -> Result { + match val { + CKP_ML_KEM_512 => Ok(MlKemParameterSetType::ML_KEM_512), + CKP_ML_KEM_768 => Ok(MlKemParameterSetType::ML_KEM_768), + CKP_ML_KEM_1024 => Ok(MlKemParameterSetType::ML_KEM_1024), + _ => { + error!("ML-KEM parameter set {} is not supported.", val); + Err(Error::NotSupported) + } + } + } +} + +#[derive(Copy, Debug, Clone, PartialEq, Eq)] +#[repr(transparent)] +/// Identifier of the ML-DSA parameter set +pub struct MlDsaParameterSetType { + val: CK_ML_DSA_PARAMETER_SET_TYPE, +} + +impl MlDsaParameterSetType { + /// ML-DSA 44 + pub const ML_DSA_44: MlDsaParameterSetType = MlDsaParameterSetType { val: CKP_ML_DSA_44 }; + /// ML-DSA 65 + pub const ML_DSA_65: MlDsaParameterSetType = MlDsaParameterSetType { val: CKP_ML_DSA_65 }; + /// ML-DSA 87 + pub const ML_DSA_87: MlDsaParameterSetType = MlDsaParameterSetType { val: CKP_ML_DSA_87 }; + + pub(crate) fn stringify(val: CK_ML_DSA_PARAMETER_SET_TYPE) -> String { + match val { + CKP_ML_DSA_44 => String::from(stringify!(CKP_ML_DSA_44)), + CKP_ML_DSA_65 => String::from(stringify!(CKP_ML_DSA_65)), + CKP_ML_DSA_87 => String::from(stringify!(CKP_ML_DSA_87)), + _ => format!("unknown ({val:08x})"), + } + } +} + +impl std::fmt::Display for MlDsaParameterSetType { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", MlDsaParameterSetType::stringify(self.val)) + } +} + +impl Deref for MlDsaParameterSetType { + type Target = CK_ML_DSA_PARAMETER_SET_TYPE; + + fn deref(&self) -> &Self::Target { + &self.val + } +} + +impl From for CK_ML_DSA_PARAMETER_SET_TYPE { + fn from(val: MlDsaParameterSetType) -> Self { + *val + } +} + +impl TryFrom for MlDsaParameterSetType { + type Error = Error; + + fn try_from(val: CK_ML_DSA_PARAMETER_SET_TYPE) -> Result { + match val { + CKP_ML_DSA_44 => Ok(MlDsaParameterSetType::ML_DSA_44), + CKP_ML_DSA_65 => Ok(MlDsaParameterSetType::ML_DSA_65), + CKP_ML_DSA_87 => Ok(MlDsaParameterSetType::ML_DSA_87), + _ => { + error!("ML-DSA parameter set {} is not supported.", val); + Err(Error::NotSupported) + } + } + } +} + #[derive(Copy, Debug, Clone, PartialEq, Eq)] #[repr(transparent)] /// Identifier of the class of an object @@ -1213,6 +1405,12 @@ impl KeyType { /// HKDF key pub const HKDF: KeyType = KeyType { val: CKK_HKDF }; + /// ML-KEM key + pub const ML_KEM: KeyType = KeyType { val: CKK_ML_KEM }; + + /// ML-DSA key + pub const ML_DSA: KeyType = KeyType { val: CKK_ML_DSA }; + /// Create vendor defined key type /// /// # Arguments @@ -1285,6 +1483,8 @@ impl KeyType { CKK_EC_EDWARDS => String::from(stringify!(CKK_EC_EDWARDS)), CKK_EC_MONTGOMERY => String::from(stringify!(CKK_EC_MONTGOMERY)), CKK_HKDF => String::from(stringify!(CKK_HKDF)), + CKK_ML_KEM => String::from(stringify!(CKK_ML_KEM)), + CKK_ML_DSA => String::from(stringify!(CKK_ML_DSA)), CKK_VENDOR_DEFINED..=MAX_CU_ULONG => String::from(stringify!(key_type)), _ => format!("unknown ({key_type:08x})"), } @@ -1360,6 +1560,8 @@ impl TryFrom for KeyType { CKK_EC_EDWARDS => Ok(KeyType::EC_EDWARDS), CKK_EC_MONTGOMERY => Ok(KeyType::EC_MONTGOMERY), CKK_HKDF => Ok(KeyType::HKDF), + CKK_ML_KEM => Ok(KeyType::ML_KEM), + CKK_ML_DSA => Ok(KeyType::ML_DSA), CKK_VENDOR_DEFINED..=MAX_CU_ULONG => KeyType::new_vendor_defined(key_type), _ => { error!("Key type {} is not supported.", key_type); diff --git a/cryptoki/src/session/encapsulation.rs b/cryptoki/src/session/encapsulation.rs new file mode 100644 index 00000000..1015f75c --- /dev/null +++ b/cryptoki/src/session/encapsulation.rs @@ -0,0 +1,90 @@ +// Copyright 2025 Contributors to the Parsec project. +// SPDX-License-Identifier: Apache-2.0 +//! Encapsulating/decapsulating data + +use crate::context::Function; +use crate::error::{Result, Rv}; +use crate::mechanism::Mechanism; +use crate::object::{Attribute, ObjectHandle}; +use crate::session::Session; +use cryptoki_sys::*; +use std::convert::TryInto; + +impl Session { + /// Encapsulate key + pub fn encapsulate_key( + &self, + mechanism: &Mechanism, + publickey: ObjectHandle, + template: &[Attribute], + ) -> Result<(Vec, ObjectHandle)> { + let mut mechanism: CK_MECHANISM = mechanism.into(); + let mut template: Vec = template.iter().map(|attr| attr.into()).collect(); + let mut encapsulated_len = 0; + let mut handle = 0; + + // Get the output buffer length + unsafe { + Rv::from(get_pkcs11!(self.client(), C_EncapsulateKey)( + self.handle(), + &mut mechanism as CK_MECHANISM_PTR, + publickey.handle(), + template.as_mut_ptr(), + template.len().try_into()?, + std::ptr::null_mut(), + &mut encapsulated_len, + &mut handle, + )) + .into_result(Function::EncapsulateKey)?; + } + + let mut encapsulated = vec![0; encapsulated_len.try_into()?]; + + unsafe { + Rv::from(get_pkcs11!(self.client(), C_EncapsulateKey)( + self.handle(), + &mut mechanism as CK_MECHANISM_PTR, + publickey.handle(), + template.as_mut_ptr(), + template.len().try_into()?, + encapsulated.as_mut_ptr(), + &mut encapsulated_len, + &mut handle, + )) + .into_result(Function::EncapsulateKey)?; + } + + encapsulated.resize(encapsulated_len.try_into()?, 0); + + Ok((encapsulated, ObjectHandle::new(handle))) + } + + /// Decapsulate key + pub fn decapsulate_key( + &self, + mechanism: &Mechanism, + privatekey: ObjectHandle, + template: &[Attribute], + ciphertext: &[u8], + ) -> Result { + let mut mechanism: CK_MECHANISM = mechanism.into(); + let mut template: Vec = template.iter().map(|attr| attr.into()).collect(); + let mut handle = 0; + + unsafe { + Rv::from(get_pkcs11!(self.client(), C_DecapsulateKey)( + self.handle(), + &mut mechanism as CK_MECHANISM_PTR, + privatekey.handle(), + template.as_mut_ptr(), + template.len().try_into()?, + ciphertext.as_ptr() as *mut u8, + ciphertext.len().try_into()?, + &mut handle, + )) + .into_result(Function::DecapsulateKey)?; + } + + Ok(ObjectHandle::new(handle)) + } +} diff --git a/cryptoki/src/session/mod.rs b/cryptoki/src/session/mod.rs index bf05fde2..c8ec7bb4 100644 --- a/cryptoki/src/session/mod.rs +++ b/cryptoki/src/session/mod.rs @@ -10,6 +10,7 @@ use std::marker::PhantomData; mod decryption; mod digesting; +mod encapsulation; mod encryption; mod key_management; mod message_decryption; diff --git a/cryptoki/src/session/signing_macing.rs b/cryptoki/src/session/signing_macing.rs index 9deed03d..7eda1aae 100644 --- a/cryptoki/src/session/signing_macing.rs +++ b/cryptoki/src/session/signing_macing.rs @@ -194,4 +194,67 @@ impl Session { Ok(()) } + + /// Initialize Signature verification operation, by including the signature at initialization + pub fn verify_signature_init( + &self, + mechanism: &Mechanism, + key: ObjectHandle, + signature: &[u8], + ) -> Result<()> { + let mut mechanism: CK_MECHANISM = mechanism.into(); + + unsafe { + Rv::from(get_pkcs11!(self.client(), C_VerifySignatureInit)( + self.handle(), + &mut mechanism as CK_MECHANISM_PTR, + key.handle(), + signature.as_ptr() as *mut u8, + signature.len().try_into()?, + )) + .into_result(Function::VerifySignatureInit)?; + } + + Ok(()) + } + + /// Verify Signature in single-part operation + pub fn verify_signature(&self, data: &[u8]) -> Result<()> { + unsafe { + Rv::from(get_pkcs11!(self.client(), C_VerifySignature)( + self.handle(), + data.as_ptr() as *mut u8, + data.len().try_into()?, + )) + .into_result(Function::VerifySignature)?; + } + + Ok(()) + } + + /// continue multi-part Verify Signature operation + pub fn verify_signature_update(&self, data: &[u8]) -> Result<()> { + unsafe { + Rv::from(get_pkcs11!(self.client(), C_VerifySignatureUpdate)( + self.handle(), + data.as_ptr() as *mut u8, + data.len().try_into()?, + )) + .into_result(Function::VerifySignatureUpdate)?; + } + + Ok(()) + } + + /// finalize multi-part Verify Signature operation + pub fn verify_signature_final(&self) -> Result<()> { + unsafe { + Rv::from(get_pkcs11!(self.client(), C_VerifySignatureFinal)( + self.handle(), + )) + .into_result(Function::VerifySignatureFinal)?; + } + + Ok(()) + } } diff --git a/cryptoki/tests/common.rs b/cryptoki/tests/common/mod.rs similarity index 98% rename from cryptoki/tests/common.rs rename to cryptoki/tests/common/mod.rs index 65be5c60..255d2d69 100644 --- a/cryptoki/tests/common.rs +++ b/cryptoki/tests/common/mod.rs @@ -16,6 +16,7 @@ fn get_pkcs11_path() -> String { .unwrap_or_else(|_| "/usr/local/lib/softhsm/libsofthsm2.so".to_string()) } +#[allow(dead_code)] pub fn is_softhsm() -> bool { get_pkcs11_path().contains("softhsm") } diff --git a/cryptoki/tests/ml_dsa.rs b/cryptoki/tests/ml_dsa.rs new file mode 100644 index 00000000..cad353d8 --- /dev/null +++ b/cryptoki/tests/ml_dsa.rs @@ -0,0 +1,353 @@ +// Copyright 2025 Contributors to the Parsec project. +// SPDX-License-Identifier: Apache-2.0 +mod common; + +use crate::common::{init_pins, USER_PIN}; +use cryptoki::context::Function; +use cryptoki::error::{Error, RvError}; +use cryptoki::mechanism::mldsa::{HashSignAdditionalContext, HedgeType, SignAdditionalContext}; +use cryptoki::mechanism::{Mechanism, MechanismType}; +use cryptoki::object::{Attribute, MlDsaParameterSetType}; +use cryptoki::session::UserType; +use cryptoki::types::AuthPin; +use serial_test::serial; + +use testresult::TestResult; + +#[test] +#[serial] +fn ml_dsa() -> TestResult { + let (pkcs11, slot) = init_pins(); + // PKCS#11 3.2 API is not supported by this token. Skip + if !pkcs11.is_fn_supported(Function::VerifySignature) { + /* return Ignore(); */ + print!("SKIP: The PKCS#11 module does not support VerifySignature API"); + return Ok(()); + } + + // open a session + let session = pkcs11.open_rw_session(slot)?; + + // log in the session + session.login(UserType::User, Some(&AuthPin::new(USER_PIN.into())))?; + + let mechanism = Mechanism::MlDsaKeyPairGen; + + // pub key template + let pub_key_template = vec![ + Attribute::Token(true), + Attribute::MlDsaParameterSet(MlDsaParameterSetType::ML_DSA_65), + Attribute::Verify(true), + ]; + + // priv key template + let priv_key_template = vec![Attribute::Token(true), Attribute::Sign(true)]; + + // generate a key pair + let (public, private) = + session.generate_key_pair(&mechanism, &pub_key_template, &priv_key_template)?; + + // without optional context + let mechanism = Mechanism::MlDsa(SignAdditionalContext::new(HedgeType::Preferred, None)); + + // data to sign + let data = [0xFF, 0x55, 0xDD]; + + let signature1 = session.sign(&mechanism, private, &data)?; + + session.verify(&mechanism, public, &data, &signature1)?; + + // also using the new API + session.verify_signature_init(&mechanism, public, &signature1)?; + session.verify_signature(&data)?; + + // With Context + Deterministic Hedge + let context = [ + 0xEE, 0x0B, 0x3F, 0x67, 0x9F, 0xB5, 0x0F, 0x59, 0xAD, 0x31, 0x32, 0x8A, 0xAF, 0x4E, 0x70, + 0x2C, 0xCF, 0x60, 0x92, 0xDA, 0x47, 0x94, 0xDC, 0xF0, 0x7C, 0x8, 0xEA, 0x27, 0x8B, 0x34, + 0x22, 0x8A, 0x41, + ]; + let mechanism = Mechanism::MlDsa(SignAdditionalContext::new( + HedgeType::DeterministicRequired, + Some(&context), + )); + + let signature2 = session.sign(&mechanism, private, &data)?; + let signature3 = session.sign(&mechanism, private, &data)?; + // Deterministic signature + assert_eq!(signature2, signature3); + + session.verify(&mechanism, public, &data, &signature2)?; + + // also using the new API + session.verify_signature_init(&mechanism, public, &signature2)?; + session.verify_signature(&data)?; + + // the signature from previous step should fail to verify with different context + let result = session.verify(&mechanism, public, &data, &signature1); + assert!(result.is_err()); + assert!(matches!( + result.unwrap_err(), + Error::Pkcs11(_, Function::Verify) + )); + + // also using the new API + session.verify_signature_init(&mechanism, public, &signature1)?; + let result = session.verify_signature(&data); + assert!(result.is_err()); + assert!(matches!( + result.unwrap_err(), + Error::Pkcs11(_, Function::VerifySignature) + )); + + // delete keys + session.destroy_object(public)?; + session.destroy_object(private)?; + + Ok(()) +} + +#[test] +#[serial] +fn ml_dsa_multipart() -> TestResult { + let (pkcs11, slot) = init_pins(); + // PKCS#11 3.2 API is not supported by this token. Skip + if !pkcs11.is_fn_supported(Function::VerifySignature) { + /* return Ignore(); */ + print!("SKIP: The PKCS#11 module does not support VerifySignature API"); + return Ok(()); + } + + // open a session + let session = pkcs11.open_rw_session(slot)?; + + // log in the session + session.login(UserType::User, Some(&AuthPin::new(USER_PIN.into())))?; + + let mechanism = Mechanism::MlDsaKeyPairGen; + + // pub key template + let pub_key_template = vec![ + Attribute::Token(true), + Attribute::MlDsaParameterSet(MlDsaParameterSetType::ML_DSA_87), + Attribute::Verify(true), + ]; + + // priv key template + let priv_key_template = vec![Attribute::Token(true), Attribute::Sign(true)]; + + // generate a key pair + let (public, private) = + session.generate_key_pair(&mechanism, &pub_key_template, &priv_key_template)?; + + // without optional context + let mechanism = Mechanism::MlDsa(SignAdditionalContext::new(HedgeType::Required, None)); + + // data to sign + let data = [ + 0x1E, 0x5A, 0x78, 0xAD, 0x64, 0xDF, 0x22, 0x9A, 0xA2, 0x2F, 0xD7, 0x94, 0xEC, 0x0E, 0x82, + 0xD0, 0xF6, 0x99, 0x53, 0x11, 0x8C, 0x09, 0xD1, 0x34, 0xDF, 0xA2, 0x0F, 0x1C, 0xC6, 0x4A, + 0x36, 0x71, + ]; + + session.sign_init(&mechanism, private)?; + for part in data.chunks(10) { + session.sign_update(part)?; + } + let signature = session.sign_final()?; + + // verification of multi-part signature + session.verify_init(&mechanism, public)?; + for part in data.chunks(10) { + session.verify_update(part)?; + } + session.verify_final(&signature)?; + + // but works with the new API + session.verify_signature_init(&mechanism, public, &signature)?; + for part in data.chunks(10) { + session.verify_signature_update(part)?; + } + session.verify_signature_final()?; + + // delete keys + session.destroy_object(public)?; + session.destroy_object(private)?; + + Ok(()) +} + +#[test] +#[serial] +fn ml_dsa_hash() -> TestResult { + let (pkcs11, slot) = init_pins(); + // PKCS#11 3.2 API is not supported by this token. Skip + if !pkcs11.is_fn_supported(Function::VerifySignature) { + /* return Ignore(); */ + print!("SKIP: The PKCS#11 module does not support VerifySignature API"); + return Ok(()); + } + + // open a session + let session = pkcs11.open_rw_session(slot)?; + + // log in the session + session.login(UserType::User, Some(&AuthPin::new(USER_PIN.into())))?; + + let mechanism = Mechanism::MlDsaKeyPairGen; + + // pub key template + let pub_key_template = vec![ + Attribute::Token(true), + Attribute::MlDsaParameterSet(MlDsaParameterSetType::ML_DSA_44), + Attribute::Verify(true), + ]; + + // priv key template + let priv_key_template = vec![Attribute::Token(true), Attribute::Sign(true)]; + + // generate a key pair + let (public, private) = + session.generate_key_pair(&mechanism, &pub_key_template, &priv_key_template)?; + + // without optional context + let mechanism = Mechanism::HashMlDsa(HashSignAdditionalContext::new( + HedgeType::Preferred, + None, + MechanismType::SHA384, + )); + + // data to sign is already sha384 hash! + let data = [ + 0x1E, 0x5A, 0x78, 0xAD, 0x64, 0xDF, 0x22, 0x9A, 0xA2, 0x2F, 0xD7, 0x94, 0xEC, 0x0E, 0x82, + 0xD0, 0xF6, 0x99, 0x53, 0x11, 0x8C, 0x09, 0xD1, 0x34, 0xDF, 0xA2, 0x0F, 0x1C, 0xC6, 0x4A, + 0xD0, 0xF6, 0x99, 0x53, 0x11, 0x8C, 0x09, 0xD1, 0x34, 0xDF, 0xA2, 0x0F, 0x1C, 0xC6, 0x4A, + 0x36, 0x71, 0x31, + ]; + + // the hash ML-DSA does not support multi-part operation + session.sign_init(&mechanism, private)?; + let result = session.sign_update(&data[..10]); + assert!(result.is_err()); + assert!(matches!( + result.unwrap_err(), + Error::Pkcs11(RvError::OperationNotInitialized, Function::SignUpdate) + )); + + // this should do with one-shot + let signature = session.sign(&mechanism, private, &data)?; + + // verification of multi-part signature does not work here either + session.verify_init(&mechanism, public)?; + let result = session.verify_update(&data[..10]); + assert!(result.is_err()); + assert!(matches!( + result.unwrap_err(), + Error::Pkcs11(RvError::OperationNotInitialized, Function::VerifyUpdate) + )); + + // this should do with one-shot + session.verify(&mechanism, public, &data, &signature)?; + + // multipart verification does not work with the new API either + session.verify_signature_init(&mechanism, public, &signature)?; + let result = session.verify_signature_update(&data[..10]); + assert!(result.is_err()); + assert!(matches!( + result.unwrap_err(), + Error::Pkcs11( + RvError::OperationNotInitialized, + Function::VerifySignatureUpdate + ) + )); + + // should work with one-shot new API + session.verify_signature_init(&mechanism, public, &signature)?; + session.verify_signature(&data)?; + + // delete keys + session.destroy_object(public)?; + session.destroy_object(private)?; + + Ok(()) +} + +#[test] +#[serial] +fn ml_dsa_hashes() -> TestResult { + let (pkcs11, slot) = init_pins(); + // PKCS#11 3.2 API is not supported by this token. Skip + if !pkcs11.is_fn_supported(Function::VerifySignature) { + /* return Ignore(); */ + print!("SKIP: The PKCS#11 module does not support VerifySignature API"); + return Ok(()); + } + + // open a session + let session = pkcs11.open_rw_session(slot)?; + + // log in the session + session.login(UserType::User, Some(&AuthPin::new(USER_PIN.into())))?; + + let mechanism = Mechanism::MlDsaKeyPairGen; + + // pub key template + let pub_key_template = vec![ + Attribute::Token(true), + Attribute::MlDsaParameterSet(MlDsaParameterSetType::ML_DSA_65), + Attribute::Verify(true), + ]; + + // priv key template + let priv_key_template = vec![Attribute::Token(true), Attribute::Sign(true)]; + + // generate a key pair + let (public, private) = + session.generate_key_pair(&mechanism, &pub_key_template, &priv_key_template)?; + + // without optional context + let mechanism = + Mechanism::HashMlDsaSha3_224(SignAdditionalContext::new(HedgeType::Required, None)); + + let data = [ + 0xD0, 0xF6, 0x99, 0x53, 0x11, 0x8C, 0x09, 0xD1, 0x34, 0xDF, 0xA2, 0x0F, 0x1C, 0xC6, 0x4A, + 0x1E, 0x5A, 0x78, 0xAD, 0x64, 0xDF, 0x22, 0x9A, 0xA2, 0x2F, 0xD7, 0x94, 0xEC, 0x0E, 0x82, + ]; + + // first try multipart + session.sign_init(&mechanism, private)?; + for part in data.chunks(10) { + session.sign_update(part)?; + } + let signature = session.sign_final()?; + + // this should do with one-shot + let signature2 = session.sign(&mechanism, private, &data)?; + + // first try multipart + session.verify_init(&mechanism, public)?; + for part in data.chunks(10) { + session.verify_update(part)?; + } + session.verify_final(&signature)?; + + // this should do with one-shot + session.verify(&mechanism, public, &data, &signature)?; + + // first try multipart + session.verify_signature_init(&mechanism, public, &signature2)?; + for part in data.chunks(10) { + session.verify_signature_update(part)?; + } + session.verify_signature_final()?; + + // should work with one-shot new API + session.verify_signature_init(&mechanism, public, &signature2)?; + session.verify_signature(&data)?; + + // delete keys + session.destroy_object(public)?; + session.destroy_object(private)?; + + Ok(()) +} diff --git a/cryptoki/tests/ml_kem.rs b/cryptoki/tests/ml_kem.rs new file mode 100644 index 00000000..d4aece03 --- /dev/null +++ b/cryptoki/tests/ml_kem.rs @@ -0,0 +1,105 @@ +// Copyright 2025 Contributors to the Parsec project. +// SPDX-License-Identifier: Apache-2.0 +mod common; + +use crate::common::{init_pins, USER_PIN}; +use cryptoki::context::Function; +use cryptoki::mechanism::Mechanism; +use cryptoki::object::{Attribute, AttributeType, KeyType, MlKemParameterSetType, ObjectClass}; +use cryptoki::session::UserType; +use cryptoki::types::AuthPin; +use serial_test::serial; + +use testresult::TestResult; + +#[test] +#[serial] +fn ml_kem() -> TestResult { + let (pkcs11, slot) = init_pins(); + // PKCS#11 3.2 API is not supported by this token. Skip + if !pkcs11.is_fn_supported(Function::EncapsulateKey) { + /* return Ignore(); */ + print!("SKIP: The PKCS#11 module does not support encapsulation API"); + return Ok(()); + } + + // open a session + let session = pkcs11.open_rw_session(slot)?; + + // log in the session + session.login(UserType::User, Some(&AuthPin::new(USER_PIN.into())))?; + + let mechanism = Mechanism::MlKemKeyPairGen; + + // pub key template + let pub_key_template = vec![ + Attribute::Token(true), + Attribute::MlKemParameterSet(MlKemParameterSetType::ML_KEM_768), + Attribute::Encapsulate(true), + ]; + + // priv key template + let priv_key_template = vec![Attribute::Token(true), Attribute::Decapsulate(true)]; + + // generate a key pair + let (public, private) = + session.generate_key_pair(&mechanism, &pub_key_template, &priv_key_template)?; + + let secret_template = vec![ + Attribute::Token(true), + Attribute::Class(ObjectClass::SECRET_KEY), + Attribute::KeyType(KeyType::AES), + Attribute::Sensitive(false), + Attribute::Extractable(true), + Attribute::Encrypt(true), + Attribute::Decrypt(true), + ]; + + let mechanism = Mechanism::MlKem; + + let (ciphertext, secret) = session.encapsulate_key(&mechanism, public, &secret_template)?; + + let secret2 = session.decapsulate_key(&mechanism, private, &secret_template, &ciphertext)?; + + // The secret and secret2 keys should be the same now. Try to extract them and compare + let value_attribute = session + .get_attributes(secret, &[AttributeType::Value])? + .remove(0); + let value = if let Attribute::Value(value) = value_attribute { + value + } else { + panic!("Expected value attribute."); + }; + let value_attribute2 = session + .get_attributes(secret2, &[AttributeType::Value])? + .remove(0); + let value2 = if let Attribute::Value(value) = value_attribute2 { + value + } else { + panic!("Expected value attribute."); + }; + assert_eq!(value, value2); + + // Test the generated keys can do some encryption/decryption operation + let data = vec![ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, + ]; + + // Encrypt data with first key and decrypt with the other + let ctext = session.encrypt(&Mechanism::AesEcb, secret, &data)?; + let ptext = session.decrypt(&Mechanism::AesEcb, secret2, &ctext)?; + assert_eq!(data, ptext); + // and vice versa + let ctext = session.encrypt(&Mechanism::AesEcb, secret2, &data)?; + let ptext = session.decrypt(&Mechanism::AesEcb, secret, &ctext)?; + assert_eq!(data, ptext); + + // delete keys + session.destroy_object(public)?; + session.destroy_object(private)?; + session.destroy_object(secret)?; + session.destroy_object(secret2)?; + + Ok(()) +}