From cac4fca49aa948280ef440adc2755c212746f2cd Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Fri, 25 Apr 2025 14:38:24 +0200 Subject: [PATCH 01/12] Import the PKCS#11 3.2 headers Signed-off-by: Jakub Jelen --- cryptoki-sys/vendor/README.md | 4 +- cryptoki-sys/vendor/pkcs11.h | 386 ++++++++++++++++++++++++++++++++-- 2 files changed, 375 insertions(+), 15 deletions(-) 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; From df6be000e3019fd5923b960080d5d5586b545e10 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Fri, 25 Apr 2025 15:15:00 +0200 Subject: [PATCH 02/12] Bump bindgen version to latest 0.71.1 this requires the new version of proc-macro2 Signed-off-by: Jakub Jelen --- Cargo.lock | 12 ++++++------ cryptoki-sys/Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) 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" From e99cdf76b1ddc196356bcdbebc364dbd72416acc Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Fri, 25 Apr 2025 15:16:04 +0200 Subject: [PATCH 03/12] Regenerate bindings Signed-off-by: Jakub Jelen --- .../src/bindings/aarch64-apple-darwin.rs | 1114 ++++++++++++++++- .../src/bindings/aarch64-unknown-linux-gnu.rs | 1114 ++++++++++++++++- .../src/bindings/arm-unknown-linux-gnueabi.rs | 1114 ++++++++++++++++- cryptoki-sys/src/bindings/generic.rs | 794 +++++++++++- .../src/bindings/i686-unknown-linux-gnu.rs | 1114 ++++++++++++++++- .../bindings/loongarch64-unknown-linux-gnu.rs | 1114 ++++++++++++++++- .../bindings/powerpc64-unknown-linux-gnu.rs | 1114 ++++++++++++++++- .../bindings/riscv64gc-unknown-linux-gnu.rs | 1114 ++++++++++++++++- .../src/bindings/x86_64-apple-darwin.rs | 1114 ++++++++++++++++- .../src/bindings/x86_64-pc-windows-msvc.rs | 1114 ++++++++++++++++- .../src/bindings/x86_64-unknown-freebsd.rs | 1114 ++++++++++++++++- .../src/bindings/x86_64-unknown-linux-gnu.rs | 1114 ++++++++++++++++- 12 files changed, 12782 insertions(+), 266 deletions(-) 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, + ) + } } From ec7fd1b9ddc4f0e492c43832c11f9b6d99066252 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Fri, 25 Apr 2025 15:52:37 +0200 Subject: [PATCH 04/12] Add PKCS#11 3.2 functions to the function list Signed-off-by: Jakub Jelen --- cryptoki/src/context/general_purpose.rs | 26 ++++ cryptoki/src/context/mod.rs | 157 ++++++++++++++++++++++-- 2 files changed, 171 insertions(+), 12 deletions(-) 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, } } From a687c3e1d1ba89ab70646870a845708a7c4c3767 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Tue, 29 Apr 2025 14:53:57 +0200 Subject: [PATCH 05/12] Add Encapsulation/Decapsulation operation Signed-off-by: Jakub Jelen --- cryptoki/src/mechanism/mechanism_info.rs | 16 ++++- cryptoki/src/session/encapsulation.rs | 90 ++++++++++++++++++++++++ cryptoki/src/session/mod.rs | 1 + 3 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 cryptoki/src/session/encapsulation.rs 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/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; From 020d81f1b6a0f4a33ca495ef708a7c4da3d2bbfb Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Wed, 30 Apr 2025 09:30:20 +0200 Subject: [PATCH 06/12] Ignore clippy warnings about complex types One of the new functions in PKCS#11 3.2 have 10(!) arguments, which goes over the threshold of what clippy considers reasonable. But given that we need to be compatible with this API, there is no other reasonable way to tackle this than to ignore the warning/error. error: very complex type used. Consider factoring parts into `type` definitions --> /home/runner/work/rust-cryptoki/rust-cryptoki/cryptoki-sys/src/bindings/x86_64-unknown-linux-gnu.rs:6801:35 | 6801 | pub C_UnwrapKeyAuthenticated: Result< | ___________________________________^ 6802 | | unsafe extern "C" fn( 6803 | | arg1: CK_SESSION_HANDLE, 6804 | | arg2: *mut CK_MECHANISM, ... | 6814 | | ::libloading::Error, 6815 | | >, | |_____^ | Signed-off-by: Jakub Jelen --- cryptoki-sys/src/lib.rs | 2 ++ 1 file changed, 2 insertions(+) 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 From 4247d7d2e94cbf9e1086ac62859cb43ac4d6bc26 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Wed, 30 Apr 2025 11:57:06 +0200 Subject: [PATCH 07/12] Add ML-KEM mechanisms, keys, attributes Signed-off-by: Jakub Jelen --- cryptoki/src/mechanism/mod.rs | 25 ++++++- cryptoki/src/object.rs | 125 ++++++++++++++++++++++++++++++++++ 2 files changed, 149 insertions(+), 1 deletion(-) diff --git a/cryptoki/src/mechanism/mod.rs b/cryptoki/src/mechanism/mod.rs index e5086dca..e5734cc6 100644 --- a/cryptoki/src/mechanism/mod.rs +++ b/cryptoki/src/mechanism/mod.rs @@ -341,6 +341,14 @@ impl MechanismType { val: CKM_SP800_108_DOUBLE_PIPELINE_KDF, }; + // 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 }; + /// Create vendor defined mechanism /// /// # Arguments @@ -735,6 +743,8 @@ impl MechanismType { CKM_SP800_108_DOUBLE_PIPELINE_KDF => { String::from(stringify!(CKM_SP800_108_DOUBLE_PIPELINE_KDF)) } + CKM_ML_KEM_KEY_PAIR_GEN => String::from(stringify!(CKM_ML_KEM_KEY_PAIR_GEN)), + CKM_ML_KEM => String::from(stringify!(CKM_ML_KEM)), _ => format!("unknown {mech:08x}"), } } @@ -822,6 +832,8 @@ impl TryFrom for MechanismType { CKM_SP800_108_COUNTER_KDF => Ok(MechanismType::SP800_108_COUNTER_KDF), CKM_SP800_108_FEEDBACK_KDF => Ok(MechanismType::SP800_108_FEEDBACK_KDF), CKM_SP800_108_DOUBLE_PIPELINE_KDF => Ok(MechanismType::SP800_108_DOUBLE_PIPELINE_KDF), + CKM_ML_KEM_KEY_PAIR_GEN => Ok(MechanismType::ML_KEM_KEY_PAIR_GEN), + CKM_ML_KEM => Ok(MechanismType::ML_KEM), other => { error!("Mechanism type {} is not supported.", other); Err(Error::NotSupported) @@ -1052,6 +1064,12 @@ pub enum Mechanism<'a> { /// NIST SP 800-108 KDF (aka KBKDF) mechanism in double pipeline-mode KbkdfDoublePipeline(kbkdf::KbkdfParams<'a>), + // ML-KEM + /// ML-KEM key pair generation mechanism + MlKemKeyPairGen, + /// ML-KEM key encacpsulation/decapsulation mechanism + MlKem, + /// Vendor defined mechanism VendorDefined(VendorDefinedMechanism<'a>), } @@ -1137,6 +1155,9 @@ impl Mechanism<'_> { Mechanism::KbkdfFeedback(_) => MechanismType::SP800_108_FEEDBACK_KDF, Mechanism::KbkdfDoublePipeline(_) => MechanismType::SP800_108_DOUBLE_PIPELINE_KDF, + Mechanism::MlKemKeyPairGen => MechanismType::ML_KEM_KEY_PAIR_GEN, + Mechanism::MlKem => MechanismType::ML_KEM, + Mechanism::VendorDefined(vm) => MechanismType { val: vm.inner.mechanism, }, @@ -1237,7 +1258,9 @@ impl From<&Mechanism<'_>> for CK_MECHANISM { | Mechanism::Sha384KeyGen | Mechanism::Sha512KeyGen | Mechanism::GenericSecretKeyGen - | Mechanism::HkdfKeyGen => CK_MECHANISM { + | Mechanism::HkdfKeyGen + | Mechanism::MlKemKeyPairGen + | Mechanism::MlKem => CK_MECHANISM { mechanism, pParameter: null_mut(), ulParameterLen: 0, diff --git a/cryptoki/src/object.rs b/cryptoki/src/object.rs index a8c30e1a..4f1a3625 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 @@ -142,6 +146,12 @@ 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, } impl AttributeType { @@ -261,6 +271,8 @@ impl AttributeType { CKA_DERIVE_TEMPLATE => String::from(stringify!(CKA_DERIVE_TEMPLATE)), CKA_ALLOWED_MECHANISMS => String::from(stringify!(CKA_ALLOWED_MECHANISMS)), CKA_UNIQUE_ID => String::from(stringify!(CKA_UNIQUE_ID)), + 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) } @@ -291,11 +303,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, @@ -309,12 +323,14 @@ impl From for CK_ATTRIBUTE_TYPE { AttributeType::KeyType => CKA_KEY_TYPE, AttributeType::Label => CKA_LABEL, AttributeType::Local => CKA_LOCAL, + 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, @@ -322,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, @@ -361,11 +378,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), @@ -385,6 +404,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), @@ -392,6 +412,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), @@ -446,6 +467,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 @@ -456,6 +479,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 @@ -482,6 +507,8 @@ pub enum Attribute { Label(Vec), /// Indicates if the key was generated locally or copied from a locally created object Local(bool), + /// ML-KEM parameter set + MlKemParameterSet(MlKemParameterSetType), /// Determines if the object can be modified Modifiable(bool), /// Modulus value of a key @@ -494,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 @@ -508,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 @@ -562,11 +593,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, @@ -580,12 +613,14 @@ impl Attribute { Attribute::KeyType(_) => AttributeType::KeyType, Attribute::Label(_) => AttributeType::Label, Attribute::Local(_) => AttributeType::Local, + 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, @@ -593,6 +628,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, @@ -620,9 +656,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(_) @@ -663,18 +701,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::UniqueId(bytes) => bytes.len(), Attribute::Value(bytes) => bytes.len(), Attribute::ValueLen(_) => size_of::(), Attribute::EndDate(_) | Attribute::StartDate(_) => size_of::(), + Attribute::MlKemParameterSet(_) => size_of::(), Attribute::AllowedMechanisms(mechanisms) => { size_of::() * mechanisms.len() @@ -701,9 +742,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) @@ -740,6 +783,7 @@ impl Attribute { | Attribute::Issuer(bytes) | Attribute::Label(bytes) | Attribute::ObjectId(bytes) + | Attribute::ParameterSet(bytes) | Attribute::Prime(bytes) | Attribute::Prime1(bytes) | Attribute::Prime2(bytes) @@ -748,6 +792,7 @@ impl Attribute { | Attribute::PublicKeyInfo(bytes) | Attribute::Modulus(bytes) | Attribute::Owner(bytes) + | Attribute::Seed(bytes) | Attribute::SerialNumber(bytes) | Attribute::Subject(bytes) | Attribute::UniqueId(bytes) @@ -762,6 +807,7 @@ 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::AllowedMechanisms(mechanisms) => mechanisms.as_ptr() as *mut c_void, Attribute::EndDate(date) | Attribute::StartDate(date) => { date as *const _ as *mut c_void @@ -818,9 +864,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)?)), @@ -867,6 +915,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())), @@ -876,6 +925,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::UniqueId => Ok(Attribute::UniqueId(val.to_vec())), @@ -895,6 +945,9 @@ 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::AllowedMechanisms => { let val = unsafe { std::slice::from_raw_parts( @@ -997,6 +1050,73 @@ 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 class of an object @@ -1224,6 +1344,9 @@ 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 }; + /// Create vendor defined key type /// /// # Arguments @@ -1296,6 +1419,7 @@ 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_VENDOR_DEFINED..=MAX_CU_ULONG => String::from(stringify!(key_type)), _ => format!("unknown ({key_type:08x})"), } @@ -1371,6 +1495,7 @@ 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_VENDOR_DEFINED..=MAX_CU_ULONG => KeyType::new_vendor_defined(key_type), _ => { error!("Key type {} is not supported.", key_type); From eb3759d3f216944a12e4df518698d15b3f89b2d3 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Wed, 30 Apr 2025 16:12:32 +0200 Subject: [PATCH 08/12] tests: Move common to separate module to avoid endless test file ... which is no longer basic after having 2000+ lines Signed-off-by: Jakub Jelen --- cryptoki/tests/{common.rs => common/mod.rs} | 1 + 1 file changed, 1 insertion(+) rename cryptoki/tests/{common.rs => common/mod.rs} (98%) 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") } From 016277574703b8f42c5c1bd3f3745c25c934ac6d Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Wed, 30 Apr 2025 16:14:32 +0200 Subject: [PATCH 09/12] tests: Add basic ML-KEM Tests Signed-off-by: Jakub Jelen --- cryptoki/tests/ml_kem.rs | 105 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 cryptoki/tests/ml_kem.rs 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(()) +} From aa9a0c6e64f44f332823a01a832456c830cbdbd4 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Wed, 30 Apr 2025 16:55:34 +0200 Subject: [PATCH 10/12] Implement VerifySignature API This is needed for multiplart ML-DSA signature verifications Signed-off-by: Jakub Jelen --- cryptoki/src/session/signing_macing.rs | 63 ++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) 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(()) + } } From f83fd62506de09bd22a967aaa11e40665293b417 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Fri, 2 May 2025 14:06:40 +0200 Subject: [PATCH 11/12] Add support for ML-DSA Signed-off-by: Jakub Jelen --- cryptoki/src/mechanism/mldsa.rs | 152 ++++++++++++++++++++++++++++++++ cryptoki/src/mechanism/mod.rs | 142 ++++++++++++++++++++++++++++- cryptoki/src/object.rs | 77 ++++++++++++++++ 3 files changed, 370 insertions(+), 1 deletion(-) create mode 100644 cryptoki/src/mechanism/mldsa.rs 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 e5734cc6..3171a7dc 100644 --- a/cryptoki/src/mechanism/mod.rs +++ b/cryptoki/src/mechanism/mod.rs @@ -9,6 +9,7 @@ pub mod elliptic_curve; pub mod hkdf; pub mod kbkdf; mod mechanism_info; +pub mod mldsa; pub mod rsa; pub mod vendor_defined; @@ -349,6 +350,58 @@ impl MechanismType { /// 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 @@ -745,6 +798,19 @@ impl MechanismType { } 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}"), } } @@ -834,6 +900,18 @@ impl TryFrom for MechanismType { CKM_SP800_108_DOUBLE_PIPELINE_KDF => Ok(MechanismType::SP800_108_DOUBLE_PIPELINE_KDF), 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) @@ -1070,6 +1148,34 @@ pub enum Mechanism<'a> { /// 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>), } @@ -1158,6 +1264,20 @@ impl Mechanism<'_> { 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, }, @@ -1214,6 +1334,25 @@ impl From<&Mechanism<'_>> for CK_MECHANISM { make_mechanism(mechanism, params.inner()) } Mechanism::KbkdfFeedback(params) => make_mechanism(mechanism, params.inner()), + 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 @@ -1260,7 +1399,8 @@ impl From<&Mechanism<'_>> for CK_MECHANISM { | Mechanism::GenericSecretKeyGen | Mechanism::HkdfKeyGen | Mechanism::MlKemKeyPairGen - | Mechanism::MlKem => CK_MECHANISM { + | 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 4f1a3625..3a261d90 100644 --- a/cryptoki/src/object.rs +++ b/cryptoki/src/object.rs @@ -152,6 +152,8 @@ pub enum AttributeType { ParameterSet, /// ML-KEM parameter set MlKemParameterSet, + /// ML-DSA parameter set + MlDsaParameterSet, } impl AttributeType { @@ -323,6 +325,7 @@ 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, @@ -507,6 +510,8 @@ 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 @@ -613,6 +618,7 @@ 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, @@ -716,6 +722,7 @@ impl Attribute { 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() @@ -808,6 +815,7 @@ impl Attribute { 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 @@ -948,6 +956,9 @@ impl TryFrom for Attribute { 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( @@ -1117,6 +1128,67 @@ impl TryFrom for MlKemParameterSetType { } } +#[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 @@ -1347,6 +1419,9 @@ impl KeyType { /// 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 @@ -1420,6 +1495,7 @@ impl KeyType { 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})"), } @@ -1496,6 +1572,7 @@ impl TryFrom for KeyType { 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); From 73bcb942f07f15f98535d35cd3ed71810848c664 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Fri, 2 May 2025 16:06:50 +0200 Subject: [PATCH 12/12] tests: Add ML-DSA tests Signed-off-by: Jakub Jelen --- cryptoki/tests/ml_dsa.rs | 353 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 353 insertions(+) create mode 100644 cryptoki/tests/ml_dsa.rs 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(()) +}