/* automatically generated by rust-bindgen 0.70.1 */

pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3;
pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1;
pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0;
pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0;
pub const CK_INVALID_HANDLE: CK_ULONG = 0;
pub const CK_TRUE: CK_BBOOL = 1;
pub const CK_FALSE: CK_BBOOL = 0;
pub const CK_CERTIFICATE_CATEGORY_UNSPECIFIED: CK_ULONG = 0;
pub const CK_CERTIFICATE_CATEGORY_TOKEN_USER: CK_ULONG = 1;
pub const CK_CERTIFICATE_CATEGORY_AUTHORITY: CK_ULONG = 2;
pub const CK_CERTIFICATE_CATEGORY_OTHER_ENTITY: CK_ULONG = 3;
pub const CK_OTP_VALUE: CK_ULONG = 0;
pub const CK_OTP_PIN: CK_ULONG = 1;
pub const CK_OTP_CHALLENGE: CK_ULONG = 2;
pub const CK_OTP_TIME: CK_ULONG = 3;
pub const CK_OTP_COUNTER: CK_ULONG = 4;
pub const CK_OTP_FLAGS: CK_ULONG = 5;
pub const CK_OTP_OUTPUT_LENGTH: CK_ULONG = 6;
pub const CK_OTP_OUTPUT_FORMAT: CK_ULONG = 7;
pub const CK_OTP_FORMAT_DECIMAL: CK_ULONG = 0;
pub const CK_OTP_FORMAT_HEXADECIMAL: CK_ULONG = 1;
pub const CK_OTP_FORMAT_ALPHANUMERIC: CK_ULONG = 2;
pub const CK_OTP_FORMAT_BINARY: CK_ULONG = 3;
pub const CK_OTP_PARAM_IGNORED: CK_ULONG = 0;
pub const CK_OTP_PARAM_OPTIONAL: CK_ULONG = 1;
pub const CK_OTP_PARAM_MANDATORY: CK_ULONG = 2;
pub const CK_SECURITY_DOMAIN_UNSPECIFIED: CK_ULONG = 0;
pub const CK_SECURITY_DOMAIN_MANUFACTURER: CK_ULONG = 1;
pub const CK_SECURITY_DOMAIN_OPERATOR: CK_ULONG = 2;
pub const CK_SECURITY_DOMAIN_THIRD_PARTY: CK_ULONG = 3;
pub const CK_SP800_108_ITERATION_VARIABLE: CK_ULONG = 1;
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_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;
pub const CKA_TOKEN: CK_ATTRIBUTE_TYPE = 1;
pub const CKA_PRIVATE: CK_ATTRIBUTE_TYPE = 2;
pub const CKA_LABEL: CK_ATTRIBUTE_TYPE = 3;
pub const CKA_UNIQUE_ID: CK_ATTRIBUTE_TYPE = 4;
pub const CKA_APPLICATION: CK_ATTRIBUTE_TYPE = 16;
pub const CKA_VALUE: CK_ATTRIBUTE_TYPE = 17;
pub const CKA_OBJECT_ID: CK_ATTRIBUTE_TYPE = 18;
pub const CKA_CERTIFICATE_TYPE: CK_ATTRIBUTE_TYPE = 128;
pub const CKA_ISSUER: CK_ATTRIBUTE_TYPE = 129;
pub const CKA_SERIAL_NUMBER: CK_ATTRIBUTE_TYPE = 130;
pub const CKA_AC_ISSUER: CK_ATTRIBUTE_TYPE = 131;
pub const CKA_OWNER: CK_ATTRIBUTE_TYPE = 132;
pub const CKA_ATTR_TYPES: CK_ATTRIBUTE_TYPE = 133;
pub const CKA_TRUSTED: CK_ATTRIBUTE_TYPE = 134;
pub const CKA_CERTIFICATE_CATEGORY: CK_ATTRIBUTE_TYPE = 135;
pub const CKA_JAVA_MIDP_SECURITY_DOMAIN: CK_ATTRIBUTE_TYPE = 136;
pub const CKA_URL: CK_ATTRIBUTE_TYPE = 137;
pub const CKA_HASH_OF_SUBJECT_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 138;
pub const CKA_HASH_OF_ISSUER_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 139;
pub const CKA_NAME_HASH_ALGORITHM: CK_ATTRIBUTE_TYPE = 140;
pub const CKA_CHECK_VALUE: CK_ATTRIBUTE_TYPE = 144;
pub const CKA_KEY_TYPE: CK_ATTRIBUTE_TYPE = 256;
pub const CKA_SUBJECT: CK_ATTRIBUTE_TYPE = 257;
pub const CKA_ID: CK_ATTRIBUTE_TYPE = 258;
pub const CKA_SENSITIVE: CK_ATTRIBUTE_TYPE = 259;
pub const CKA_ENCRYPT: CK_ATTRIBUTE_TYPE = 260;
pub const CKA_DECRYPT: CK_ATTRIBUTE_TYPE = 261;
pub const CKA_WRAP: CK_ATTRIBUTE_TYPE = 262;
pub const CKA_UNWRAP: CK_ATTRIBUTE_TYPE = 263;
pub const CKA_SIGN: CK_ATTRIBUTE_TYPE = 264;
pub const CKA_SIGN_RECOVER: CK_ATTRIBUTE_TYPE = 265;
pub const CKA_VERIFY: CK_ATTRIBUTE_TYPE = 266;
pub const CKA_VERIFY_RECOVER: CK_ATTRIBUTE_TYPE = 267;
pub const CKA_DERIVE: CK_ATTRIBUTE_TYPE = 268;
pub const CKA_START_DATE: CK_ATTRIBUTE_TYPE = 272;
pub const CKA_END_DATE: CK_ATTRIBUTE_TYPE = 273;
pub const CKA_MODULUS: CK_ATTRIBUTE_TYPE = 288;
pub const CKA_MODULUS_BITS: CK_ATTRIBUTE_TYPE = 289;
pub const CKA_PUBLIC_EXPONENT: CK_ATTRIBUTE_TYPE = 290;
pub const CKA_PRIVATE_EXPONENT: CK_ATTRIBUTE_TYPE = 291;
pub const CKA_PRIME_1: CK_ATTRIBUTE_TYPE = 292;
pub const CKA_PRIME_2: CK_ATTRIBUTE_TYPE = 293;
pub const CKA_EXPONENT_1: CK_ATTRIBUTE_TYPE = 294;
pub const CKA_EXPONENT_2: CK_ATTRIBUTE_TYPE = 295;
pub const CKA_COEFFICIENT: CK_ATTRIBUTE_TYPE = 296;
pub const CKA_PUBLIC_KEY_INFO: CK_ATTRIBUTE_TYPE = 297;
pub const CKA_PRIME: CK_ATTRIBUTE_TYPE = 304;
pub const CKA_SUBPRIME: CK_ATTRIBUTE_TYPE = 305;
pub const CKA_BASE: CK_ATTRIBUTE_TYPE = 306;
pub const CKA_PRIME_BITS: CK_ATTRIBUTE_TYPE = 307;
pub const CKA_SUBPRIME_BITS: CK_ATTRIBUTE_TYPE = 308;
pub const CKA_SUB_PRIME_BITS: CK_ATTRIBUTE_TYPE = 308;
pub const CKA_VALUE_BITS: CK_ATTRIBUTE_TYPE = 352;
pub const CKA_VALUE_LEN: CK_ATTRIBUTE_TYPE = 353;
pub const CKA_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 354;
pub const CKA_LOCAL: CK_ATTRIBUTE_TYPE = 355;
pub const CKA_NEVER_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 356;
pub const CKA_ALWAYS_SENSITIVE: CK_ATTRIBUTE_TYPE = 357;
pub const CKA_KEY_GEN_MECHANISM: CK_ATTRIBUTE_TYPE = 358;
pub const CKA_MODIFIABLE: CK_ATTRIBUTE_TYPE = 368;
pub const CKA_COPYABLE: CK_ATTRIBUTE_TYPE = 369;
pub const CKA_DESTROYABLE: CK_ATTRIBUTE_TYPE = 370;
pub const CKA_EC_PARAMS: CK_ATTRIBUTE_TYPE = 384;
pub const CKA_EC_POINT: CK_ATTRIBUTE_TYPE = 385;
pub const CKA_ALWAYS_AUTHENTICATE: CK_ATTRIBUTE_TYPE = 514;
pub const CKA_WRAP_WITH_TRUSTED: CK_ATTRIBUTE_TYPE = 528;
pub const CKA_OTP_FORMAT: CK_ATTRIBUTE_TYPE = 544;
pub const CKA_OTP_LENGTH: CK_ATTRIBUTE_TYPE = 545;
pub const CKA_OTP_TIME_INTERVAL: CK_ATTRIBUTE_TYPE = 546;
pub const CKA_OTP_USER_FRIENDLY_MODE: CK_ATTRIBUTE_TYPE = 547;
pub const CKA_OTP_CHALLENGE_REQUIREMENT: CK_ATTRIBUTE_TYPE = 548;
pub const CKA_OTP_TIME_REQUIREMENT: CK_ATTRIBUTE_TYPE = 549;
pub const CKA_OTP_COUNTER_REQUIREMENT: CK_ATTRIBUTE_TYPE = 550;
pub const CKA_OTP_PIN_REQUIREMENT: CK_ATTRIBUTE_TYPE = 551;
pub const CKA_OTP_COUNTER: CK_ATTRIBUTE_TYPE = 558;
pub const CKA_OTP_TIME: CK_ATTRIBUTE_TYPE = 559;
pub const CKA_OTP_USER_IDENTIFIER: CK_ATTRIBUTE_TYPE = 554;
pub const CKA_OTP_SERVICE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 555;
pub const CKA_OTP_SERVICE_LOGO: CK_ATTRIBUTE_TYPE = 556;
pub const CKA_OTP_SERVICE_LOGO_TYPE: CK_ATTRIBUTE_TYPE = 557;
pub const CKA_GOSTR3410_PARAMS: CK_ATTRIBUTE_TYPE = 592;
pub const CKA_GOSTR3411_PARAMS: CK_ATTRIBUTE_TYPE = 593;
pub const CKA_GOST28147_PARAMS: CK_ATTRIBUTE_TYPE = 594;
pub const CKA_HW_FEATURE_TYPE: CK_ATTRIBUTE_TYPE = 768;
pub const CKA_RESET_ON_INIT: CK_ATTRIBUTE_TYPE = 769;
pub const CKA_HAS_RESET: CK_ATTRIBUTE_TYPE = 770;
pub const CKA_PIXEL_X: CK_ATTRIBUTE_TYPE = 1024;
pub const CKA_PIXEL_Y: CK_ATTRIBUTE_TYPE = 1025;
pub const CKA_RESOLUTION: CK_ATTRIBUTE_TYPE = 1026;
pub const CKA_CHAR_ROWS: CK_ATTRIBUTE_TYPE = 1027;
pub const CKA_CHAR_COLUMNS: CK_ATTRIBUTE_TYPE = 1028;
pub const CKA_COLOR: CK_ATTRIBUTE_TYPE = 1029;
pub const CKA_BITS_PER_PIXEL: CK_ATTRIBUTE_TYPE = 1030;
pub const CKA_CHAR_SETS: CK_ATTRIBUTE_TYPE = 1152;
pub const CKA_ENCODING_METHODS: CK_ATTRIBUTE_TYPE = 1153;
pub const CKA_MIME_TYPES: CK_ATTRIBUTE_TYPE = 1154;
pub const CKA_MECHANISM_TYPE: CK_ATTRIBUTE_TYPE = 1280;
pub const CKA_REQUIRED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1281;
pub const CKA_DEFAULT_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1282;
pub const CKA_SUPPORTED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1283;
pub const CKA_PROFILE_ID: CK_ATTRIBUTE_TYPE = 1537;
pub const CKA_X2RATCHET_BAG: CK_ATTRIBUTE_TYPE = 1538;
pub const CKA_X2RATCHET_BAGSIZE: CK_ATTRIBUTE_TYPE = 1539;
pub const CKA_X2RATCHET_BOBS1STMSG: CK_ATTRIBUTE_TYPE = 1540;
pub const CKA_X2RATCHET_CKR: CK_ATTRIBUTE_TYPE = 1541;
pub const CKA_X2RATCHET_CKS: CK_ATTRIBUTE_TYPE = 1542;
pub const CKA_X2RATCHET_DHP: CK_ATTRIBUTE_TYPE = 1543;
pub const CKA_X2RATCHET_DHR: CK_ATTRIBUTE_TYPE = 1544;
pub const CKA_X2RATCHET_DHS: CK_ATTRIBUTE_TYPE = 1545;
pub const CKA_X2RATCHET_HKR: CK_ATTRIBUTE_TYPE = 1546;
pub const CKA_X2RATCHET_HKS: CK_ATTRIBUTE_TYPE = 1547;
pub const CKA_X2RATCHET_ISALICE: CK_ATTRIBUTE_TYPE = 1548;
pub const CKA_X2RATCHET_NHKR: CK_ATTRIBUTE_TYPE = 1549;
pub const CKA_X2RATCHET_NHKS: CK_ATTRIBUTE_TYPE = 1550;
pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551;
pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552;
pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553;
pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554;
pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559;
pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560;
pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561;
pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562;
pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563;
pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564;
pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648;
pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353;
pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354;
pub const CKA_DERIVE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742355;
pub const CKA_ALLOWED_MECHANISMS: CK_ATTRIBUTE_TYPE = 1073743360;
pub const CKA_ECDSA_PARAMS: CK_ATTRIBUTE_TYPE = 384;
pub const CKA_SECONDARY_AUTH: CK_ATTRIBUTE_TYPE = 512;
pub const CKA_AUTH_PIN_FLAGS: CK_ATTRIBUTE_TYPE = 513;
pub const CKC_X_509: CK_CERTIFICATE_TYPE = 0;
pub const CKC_X_509_ATTR_CERT: CK_CERTIFICATE_TYPE = 1;
pub const CKC_WTLS: CK_CERTIFICATE_TYPE = 2;
pub const CKC_VENDOR_DEFINED: CK_CERTIFICATE_TYPE = 2147483648;
pub const CKD_NULL: CK_EC_KDF_TYPE = 1;
pub const CKD_SHA1_KDF: CK_EC_KDF_TYPE = 2;
pub const CKD_SHA1_KDF_ASN1: CK_EC_KDF_TYPE = 3;
pub const CKD_SHA1_KDF_CONCATENATE: CK_EC_KDF_TYPE = 4;
pub const CKD_SHA224_KDF: CK_EC_KDF_TYPE = 5;
pub const CKD_SHA256_KDF: CK_EC_KDF_TYPE = 6;
pub const CKD_SHA384_KDF: CK_EC_KDF_TYPE = 7;
pub const CKD_SHA512_KDF: CK_EC_KDF_TYPE = 8;
pub const CKD_CPDIVERSIFY_KDF: CK_EC_KDF_TYPE = 9;
pub const CKD_SHA3_224_KDF: CK_EC_KDF_TYPE = 10;
pub const CKD_SHA3_256_KDF: CK_EC_KDF_TYPE = 11;
pub const CKD_SHA3_384_KDF: CK_EC_KDF_TYPE = 12;
pub const CKD_SHA3_512_KDF: CK_EC_KDF_TYPE = 13;
pub const CKD_SHA1_KDF_SP800: CK_EC_KDF_TYPE = 14;
pub const CKD_SHA224_KDF_SP800: CK_EC_KDF_TYPE = 15;
pub const CKD_SHA256_KDF_SP800: CK_EC_KDF_TYPE = 16;
pub const CKD_SHA384_KDF_SP800: CK_EC_KDF_TYPE = 17;
pub const CKD_SHA512_KDF_SP800: CK_EC_KDF_TYPE = 18;
pub const CKD_SHA3_224_KDF_SP800: CK_EC_KDF_TYPE = 19;
pub const CKD_SHA3_256_KDF_SP800: CK_EC_KDF_TYPE = 20;
pub const CKD_SHA3_384_KDF_SP800: CK_EC_KDF_TYPE = 21;
pub const CKD_SHA3_512_KDF_SP800: CK_EC_KDF_TYPE = 22;
pub const CKD_BLAKE2B_160_KDF: CK_EC_KDF_TYPE = 23;
pub const CKD_BLAKE2B_256_KDF: CK_EC_KDF_TYPE = 24;
pub const CKD_BLAKE2B_384_KDF: CK_EC_KDF_TYPE = 25;
pub const CKD_BLAKE2B_512_KDF: CK_EC_KDF_TYPE = 26;
pub const CKF_ARRAY_ATTRIBUTE: CK_FLAGS = 1073741824;
pub const CKF_LIBRARY_CANT_CREATE_OS_THREADS: CK_FLAGS = 1;
pub const CKF_OS_LOCKING_OK: CK_FLAGS = 2;
pub const CKF_HKDF_SALT_NULL: CK_FLAGS = 1;
pub const CKF_HKDF_SALT_DATA: CK_FLAGS = 2;
pub const CKF_HKDF_SALT_KEY: CK_FLAGS = 4;
pub const CKF_INTERFACE_FORK_SAFE: CK_FLAGS = 1;
pub const CKF_HW: CK_FLAGS = 1;
pub const CKF_MESSAGE_ENCRYPT: CK_FLAGS = 2;
pub const CKF_MESSAGE_DECRYPT: CK_FLAGS = 4;
pub const CKF_MESSAGE_SIGN: CK_FLAGS = 8;
pub const CKF_MESSAGE_VERIFY: CK_FLAGS = 16;
pub const CKF_MULTI_MESSAGE: CK_FLAGS = 32;
pub const CKF_MULTI_MESSGE: CK_FLAGS = 32;
pub const CKF_FIND_OBJECTS: CK_FLAGS = 64;
pub const CKF_ENCRYPT: CK_FLAGS = 256;
pub const CKF_DECRYPT: CK_FLAGS = 512;
pub const CKF_DIGEST: CK_FLAGS = 1024;
pub const CKF_SIGN: CK_FLAGS = 2048;
pub const CKF_SIGN_RECOVER: CK_FLAGS = 4096;
pub const CKF_VERIFY: CK_FLAGS = 8192;
pub const CKF_VERIFY_RECOVER: CK_FLAGS = 16384;
pub const CKF_GENERATE: CK_FLAGS = 32768;
pub const CKF_GENERATE_KEY_PAIR: CK_FLAGS = 65536;
pub const CKF_WRAP: CK_FLAGS = 131072;
pub const CKF_UNWRAP: CK_FLAGS = 262144;
pub const CKF_DERIVE: CK_FLAGS = 524288;
pub const CKF_EC_F_P: CK_FLAGS = 1048576;
pub const CKF_EC_F_2M: CK_FLAGS = 2097152;
pub const CKF_EC_ECPARAMETERS: CK_FLAGS = 4194304;
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_EXTENSION: CK_FLAGS = 2147483648;
pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608;
pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1;
pub const CKF_NEXT_OTP: CK_FLAGS = 1;
pub const CKF_EXCLUDE_TIME: CK_FLAGS = 2;
pub const CKF_EXCLUDE_COUNTER: CK_FLAGS = 4;
pub const CKF_EXCLUDE_CHALLENGE: CK_FLAGS = 8;
pub const CKF_EXCLUDE_PIN: CK_FLAGS = 16;
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_TOKEN_PRESENT: CK_FLAGS = 1;
pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2;
pub const CKF_HW_SLOT: CK_FLAGS = 4;
pub const CKF_RNG: CK_FLAGS = 1;
pub const CKF_WRITE_PROTECTED: CK_FLAGS = 2;
pub const CKF_LOGIN_REQUIRED: CK_FLAGS = 4;
pub const CKF_USER_PIN_INITIALIZED: CK_FLAGS = 8;
pub const CKF_RESTORE_KEY_NOT_NEEDED: CK_FLAGS = 32;
pub const CKF_CLOCK_ON_TOKEN: CK_FLAGS = 64;
pub const CKF_PROTECTED_AUTHENTICATION_PATH: CK_FLAGS = 256;
pub const CKF_DUAL_CRYPTO_OPERATIONS: CK_FLAGS = 512;
pub const CKF_TOKEN_INITIALIZED: CK_FLAGS = 1024;
pub const CKF_SECONDARY_AUTHENTICATION: CK_FLAGS = 2048;
pub const CKF_USER_PIN_COUNT_LOW: CK_FLAGS = 65536;
pub const CKF_USER_PIN_FINAL_TRY: CK_FLAGS = 131072;
pub const CKF_USER_PIN_LOCKED: CK_FLAGS = 262144;
pub const CKF_USER_PIN_TO_BE_CHANGED: CK_FLAGS = 524288;
pub const CKF_SO_PIN_COUNT_LOW: CK_FLAGS = 1048576;
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 CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0;
pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1;
pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2;
pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3;
pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4;
pub const CKG_MGF1_SHA1: CK_GENERATOR_FUNCTION = 1;
pub const CKG_MGF1_SHA256: CK_GENERATOR_FUNCTION = 2;
pub const CKG_MGF1_SHA384: CK_GENERATOR_FUNCTION = 3;
pub const CKG_MGF1_SHA512: CK_GENERATOR_FUNCTION = 4;
pub const CKG_MGF1_SHA224: CK_GENERATOR_FUNCTION = 5;
pub const CKG_MGF1_SHA3_224: CK_GENERATOR_FUNCTION = 6;
pub const CKG_MGF1_SHA3_256: CK_GENERATOR_FUNCTION = 7;
pub const CKG_MGF1_SHA3_384: CK_GENERATOR_FUNCTION = 8;
pub const CKG_MGF1_SHA3_512: CK_GENERATOR_FUNCTION = 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 CKK_RSA: CK_KEY_TYPE = 0;
pub const CKK_DSA: CK_KEY_TYPE = 1;
pub const CKK_DH: CK_KEY_TYPE = 2;
pub const CKK_EC: CK_KEY_TYPE = 3;
pub const CKK_X9_42_DH: CK_KEY_TYPE = 4;
pub const CKK_KEA: CK_KEY_TYPE = 5;
pub const CKK_GENERIC_SECRET: CK_KEY_TYPE = 16;
pub const CKK_RC2: CK_KEY_TYPE = 17;
pub const CKK_RC4: CK_KEY_TYPE = 18;
pub const CKK_DES: CK_KEY_TYPE = 19;
pub const CKK_DES2: CK_KEY_TYPE = 20;
pub const CKK_DES3: CK_KEY_TYPE = 21;
pub const CKK_CAST: CK_KEY_TYPE = 22;
pub const CKK_CAST3: CK_KEY_TYPE = 23;
pub const CKK_CAST128: CK_KEY_TYPE = 24;
pub const CKK_RC5: CK_KEY_TYPE = 25;
pub const CKK_IDEA: CK_KEY_TYPE = 26;
pub const CKK_SKIPJACK: CK_KEY_TYPE = 27;
pub const CKK_BATON: CK_KEY_TYPE = 28;
pub const CKK_JUNIPER: CK_KEY_TYPE = 29;
pub const CKK_CDMF: CK_KEY_TYPE = 30;
pub const CKK_AES: CK_KEY_TYPE = 31;
pub const CKK_BLOWFISH: CK_KEY_TYPE = 32;
pub const CKK_TWOFISH: CK_KEY_TYPE = 33;
pub const CKK_SECURID: CK_KEY_TYPE = 34;
pub const CKK_HOTP: CK_KEY_TYPE = 35;
pub const CKK_ACTI: CK_KEY_TYPE = 36;
pub const CKK_CAMELLIA: CK_KEY_TYPE = 37;
pub const CKK_ARIA: CK_KEY_TYPE = 38;
pub const CKK_MD5_HMAC: CK_KEY_TYPE = 39;
pub const CKK_SHA_1_HMAC: CK_KEY_TYPE = 40;
pub const CKK_RIPEMD128_HMAC: CK_KEY_TYPE = 41;
pub const CKK_RIPEMD160_HMAC: CK_KEY_TYPE = 42;
pub const CKK_SHA256_HMAC: CK_KEY_TYPE = 43;
pub const CKK_SHA384_HMAC: CK_KEY_TYPE = 44;
pub const CKK_SHA512_HMAC: CK_KEY_TYPE = 45;
pub const CKK_SHA224_HMAC: CK_KEY_TYPE = 46;
pub const CKK_SEED: CK_KEY_TYPE = 47;
pub const CKK_GOSTR3410: CK_KEY_TYPE = 48;
pub const CKK_GOSTR3411: CK_KEY_TYPE = 49;
pub const CKK_GOST28147: CK_KEY_TYPE = 50;
pub const CKK_CHACHA20: CK_KEY_TYPE = 51;
pub const CKK_POLY1305: CK_KEY_TYPE = 52;
pub const CKK_AES_XTS: CK_KEY_TYPE = 53;
pub const CKK_SHA3_224_HMAC: CK_KEY_TYPE = 54;
pub const CKK_SHA3_256_HMAC: CK_KEY_TYPE = 55;
pub const CKK_SHA3_384_HMAC: CK_KEY_TYPE = 56;
pub const CKK_SHA3_512_HMAC: CK_KEY_TYPE = 57;
pub const CKK_BLAKE2B_160_HMAC: CK_KEY_TYPE = 58;
pub const CKK_BLAKE2B_256_HMAC: CK_KEY_TYPE = 59;
pub const CKK_BLAKE2B_384_HMAC: CK_KEY_TYPE = 60;
pub const CKK_BLAKE2B_512_HMAC: CK_KEY_TYPE = 61;
pub const CKK_SALSA20: CK_KEY_TYPE = 62;
pub const CKK_X2RATCHET: CK_KEY_TYPE = 63;
pub const CKK_EC_EDWARDS: CK_KEY_TYPE = 64;
pub const CKK_EC_MONTGOMERY: CK_KEY_TYPE = 65;
pub const CKK_HKDF: CK_KEY_TYPE = 66;
pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67;
pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68;
pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69;
pub const CKK_HSS: CK_KEY_TYPE = 70;
pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648;
pub const CKK_ECDSA: CK_KEY_TYPE = 3;
pub const CKK_CAST5: CK_KEY_TYPE = 24;
pub const CKM_RSA_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 0;
pub const CKM_RSA_PKCS: CK_MECHANISM_TYPE = 1;
pub const CKM_RSA_9796: CK_MECHANISM_TYPE = 2;
pub const CKM_RSA_X_509: CK_MECHANISM_TYPE = 3;
pub const CKM_MD2_RSA_PKCS: CK_MECHANISM_TYPE = 4;
pub const CKM_MD5_RSA_PKCS: CK_MECHANISM_TYPE = 5;
pub const CKM_SHA1_RSA_PKCS: CK_MECHANISM_TYPE = 6;
pub const CKM_RIPEMD128_RSA_PKCS: CK_MECHANISM_TYPE = 7;
pub const CKM_RIPEMD160_RSA_PKCS: CK_MECHANISM_TYPE = 8;
pub const CKM_RSA_PKCS_OAEP: CK_MECHANISM_TYPE = 9;
pub const CKM_RSA_X9_31_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 10;
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_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;
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_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_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32;
pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33;
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_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;
pub const CKM_SHA256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 67;
pub const CKM_SHA384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 68;
pub const CKM_SHA512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 69;
pub const CKM_SHA224_RSA_PKCS: CK_MECHANISM_TYPE = 70;
pub const CKM_SHA224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 71;
pub const CKM_SHA512_224: CK_MECHANISM_TYPE = 72;
pub const CKM_SHA512_224_HMAC: CK_MECHANISM_TYPE = 73;
pub const CKM_SHA512_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 74;
pub const CKM_SHA512_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 75;
pub const CKM_SHA512_256: CK_MECHANISM_TYPE = 76;
pub const CKM_SHA512_256_HMAC: CK_MECHANISM_TYPE = 77;
pub const CKM_SHA512_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 78;
pub const CKM_SHA512_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 79;
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_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;
pub const CKM_SHA3_256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 99;
pub const CKM_SHA3_384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 100;
pub const CKM_SHA3_512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 101;
pub const CKM_SHA3_224_RSA_PKCS: CK_MECHANISM_TYPE = 102;
pub const CKM_SHA3_224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 103;
pub const CKM_RC2_KEY_GEN: CK_MECHANISM_TYPE = 256;
pub const CKM_RC2_ECB: CK_MECHANISM_TYPE = 257;
pub const CKM_RC2_CBC: CK_MECHANISM_TYPE = 258;
pub const CKM_RC2_MAC: CK_MECHANISM_TYPE = 259;
pub const CKM_RC2_MAC_GENERAL: CK_MECHANISM_TYPE = 260;
pub const CKM_RC2_CBC_PAD: CK_MECHANISM_TYPE = 261;
pub const CKM_RC4_KEY_GEN: CK_MECHANISM_TYPE = 272;
pub const CKM_RC4: CK_MECHANISM_TYPE = 273;
pub const CKM_DES_KEY_GEN: CK_MECHANISM_TYPE = 288;
pub const CKM_DES_ECB: CK_MECHANISM_TYPE = 289;
pub const CKM_DES_CBC: CK_MECHANISM_TYPE = 290;
pub const CKM_DES_MAC: CK_MECHANISM_TYPE = 291;
pub const CKM_DES_MAC_GENERAL: CK_MECHANISM_TYPE = 292;
pub const CKM_DES_CBC_PAD: CK_MECHANISM_TYPE = 293;
pub const CKM_DES2_KEY_GEN: CK_MECHANISM_TYPE = 304;
pub const CKM_DES3_KEY_GEN: CK_MECHANISM_TYPE = 305;
pub const CKM_DES3_ECB: CK_MECHANISM_TYPE = 306;
pub const CKM_DES3_CBC: CK_MECHANISM_TYPE = 307;
pub const CKM_DES3_MAC: CK_MECHANISM_TYPE = 308;
pub const CKM_DES3_MAC_GENERAL: CK_MECHANISM_TYPE = 309;
pub const CKM_DES3_CBC_PAD: CK_MECHANISM_TYPE = 310;
pub const CKM_DES3_CMAC_GENERAL: CK_MECHANISM_TYPE = 311;
pub const CKM_DES3_CMAC: CK_MECHANISM_TYPE = 312;
pub const CKM_CDMF_KEY_GEN: CK_MECHANISM_TYPE = 320;
pub const CKM_CDMF_ECB: CK_MECHANISM_TYPE = 321;
pub const CKM_CDMF_CBC: CK_MECHANISM_TYPE = 322;
pub const CKM_CDMF_MAC: CK_MECHANISM_TYPE = 323;
pub const CKM_CDMF_MAC_GENERAL: CK_MECHANISM_TYPE = 324;
pub const CKM_CDMF_CBC_PAD: CK_MECHANISM_TYPE = 325;
pub const CKM_DES_OFB64: CK_MECHANISM_TYPE = 336;
pub const CKM_DES_OFB8: CK_MECHANISM_TYPE = 337;
pub const CKM_DES_CFB64: CK_MECHANISM_TYPE = 338;
pub const CKM_DES_CFB8: CK_MECHANISM_TYPE = 339;
pub const CKM_MD2: CK_MECHANISM_TYPE = 512;
pub const CKM_MD2_HMAC: CK_MECHANISM_TYPE = 513;
pub const CKM_MD2_HMAC_GENERAL: CK_MECHANISM_TYPE = 514;
pub const CKM_MD5: CK_MECHANISM_TYPE = 528;
pub const CKM_MD5_HMAC: CK_MECHANISM_TYPE = 529;
pub const CKM_MD5_HMAC_GENERAL: CK_MECHANISM_TYPE = 530;
pub const CKM_SHA_1: CK_MECHANISM_TYPE = 544;
pub const CKM_SHA_1_HMAC: CK_MECHANISM_TYPE = 545;
pub const CKM_SHA_1_HMAC_GENERAL: CK_MECHANISM_TYPE = 546;
pub const CKM_RIPEMD128: CK_MECHANISM_TYPE = 560;
pub const CKM_RIPEMD128_HMAC: CK_MECHANISM_TYPE = 561;
pub const CKM_RIPEMD128_HMAC_GENERAL: CK_MECHANISM_TYPE = 562;
pub const CKM_RIPEMD160: CK_MECHANISM_TYPE = 576;
pub const CKM_RIPEMD160_HMAC: CK_MECHANISM_TYPE = 577;
pub const CKM_RIPEMD160_HMAC_GENERAL: CK_MECHANISM_TYPE = 578;
pub const CKM_SHA256: CK_MECHANISM_TYPE = 592;
pub const CKM_SHA256_HMAC: CK_MECHANISM_TYPE = 593;
pub const CKM_SHA256_HMAC_GENERAL: CK_MECHANISM_TYPE = 594;
pub const CKM_SHA224: CK_MECHANISM_TYPE = 597;
pub const CKM_SHA224_HMAC: CK_MECHANISM_TYPE = 598;
pub const CKM_SHA224_HMAC_GENERAL: CK_MECHANISM_TYPE = 599;
pub const CKM_SHA384: CK_MECHANISM_TYPE = 608;
pub const CKM_SHA384_HMAC: CK_MECHANISM_TYPE = 609;
pub const CKM_SHA384_HMAC_GENERAL: CK_MECHANISM_TYPE = 610;
pub const CKM_SHA512: CK_MECHANISM_TYPE = 624;
pub const CKM_SHA512_HMAC: CK_MECHANISM_TYPE = 625;
pub const CKM_SHA512_HMAC_GENERAL: CK_MECHANISM_TYPE = 626;
pub const CKM_SECURID_KEY_GEN: CK_MECHANISM_TYPE = 640;
pub const CKM_SECURID: CK_MECHANISM_TYPE = 642;
pub const CKM_HOTP_KEY_GEN: CK_MECHANISM_TYPE = 656;
pub const CKM_HOTP: CK_MECHANISM_TYPE = 657;
pub const CKM_ACTI: CK_MECHANISM_TYPE = 672;
pub const CKM_ACTI_KEY_GEN: CK_MECHANISM_TYPE = 673;
pub const CKM_SHA3_256: CK_MECHANISM_TYPE = 688;
pub const CKM_SHA3_256_HMAC: CK_MECHANISM_TYPE = 689;
pub const CKM_SHA3_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 690;
pub const CKM_SHA3_256_KEY_GEN: CK_MECHANISM_TYPE = 691;
pub const CKM_SHA3_224: CK_MECHANISM_TYPE = 693;
pub const CKM_SHA3_224_HMAC: CK_MECHANISM_TYPE = 694;
pub const CKM_SHA3_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 695;
pub const CKM_SHA3_224_KEY_GEN: CK_MECHANISM_TYPE = 696;
pub const CKM_SHA3_384: CK_MECHANISM_TYPE = 704;
pub const CKM_SHA3_384_HMAC: CK_MECHANISM_TYPE = 705;
pub const CKM_SHA3_384_HMAC_GENERAL: CK_MECHANISM_TYPE = 706;
pub const CKM_SHA3_384_KEY_GEN: CK_MECHANISM_TYPE = 707;
pub const CKM_SHA3_512: CK_MECHANISM_TYPE = 720;
pub const CKM_SHA3_512_HMAC: CK_MECHANISM_TYPE = 721;
pub const CKM_SHA3_512_HMAC_GENERAL: CK_MECHANISM_TYPE = 722;
pub const CKM_SHA3_512_KEY_GEN: CK_MECHANISM_TYPE = 723;
pub const CKM_CAST_KEY_GEN: CK_MECHANISM_TYPE = 768;
pub const CKM_CAST_ECB: CK_MECHANISM_TYPE = 769;
pub const CKM_CAST_CBC: CK_MECHANISM_TYPE = 770;
pub const CKM_CAST_MAC: CK_MECHANISM_TYPE = 771;
pub const CKM_CAST_MAC_GENERAL: CK_MECHANISM_TYPE = 772;
pub const CKM_CAST_CBC_PAD: CK_MECHANISM_TYPE = 773;
pub const CKM_CAST3_KEY_GEN: CK_MECHANISM_TYPE = 784;
pub const CKM_CAST3_ECB: CK_MECHANISM_TYPE = 785;
pub const CKM_CAST3_CBC: CK_MECHANISM_TYPE = 786;
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;
pub const CKM_CAST128_MAC_GENERAL: CK_MECHANISM_TYPE = 804;
pub const CKM_CAST128_CBC_PAD: CK_MECHANISM_TYPE = 805;
pub const CKM_RC5_KEY_GEN: CK_MECHANISM_TYPE = 816;
pub const CKM_RC5_ECB: CK_MECHANISM_TYPE = 817;
pub const CKM_RC5_CBC: CK_MECHANISM_TYPE = 818;
pub const CKM_RC5_MAC: CK_MECHANISM_TYPE = 819;
pub const CKM_RC5_MAC_GENERAL: CK_MECHANISM_TYPE = 820;
pub const CKM_RC5_CBC_PAD: CK_MECHANISM_TYPE = 821;
pub const CKM_IDEA_KEY_GEN: CK_MECHANISM_TYPE = 832;
pub const CKM_IDEA_ECB: CK_MECHANISM_TYPE = 833;
pub const CKM_IDEA_CBC: CK_MECHANISM_TYPE = 834;
pub const CKM_IDEA_MAC: CK_MECHANISM_TYPE = 835;
pub const CKM_IDEA_MAC_GENERAL: CK_MECHANISM_TYPE = 836;
pub const CKM_IDEA_CBC_PAD: CK_MECHANISM_TYPE = 837;
pub const CKM_GENERIC_SECRET_KEY_GEN: CK_MECHANISM_TYPE = 848;
pub const CKM_CONCATENATE_BASE_AND_KEY: CK_MECHANISM_TYPE = 864;
pub const CKM_CONCATENATE_BASE_AND_DATA: CK_MECHANISM_TYPE = 866;
pub const CKM_CONCATENATE_DATA_AND_BASE: CK_MECHANISM_TYPE = 867;
pub const CKM_XOR_BASE_AND_DATA: CK_MECHANISM_TYPE = 868;
pub const CKM_EXTRACT_KEY_FROM_KEY: CK_MECHANISM_TYPE = 869;
pub const CKM_SSL3_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 880;
pub const CKM_SSL3_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 881;
pub const CKM_SSL3_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 882;
pub const CKM_SSL3_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 883;
pub const CKM_TLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 884;
pub const CKM_TLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 885;
pub const CKM_TLS_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 886;
pub const CKM_TLS_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 887;
pub const CKM_TLS_PRF: CK_MECHANISM_TYPE = 888;
pub const CKM_SSL3_MD5_MAC: CK_MECHANISM_TYPE = 896;
pub const CKM_SSL3_SHA1_MAC: CK_MECHANISM_TYPE = 897;
pub const CKM_MD5_KEY_DERIVATION: CK_MECHANISM_TYPE = 912;
pub const CKM_MD2_KEY_DERIVATION: CK_MECHANISM_TYPE = 913;
pub const CKM_SHA1_KEY_DERIVATION: CK_MECHANISM_TYPE = 914;
pub const CKM_SHA256_KEY_DERIVATION: CK_MECHANISM_TYPE = 915;
pub const CKM_SHA384_KEY_DERIVATION: CK_MECHANISM_TYPE = 916;
pub const CKM_SHA512_KEY_DERIVATION: CK_MECHANISM_TYPE = 917;
pub const CKM_SHA224_KEY_DERIVATION: CK_MECHANISM_TYPE = 918;
pub const CKM_SHA3_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 919;
pub const CKM_SHA3_256_KEY_DERIVE: CK_MECHANISM_TYPE = 919;
pub const CKM_SHA3_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 920;
pub const CKM_SHA3_224_KEY_DERIVE: CK_MECHANISM_TYPE = 920;
pub const CKM_SHA3_384_KEY_DERIVATION: CK_MECHANISM_TYPE = 921;
pub const CKM_SHA3_384_KEY_DERIVE: CK_MECHANISM_TYPE = 921;
pub const CKM_SHA3_512_KEY_DERIVATION: CK_MECHANISM_TYPE = 922;
pub const CKM_SHA3_512_KEY_DERIVE: CK_MECHANISM_TYPE = 922;
pub const CKM_SHAKE_128_KEY_DERIVATION: CK_MECHANISM_TYPE = 923;
pub const CKM_SHAKE_128_KEY_DERIVE: CK_MECHANISM_TYPE = 923;
pub const CKM_SHAKE_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 924;
pub const CKM_SHAKE_256_KEY_DERIVE: CK_MECHANISM_TYPE = 924;
pub const CKM_PBE_MD2_DES_CBC: CK_MECHANISM_TYPE = 928;
pub const CKM_PBE_MD5_DES_CBC: CK_MECHANISM_TYPE = 929;
pub const CKM_PBE_MD5_CAST_CBC: CK_MECHANISM_TYPE = 930;
pub const CKM_PBE_MD5_CAST3_CBC: CK_MECHANISM_TYPE = 931;
pub const CKM_PBE_MD5_CAST128_CBC: CK_MECHANISM_TYPE = 932;
pub const CKM_PBE_SHA1_CAST128_CBC: CK_MECHANISM_TYPE = 933;
pub const CKM_PBE_SHA1_RC4_128: CK_MECHANISM_TYPE = 934;
pub const CKM_PBE_SHA1_RC4_40: CK_MECHANISM_TYPE = 935;
pub const CKM_PBE_SHA1_DES3_EDE_CBC: CK_MECHANISM_TYPE = 936;
pub const CKM_PBE_SHA1_DES2_EDE_CBC: CK_MECHANISM_TYPE = 937;
pub const CKM_PBE_SHA1_RC2_128_CBC: CK_MECHANISM_TYPE = 938;
pub const CKM_PBE_SHA1_RC2_40_CBC: CK_MECHANISM_TYPE = 939;
pub const CKM_PKCS5_PBKD2: CK_MECHANISM_TYPE = 944;
pub const CKM_PBA_SHA1_WITH_SHA1_HMAC: CK_MECHANISM_TYPE = 960;
pub const CKM_WTLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 976;
pub const CKM_WTLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 977;
pub const CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC: CK_MECHANISM_TYPE = 978;
pub const CKM_WTLS_PRF: CK_MECHANISM_TYPE = 979;
pub const CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 980;
pub const CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 981;
pub const CKM_TLS10_MAC_SERVER: CK_MECHANISM_TYPE = 982;
pub const CKM_TLS10_MAC_CLIENT: CK_MECHANISM_TYPE = 983;
pub const CKM_TLS12_MAC: CK_MECHANISM_TYPE = 984;
pub const CKM_TLS12_KDF: CK_MECHANISM_TYPE = 985;
pub const CKM_TLS12_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 992;
pub const CKM_TLS12_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 993;
pub const CKM_TLS12_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 994;
pub const CKM_TLS12_KEY_SAFE_DERIVE: CK_MECHANISM_TYPE = 995;
pub const CKM_TLS_MAC: CK_MECHANISM_TYPE = 996;
pub const CKM_TLS_KDF: CK_MECHANISM_TYPE = 997;
pub const CKM_KEY_WRAP_LYNKS: CK_MECHANISM_TYPE = 1024;
pub const CKM_KEY_WRAP_SET_OAEP: CK_MECHANISM_TYPE = 1025;
pub const CKM_CMS_SIG: CK_MECHANISM_TYPE = 1280;
pub const CKM_KIP_DERIVE: CK_MECHANISM_TYPE = 1296;
pub const CKM_KIP_WRAP: CK_MECHANISM_TYPE = 1297;
pub const CKM_KIP_MAC: CK_MECHANISM_TYPE = 1298;
pub const CKM_CAMELLIA_KEY_GEN: CK_MECHANISM_TYPE = 1360;
pub const CKM_CAMELLIA_ECB: CK_MECHANISM_TYPE = 1361;
pub const CKM_CAMELLIA_CBC: CK_MECHANISM_TYPE = 1362;
pub const CKM_CAMELLIA_MAC: CK_MECHANISM_TYPE = 1363;
pub const CKM_CAMELLIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1364;
pub const CKM_CAMELLIA_CBC_PAD: CK_MECHANISM_TYPE = 1365;
pub const CKM_CAMELLIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1366;
pub const CKM_CAMELLIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1367;
pub const CKM_CAMELLIA_CTR: CK_MECHANISM_TYPE = 1368;
pub const CKM_ARIA_KEY_GEN: CK_MECHANISM_TYPE = 1376;
pub const CKM_ARIA_ECB: CK_MECHANISM_TYPE = 1377;
pub const CKM_ARIA_CBC: CK_MECHANISM_TYPE = 1378;
pub const CKM_ARIA_MAC: CK_MECHANISM_TYPE = 1379;
pub const CKM_ARIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1380;
pub const CKM_ARIA_CBC_PAD: CK_MECHANISM_TYPE = 1381;
pub const CKM_ARIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1382;
pub const CKM_ARIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1383;
pub const CKM_SEED_KEY_GEN: CK_MECHANISM_TYPE = 1616;
pub const CKM_SEED_ECB: CK_MECHANISM_TYPE = 1617;
pub const CKM_SEED_CBC: CK_MECHANISM_TYPE = 1618;
pub const CKM_SEED_MAC: CK_MECHANISM_TYPE = 1619;
pub const CKM_SEED_MAC_GENERAL: CK_MECHANISM_TYPE = 1620;
pub const CKM_SEED_CBC_PAD: CK_MECHANISM_TYPE = 1621;
pub const CKM_SEED_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1622;
pub const CKM_SEED_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1623;
pub const CKM_SKIPJACK_KEY_GEN: CK_MECHANISM_TYPE = 4096;
pub const CKM_SKIPJACK_ECB64: CK_MECHANISM_TYPE = 4097;
pub const CKM_SKIPJACK_CBC64: CK_MECHANISM_TYPE = 4098;
pub const CKM_SKIPJACK_OFB64: CK_MECHANISM_TYPE = 4099;
pub const CKM_SKIPJACK_CFB64: CK_MECHANISM_TYPE = 4100;
pub const CKM_SKIPJACK_CFB32: CK_MECHANISM_TYPE = 4101;
pub const CKM_SKIPJACK_CFB16: CK_MECHANISM_TYPE = 4102;
pub const CKM_SKIPJACK_CFB8: CK_MECHANISM_TYPE = 4103;
pub const CKM_SKIPJACK_WRAP: CK_MECHANISM_TYPE = 4104;
pub const CKM_SKIPJACK_PRIVATE_WRAP: CK_MECHANISM_TYPE = 4105;
pub const CKM_SKIPJACK_RELAYX: CK_MECHANISM_TYPE = 4106;
pub const CKM_KEA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4112;
pub const CKM_KEA_KEY_DERIVE: CK_MECHANISM_TYPE = 4113;
pub const CKM_KEA_DERIVE: CK_MECHANISM_TYPE = 4114;
pub const CKM_FORTEZZA_TIMESTAMP: CK_MECHANISM_TYPE = 4128;
pub const CKM_BATON_KEY_GEN: CK_MECHANISM_TYPE = 4144;
pub const CKM_BATON_ECB128: CK_MECHANISM_TYPE = 4145;
pub const CKM_BATON_ECB96: CK_MECHANISM_TYPE = 4146;
pub const CKM_BATON_CBC128: CK_MECHANISM_TYPE = 4147;
pub const CKM_BATON_COUNTER: CK_MECHANISM_TYPE = 4148;
pub const CKM_BATON_SHUFFLE: CK_MECHANISM_TYPE = 4149;
pub const CKM_BATON_WRAP: CK_MECHANISM_TYPE = 4150;
pub const CKM_EC_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160;
pub const CKM_ECDSA: CK_MECHANISM_TYPE = 4161;
pub const CKM_ECDSA_SHA1: CK_MECHANISM_TYPE = 4162;
pub const CKM_ECDSA_SHA224: CK_MECHANISM_TYPE = 4163;
pub const CKM_ECDSA_SHA256: CK_MECHANISM_TYPE = 4164;
pub const CKM_ECDSA_SHA384: CK_MECHANISM_TYPE = 4165;
pub const CKM_ECDSA_SHA512: CK_MECHANISM_TYPE = 4166;
pub const CKM_EC_KEY_PAIR_GEN_W_EXTRA_BITS: CK_MECHANISM_TYPE = 5131;
pub const CKM_ECDH1_DERIVE: CK_MECHANISM_TYPE = 4176;
pub const CKM_ECDH1_COFACTOR_DERIVE: CK_MECHANISM_TYPE = 4177;
pub const CKM_ECMQV_DERIVE: CK_MECHANISM_TYPE = 4178;
pub const CKM_ECDH_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4179;
pub const CKM_RSA_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4180;
pub const CKM_JUNIPER_KEY_GEN: CK_MECHANISM_TYPE = 4192;
pub const CKM_JUNIPER_ECB128: CK_MECHANISM_TYPE = 4193;
pub const CKM_JUNIPER_CBC128: CK_MECHANISM_TYPE = 4194;
pub const CKM_JUNIPER_COUNTER: CK_MECHANISM_TYPE = 4195;
pub const CKM_JUNIPER_SHUFFLE: CK_MECHANISM_TYPE = 4196;
pub const CKM_JUNIPER_WRAP: CK_MECHANISM_TYPE = 4197;
pub const CKM_FASTHASH: CK_MECHANISM_TYPE = 4208;
pub const CKM_AES_XTS: CK_MECHANISM_TYPE = 4209;
pub const CKM_AES_XTS_KEY_GEN: CK_MECHANISM_TYPE = 4210;
pub const CKM_AES_KEY_GEN: CK_MECHANISM_TYPE = 4224;
pub const CKM_AES_ECB: CK_MECHANISM_TYPE = 4225;
pub const CKM_AES_CBC: CK_MECHANISM_TYPE = 4226;
pub const CKM_AES_MAC: CK_MECHANISM_TYPE = 4227;
pub const CKM_AES_MAC_GENERAL: CK_MECHANISM_TYPE = 4228;
pub const CKM_AES_CBC_PAD: CK_MECHANISM_TYPE = 4229;
pub const CKM_AES_CTR: CK_MECHANISM_TYPE = 4230;
pub const CKM_AES_GCM: CK_MECHANISM_TYPE = 4231;
pub const CKM_AES_CCM: CK_MECHANISM_TYPE = 4232;
pub const CKM_AES_CTS: CK_MECHANISM_TYPE = 4233;
pub const CKM_AES_CMAC: CK_MECHANISM_TYPE = 4234;
pub const CKM_AES_CMAC_GENERAL: CK_MECHANISM_TYPE = 4235;
pub const CKM_AES_XCBC_MAC: CK_MECHANISM_TYPE = 4236;
pub const CKM_AES_XCBC_MAC_96: CK_MECHANISM_TYPE = 4237;
pub const CKM_AES_GMAC: CK_MECHANISM_TYPE = 4238;
pub const CKM_BLOWFISH_KEY_GEN: CK_MECHANISM_TYPE = 4240;
pub const CKM_BLOWFISH_CBC: CK_MECHANISM_TYPE = 4241;
pub const CKM_TWOFISH_KEY_GEN: CK_MECHANISM_TYPE = 4242;
pub const CKM_TWOFISH_CBC: CK_MECHANISM_TYPE = 4243;
pub const CKM_BLOWFISH_CBC_PAD: CK_MECHANISM_TYPE = 4244;
pub const CKM_TWOFISH_CBC_PAD: CK_MECHANISM_TYPE = 4245;
pub const CKM_DES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4352;
pub const CKM_DES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4353;
pub const CKM_DES3_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4354;
pub const CKM_DES3_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4355;
pub const CKM_AES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4356;
pub const CKM_AES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4357;
pub const CKM_GOSTR3410_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4608;
pub const CKM_GOSTR3410: CK_MECHANISM_TYPE = 4609;
pub const CKM_GOSTR3410_WITH_GOSTR3411: CK_MECHANISM_TYPE = 4610;
pub const CKM_GOSTR3410_KEY_WRAP: CK_MECHANISM_TYPE = 4611;
pub const CKM_GOSTR3410_DERIVE: CK_MECHANISM_TYPE = 4612;
pub const CKM_GOSTR3411: CK_MECHANISM_TYPE = 4624;
pub const CKM_GOSTR3411_HMAC: CK_MECHANISM_TYPE = 4625;
pub const CKM_GOST28147_KEY_GEN: CK_MECHANISM_TYPE = 4640;
pub const CKM_GOST28147_ECB: CK_MECHANISM_TYPE = 4641;
pub const CKM_GOST28147: CK_MECHANISM_TYPE = 4642;
pub const CKM_GOST28147_MAC: CK_MECHANISM_TYPE = 4643;
pub const CKM_GOST28147_KEY_WRAP: CK_MECHANISM_TYPE = 4644;
pub const CKM_CHACHA20_KEY_GEN: CK_MECHANISM_TYPE = 4645;
pub const CKM_CHACHA20: CK_MECHANISM_TYPE = 4646;
pub const CKM_POLY1305_KEY_GEN: CK_MECHANISM_TYPE = 4647;
pub const CKM_POLY1305: CK_MECHANISM_TYPE = 4648;
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;
pub const CKM_AES_CFB64: CK_MECHANISM_TYPE = 8453;
pub const CKM_AES_CFB8: CK_MECHANISM_TYPE = 8454;
pub const CKM_AES_CFB128: CK_MECHANISM_TYPE = 8455;
pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456;
pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457;
pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458;
pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459;
pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460;
pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385;
pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386;
pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387;
pub const CKM_SHA224_KEY_GEN: CK_MECHANISM_TYPE = 16388;
pub const CKM_SHA256_KEY_GEN: CK_MECHANISM_TYPE = 16389;
pub const CKM_SHA384_KEY_GEN: CK_MECHANISM_TYPE = 16390;
pub const CKM_SHA512_KEY_GEN: CK_MECHANISM_TYPE = 16391;
pub const CKM_SHA512_224_KEY_GEN: CK_MECHANISM_TYPE = 16392;
pub const CKM_SHA512_256_KEY_GEN: CK_MECHANISM_TYPE = 16393;
pub const CKM_SHA512_T_KEY_GEN: CK_MECHANISM_TYPE = 16394;
pub const CKM_NULL: CK_MECHANISM_TYPE = 16395;
pub const CKM_BLAKE2B_160: CK_MECHANISM_TYPE = 16396;
pub const CKM_BLAKE2B_160_HMAC: CK_MECHANISM_TYPE = 16397;
pub const CKM_BLAKE2B_160_HMAC_GENERAL: CK_MECHANISM_TYPE = 16398;
pub const CKM_BLAKE2B_160_KEY_DERIVE: CK_MECHANISM_TYPE = 16399;
pub const CKM_BLAKE2B_160_KEY_GEN: CK_MECHANISM_TYPE = 16400;
pub const CKM_BLAKE2B_256: CK_MECHANISM_TYPE = 16401;
pub const CKM_BLAKE2B_256_HMAC: CK_MECHANISM_TYPE = 16402;
pub const CKM_BLAKE2B_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 16403;
pub const CKM_BLAKE2B_256_KEY_DERIVE: CK_MECHANISM_TYPE = 16404;
pub const CKM_BLAKE2B_256_KEY_GEN: CK_MECHANISM_TYPE = 16405;
pub const CKM_BLAKE2B_384: CK_MECHANISM_TYPE = 16406;
pub const CKM_BLAKE2B_384_HMAC: CK_MECHANISM_TYPE = 16407;
pub const CKM_BLAKE2B_384_HMAC_GENERAL: CK_MECHANISM_TYPE = 16408;
pub const CKM_BLAKE2B_384_KEY_DERIVE: CK_MECHANISM_TYPE = 16409;
pub const CKM_BLAKE2B_384_KEY_GEN: CK_MECHANISM_TYPE = 16410;
pub const CKM_BLAKE2B_512: CK_MECHANISM_TYPE = 16411;
pub const CKM_BLAKE2B_512_HMAC: CK_MECHANISM_TYPE = 16412;
pub const CKM_BLAKE2B_512_HMAC_GENERAL: CK_MECHANISM_TYPE = 16413;
pub const CKM_BLAKE2B_512_KEY_DERIVE: CK_MECHANISM_TYPE = 16414;
pub const CKM_BLAKE2B_512_KEY_GEN: CK_MECHANISM_TYPE = 16415;
pub const CKM_SALSA20: CK_MECHANISM_TYPE = 16416;
pub const CKM_CHACHA20_POLY1305: CK_MECHANISM_TYPE = 16417;
pub const CKM_SALSA20_POLY1305: CK_MECHANISM_TYPE = 16418;
pub const CKM_X3DH_INITIALIZE: CK_MECHANISM_TYPE = 16419;
pub const CKM_X3DH_RESPOND: CK_MECHANISM_TYPE = 16420;
pub const CKM_X2RATCHET_INITIALIZE: CK_MECHANISM_TYPE = 16421;
pub const CKM_X2RATCHET_RESPOND: CK_MECHANISM_TYPE = 16422;
pub const CKM_X2RATCHET_ENCRYPT: CK_MECHANISM_TYPE = 16423;
pub const CKM_X2RATCHET_DECRYPT: CK_MECHANISM_TYPE = 16424;
pub const CKM_XEDDSA: CK_MECHANISM_TYPE = 16425;
pub const CKM_HKDF_DERIVE: CK_MECHANISM_TYPE = 16426;
pub const CKM_HKDF_DATA: CK_MECHANISM_TYPE = 16427;
pub const CKM_HKDF_KEY_GEN: CK_MECHANISM_TYPE = 16428;
pub const CKM_SALSA20_KEY_GEN: CK_MECHANISM_TYPE = 16429;
pub const CKM_ECDSA_SHA3_224: CK_MECHANISM_TYPE = 4167;
pub const CKM_ECDSA_SHA3_256: CK_MECHANISM_TYPE = 4168;
pub const CKM_ECDSA_SHA3_384: CK_MECHANISM_TYPE = 4169;
pub const CKM_ECDSA_SHA3_512: CK_MECHANISM_TYPE = 4170;
pub const CKM_EC_EDWARDS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4181;
pub const CKM_EC_MONTGOMERY_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4182;
pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183;
pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940;
pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941;
pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942;
pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430;
pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431;
pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432;
pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433;
pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434;
pub const CKM_HSS: CK_MECHANISM_TYPE = 16435;
pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648;
pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800;
pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802;
pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803;
pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804;
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 CKN_SURRENDER: CK_NOTIFICATION = 0;
pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1;
pub const CKO_DATA: CK_OBJECT_CLASS = 0;
pub const CKO_CERTIFICATE: CK_OBJECT_CLASS = 1;
pub const CKO_PUBLIC_KEY: CK_OBJECT_CLASS = 2;
pub const CKO_PRIVATE_KEY: CK_OBJECT_CLASS = 3;
pub const CKO_SECRET_KEY: CK_OBJECT_CLASS = 4;
pub const CKO_HW_FEATURE: CK_OBJECT_CLASS = 5;
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_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648;
pub const CKP_INVALID_ID: CK_PROFILE_ID = 0;
pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1;
pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2;
pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3;
pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4;
pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5;
pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6;
pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648;
pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1;
pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2;
pub const CKP_PKCS5_PBKD2_HMAC_SHA224: CK_PROFILE_ID = 3;
pub const CKP_PKCS5_PBKD2_HMAC_SHA256: CK_PROFILE_ID = 4;
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 CKR_OK: CK_RV = 0;
pub const CKR_CANCEL: CK_RV = 1;
pub const CKR_HOST_MEMORY: CK_RV = 2;
pub const CKR_SLOT_ID_INVALID: CK_RV = 3;
pub const CKR_GENERAL_ERROR: CK_RV = 5;
pub const CKR_FUNCTION_FAILED: CK_RV = 6;
pub const CKR_ARGUMENTS_BAD: CK_RV = 7;
pub const CKR_NO_EVENT: CK_RV = 8;
pub const CKR_NEED_TO_CREATE_THREADS: CK_RV = 9;
pub const CKR_CANT_LOCK: CK_RV = 10;
pub const CKR_ATTRIBUTE_READ_ONLY: CK_RV = 16;
pub const CKR_ATTRIBUTE_SENSITIVE: CK_RV = 17;
pub const CKR_ATTRIBUTE_TYPE_INVALID: CK_RV = 18;
pub const CKR_ATTRIBUTE_VALUE_INVALID: CK_RV = 19;
pub const CKR_ACTION_PROHIBITED: CK_RV = 27;
pub const CKR_DATA_INVALID: CK_RV = 32;
pub const CKR_DATA_LEN_RANGE: CK_RV = 33;
pub const CKR_DEVICE_ERROR: CK_RV = 48;
pub const CKR_DEVICE_MEMORY: CK_RV = 49;
pub const CKR_DEVICE_REMOVED: CK_RV = 50;
pub const CKR_ENCRYPTED_DATA_INVALID: CK_RV = 64;
pub const CKR_ENCRYPTED_DATA_LEN_RANGE: CK_RV = 65;
pub const CKR_AEAD_DECRYPT_FAILED: CK_RV = 66;
pub const CKR_FUNCTION_CANCELED: CK_RV = 80;
pub const CKR_FUNCTION_NOT_PARALLEL: CK_RV = 81;
pub const CKR_FUNCTION_NOT_SUPPORTED: CK_RV = 84;
pub const CKR_KEY_HANDLE_INVALID: CK_RV = 96;
pub const CKR_KEY_SIZE_RANGE: CK_RV = 98;
pub const CKR_KEY_TYPE_INCONSISTENT: CK_RV = 99;
pub const CKR_KEY_NOT_NEEDED: CK_RV = 100;
pub const CKR_KEY_CHANGED: CK_RV = 101;
pub const CKR_KEY_NEEDED: CK_RV = 102;
pub const CKR_KEY_INDIGESTIBLE: CK_RV = 103;
pub const CKR_KEY_FUNCTION_NOT_PERMITTED: CK_RV = 104;
pub const CKR_KEY_NOT_WRAPPABLE: CK_RV = 105;
pub const CKR_KEY_UNEXTRACTABLE: CK_RV = 106;
pub const CKR_MECHANISM_INVALID: CK_RV = 112;
pub const CKR_MECHANISM_PARAM_INVALID: CK_RV = 113;
pub const CKR_OBJECT_HANDLE_INVALID: CK_RV = 130;
pub const CKR_OPERATION_ACTIVE: CK_RV = 144;
pub const CKR_OPERATION_NOT_INITIALIZED: CK_RV = 145;
pub const CKR_PIN_INCORRECT: CK_RV = 160;
pub const CKR_PIN_INVALID: CK_RV = 161;
pub const CKR_PIN_LEN_RANGE: CK_RV = 162;
pub const CKR_PIN_EXPIRED: CK_RV = 163;
pub const CKR_PIN_LOCKED: CK_RV = 164;
pub const CKR_SESSION_CLOSED: CK_RV = 176;
pub const CKR_SESSION_COUNT: CK_RV = 177;
pub const CKR_SESSION_HANDLE_INVALID: CK_RV = 179;
pub const CKR_SESSION_PARALLEL_NOT_SUPPORTED: CK_RV = 180;
pub const CKR_SESSION_READ_ONLY: CK_RV = 181;
pub const CKR_SESSION_EXISTS: CK_RV = 182;
pub const CKR_SESSION_READ_ONLY_EXISTS: CK_RV = 183;
pub const CKR_SESSION_READ_WRITE_SO_EXISTS: CK_RV = 184;
pub const CKR_SIGNATURE_INVALID: CK_RV = 192;
pub const CKR_SIGNATURE_LEN_RANGE: CK_RV = 193;
pub const CKR_TEMPLATE_INCOMPLETE: CK_RV = 208;
pub const CKR_TEMPLATE_INCONSISTENT: CK_RV = 209;
pub const CKR_TOKEN_NOT_PRESENT: CK_RV = 224;
pub const CKR_TOKEN_NOT_RECOGNIZED: CK_RV = 225;
pub const CKR_TOKEN_WRITE_PROTECTED: CK_RV = 226;
pub const CKR_UNWRAPPING_KEY_HANDLE_INVALID: CK_RV = 240;
pub const CKR_UNWRAPPING_KEY_SIZE_RANGE: CK_RV = 241;
pub const CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 242;
pub const CKR_USER_ALREADY_LOGGED_IN: CK_RV = 256;
pub const CKR_USER_NOT_LOGGED_IN: CK_RV = 257;
pub const CKR_USER_PIN_NOT_INITIALIZED: CK_RV = 258;
pub const CKR_USER_TYPE_INVALID: CK_RV = 259;
pub const CKR_USER_ANOTHER_ALREADY_LOGGED_IN: CK_RV = 260;
pub const CKR_USER_TOO_MANY_TYPES: CK_RV = 261;
pub const CKR_WRAPPED_KEY_INVALID: CK_RV = 272;
pub const CKR_WRAPPED_KEY_LEN_RANGE: CK_RV = 274;
pub const CKR_WRAPPING_KEY_HANDLE_INVALID: CK_RV = 275;
pub const CKR_WRAPPING_KEY_SIZE_RANGE: CK_RV = 276;
pub const CKR_WRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 277;
pub const CKR_RANDOM_SEED_NOT_SUPPORTED: CK_RV = 288;
pub const CKR_RANDOM_NO_RNG: CK_RV = 289;
pub const CKR_DOMAIN_PARAMS_INVALID: CK_RV = 304;
pub const CKR_CURVE_NOT_SUPPORTED: CK_RV = 320;
pub const CKR_BUFFER_TOO_SMALL: CK_RV = 336;
pub const CKR_SAVED_STATE_INVALID: CK_RV = 352;
pub const CKR_INFORMATION_SENSITIVE: CK_RV = 368;
pub const CKR_STATE_UNSAVEABLE: CK_RV = 384;
pub const CKR_CRYPTOKI_NOT_INITIALIZED: CK_RV = 400;
pub const CKR_CRYPTOKI_ALREADY_INITIALIZED: CK_RV = 401;
pub const CKR_MUTEX_BAD: CK_RV = 416;
pub const CKR_MUTEX_NOT_LOCKED: CK_RV = 417;
pub const CKR_NEW_PIN_MODE: CK_RV = 432;
pub const CKR_NEXT_OTP: CK_RV = 433;
pub const CKR_EXCEEDED_MAX_ITERATIONS: CK_RV = 437;
pub const CKR_FIPS_SELF_TEST_FAILED: CK_RV = 438;
pub const CKR_LIBRARY_LOAD_FAILED: CK_RV = 439;
pub const CKR_PIN_TOO_WEAK: CK_RV = 440;
pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441;
pub const CKR_FUNCTION_REJECTED: CK_RV = 512;
pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513;
pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514;
pub const CKR_KEY_EXHAUSTED: CK_RV = 515;
pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648;
pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0;
pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1;
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 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 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;
pub type CK_BYTE = ::std::os::raw::c_uchar;
pub type CK_CHAR = ::std::os::raw::c_uchar;
pub type CK_UTF8CHAR = ::std::os::raw::c_uchar;
pub type CK_ULONG = ::std::os::raw::c_ulong;
pub type CK_BBOOL_PTR = *mut CK_BBOOL;
pub type CK_BYTE_PTR = *mut CK_BYTE;
pub type CK_CHAR_PTR = *mut CK_CHAR;
pub type CK_UTF8CHAR_PTR = *mut CK_UTF8CHAR;
pub type CK_ULONG_PTR = *mut CK_ULONG;
pub type CK_VOID_PTR = *mut ::std::os::raw::c_void;
pub type CK_VOID_PTR_PTR = *mut *mut ::std::os::raw::c_void;
pub type CK_ATTRIBUTE_TYPE = CK_ULONG;
pub type CK_ATTRIBUTE_TYPE_PTR = *mut CK_ATTRIBUTE_TYPE;
pub type CK_CERTIFICATE_CATEGORY = CK_ULONG;
pub type CK_CERTIFICATE_CATEGORY_PTR = *mut CK_CERTIFICATE_CATEGORY;
pub type CK_CERTIFICATE_TYPE = CK_ULONG;
pub type CK_CERTIFICATE_TYPE_PTR = *mut CK_CERTIFICATE_TYPE;
pub type CK_EC_KDF_TYPE = CK_ULONG;
pub type CK_EC_KDF_TYPE_PTR = *mut CK_EC_KDF_TYPE;
pub type CK_EXTRACT_PARAMS = CK_ULONG;
pub type CK_EXTRACT_PARAMS_PTR = *mut CK_EXTRACT_PARAMS;
pub type CK_FLAGS = CK_ULONG;
pub type CK_FLAGS_PTR = *mut CK_FLAGS;
pub type CK_GENERATOR_FUNCTION = CK_ULONG;
pub type CK_GENERATOR_FUNCTION_PTR = *mut CK_GENERATOR_FUNCTION;
pub type CK_HSS_LEVELS = CK_ULONG;
pub type CK_HSS_LEVELS_PTR = *mut CK_HSS_LEVELS;
pub type CK_HW_FEATURE_TYPE = CK_ULONG;
pub type CK_HW_FEATURE_TYPE_PTR = *mut CK_HW_FEATURE_TYPE;
pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG;
pub type CK_JAVA_MIDP_SECURITY_DOMAIN_PTR = *mut CK_JAVA_MIDP_SECURITY_DOMAIN;
pub type CK_KEY_TYPE = CK_ULONG;
pub type CK_KEY_TYPE_PTR = *mut CK_KEY_TYPE;
pub type CK_LMS_TYPE = CK_ULONG;
pub type CK_LMS_TYPE_PTR = *mut CK_LMS_TYPE;
pub type CK_LMOTS_TYPE = CK_ULONG;
pub type CK_LMOTS_TYPE_PTR = *mut CK_LMOTS_TYPE;
pub type CK_MAC_GENERAL_PARAMS = CK_ULONG;
pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS;
pub type CK_MECHANISM_TYPE = CK_ULONG;
pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE;
pub type CK_NOTIFICATION = CK_ULONG;
pub type CK_NOTIFICATION_PTR = *mut CK_NOTIFICATION;
pub type CK_OBJECT_CLASS = CK_ULONG;
pub type CK_OBJECT_CLASS_PTR = *mut CK_OBJECT_CLASS;
pub type CK_OBJECT_HANDLE = CK_ULONG;
pub type CK_OBJECT_HANDLE_PTR = *mut CK_OBJECT_HANDLE;
pub type CK_OTP_PARAM_TYPE = CK_ULONG;
pub type CK_OTP_PARAM_TYPE_PTR = *mut CK_OTP_PARAM_TYPE;
pub type CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE = CK_ULONG;
pub type CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE_PTR =
    *mut CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE;
pub type CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = CK_ULONG;
pub type CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE_PTR = *mut CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE;
pub type CK_PRF_DATA_TYPE = CK_ULONG;
pub type CK_PRF_DATA_TYPE_PTR = *mut CK_PRF_DATA_TYPE;
pub type CK_PROFILE_ID = CK_ULONG;
pub type CK_PROFILE_ID_PTR = *mut CK_PROFILE_ID;
pub type CK_RC2_PARAMS = CK_ULONG;
pub type CK_RC2_PARAMS_PTR = *mut CK_RC2_PARAMS;
pub type CK_RSA_PKCS_MGF_TYPE = CK_ULONG;
pub type CK_RSA_PKCS_MGF_TYPE_PTR = *mut CK_RSA_PKCS_MGF_TYPE;
pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE = CK_ULONG;
pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE_PTR = *mut CK_RSA_PKCS_OAEP_SOURCE_TYPE;
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_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_USER_TYPE = CK_ULONG;
pub type CK_USER_TYPE_PTR = *mut CK_USER_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;
pub type CK_X3DH_KDF_TYPE_PTR = *mut CK_X3DH_KDF_TYPE;
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_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;
pub type CK_C_INITIALIZE_ARGS_PTR_PTR = *mut *mut CK_C_INITIALIZE_ARGS;
pub type CK_DATE_PTR = *mut CK_DATE;
pub type CK_DATE_PTR_PTR = *mut *mut CK_DATE;
pub type CK_DERIVED_KEY_PTR = *mut CK_DERIVED_KEY;
pub type CK_DERIVED_KEY_PTR_PTR = *mut *mut CK_DERIVED_KEY;
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_INFO_PTR = *mut CK_INFO;
pub type CK_INFO_PTR_PTR = *mut *mut CK_INFO;
pub type CK_INTERFACE_PTR = *mut CK_INTERFACE;
pub type CK_INTERFACE_PTR_PTR = *mut *mut CK_INTERFACE;
pub type CK_MECHANISM_PTR = *mut CK_MECHANISM;
pub type CK_MECHANISM_PTR_PTR = *mut *mut CK_MECHANISM;
pub type CK_MECHANISM_INFO_PTR = *mut CK_MECHANISM_INFO;
pub type CK_MECHANISM_INFO_PTR_PTR = *mut *mut CK_MECHANISM_INFO;
pub type CK_SESSION_INFO_PTR = *mut CK_SESSION_INFO;
pub type CK_SESSION_INFO_PTR_PTR = *mut *mut CK_SESSION_INFO;
pub type CK_SLOT_INFO_PTR = *mut CK_SLOT_INFO;
pub type CK_SLOT_INFO_PTR_PTR = *mut *mut CK_SLOT_INFO;
pub type CK_TOKEN_INFO_PTR = *mut CK_TOKEN_INFO;
pub type CK_TOKEN_INFO_PTR_PTR = *mut *mut CK_TOKEN_INFO;
pub type CK_VERSION_PTR = *mut CK_VERSION;
pub type CK_VERSION_PTR_PTR = *mut *mut CK_VERSION;
pub type CK_NOTIFY = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: CK_NOTIFICATION,
        arg3: *mut ::std::os::raw::c_void,
    ) -> CK_RV,
>;
pub type CK_CREATEMUTEX =
    ::std::option::Option<unsafe extern "C" fn(arg1: *mut *mut ::std::os::raw::c_void) -> CK_RV>;
pub type CK_DESTROYMUTEX =
    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> CK_RV>;
pub type CK_LOCKMUTEX =
    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> CK_RV>;
pub type CK_UNLOCKMUTEX =
    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> CK_RV>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_ATTRIBUTE {
    pub type_: CK_ATTRIBUTE_TYPE,
    pub pValue: *mut ::std::os::raw::c_void,
    pub ulValueLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_ATTRIBUTE"][::std::mem::size_of::<CK_ATTRIBUTE>() - 24usize];
    ["Alignment of CK_ATTRIBUTE"][::std::mem::align_of::<CK_ATTRIBUTE>() - 8usize];
    ["Offset of field: CK_ATTRIBUTE::type_"][::std::mem::offset_of!(CK_ATTRIBUTE, type_) - 0usize];
    ["Offset of field: CK_ATTRIBUTE::pValue"]
        [::std::mem::offset_of!(CK_ATTRIBUTE, pValue) - 8usize];
    ["Offset of field: CK_ATTRIBUTE::ulValueLen"]
        [::std::mem::offset_of!(CK_ATTRIBUTE, ulValueLen) - 16usize];
};
impl Default for CK_ATTRIBUTE {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_C_INITIALIZE_ARGS {
    pub CreateMutex: CK_CREATEMUTEX,
    pub DestroyMutex: CK_DESTROYMUTEX,
    pub LockMutex: CK_LOCKMUTEX,
    pub UnlockMutex: CK_UNLOCKMUTEX,
    pub flags: CK_FLAGS,
    pub pReserved: *mut ::std::os::raw::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_C_INITIALIZE_ARGS"][::std::mem::size_of::<CK_C_INITIALIZE_ARGS>() - 48usize];
    ["Alignment of CK_C_INITIALIZE_ARGS"][::std::mem::align_of::<CK_C_INITIALIZE_ARGS>() - 8usize];
    ["Offset of field: CK_C_INITIALIZE_ARGS::CreateMutex"]
        [::std::mem::offset_of!(CK_C_INITIALIZE_ARGS, CreateMutex) - 0usize];
    ["Offset of field: CK_C_INITIALIZE_ARGS::DestroyMutex"]
        [::std::mem::offset_of!(CK_C_INITIALIZE_ARGS, DestroyMutex) - 8usize];
    ["Offset of field: CK_C_INITIALIZE_ARGS::LockMutex"]
        [::std::mem::offset_of!(CK_C_INITIALIZE_ARGS, LockMutex) - 16usize];
    ["Offset of field: CK_C_INITIALIZE_ARGS::UnlockMutex"]
        [::std::mem::offset_of!(CK_C_INITIALIZE_ARGS, UnlockMutex) - 24usize];
    ["Offset of field: CK_C_INITIALIZE_ARGS::flags"]
        [::std::mem::offset_of!(CK_C_INITIALIZE_ARGS, flags) - 32usize];
    ["Offset of field: CK_C_INITIALIZE_ARGS::pReserved"]
        [::std::mem::offset_of!(CK_C_INITIALIZE_ARGS, pReserved) - 40usize];
};
impl Default for CK_C_INITIALIZE_ARGS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_DATE {
    pub year: [CK_CHAR; 4usize],
    pub month: [CK_CHAR; 2usize],
    pub day: [CK_CHAR; 2usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_DATE"][::std::mem::size_of::<CK_DATE>() - 8usize];
    ["Alignment of CK_DATE"][::std::mem::align_of::<CK_DATE>() - 1usize];
    ["Offset of field: CK_DATE::year"][::std::mem::offset_of!(CK_DATE, year) - 0usize];
    ["Offset of field: CK_DATE::month"][::std::mem::offset_of!(CK_DATE, month) - 4usize];
    ["Offset of field: CK_DATE::day"][::std::mem::offset_of!(CK_DATE, day) - 6usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_DERIVED_KEY {
    pub pTemplate: *mut CK_ATTRIBUTE,
    pub ulAttributeCount: CK_ULONG,
    pub phKey: *mut CK_OBJECT_HANDLE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_DERIVED_KEY"][::std::mem::size_of::<CK_DERIVED_KEY>() - 24usize];
    ["Alignment of CK_DERIVED_KEY"][::std::mem::align_of::<CK_DERIVED_KEY>() - 8usize];
    ["Offset of field: CK_DERIVED_KEY::pTemplate"]
        [::std::mem::offset_of!(CK_DERIVED_KEY, pTemplate) - 0usize];
    ["Offset of field: CK_DERIVED_KEY::ulAttributeCount"]
        [::std::mem::offset_of!(CK_DERIVED_KEY, ulAttributeCount) - 8usize];
    ["Offset of field: CK_DERIVED_KEY::phKey"]
        [::std::mem::offset_of!(CK_DERIVED_KEY, phKey) - 16usize];
};
impl Default for CK_DERIVED_KEY {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_VERSION {
    pub major: CK_BYTE,
    pub minor: CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_VERSION"][::std::mem::size_of::<CK_VERSION>() - 2usize];
    ["Alignment of CK_VERSION"][::std::mem::align_of::<CK_VERSION>() - 1usize];
    ["Offset of field: CK_VERSION::major"][::std::mem::offset_of!(CK_VERSION, major) - 0usize];
    ["Offset of field: CK_VERSION::minor"][::std::mem::offset_of!(CK_VERSION, minor) - 1usize];
};
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_INFO {
    pub cryptokiVersion: CK_VERSION,
    pub manufacturerID: [CK_UTF8CHAR; 32usize],
    pub flags: CK_FLAGS,
    pub libraryDescription: [CK_UTF8CHAR; 32usize],
    pub libraryVersion: CK_VERSION,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_INFO"][::std::mem::size_of::<CK_INFO>() - 88usize];
    ["Alignment of CK_INFO"][::std::mem::align_of::<CK_INFO>() - 8usize];
    ["Offset of field: CK_INFO::cryptokiVersion"]
        [::std::mem::offset_of!(CK_INFO, cryptokiVersion) - 0usize];
    ["Offset of field: CK_INFO::manufacturerID"]
        [::std::mem::offset_of!(CK_INFO, manufacturerID) - 2usize];
    ["Offset of field: CK_INFO::flags"][::std::mem::offset_of!(CK_INFO, flags) - 40usize];
    ["Offset of field: CK_INFO::libraryDescription"]
        [::std::mem::offset_of!(CK_INFO, libraryDescription) - 48usize];
    ["Offset of field: CK_INFO::libraryVersion"]
        [::std::mem::offset_of!(CK_INFO, libraryVersion) - 80usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_INTERFACE {
    pub pInterfaceName: *mut CK_CHAR,
    pub pFunctionList: *mut ::std::os::raw::c_void,
    pub flags: CK_FLAGS,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_INTERFACE"][::std::mem::size_of::<CK_INTERFACE>() - 24usize];
    ["Alignment of CK_INTERFACE"][::std::mem::align_of::<CK_INTERFACE>() - 8usize];
    ["Offset of field: CK_INTERFACE::pInterfaceName"]
        [::std::mem::offset_of!(CK_INTERFACE, pInterfaceName) - 0usize];
    ["Offset of field: CK_INTERFACE::pFunctionList"]
        [::std::mem::offset_of!(CK_INTERFACE, pFunctionList) - 8usize];
    ["Offset of field: CK_INTERFACE::flags"][::std::mem::offset_of!(CK_INTERFACE, flags) - 16usize];
};
impl Default for CK_INTERFACE {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_MECHANISM {
    pub mechanism: CK_MECHANISM_TYPE,
    pub pParameter: *mut ::std::os::raw::c_void,
    pub ulParameterLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_MECHANISM"][::std::mem::size_of::<CK_MECHANISM>() - 24usize];
    ["Alignment of CK_MECHANISM"][::std::mem::align_of::<CK_MECHANISM>() - 8usize];
    ["Offset of field: CK_MECHANISM::mechanism"]
        [::std::mem::offset_of!(CK_MECHANISM, mechanism) - 0usize];
    ["Offset of field: CK_MECHANISM::pParameter"]
        [::std::mem::offset_of!(CK_MECHANISM, pParameter) - 8usize];
    ["Offset of field: CK_MECHANISM::ulParameterLen"]
        [::std::mem::offset_of!(CK_MECHANISM, ulParameterLen) - 16usize];
};
impl Default for CK_MECHANISM {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_MECHANISM_INFO {
    pub ulMinKeySize: CK_ULONG,
    pub ulMaxKeySize: CK_ULONG,
    pub flags: CK_FLAGS,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_MECHANISM_INFO"][::std::mem::size_of::<CK_MECHANISM_INFO>() - 24usize];
    ["Alignment of CK_MECHANISM_INFO"][::std::mem::align_of::<CK_MECHANISM_INFO>() - 8usize];
    ["Offset of field: CK_MECHANISM_INFO::ulMinKeySize"]
        [::std::mem::offset_of!(CK_MECHANISM_INFO, ulMinKeySize) - 0usize];
    ["Offset of field: CK_MECHANISM_INFO::ulMaxKeySize"]
        [::std::mem::offset_of!(CK_MECHANISM_INFO, ulMaxKeySize) - 8usize];
    ["Offset of field: CK_MECHANISM_INFO::flags"]
        [::std::mem::offset_of!(CK_MECHANISM_INFO, flags) - 16usize];
};
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_SESSION_INFO {
    pub slotID: CK_SLOT_ID,
    pub state: CK_STATE,
    pub flags: CK_FLAGS,
    pub ulDeviceError: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SESSION_INFO"][::std::mem::size_of::<CK_SESSION_INFO>() - 32usize];
    ["Alignment of CK_SESSION_INFO"][::std::mem::align_of::<CK_SESSION_INFO>() - 8usize];
    ["Offset of field: CK_SESSION_INFO::slotID"]
        [::std::mem::offset_of!(CK_SESSION_INFO, slotID) - 0usize];
    ["Offset of field: CK_SESSION_INFO::state"]
        [::std::mem::offset_of!(CK_SESSION_INFO, state) - 8usize];
    ["Offset of field: CK_SESSION_INFO::flags"]
        [::std::mem::offset_of!(CK_SESSION_INFO, flags) - 16usize];
    ["Offset of field: CK_SESSION_INFO::ulDeviceError"]
        [::std::mem::offset_of!(CK_SESSION_INFO, ulDeviceError) - 24usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_SLOT_INFO {
    pub slotDescription: [CK_UTF8CHAR; 64usize],
    pub manufacturerID: [CK_UTF8CHAR; 32usize],
    pub flags: CK_FLAGS,
    pub hardwareVersion: CK_VERSION,
    pub firmwareVersion: CK_VERSION,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SLOT_INFO"][::std::mem::size_of::<CK_SLOT_INFO>() - 112usize];
    ["Alignment of CK_SLOT_INFO"][::std::mem::align_of::<CK_SLOT_INFO>() - 8usize];
    ["Offset of field: CK_SLOT_INFO::slotDescription"]
        [::std::mem::offset_of!(CK_SLOT_INFO, slotDescription) - 0usize];
    ["Offset of field: CK_SLOT_INFO::manufacturerID"]
        [::std::mem::offset_of!(CK_SLOT_INFO, manufacturerID) - 64usize];
    ["Offset of field: CK_SLOT_INFO::flags"][::std::mem::offset_of!(CK_SLOT_INFO, flags) - 96usize];
    ["Offset of field: CK_SLOT_INFO::hardwareVersion"]
        [::std::mem::offset_of!(CK_SLOT_INFO, hardwareVersion) - 104usize];
    ["Offset of field: CK_SLOT_INFO::firmwareVersion"]
        [::std::mem::offset_of!(CK_SLOT_INFO, firmwareVersion) - 106usize];
};
impl Default for CK_SLOT_INFO {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_TOKEN_INFO {
    pub label: [CK_UTF8CHAR; 32usize],
    pub manufacturerID: [CK_UTF8CHAR; 32usize],
    pub model: [CK_UTF8CHAR; 16usize],
    pub serialNumber: [CK_CHAR; 16usize],
    pub flags: CK_FLAGS,
    pub ulMaxSessionCount: CK_ULONG,
    pub ulSessionCount: CK_ULONG,
    pub ulMaxRwSessionCount: CK_ULONG,
    pub ulRwSessionCount: CK_ULONG,
    pub ulMaxPinLen: CK_ULONG,
    pub ulMinPinLen: CK_ULONG,
    pub ulTotalPublicMemory: CK_ULONG,
    pub ulFreePublicMemory: CK_ULONG,
    pub ulTotalPrivateMemory: CK_ULONG,
    pub ulFreePrivateMemory: CK_ULONG,
    pub hardwareVersion: CK_VERSION,
    pub firmwareVersion: CK_VERSION,
    pub utcTime: [CK_CHAR; 16usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_TOKEN_INFO"][::std::mem::size_of::<CK_TOKEN_INFO>() - 208usize];
    ["Alignment of CK_TOKEN_INFO"][::std::mem::align_of::<CK_TOKEN_INFO>() - 8usize];
    ["Offset of field: CK_TOKEN_INFO::label"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, label) - 0usize];
    ["Offset of field: CK_TOKEN_INFO::manufacturerID"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, manufacturerID) - 32usize];
    ["Offset of field: CK_TOKEN_INFO::model"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, model) - 64usize];
    ["Offset of field: CK_TOKEN_INFO::serialNumber"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, serialNumber) - 80usize];
    ["Offset of field: CK_TOKEN_INFO::flags"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, flags) - 96usize];
    ["Offset of field: CK_TOKEN_INFO::ulMaxSessionCount"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, ulMaxSessionCount) - 104usize];
    ["Offset of field: CK_TOKEN_INFO::ulSessionCount"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, ulSessionCount) - 112usize];
    ["Offset of field: CK_TOKEN_INFO::ulMaxRwSessionCount"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, ulMaxRwSessionCount) - 120usize];
    ["Offset of field: CK_TOKEN_INFO::ulRwSessionCount"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, ulRwSessionCount) - 128usize];
    ["Offset of field: CK_TOKEN_INFO::ulMaxPinLen"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, ulMaxPinLen) - 136usize];
    ["Offset of field: CK_TOKEN_INFO::ulMinPinLen"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, ulMinPinLen) - 144usize];
    ["Offset of field: CK_TOKEN_INFO::ulTotalPublicMemory"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, ulTotalPublicMemory) - 152usize];
    ["Offset of field: CK_TOKEN_INFO::ulFreePublicMemory"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, ulFreePublicMemory) - 160usize];
    ["Offset of field: CK_TOKEN_INFO::ulTotalPrivateMemory"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, ulTotalPrivateMemory) - 168usize];
    ["Offset of field: CK_TOKEN_INFO::ulFreePrivateMemory"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, ulFreePrivateMemory) - 176usize];
    ["Offset of field: CK_TOKEN_INFO::hardwareVersion"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, hardwareVersion) - 184usize];
    ["Offset of field: CK_TOKEN_INFO::firmwareVersion"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, firmwareVersion) - 186usize];
    ["Offset of field: CK_TOKEN_INFO::utcTime"]
        [::std::mem::offset_of!(CK_TOKEN_INFO, utcTime) - 188usize];
};
pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_AES_CBC_ENCRYPT_DATA_PARAMS;
pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_AES_CBC_ENCRYPT_DATA_PARAMS;
pub type CK_AES_CCM_PARAMS_PTR = *mut CK_AES_CCM_PARAMS;
pub type CK_AES_CCM_PARAMS_PTR_PTR = *mut *mut CK_AES_CCM_PARAMS;
pub type CK_AES_CTR_PARAMS_PTR = *mut CK_AES_CTR_PARAMS;
pub type CK_AES_CTR_PARAMS_PTR_PTR = *mut *mut CK_AES_CTR_PARAMS;
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_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;
pub type CK_CAMELLIA_CTR_PARAMS_PTR = *mut CK_CAMELLIA_CTR_PARAMS;
pub type CK_CAMELLIA_CTR_PARAMS_PTR_PTR = *mut *mut CK_CAMELLIA_CTR_PARAMS;
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_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;
pub type CK_CMS_SIG_PARAMS_PTR_PTR = *mut *mut CK_CMS_SIG_PARAMS;
pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_DES_CBC_ENCRYPT_DATA_PARAMS;
pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR_PTR = *mut *mut CK_DES_CBC_ENCRYPT_DATA_PARAMS;
pub type CK_DSA_PARAMETER_GEN_PARAM_PTR = *mut CK_DSA_PARAMETER_GEN_PARAM;
pub type CK_DSA_PARAMETER_GEN_PARAM_PTR_PTR = *mut *mut CK_DSA_PARAMETER_GEN_PARAM;
pub type CK_ECDH_AES_KEY_WRAP_PARAMS_PTR = *mut CK_ECDH_AES_KEY_WRAP_PARAMS;
pub type CK_ECDH_AES_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_ECDH_AES_KEY_WRAP_PARAMS;
pub type CK_ECDH1_DERIVE_PARAMS_PTR = *mut CK_ECDH1_DERIVE_PARAMS;
pub type CK_ECDH1_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_ECDH1_DERIVE_PARAMS;
pub type CK_ECDH2_DERIVE_PARAMS_PTR = *mut CK_ECDH2_DERIVE_PARAMS;
pub type CK_ECDH2_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_ECDH2_DERIVE_PARAMS;
pub type CK_ECMQV_DERIVE_PARAMS_PTR = *mut CK_ECMQV_DERIVE_PARAMS;
pub type CK_ECMQV_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_ECMQV_DERIVE_PARAMS;
pub type CK_EDDSA_PARAMS_PTR = *mut CK_EDDSA_PARAMS;
pub type CK_EDDSA_PARAMS_PTR_PTR = *mut *mut CK_EDDSA_PARAMS;
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_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_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS;
pub type CK_HKDF_PARAMS_PTR_PTR = *mut *mut CK_HKDF_PARAMS;
pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS;
pub type CK_IKE_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE_PRF_DERIVE_PARAMS;
pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS;
pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_EXTENDED_DERIVE_PARAMS;
pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS;
pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE1_PRF_DERIVE_PARAMS;
pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS;
pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS;
pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS;
pub type CK_KEA_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_KEA_DERIVE_PARAMS;
pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA;
pub type CK_KEY_DERIVATION_STRING_DATA_PTR_PTR = *mut *mut CK_KEY_DERIVATION_STRING_DATA;
pub type CK_KEY_WRAP_SET_OAEP_PARAMS_PTR = *mut CK_KEY_WRAP_SET_OAEP_PARAMS;
pub type CK_KEY_WRAP_SET_OAEP_PARAMS_PTR_PTR = *mut *mut CK_KEY_WRAP_SET_OAEP_PARAMS;
pub type CK_KIP_PARAMS_PTR = *mut CK_KIP_PARAMS;
pub type CK_KIP_PARAMS_PTR_PTR = *mut *mut CK_KIP_PARAMS;
pub type CK_OTP_PARAM_PTR = *mut CK_OTP_PARAM;
pub type CK_OTP_PARAM_PTR_PTR = *mut *mut CK_OTP_PARAM;
pub type CK_OTP_PARAMS_PTR = *mut CK_OTP_PARAMS;
pub type CK_OTP_PARAMS_PTR_PTR = *mut *mut CK_OTP_PARAMS;
pub type CK_OTP_SIGNATURE_INFO_PTR = *mut CK_OTP_SIGNATURE_INFO;
pub type CK_OTP_SIGNATURE_INFO_PTR_PTR = *mut *mut CK_OTP_SIGNATURE_INFO;
pub type CK_PBE_PARAMS_PTR = *mut CK_PBE_PARAMS;
pub type CK_PBE_PARAMS_PTR_PTR = *mut *mut CK_PBE_PARAMS;
pub type CK_PKCS5_PBKD2_PARAMS_PTR = *mut CK_PKCS5_PBKD2_PARAMS;
pub type CK_PKCS5_PBKD2_PARAMS_PTR_PTR = *mut *mut CK_PKCS5_PBKD2_PARAMS;
pub type CK_PKCS5_PBKD2_PARAMS2_PTR = *mut CK_PKCS5_PBKD2_PARAMS2;
pub type CK_PKCS5_PBKD2_PARAMS2_PTR_PTR = *mut *mut CK_PKCS5_PBKD2_PARAMS2;
pub type CK_PRF_DATA_PARAM_PTR = *mut CK_PRF_DATA_PARAM;
pub type CK_PRF_DATA_PARAM_PTR_PTR = *mut *mut CK_PRF_DATA_PARAM;
pub type CK_RC2_CBC_PARAMS_PTR = *mut CK_RC2_CBC_PARAMS;
pub type CK_RC2_CBC_PARAMS_PTR_PTR = *mut *mut CK_RC2_CBC_PARAMS;
pub type CK_RC2_MAC_GENERAL_PARAMS_PTR = *mut CK_RC2_MAC_GENERAL_PARAMS;
pub type CK_RC2_MAC_GENERAL_PARAMS_PTR_PTR = *mut *mut CK_RC2_MAC_GENERAL_PARAMS;
pub type CK_RC5_CBC_PARAMS_PTR = *mut CK_RC5_CBC_PARAMS;
pub type CK_RC5_CBC_PARAMS_PTR_PTR = *mut *mut CK_RC5_CBC_PARAMS;
pub type CK_RC5_MAC_GENERAL_PARAMS_PTR = *mut CK_RC5_MAC_GENERAL_PARAMS;
pub type CK_RC5_MAC_GENERAL_PARAMS_PTR_PTR = *mut *mut CK_RC5_MAC_GENERAL_PARAMS;
pub type CK_RC5_PARAMS_PTR = *mut CK_RC5_PARAMS;
pub type CK_RC5_PARAMS_PTR_PTR = *mut *mut CK_RC5_PARAMS;
pub type CK_RSA_AES_KEY_WRAP_PARAMS_PTR = *mut CK_RSA_AES_KEY_WRAP_PARAMS;
pub type CK_RSA_AES_KEY_WRAP_PARAMS_PTR_PTR = *mut *mut CK_RSA_AES_KEY_WRAP_PARAMS;
pub type CK_RSA_PKCS_OAEP_PARAMS_PTR = *mut CK_RSA_PKCS_OAEP_PARAMS;
pub type CK_RSA_PKCS_OAEP_PARAMS_PTR_PTR = *mut *mut CK_RSA_PKCS_OAEP_PARAMS;
pub type CK_RSA_PKCS_PSS_PARAMS_PTR = *mut CK_RSA_PKCS_PSS_PARAMS;
pub type CK_RSA_PKCS_PSS_PARAMS_PTR_PTR = *mut *mut CK_RSA_PKCS_PSS_PARAMS;
pub type CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS_PTR = *mut CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS;
pub type CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS_PTR_PTR =
    *mut *mut CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS;
pub type CK_SALSA20_CHACHA20_POLY1305_PARAMS_PTR = *mut CK_SALSA20_CHACHA20_POLY1305_PARAMS;
pub type CK_SALSA20_CHACHA20_POLY1305_PARAMS_PTR_PTR =
    *mut *mut CK_SALSA20_CHACHA20_POLY1305_PARAMS;
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_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;
pub type CK_SKIPJACK_RELAYX_PARAMS_PTR_PTR = *mut *mut CK_SKIPJACK_RELAYX_PARAMS;
pub type CK_SP800_108_COUNTER_FORMAT_PTR = *mut CK_SP800_108_COUNTER_FORMAT;
pub type CK_SP800_108_COUNTER_FORMAT_PTR_PTR = *mut *mut CK_SP800_108_COUNTER_FORMAT;
pub type CK_SP800_108_DKM_LENGTH_FORMAT_PTR = *mut CK_SP800_108_DKM_LENGTH_FORMAT;
pub type CK_SP800_108_DKM_LENGTH_FORMAT_PTR_PTR = *mut *mut CK_SP800_108_DKM_LENGTH_FORMAT;
pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_PARAMS;
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_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;
pub type CK_X2RATCHET_RESPOND_PARAMS_PTR_PTR = *mut *mut CK_X2RATCHET_RESPOND_PARAMS;
pub type CK_X3DH_INITIATE_PARAMS_PTR = *mut CK_X3DH_INITIATE_PARAMS;
pub type CK_X3DH_INITIATE_PARAMS_PTR_PTR = *mut *mut CK_X3DH_INITIATE_PARAMS;
pub type CK_X3DH_RESPOND_PARAMS_PTR = *mut CK_X3DH_RESPOND_PARAMS;
pub type CK_X3DH_RESPOND_PARAMS_PTR_PTR = *mut *mut CK_X3DH_RESPOND_PARAMS;
pub type CK_X9_42_DH1_DERIVE_PARAMS_PTR = *mut CK_X9_42_DH1_DERIVE_PARAMS;
pub type CK_X9_42_DH1_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_DH1_DERIVE_PARAMS;
pub type CK_X9_42_DH2_DERIVE_PARAMS_PTR = *mut CK_X9_42_DH2_DERIVE_PARAMS;
pub type CK_X9_42_DH2_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_X9_42_DH2_DERIVE_PARAMS;
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;
pub type specifiedParams_PTR = *mut specifiedParams;
pub type specifiedParams_PTR_PTR = *mut *mut specifiedParams;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_AES_CBC_ENCRYPT_DATA_PARAMS {
    pub iv: [CK_BYTE; 16usize],
    pub pData: *mut CK_BYTE,
    pub length: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_AES_CBC_ENCRYPT_DATA_PARAMS"]
        [::std::mem::size_of::<CK_AES_CBC_ENCRYPT_DATA_PARAMS>() - 32usize];
    ["Alignment of CK_AES_CBC_ENCRYPT_DATA_PARAMS"]
        [::std::mem::align_of::<CK_AES_CBC_ENCRYPT_DATA_PARAMS>() - 8usize];
    ["Offset of field: CK_AES_CBC_ENCRYPT_DATA_PARAMS::iv"]
        [::std::mem::offset_of!(CK_AES_CBC_ENCRYPT_DATA_PARAMS, iv) - 0usize];
    ["Offset of field: CK_AES_CBC_ENCRYPT_DATA_PARAMS::pData"]
        [::std::mem::offset_of!(CK_AES_CBC_ENCRYPT_DATA_PARAMS, pData) - 16usize];
    ["Offset of field: CK_AES_CBC_ENCRYPT_DATA_PARAMS::length"]
        [::std::mem::offset_of!(CK_AES_CBC_ENCRYPT_DATA_PARAMS, length) - 24usize];
};
impl Default for CK_AES_CBC_ENCRYPT_DATA_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_AES_CCM_PARAMS {
    pub ulDataLen: CK_ULONG,
    pub pNonce: *mut CK_BYTE,
    pub ulNonceLen: CK_ULONG,
    pub pAAD: *mut CK_BYTE,
    pub ulAADLen: CK_ULONG,
    pub ulMACLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_AES_CCM_PARAMS"][::std::mem::size_of::<CK_AES_CCM_PARAMS>() - 48usize];
    ["Alignment of CK_AES_CCM_PARAMS"][::std::mem::align_of::<CK_AES_CCM_PARAMS>() - 8usize];
    ["Offset of field: CK_AES_CCM_PARAMS::ulDataLen"]
        [::std::mem::offset_of!(CK_AES_CCM_PARAMS, ulDataLen) - 0usize];
    ["Offset of field: CK_AES_CCM_PARAMS::pNonce"]
        [::std::mem::offset_of!(CK_AES_CCM_PARAMS, pNonce) - 8usize];
    ["Offset of field: CK_AES_CCM_PARAMS::ulNonceLen"]
        [::std::mem::offset_of!(CK_AES_CCM_PARAMS, ulNonceLen) - 16usize];
    ["Offset of field: CK_AES_CCM_PARAMS::pAAD"]
        [::std::mem::offset_of!(CK_AES_CCM_PARAMS, pAAD) - 24usize];
    ["Offset of field: CK_AES_CCM_PARAMS::ulAADLen"]
        [::std::mem::offset_of!(CK_AES_CCM_PARAMS, ulAADLen) - 32usize];
    ["Offset of field: CK_AES_CCM_PARAMS::ulMACLen"]
        [::std::mem::offset_of!(CK_AES_CCM_PARAMS, ulMACLen) - 40usize];
};
impl Default for CK_AES_CCM_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_AES_CTR_PARAMS {
    pub ulCounterBits: CK_ULONG,
    pub cb: [CK_BYTE; 16usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_AES_CTR_PARAMS"][::std::mem::size_of::<CK_AES_CTR_PARAMS>() - 24usize];
    ["Alignment of CK_AES_CTR_PARAMS"][::std::mem::align_of::<CK_AES_CTR_PARAMS>() - 8usize];
    ["Offset of field: CK_AES_CTR_PARAMS::ulCounterBits"]
        [::std::mem::offset_of!(CK_AES_CTR_PARAMS, ulCounterBits) - 0usize];
    ["Offset of field: CK_AES_CTR_PARAMS::cb"]
        [::std::mem::offset_of!(CK_AES_CTR_PARAMS, cb) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_AES_GCM_PARAMS {
    pub pIv: *mut CK_BYTE,
    pub ulIvLen: CK_ULONG,
    pub ulIvBits: CK_ULONG,
    pub pAAD: *mut CK_BYTE,
    pub ulAADLen: CK_ULONG,
    pub ulTagBits: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_AES_GCM_PARAMS"][::std::mem::size_of::<CK_AES_GCM_PARAMS>() - 48usize];
    ["Alignment of CK_AES_GCM_PARAMS"][::std::mem::align_of::<CK_AES_GCM_PARAMS>() - 8usize];
    ["Offset of field: CK_AES_GCM_PARAMS::pIv"]
        [::std::mem::offset_of!(CK_AES_GCM_PARAMS, pIv) - 0usize];
    ["Offset of field: CK_AES_GCM_PARAMS::ulIvLen"]
        [::std::mem::offset_of!(CK_AES_GCM_PARAMS, ulIvLen) - 8usize];
    ["Offset of field: CK_AES_GCM_PARAMS::ulIvBits"]
        [::std::mem::offset_of!(CK_AES_GCM_PARAMS, ulIvBits) - 16usize];
    ["Offset of field: CK_AES_GCM_PARAMS::pAAD"]
        [::std::mem::offset_of!(CK_AES_GCM_PARAMS, pAAD) - 24usize];
    ["Offset of field: CK_AES_GCM_PARAMS::ulAADLen"]
        [::std::mem::offset_of!(CK_AES_GCM_PARAMS, ulAADLen) - 32usize];
    ["Offset of field: CK_AES_GCM_PARAMS::ulTagBits"]
        [::std::mem::offset_of!(CK_AES_GCM_PARAMS, ulTagBits) - 40usize];
};
impl Default for CK_AES_GCM_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_ARIA_CBC_ENCRYPT_DATA_PARAMS {
    pub iv: [CK_BYTE; 16usize],
    pub pData: *mut CK_BYTE,
    pub length: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_ARIA_CBC_ENCRYPT_DATA_PARAMS"]
        [::std::mem::size_of::<CK_ARIA_CBC_ENCRYPT_DATA_PARAMS>() - 32usize];
    ["Alignment of CK_ARIA_CBC_ENCRYPT_DATA_PARAMS"]
        [::std::mem::align_of::<CK_ARIA_CBC_ENCRYPT_DATA_PARAMS>() - 8usize];
    ["Offset of field: CK_ARIA_CBC_ENCRYPT_DATA_PARAMS::iv"]
        [::std::mem::offset_of!(CK_ARIA_CBC_ENCRYPT_DATA_PARAMS, iv) - 0usize];
    ["Offset of field: CK_ARIA_CBC_ENCRYPT_DATA_PARAMS::pData"]
        [::std::mem::offset_of!(CK_ARIA_CBC_ENCRYPT_DATA_PARAMS, pData) - 16usize];
    ["Offset of field: CK_ARIA_CBC_ENCRYPT_DATA_PARAMS::length"]
        [::std::mem::offset_of!(CK_ARIA_CBC_ENCRYPT_DATA_PARAMS, length) - 24usize];
};
impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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,
    pub length: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS"]
        [::std::mem::size_of::<CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS>() - 32usize];
    ["Alignment of CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS"]
        [::std::mem::align_of::<CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS>() - 8usize];
    ["Offset of field: CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS::iv"]
        [::std::mem::offset_of!(CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS, iv) - 0usize];
    ["Offset of field: CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS::pData"]
        [::std::mem::offset_of!(CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS, pData) - 16usize];
    ["Offset of field: CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS::length"]
        [::std::mem::offset_of!(CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS, length) - 24usize];
};
impl Default for CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_CAMELLIA_CTR_PARAMS {
    pub ulCounterBits: CK_ULONG,
    pub cb: [CK_BYTE; 16usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_CAMELLIA_CTR_PARAMS"][::std::mem::size_of::<CK_CAMELLIA_CTR_PARAMS>() - 24usize];
    ["Alignment of CK_CAMELLIA_CTR_PARAMS"]
        [::std::mem::align_of::<CK_CAMELLIA_CTR_PARAMS>() - 8usize];
    ["Offset of field: CK_CAMELLIA_CTR_PARAMS::ulCounterBits"]
        [::std::mem::offset_of!(CK_CAMELLIA_CTR_PARAMS, ulCounterBits) - 0usize];
    ["Offset of field: CK_CAMELLIA_CTR_PARAMS::cb"]
        [::std::mem::offset_of!(CK_CAMELLIA_CTR_PARAMS, cb) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_CCM_MESSAGE_PARAMS {
    pub ulDataLen: CK_ULONG,
    pub pNonce: *mut CK_BYTE,
    pub ulNonceLen: CK_ULONG,
    pub ulNonceFixedBits: CK_ULONG,
    pub nonceGenerator: CK_GENERATOR_FUNCTION,
    pub pMAC: *mut CK_BYTE,
    pub ulMACLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_CCM_MESSAGE_PARAMS"][::std::mem::size_of::<CK_CCM_MESSAGE_PARAMS>() - 56usize];
    ["Alignment of CK_CCM_MESSAGE_PARAMS"]
        [::std::mem::align_of::<CK_CCM_MESSAGE_PARAMS>() - 8usize];
    ["Offset of field: CK_CCM_MESSAGE_PARAMS::ulDataLen"]
        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, ulDataLen) - 0usize];
    ["Offset of field: CK_CCM_MESSAGE_PARAMS::pNonce"]
        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, pNonce) - 8usize];
    ["Offset of field: CK_CCM_MESSAGE_PARAMS::ulNonceLen"]
        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, ulNonceLen) - 16usize];
    ["Offset of field: CK_CCM_MESSAGE_PARAMS::ulNonceFixedBits"]
        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, ulNonceFixedBits) - 24usize];
    ["Offset of field: CK_CCM_MESSAGE_PARAMS::nonceGenerator"]
        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, nonceGenerator) - 32usize];
    ["Offset of field: CK_CCM_MESSAGE_PARAMS::pMAC"]
        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, pMAC) - 40usize];
    ["Offset of field: CK_CCM_MESSAGE_PARAMS::ulMACLen"]
        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, ulMACLen) - 48usize];
};
impl Default for CK_CCM_MESSAGE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_CCM_PARAMS {
    pub ulDataLen: CK_ULONG,
    pub pNonce: *mut CK_BYTE,
    pub ulNonceLen: CK_ULONG,
    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_PARAMS"][::std::mem::size_of::<CK_CCM_PARAMS>() - 48usize];
    ["Alignment of CK_CCM_PARAMS"][::std::mem::align_of::<CK_CCM_PARAMS>() - 8usize];
    ["Offset of field: CK_CCM_PARAMS::ulDataLen"]
        [::std::mem::offset_of!(CK_CCM_PARAMS, ulDataLen) - 0usize];
    ["Offset of field: CK_CCM_PARAMS::pNonce"]
        [::std::mem::offset_of!(CK_CCM_PARAMS, pNonce) - 8usize];
    ["Offset of field: CK_CCM_PARAMS::ulNonceLen"]
        [::std::mem::offset_of!(CK_CCM_PARAMS, ulNonceLen) - 16usize];
    ["Offset of field: CK_CCM_PARAMS::pAAD"][::std::mem::offset_of!(CK_CCM_PARAMS, pAAD) - 24usize];
    ["Offset of field: CK_CCM_PARAMS::ulAADLen"]
        [::std::mem::offset_of!(CK_CCM_PARAMS, ulAADLen) - 32usize];
    ["Offset of field: CK_CCM_PARAMS::ulMACLen"]
        [::std::mem::offset_of!(CK_CCM_PARAMS, ulMACLen) - 40usize];
};
impl Default for CK_CCM_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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,
    pub pNonce: *mut CK_BYTE,
    pub ulNonceBits: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_CHACHA20_PARAMS"][::std::mem::size_of::<CK_CHACHA20_PARAMS>() - 32usize];
    ["Alignment of CK_CHACHA20_PARAMS"][::std::mem::align_of::<CK_CHACHA20_PARAMS>() - 8usize];
    ["Offset of field: CK_CHACHA20_PARAMS::pBlockCounter"]
        [::std::mem::offset_of!(CK_CHACHA20_PARAMS, pBlockCounter) - 0usize];
    ["Offset of field: CK_CHACHA20_PARAMS::blockCounterBits"]
        [::std::mem::offset_of!(CK_CHACHA20_PARAMS, blockCounterBits) - 8usize];
    ["Offset of field: CK_CHACHA20_PARAMS::pNonce"]
        [::std::mem::offset_of!(CK_CHACHA20_PARAMS, pNonce) - 16usize];
    ["Offset of field: CK_CHACHA20_PARAMS::ulNonceBits"]
        [::std::mem::offset_of!(CK_CHACHA20_PARAMS, ulNonceBits) - 24usize];
};
impl Default for CK_CHACHA20_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_CMS_SIG_PARAMS {
    pub certificateHandle: CK_OBJECT_HANDLE,
    pub pSigningMechanism: *mut CK_MECHANISM,
    pub pDigestMechanism: *mut CK_MECHANISM,
    pub pContentType: *mut CK_UTF8CHAR,
    pub pRequestedAttributes: *mut CK_BYTE,
    pub ulRequestedAttributesLen: CK_ULONG,
    pub pRequiredAttributes: *mut CK_BYTE,
    pub ulRequiredAttributesLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_CMS_SIG_PARAMS"][::std::mem::size_of::<CK_CMS_SIG_PARAMS>() - 64usize];
    ["Alignment of CK_CMS_SIG_PARAMS"][::std::mem::align_of::<CK_CMS_SIG_PARAMS>() - 8usize];
    ["Offset of field: CK_CMS_SIG_PARAMS::certificateHandle"]
        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, certificateHandle) - 0usize];
    ["Offset of field: CK_CMS_SIG_PARAMS::pSigningMechanism"]
        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, pSigningMechanism) - 8usize];
    ["Offset of field: CK_CMS_SIG_PARAMS::pDigestMechanism"]
        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, pDigestMechanism) - 16usize];
    ["Offset of field: CK_CMS_SIG_PARAMS::pContentType"]
        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, pContentType) - 24usize];
    ["Offset of field: CK_CMS_SIG_PARAMS::pRequestedAttributes"]
        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, pRequestedAttributes) - 32usize];
    ["Offset of field: CK_CMS_SIG_PARAMS::ulRequestedAttributesLen"]
        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, ulRequestedAttributesLen) - 40usize];
    ["Offset of field: CK_CMS_SIG_PARAMS::pRequiredAttributes"]
        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, pRequiredAttributes) - 48usize];
    ["Offset of field: CK_CMS_SIG_PARAMS::ulRequiredAttributesLen"]
        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, ulRequiredAttributesLen) - 56usize];
};
impl Default for CK_CMS_SIG_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_DES_CBC_ENCRYPT_DATA_PARAMS {
    pub iv: [CK_BYTE; 8usize],
    pub pData: *mut CK_BYTE,
    pub length: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_DES_CBC_ENCRYPT_DATA_PARAMS"]
        [::std::mem::size_of::<CK_DES_CBC_ENCRYPT_DATA_PARAMS>() - 24usize];
    ["Alignment of CK_DES_CBC_ENCRYPT_DATA_PARAMS"]
        [::std::mem::align_of::<CK_DES_CBC_ENCRYPT_DATA_PARAMS>() - 8usize];
    ["Offset of field: CK_DES_CBC_ENCRYPT_DATA_PARAMS::iv"]
        [::std::mem::offset_of!(CK_DES_CBC_ENCRYPT_DATA_PARAMS, iv) - 0usize];
    ["Offset of field: CK_DES_CBC_ENCRYPT_DATA_PARAMS::pData"]
        [::std::mem::offset_of!(CK_DES_CBC_ENCRYPT_DATA_PARAMS, pData) - 8usize];
    ["Offset of field: CK_DES_CBC_ENCRYPT_DATA_PARAMS::length"]
        [::std::mem::offset_of!(CK_DES_CBC_ENCRYPT_DATA_PARAMS, length) - 16usize];
};
impl Default for CK_DES_CBC_ENCRYPT_DATA_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_DSA_PARAMETER_GEN_PARAM {
    pub hash: CK_MECHANISM_TYPE,
    pub pSeed: *mut CK_BYTE,
    pub ulSeedLen: CK_ULONG,
    pub ulIndex: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_DSA_PARAMETER_GEN_PARAM"]
        [::std::mem::size_of::<CK_DSA_PARAMETER_GEN_PARAM>() - 32usize];
    ["Alignment of CK_DSA_PARAMETER_GEN_PARAM"]
        [::std::mem::align_of::<CK_DSA_PARAMETER_GEN_PARAM>() - 8usize];
    ["Offset of field: CK_DSA_PARAMETER_GEN_PARAM::hash"]
        [::std::mem::offset_of!(CK_DSA_PARAMETER_GEN_PARAM, hash) - 0usize];
    ["Offset of field: CK_DSA_PARAMETER_GEN_PARAM::pSeed"]
        [::std::mem::offset_of!(CK_DSA_PARAMETER_GEN_PARAM, pSeed) - 8usize];
    ["Offset of field: CK_DSA_PARAMETER_GEN_PARAM::ulSeedLen"]
        [::std::mem::offset_of!(CK_DSA_PARAMETER_GEN_PARAM, ulSeedLen) - 16usize];
    ["Offset of field: CK_DSA_PARAMETER_GEN_PARAM::ulIndex"]
        [::std::mem::offset_of!(CK_DSA_PARAMETER_GEN_PARAM, ulIndex) - 24usize];
};
impl Default for CK_DSA_PARAMETER_GEN_PARAM {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_ECDH_AES_KEY_WRAP_PARAMS {
    pub ulAESKeyBits: CK_ULONG,
    pub kdf: CK_EC_KDF_TYPE,
    pub ulSharedDataLen: CK_ULONG,
    pub pSharedData: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_ECDH_AES_KEY_WRAP_PARAMS"]
        [::std::mem::size_of::<CK_ECDH_AES_KEY_WRAP_PARAMS>() - 32usize];
    ["Alignment of CK_ECDH_AES_KEY_WRAP_PARAMS"]
        [::std::mem::align_of::<CK_ECDH_AES_KEY_WRAP_PARAMS>() - 8usize];
    ["Offset of field: CK_ECDH_AES_KEY_WRAP_PARAMS::ulAESKeyBits"]
        [::std::mem::offset_of!(CK_ECDH_AES_KEY_WRAP_PARAMS, ulAESKeyBits) - 0usize];
    ["Offset of field: CK_ECDH_AES_KEY_WRAP_PARAMS::kdf"]
        [::std::mem::offset_of!(CK_ECDH_AES_KEY_WRAP_PARAMS, kdf) - 8usize];
    ["Offset of field: CK_ECDH_AES_KEY_WRAP_PARAMS::ulSharedDataLen"]
        [::std::mem::offset_of!(CK_ECDH_AES_KEY_WRAP_PARAMS, ulSharedDataLen) - 16usize];
    ["Offset of field: CK_ECDH_AES_KEY_WRAP_PARAMS::pSharedData"]
        [::std::mem::offset_of!(CK_ECDH_AES_KEY_WRAP_PARAMS, pSharedData) - 24usize];
};
impl Default for CK_ECDH_AES_KEY_WRAP_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_ECDH1_DERIVE_PARAMS {
    pub kdf: CK_EC_KDF_TYPE,
    pub ulSharedDataLen: CK_ULONG,
    pub pSharedData: *mut CK_BYTE,
    pub ulPublicDataLen: CK_ULONG,
    pub pPublicData: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_ECDH1_DERIVE_PARAMS"][::std::mem::size_of::<CK_ECDH1_DERIVE_PARAMS>() - 40usize];
    ["Alignment of CK_ECDH1_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_ECDH1_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_ECDH1_DERIVE_PARAMS::kdf"]
        [::std::mem::offset_of!(CK_ECDH1_DERIVE_PARAMS, kdf) - 0usize];
    ["Offset of field: CK_ECDH1_DERIVE_PARAMS::ulSharedDataLen"]
        [::std::mem::offset_of!(CK_ECDH1_DERIVE_PARAMS, ulSharedDataLen) - 8usize];
    ["Offset of field: CK_ECDH1_DERIVE_PARAMS::pSharedData"]
        [::std::mem::offset_of!(CK_ECDH1_DERIVE_PARAMS, pSharedData) - 16usize];
    ["Offset of field: CK_ECDH1_DERIVE_PARAMS::ulPublicDataLen"]
        [::std::mem::offset_of!(CK_ECDH1_DERIVE_PARAMS, ulPublicDataLen) - 24usize];
    ["Offset of field: CK_ECDH1_DERIVE_PARAMS::pPublicData"]
        [::std::mem::offset_of!(CK_ECDH1_DERIVE_PARAMS, pPublicData) - 32usize];
};
impl Default for CK_ECDH1_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_ECDH2_DERIVE_PARAMS {
    pub kdf: CK_EC_KDF_TYPE,
    pub ulSharedDataLen: CK_ULONG,
    pub pSharedData: *mut CK_BYTE,
    pub ulPublicDataLen: CK_ULONG,
    pub pPublicData: *mut CK_BYTE,
    pub ulPrivateDataLen: CK_ULONG,
    pub hPrivateData: CK_OBJECT_HANDLE,
    pub ulPublicDataLen2: CK_ULONG,
    pub pPublicData2: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_ECDH2_DERIVE_PARAMS"][::std::mem::size_of::<CK_ECDH2_DERIVE_PARAMS>() - 72usize];
    ["Alignment of CK_ECDH2_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_ECDH2_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::kdf"]
        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, kdf) - 0usize];
    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::ulSharedDataLen"]
        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, ulSharedDataLen) - 8usize];
    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::pSharedData"]
        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, pSharedData) - 16usize];
    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::ulPublicDataLen"]
        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, ulPublicDataLen) - 24usize];
    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::pPublicData"]
        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, pPublicData) - 32usize];
    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::ulPrivateDataLen"]
        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, ulPrivateDataLen) - 40usize];
    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::hPrivateData"]
        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, hPrivateData) - 48usize];
    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::ulPublicDataLen2"]
        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, ulPublicDataLen2) - 56usize];
    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::pPublicData2"]
        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, pPublicData2) - 64usize];
};
impl Default for CK_ECDH2_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_ECMQV_DERIVE_PARAMS {
    pub kdf: CK_EC_KDF_TYPE,
    pub ulSharedDataLen: CK_ULONG,
    pub pSharedData: *mut CK_BYTE,
    pub ulPublicDataLen: CK_ULONG,
    pub pPublicData: *mut CK_BYTE,
    pub ulPrivateDataLen: CK_ULONG,
    pub hPrivateData: CK_OBJECT_HANDLE,
    pub ulPublicDataLen2: CK_ULONG,
    pub pPublicData2: *mut CK_BYTE,
    pub publicKey: CK_OBJECT_HANDLE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_ECMQV_DERIVE_PARAMS"][::std::mem::size_of::<CK_ECMQV_DERIVE_PARAMS>() - 80usize];
    ["Alignment of CK_ECMQV_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_ECMQV_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::kdf"]
        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, kdf) - 0usize];
    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::ulSharedDataLen"]
        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, ulSharedDataLen) - 8usize];
    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::pSharedData"]
        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, pSharedData) - 16usize];
    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::ulPublicDataLen"]
        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, ulPublicDataLen) - 24usize];
    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::pPublicData"]
        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, pPublicData) - 32usize];
    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::ulPrivateDataLen"]
        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, ulPrivateDataLen) - 40usize];
    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::hPrivateData"]
        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, hPrivateData) - 48usize];
    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::ulPublicDataLen2"]
        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, ulPublicDataLen2) - 56usize];
    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::pPublicData2"]
        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, pPublicData2) - 64usize];
    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::publicKey"]
        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, publicKey) - 72usize];
};
impl Default for CK_ECMQV_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_EDDSA_PARAMS {
    pub phFlag: CK_BBOOL,
    pub ulContextDataLen: CK_ULONG,
    pub pContextData: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_EDDSA_PARAMS"][::std::mem::size_of::<CK_EDDSA_PARAMS>() - 24usize];
    ["Alignment of CK_EDDSA_PARAMS"][::std::mem::align_of::<CK_EDDSA_PARAMS>() - 8usize];
    ["Offset of field: CK_EDDSA_PARAMS::phFlag"]
        [::std::mem::offset_of!(CK_EDDSA_PARAMS, phFlag) - 0usize];
    ["Offset of field: CK_EDDSA_PARAMS::ulContextDataLen"]
        [::std::mem::offset_of!(CK_EDDSA_PARAMS, ulContextDataLen) - 8usize];
    ["Offset of field: CK_EDDSA_PARAMS::pContextData"]
        [::std::mem::offset_of!(CK_EDDSA_PARAMS, pContextData) - 16usize];
};
impl Default for CK_EDDSA_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_GCM_MESSAGE_PARAMS {
    pub pIv: *mut CK_BYTE,
    pub ulIvLen: CK_ULONG,
    pub ulIvFixedBits: CK_ULONG,
    pub ivGenerator: CK_GENERATOR_FUNCTION,
    pub pTag: *mut CK_BYTE,
    pub ulTagBits: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_GCM_MESSAGE_PARAMS"][::std::mem::size_of::<CK_GCM_MESSAGE_PARAMS>() - 48usize];
    ["Alignment of CK_GCM_MESSAGE_PARAMS"]
        [::std::mem::align_of::<CK_GCM_MESSAGE_PARAMS>() - 8usize];
    ["Offset of field: CK_GCM_MESSAGE_PARAMS::pIv"]
        [::std::mem::offset_of!(CK_GCM_MESSAGE_PARAMS, pIv) - 0usize];
    ["Offset of field: CK_GCM_MESSAGE_PARAMS::ulIvLen"]
        [::std::mem::offset_of!(CK_GCM_MESSAGE_PARAMS, ulIvLen) - 8usize];
    ["Offset of field: CK_GCM_MESSAGE_PARAMS::ulIvFixedBits"]
        [::std::mem::offset_of!(CK_GCM_MESSAGE_PARAMS, ulIvFixedBits) - 16usize];
    ["Offset of field: CK_GCM_MESSAGE_PARAMS::ivGenerator"]
        [::std::mem::offset_of!(CK_GCM_MESSAGE_PARAMS, ivGenerator) - 24usize];
    ["Offset of field: CK_GCM_MESSAGE_PARAMS::pTag"]
        [::std::mem::offset_of!(CK_GCM_MESSAGE_PARAMS, pTag) - 32usize];
    ["Offset of field: CK_GCM_MESSAGE_PARAMS::ulTagBits"]
        [::std::mem::offset_of!(CK_GCM_MESSAGE_PARAMS, ulTagBits) - 40usize];
};
impl Default for CK_GCM_MESSAGE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_GCM_PARAMS {
    pub pIv: *mut CK_BYTE,
    pub ulIvLen: CK_ULONG,
    pub ulIvBits: CK_ULONG,
    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_PARAMS"][::std::mem::size_of::<CK_GCM_PARAMS>() - 48usize];
    ["Alignment of CK_GCM_PARAMS"][::std::mem::align_of::<CK_GCM_PARAMS>() - 8usize];
    ["Offset of field: CK_GCM_PARAMS::pIv"][::std::mem::offset_of!(CK_GCM_PARAMS, pIv) - 0usize];
    ["Offset of field: CK_GCM_PARAMS::ulIvLen"]
        [::std::mem::offset_of!(CK_GCM_PARAMS, ulIvLen) - 8usize];
    ["Offset of field: CK_GCM_PARAMS::ulIvBits"]
        [::std::mem::offset_of!(CK_GCM_PARAMS, ulIvBits) - 16usize];
    ["Offset of field: CK_GCM_PARAMS::pAAD"][::std::mem::offset_of!(CK_GCM_PARAMS, pAAD) - 24usize];
    ["Offset of field: CK_GCM_PARAMS::ulAADLen"]
        [::std::mem::offset_of!(CK_GCM_PARAMS, ulAADLen) - 32usize];
    ["Offset of field: CK_GCM_PARAMS::ulTagBits"]
        [::std::mem::offset_of!(CK_GCM_PARAMS, ulTagBits) - 40usize];
};
impl Default for CK_GCM_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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,
    pub ulPublicDataLen: CK_ULONG,
    pub pUKM: *mut CK_BYTE,
    pub ulUKMLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_GOSTR3410_DERIVE_PARAMS"]
        [::std::mem::size_of::<CK_GOSTR3410_DERIVE_PARAMS>() - 40usize];
    ["Alignment of CK_GOSTR3410_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_GOSTR3410_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_GOSTR3410_DERIVE_PARAMS::kdf"]
        [::std::mem::offset_of!(CK_GOSTR3410_DERIVE_PARAMS, kdf) - 0usize];
    ["Offset of field: CK_GOSTR3410_DERIVE_PARAMS::pPublicData"]
        [::std::mem::offset_of!(CK_GOSTR3410_DERIVE_PARAMS, pPublicData) - 8usize];
    ["Offset of field: CK_GOSTR3410_DERIVE_PARAMS::ulPublicDataLen"]
        [::std::mem::offset_of!(CK_GOSTR3410_DERIVE_PARAMS, ulPublicDataLen) - 16usize];
    ["Offset of field: CK_GOSTR3410_DERIVE_PARAMS::pUKM"]
        [::std::mem::offset_of!(CK_GOSTR3410_DERIVE_PARAMS, pUKM) - 24usize];
    ["Offset of field: CK_GOSTR3410_DERIVE_PARAMS::ulUKMLen"]
        [::std::mem::offset_of!(CK_GOSTR3410_DERIVE_PARAMS, ulUKMLen) - 32usize];
};
impl Default for CK_GOSTR3410_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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_KEY_WRAP_PARAMS {
    pub pWrapOID: *mut CK_BYTE,
    pub ulWrapOIDLen: CK_ULONG,
    pub pUKM: *mut CK_BYTE,
    pub ulUKMLen: CK_ULONG,
    pub hKey: CK_OBJECT_HANDLE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_GOSTR3410_KEY_WRAP_PARAMS"]
        [::std::mem::size_of::<CK_GOSTR3410_KEY_WRAP_PARAMS>() - 40usize];
    ["Alignment of CK_GOSTR3410_KEY_WRAP_PARAMS"]
        [::std::mem::align_of::<CK_GOSTR3410_KEY_WRAP_PARAMS>() - 8usize];
    ["Offset of field: CK_GOSTR3410_KEY_WRAP_PARAMS::pWrapOID"]
        [::std::mem::offset_of!(CK_GOSTR3410_KEY_WRAP_PARAMS, pWrapOID) - 0usize];
    ["Offset of field: CK_GOSTR3410_KEY_WRAP_PARAMS::ulWrapOIDLen"]
        [::std::mem::offset_of!(CK_GOSTR3410_KEY_WRAP_PARAMS, ulWrapOIDLen) - 8usize];
    ["Offset of field: CK_GOSTR3410_KEY_WRAP_PARAMS::pUKM"]
        [::std::mem::offset_of!(CK_GOSTR3410_KEY_WRAP_PARAMS, pUKM) - 16usize];
    ["Offset of field: CK_GOSTR3410_KEY_WRAP_PARAMS::ulUKMLen"]
        [::std::mem::offset_of!(CK_GOSTR3410_KEY_WRAP_PARAMS, ulUKMLen) - 24usize];
    ["Offset of field: CK_GOSTR3410_KEY_WRAP_PARAMS::hKey"]
        [::std::mem::offset_of!(CK_GOSTR3410_KEY_WRAP_PARAMS, hKey) - 32usize];
};
impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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,
    pub prfHashMechanism: CK_MECHANISM_TYPE,
    pub ulSaltType: CK_ULONG,
    pub pSalt: *mut CK_BYTE,
    pub ulSaltLen: CK_ULONG,
    pub hSaltKey: CK_OBJECT_HANDLE,
    pub pInfo: *mut CK_BYTE,
    pub ulInfoLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_HKDF_PARAMS"][::std::mem::size_of::<CK_HKDF_PARAMS>() - 64usize];
    ["Alignment of CK_HKDF_PARAMS"][::std::mem::align_of::<CK_HKDF_PARAMS>() - 8usize];
    ["Offset of field: CK_HKDF_PARAMS::bExtract"]
        [::std::mem::offset_of!(CK_HKDF_PARAMS, bExtract) - 0usize];
    ["Offset of field: CK_HKDF_PARAMS::bExpand"]
        [::std::mem::offset_of!(CK_HKDF_PARAMS, bExpand) - 1usize];
    ["Offset of field: CK_HKDF_PARAMS::prfHashMechanism"]
        [::std::mem::offset_of!(CK_HKDF_PARAMS, prfHashMechanism) - 8usize];
    ["Offset of field: CK_HKDF_PARAMS::ulSaltType"]
        [::std::mem::offset_of!(CK_HKDF_PARAMS, ulSaltType) - 16usize];
    ["Offset of field: CK_HKDF_PARAMS::pSalt"]
        [::std::mem::offset_of!(CK_HKDF_PARAMS, pSalt) - 24usize];
    ["Offset of field: CK_HKDF_PARAMS::ulSaltLen"]
        [::std::mem::offset_of!(CK_HKDF_PARAMS, ulSaltLen) - 32usize];
    ["Offset of field: CK_HKDF_PARAMS::hSaltKey"]
        [::std::mem::offset_of!(CK_HKDF_PARAMS, hSaltKey) - 40usize];
    ["Offset of field: CK_HKDF_PARAMS::pInfo"]
        [::std::mem::offset_of!(CK_HKDF_PARAMS, pInfo) - 48usize];
    ["Offset of field: CK_HKDF_PARAMS::ulInfoLen"]
        [::std::mem::offset_of!(CK_HKDF_PARAMS, ulInfoLen) - 56usize];
};
impl Default for CK_HKDF_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_IKE_PRF_DERIVE_PARAMS {
    pub prfMechanism: CK_MECHANISM_TYPE,
    pub bDataAsKey: CK_BBOOL,
    pub bRekey: CK_BBOOL,
    pub pNi: *mut CK_BYTE,
    pub ulNiLen: CK_ULONG,
    pub pNr: *mut CK_BYTE,
    pub ulNrLen: CK_ULONG,
    pub hNewKey: CK_OBJECT_HANDLE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_IKE_PRF_DERIVE_PARAMS"]
        [::std::mem::size_of::<CK_IKE_PRF_DERIVE_PARAMS>() - 56usize];
    ["Alignment of CK_IKE_PRF_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_IKE_PRF_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::prfMechanism"]
        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, prfMechanism) - 0usize];
    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bDataAsKey"]
        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bDataAsKey) - 8usize];
    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bRekey"]
        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bRekey) - 9usize];
    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNi"]
        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNi) - 16usize];
    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNiLen"]
        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNiLen) - 24usize];
    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNr"]
        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNr) - 32usize];
    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNrLen"]
        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNrLen) - 40usize];
    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::hNewKey"]
        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, hNewKey) - 48usize];
};
impl Default for CK_IKE_PRF_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS {
    pub prfMechanism: CK_MECHANISM_TYPE,
    pub bHasKeygxy: CK_BBOOL,
    pub hKeygxy: CK_OBJECT_HANDLE,
    pub pExtraData: *mut CK_BYTE,
    pub ulExtraDataLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_IKE1_EXTENDED_DERIVE_PARAMS"]
        [::std::mem::size_of::<CK_IKE1_EXTENDED_DERIVE_PARAMS>() - 40usize];
    ["Alignment of CK_IKE1_EXTENDED_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_IKE1_EXTENDED_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::prfMechanism"]
        [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, prfMechanism) - 0usize];
    ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::bHasKeygxy"]
        [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, bHasKeygxy) - 8usize];
    ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::hKeygxy"]
        [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, hKeygxy) - 16usize];
    ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::pExtraData"]
        [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, pExtraData) - 24usize];
    ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::ulExtraDataLen"]
        [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, ulExtraDataLen) - 32usize];
};
impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_IKE1_PRF_DERIVE_PARAMS {
    pub prfMechanism: CK_MECHANISM_TYPE,
    pub bHasPrevKey: CK_BBOOL,
    pub hKeygxy: CK_OBJECT_HANDLE,
    pub hPrevKey: CK_OBJECT_HANDLE,
    pub pCKYi: *mut CK_BYTE,
    pub ulCKYiLen: CK_ULONG,
    pub pCKYr: *mut CK_BYTE,
    pub ulCKYrLen: CK_ULONG,
    pub keyNumber: CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_IKE1_PRF_DERIVE_PARAMS"]
        [::std::mem::size_of::<CK_IKE1_PRF_DERIVE_PARAMS>() - 72usize];
    ["Alignment of CK_IKE1_PRF_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_IKE1_PRF_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::prfMechanism"]
        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, prfMechanism) - 0usize];
    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::bHasPrevKey"]
        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, bHasPrevKey) - 8usize];
    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hKeygxy"]
        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hKeygxy) - 16usize];
    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hPrevKey"]
        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hPrevKey) - 24usize];
    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYi"]
        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYi) - 32usize];
    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYiLen"]
        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYiLen) - 40usize];
    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYr"]
        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYr) - 48usize];
    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYrLen"]
        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYrLen) - 56usize];
    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::keyNumber"]
        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, keyNumber) - 64usize];
};
impl Default for CK_IKE1_PRF_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS {
    pub prfMechanism: CK_MECHANISM_TYPE,
    pub bHasSeedKey: CK_BBOOL,
    pub hSeedKey: CK_OBJECT_HANDLE,
    pub pSeedData: *mut CK_BYTE,
    pub ulSeedDataLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"]
        [::std::mem::size_of::<CK_IKE2_PRF_PLUS_DERIVE_PARAMS>() - 40usize];
    ["Alignment of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_IKE2_PRF_PLUS_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::prfMechanism"]
        [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, prfMechanism) - 0usize];
    ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::bHasSeedKey"]
        [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, bHasSeedKey) - 8usize];
    ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::hSeedKey"]
        [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, hSeedKey) - 16usize];
    ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::pSeedData"]
        [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, pSeedData) - 24usize];
    ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::ulSeedDataLen"]
        [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, ulSeedDataLen) - 32usize];
};
impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_KEA_DERIVE_PARAMS {
    pub isSender: CK_BBOOL,
    pub ulRandomLen: CK_ULONG,
    pub RandomA: *mut CK_BYTE,
    pub RandomB: *mut CK_BYTE,
    pub ulPublicDataLen: CK_ULONG,
    pub PublicData: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_KEA_DERIVE_PARAMS"][::std::mem::size_of::<CK_KEA_DERIVE_PARAMS>() - 48usize];
    ["Alignment of CK_KEA_DERIVE_PARAMS"][::std::mem::align_of::<CK_KEA_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_KEA_DERIVE_PARAMS::isSender"]
        [::std::mem::offset_of!(CK_KEA_DERIVE_PARAMS, isSender) - 0usize];
    ["Offset of field: CK_KEA_DERIVE_PARAMS::ulRandomLen"]
        [::std::mem::offset_of!(CK_KEA_DERIVE_PARAMS, ulRandomLen) - 8usize];
    ["Offset of field: CK_KEA_DERIVE_PARAMS::RandomA"]
        [::std::mem::offset_of!(CK_KEA_DERIVE_PARAMS, RandomA) - 16usize];
    ["Offset of field: CK_KEA_DERIVE_PARAMS::RandomB"]
        [::std::mem::offset_of!(CK_KEA_DERIVE_PARAMS, RandomB) - 24usize];
    ["Offset of field: CK_KEA_DERIVE_PARAMS::ulPublicDataLen"]
        [::std::mem::offset_of!(CK_KEA_DERIVE_PARAMS, ulPublicDataLen) - 32usize];
    ["Offset of field: CK_KEA_DERIVE_PARAMS::PublicData"]
        [::std::mem::offset_of!(CK_KEA_DERIVE_PARAMS, PublicData) - 40usize];
};
impl Default for CK_KEA_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_KEY_DERIVATION_STRING_DATA {
    pub pData: *mut CK_BYTE,
    pub ulLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_KEY_DERIVATION_STRING_DATA"]
        [::std::mem::size_of::<CK_KEY_DERIVATION_STRING_DATA>() - 16usize];
    ["Alignment of CK_KEY_DERIVATION_STRING_DATA"]
        [::std::mem::align_of::<CK_KEY_DERIVATION_STRING_DATA>() - 8usize];
    ["Offset of field: CK_KEY_DERIVATION_STRING_DATA::pData"]
        [::std::mem::offset_of!(CK_KEY_DERIVATION_STRING_DATA, pData) - 0usize];
    ["Offset of field: CK_KEY_DERIVATION_STRING_DATA::ulLen"]
        [::std::mem::offset_of!(CK_KEY_DERIVATION_STRING_DATA, ulLen) - 8usize];
};
impl Default for CK_KEY_DERIVATION_STRING_DATA {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_KEY_WRAP_SET_OAEP_PARAMS {
    pub bBC: CK_BYTE,
    pub pX: *mut CK_BYTE,
    pub ulXLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_KEY_WRAP_SET_OAEP_PARAMS"]
        [::std::mem::size_of::<CK_KEY_WRAP_SET_OAEP_PARAMS>() - 24usize];
    ["Alignment of CK_KEY_WRAP_SET_OAEP_PARAMS"]
        [::std::mem::align_of::<CK_KEY_WRAP_SET_OAEP_PARAMS>() - 8usize];
    ["Offset of field: CK_KEY_WRAP_SET_OAEP_PARAMS::bBC"]
        [::std::mem::offset_of!(CK_KEY_WRAP_SET_OAEP_PARAMS, bBC) - 0usize];
    ["Offset of field: CK_KEY_WRAP_SET_OAEP_PARAMS::pX"]
        [::std::mem::offset_of!(CK_KEY_WRAP_SET_OAEP_PARAMS, pX) - 8usize];
    ["Offset of field: CK_KEY_WRAP_SET_OAEP_PARAMS::ulXLen"]
        [::std::mem::offset_of!(CK_KEY_WRAP_SET_OAEP_PARAMS, ulXLen) - 16usize];
};
impl Default for CK_KEY_WRAP_SET_OAEP_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_KIP_PARAMS {
    pub pMechanism: *mut CK_MECHANISM,
    pub hKey: CK_OBJECT_HANDLE,
    pub pSeed: *mut CK_BYTE,
    pub ulSeedLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_KIP_PARAMS"][::std::mem::size_of::<CK_KIP_PARAMS>() - 32usize];
    ["Alignment of CK_KIP_PARAMS"][::std::mem::align_of::<CK_KIP_PARAMS>() - 8usize];
    ["Offset of field: CK_KIP_PARAMS::pMechanism"]
        [::std::mem::offset_of!(CK_KIP_PARAMS, pMechanism) - 0usize];
    ["Offset of field: CK_KIP_PARAMS::hKey"][::std::mem::offset_of!(CK_KIP_PARAMS, hKey) - 8usize];
    ["Offset of field: CK_KIP_PARAMS::pSeed"]
        [::std::mem::offset_of!(CK_KIP_PARAMS, pSeed) - 16usize];
    ["Offset of field: CK_KIP_PARAMS::ulSeedLen"]
        [::std::mem::offset_of!(CK_KIP_PARAMS, ulSeedLen) - 24usize];
};
impl Default for CK_KIP_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_OTP_PARAM {
    pub type_: CK_OTP_PARAM_TYPE,
    pub pValue: *mut ::std::os::raw::c_void,
    pub ulValueLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_OTP_PARAM"][::std::mem::size_of::<CK_OTP_PARAM>() - 24usize];
    ["Alignment of CK_OTP_PARAM"][::std::mem::align_of::<CK_OTP_PARAM>() - 8usize];
    ["Offset of field: CK_OTP_PARAM::type_"][::std::mem::offset_of!(CK_OTP_PARAM, type_) - 0usize];
    ["Offset of field: CK_OTP_PARAM::pValue"]
        [::std::mem::offset_of!(CK_OTP_PARAM, pValue) - 8usize];
    ["Offset of field: CK_OTP_PARAM::ulValueLen"]
        [::std::mem::offset_of!(CK_OTP_PARAM, ulValueLen) - 16usize];
};
impl Default for CK_OTP_PARAM {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_OTP_PARAMS {
    pub pParams: *mut CK_OTP_PARAM,
    pub ulCount: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_OTP_PARAMS"][::std::mem::size_of::<CK_OTP_PARAMS>() - 16usize];
    ["Alignment of CK_OTP_PARAMS"][::std::mem::align_of::<CK_OTP_PARAMS>() - 8usize];
    ["Offset of field: CK_OTP_PARAMS::pParams"]
        [::std::mem::offset_of!(CK_OTP_PARAMS, pParams) - 0usize];
    ["Offset of field: CK_OTP_PARAMS::ulCount"]
        [::std::mem::offset_of!(CK_OTP_PARAMS, ulCount) - 8usize];
};
impl Default for CK_OTP_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_OTP_SIGNATURE_INFO {
    pub pParams: *mut CK_OTP_PARAM,
    pub ulCount: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_OTP_SIGNATURE_INFO"][::std::mem::size_of::<CK_OTP_SIGNATURE_INFO>() - 16usize];
    ["Alignment of CK_OTP_SIGNATURE_INFO"]
        [::std::mem::align_of::<CK_OTP_SIGNATURE_INFO>() - 8usize];
    ["Offset of field: CK_OTP_SIGNATURE_INFO::pParams"]
        [::std::mem::offset_of!(CK_OTP_SIGNATURE_INFO, pParams) - 0usize];
    ["Offset of field: CK_OTP_SIGNATURE_INFO::ulCount"]
        [::std::mem::offset_of!(CK_OTP_SIGNATURE_INFO, ulCount) - 8usize];
};
impl Default for CK_OTP_SIGNATURE_INFO {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_PBE_PARAMS {
    pub pInitVector: *mut CK_BYTE,
    pub pPassword: *mut CK_UTF8CHAR,
    pub ulPasswordLen: CK_ULONG,
    pub pSalt: *mut CK_BYTE,
    pub ulSaltLen: CK_ULONG,
    pub ulIteration: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_PBE_PARAMS"][::std::mem::size_of::<CK_PBE_PARAMS>() - 48usize];
    ["Alignment of CK_PBE_PARAMS"][::std::mem::align_of::<CK_PBE_PARAMS>() - 8usize];
    ["Offset of field: CK_PBE_PARAMS::pInitVector"]
        [::std::mem::offset_of!(CK_PBE_PARAMS, pInitVector) - 0usize];
    ["Offset of field: CK_PBE_PARAMS::pPassword"]
        [::std::mem::offset_of!(CK_PBE_PARAMS, pPassword) - 8usize];
    ["Offset of field: CK_PBE_PARAMS::ulPasswordLen"]
        [::std::mem::offset_of!(CK_PBE_PARAMS, ulPasswordLen) - 16usize];
    ["Offset of field: CK_PBE_PARAMS::pSalt"]
        [::std::mem::offset_of!(CK_PBE_PARAMS, pSalt) - 24usize];
    ["Offset of field: CK_PBE_PARAMS::ulSaltLen"]
        [::std::mem::offset_of!(CK_PBE_PARAMS, ulSaltLen) - 32usize];
    ["Offset of field: CK_PBE_PARAMS::ulIteration"]
        [::std::mem::offset_of!(CK_PBE_PARAMS, ulIteration) - 40usize];
};
impl Default for CK_PBE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_PKCS5_PBKD2_PARAMS {
    pub saltSource: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE,
    pub pSaltSourceData: *mut ::std::os::raw::c_void,
    pub ulSaltSourceDataLen: CK_ULONG,
    pub iterations: CK_ULONG,
    pub prf: CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE,
    pub pPrfData: *mut ::std::os::raw::c_void,
    pub ulPrfDataLen: CK_ULONG,
    pub pPassword: *mut CK_UTF8CHAR,
    pub ulPasswordLen: *mut CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_PKCS5_PBKD2_PARAMS"][::std::mem::size_of::<CK_PKCS5_PBKD2_PARAMS>() - 72usize];
    ["Alignment of CK_PKCS5_PBKD2_PARAMS"]
        [::std::mem::align_of::<CK_PKCS5_PBKD2_PARAMS>() - 8usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::saltSource"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, saltSource) - 0usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::pSaltSourceData"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, pSaltSourceData) - 8usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::ulSaltSourceDataLen"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, ulSaltSourceDataLen) - 16usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::iterations"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, iterations) - 24usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::prf"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, prf) - 32usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::pPrfData"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, pPrfData) - 40usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::ulPrfDataLen"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, ulPrfDataLen) - 48usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::pPassword"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, pPassword) - 56usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::ulPasswordLen"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, ulPasswordLen) - 64usize];
};
impl Default for CK_PKCS5_PBKD2_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_PKCS5_PBKD2_PARAMS2 {
    pub saltSource: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE,
    pub pSaltSourceData: *mut ::std::os::raw::c_void,
    pub ulSaltSourceDataLen: CK_ULONG,
    pub iterations: CK_ULONG,
    pub prf: CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE,
    pub pPrfData: *mut ::std::os::raw::c_void,
    pub ulPrfDataLen: CK_ULONG,
    pub pPassword: *mut CK_UTF8CHAR,
    pub ulPasswordLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_PKCS5_PBKD2_PARAMS2"][::std::mem::size_of::<CK_PKCS5_PBKD2_PARAMS2>() - 72usize];
    ["Alignment of CK_PKCS5_PBKD2_PARAMS2"]
        [::std::mem::align_of::<CK_PKCS5_PBKD2_PARAMS2>() - 8usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::saltSource"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, saltSource) - 0usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::pSaltSourceData"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, pSaltSourceData) - 8usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::ulSaltSourceDataLen"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, ulSaltSourceDataLen) - 16usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::iterations"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, iterations) - 24usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::prf"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, prf) - 32usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::pPrfData"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, pPrfData) - 40usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::ulPrfDataLen"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, ulPrfDataLen) - 48usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::pPassword"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, pPassword) - 56usize];
    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::ulPasswordLen"]
        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, ulPasswordLen) - 64usize];
};
impl Default for CK_PKCS5_PBKD2_PARAMS2 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_PRF_DATA_PARAM {
    pub type_: CK_PRF_DATA_TYPE,
    pub pValue: *mut ::std::os::raw::c_void,
    pub ulValueLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_PRF_DATA_PARAM"][::std::mem::size_of::<CK_PRF_DATA_PARAM>() - 24usize];
    ["Alignment of CK_PRF_DATA_PARAM"][::std::mem::align_of::<CK_PRF_DATA_PARAM>() - 8usize];
    ["Offset of field: CK_PRF_DATA_PARAM::type_"]
        [::std::mem::offset_of!(CK_PRF_DATA_PARAM, type_) - 0usize];
    ["Offset of field: CK_PRF_DATA_PARAM::pValue"]
        [::std::mem::offset_of!(CK_PRF_DATA_PARAM, pValue) - 8usize];
    ["Offset of field: CK_PRF_DATA_PARAM::ulValueLen"]
        [::std::mem::offset_of!(CK_PRF_DATA_PARAM, ulValueLen) - 16usize];
};
impl Default for CK_PRF_DATA_PARAM {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_RC2_CBC_PARAMS {
    pub ulEffectiveBits: CK_ULONG,
    pub iv: [CK_BYTE; 8usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_RC2_CBC_PARAMS"][::std::mem::size_of::<CK_RC2_CBC_PARAMS>() - 16usize];
    ["Alignment of CK_RC2_CBC_PARAMS"][::std::mem::align_of::<CK_RC2_CBC_PARAMS>() - 8usize];
    ["Offset of field: CK_RC2_CBC_PARAMS::ulEffectiveBits"]
        [::std::mem::offset_of!(CK_RC2_CBC_PARAMS, ulEffectiveBits) - 0usize];
    ["Offset of field: CK_RC2_CBC_PARAMS::iv"]
        [::std::mem::offset_of!(CK_RC2_CBC_PARAMS, iv) - 8usize];
};
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_RC2_MAC_GENERAL_PARAMS {
    pub ulEffectiveBits: CK_ULONG,
    pub ulMacLength: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_RC2_MAC_GENERAL_PARAMS"]
        [::std::mem::size_of::<CK_RC2_MAC_GENERAL_PARAMS>() - 16usize];
    ["Alignment of CK_RC2_MAC_GENERAL_PARAMS"]
        [::std::mem::align_of::<CK_RC2_MAC_GENERAL_PARAMS>() - 8usize];
    ["Offset of field: CK_RC2_MAC_GENERAL_PARAMS::ulEffectiveBits"]
        [::std::mem::offset_of!(CK_RC2_MAC_GENERAL_PARAMS, ulEffectiveBits) - 0usize];
    ["Offset of field: CK_RC2_MAC_GENERAL_PARAMS::ulMacLength"]
        [::std::mem::offset_of!(CK_RC2_MAC_GENERAL_PARAMS, ulMacLength) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_RC5_CBC_PARAMS {
    pub ulWordsize: CK_ULONG,
    pub ulRounds: CK_ULONG,
    pub pIv: *mut CK_BYTE,
    pub ulIvLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_RC5_CBC_PARAMS"][::std::mem::size_of::<CK_RC5_CBC_PARAMS>() - 32usize];
    ["Alignment of CK_RC5_CBC_PARAMS"][::std::mem::align_of::<CK_RC5_CBC_PARAMS>() - 8usize];
    ["Offset of field: CK_RC5_CBC_PARAMS::ulWordsize"]
        [::std::mem::offset_of!(CK_RC5_CBC_PARAMS, ulWordsize) - 0usize];
    ["Offset of field: CK_RC5_CBC_PARAMS::ulRounds"]
        [::std::mem::offset_of!(CK_RC5_CBC_PARAMS, ulRounds) - 8usize];
    ["Offset of field: CK_RC5_CBC_PARAMS::pIv"]
        [::std::mem::offset_of!(CK_RC5_CBC_PARAMS, pIv) - 16usize];
    ["Offset of field: CK_RC5_CBC_PARAMS::ulIvLen"]
        [::std::mem::offset_of!(CK_RC5_CBC_PARAMS, ulIvLen) - 24usize];
};
impl Default for CK_RC5_CBC_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_RC5_MAC_GENERAL_PARAMS {
    pub ulWordsize: CK_ULONG,
    pub ulRounds: CK_ULONG,
    pub ulMacLength: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_RC5_MAC_GENERAL_PARAMS"]
        [::std::mem::size_of::<CK_RC5_MAC_GENERAL_PARAMS>() - 24usize];
    ["Alignment of CK_RC5_MAC_GENERAL_PARAMS"]
        [::std::mem::align_of::<CK_RC5_MAC_GENERAL_PARAMS>() - 8usize];
    ["Offset of field: CK_RC5_MAC_GENERAL_PARAMS::ulWordsize"]
        [::std::mem::offset_of!(CK_RC5_MAC_GENERAL_PARAMS, ulWordsize) - 0usize];
    ["Offset of field: CK_RC5_MAC_GENERAL_PARAMS::ulRounds"]
        [::std::mem::offset_of!(CK_RC5_MAC_GENERAL_PARAMS, ulRounds) - 8usize];
    ["Offset of field: CK_RC5_MAC_GENERAL_PARAMS::ulMacLength"]
        [::std::mem::offset_of!(CK_RC5_MAC_GENERAL_PARAMS, ulMacLength) - 16usize];
};
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_RC5_PARAMS {
    pub ulWordsize: CK_ULONG,
    pub ulRounds: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_RC5_PARAMS"][::std::mem::size_of::<CK_RC5_PARAMS>() - 16usize];
    ["Alignment of CK_RC5_PARAMS"][::std::mem::align_of::<CK_RC5_PARAMS>() - 8usize];
    ["Offset of field: CK_RC5_PARAMS::ulWordsize"]
        [::std::mem::offset_of!(CK_RC5_PARAMS, ulWordsize) - 0usize];
    ["Offset of field: CK_RC5_PARAMS::ulRounds"]
        [::std::mem::offset_of!(CK_RC5_PARAMS, ulRounds) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_RSA_AES_KEY_WRAP_PARAMS {
    pub ulAESKeyBits: CK_ULONG,
    pub pOAEPParams: *mut CK_RSA_PKCS_OAEP_PARAMS,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_RSA_AES_KEY_WRAP_PARAMS"]
        [::std::mem::size_of::<CK_RSA_AES_KEY_WRAP_PARAMS>() - 16usize];
    ["Alignment of CK_RSA_AES_KEY_WRAP_PARAMS"]
        [::std::mem::align_of::<CK_RSA_AES_KEY_WRAP_PARAMS>() - 8usize];
    ["Offset of field: CK_RSA_AES_KEY_WRAP_PARAMS::ulAESKeyBits"]
        [::std::mem::offset_of!(CK_RSA_AES_KEY_WRAP_PARAMS, ulAESKeyBits) - 0usize];
    ["Offset of field: CK_RSA_AES_KEY_WRAP_PARAMS::pOAEPParams"]
        [::std::mem::offset_of!(CK_RSA_AES_KEY_WRAP_PARAMS, pOAEPParams) - 8usize];
};
impl Default for CK_RSA_AES_KEY_WRAP_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_RSA_PKCS_OAEP_PARAMS {
    pub hashAlg: CK_MECHANISM_TYPE,
    pub mgf: CK_RSA_PKCS_MGF_TYPE,
    pub source: CK_RSA_PKCS_OAEP_SOURCE_TYPE,
    pub pSourceData: *mut ::std::os::raw::c_void,
    pub ulSourceDataLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_RSA_PKCS_OAEP_PARAMS"][::std::mem::size_of::<CK_RSA_PKCS_OAEP_PARAMS>() - 40usize];
    ["Alignment of CK_RSA_PKCS_OAEP_PARAMS"]
        [::std::mem::align_of::<CK_RSA_PKCS_OAEP_PARAMS>() - 8usize];
    ["Offset of field: CK_RSA_PKCS_OAEP_PARAMS::hashAlg"]
        [::std::mem::offset_of!(CK_RSA_PKCS_OAEP_PARAMS, hashAlg) - 0usize];
    ["Offset of field: CK_RSA_PKCS_OAEP_PARAMS::mgf"]
        [::std::mem::offset_of!(CK_RSA_PKCS_OAEP_PARAMS, mgf) - 8usize];
    ["Offset of field: CK_RSA_PKCS_OAEP_PARAMS::source"]
        [::std::mem::offset_of!(CK_RSA_PKCS_OAEP_PARAMS, source) - 16usize];
    ["Offset of field: CK_RSA_PKCS_OAEP_PARAMS::pSourceData"]
        [::std::mem::offset_of!(CK_RSA_PKCS_OAEP_PARAMS, pSourceData) - 24usize];
    ["Offset of field: CK_RSA_PKCS_OAEP_PARAMS::ulSourceDataLen"]
        [::std::mem::offset_of!(CK_RSA_PKCS_OAEP_PARAMS, ulSourceDataLen) - 32usize];
};
impl Default for CK_RSA_PKCS_OAEP_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_RSA_PKCS_PSS_PARAMS {
    pub hashAlg: CK_MECHANISM_TYPE,
    pub mgf: CK_RSA_PKCS_MGF_TYPE,
    pub sLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_RSA_PKCS_PSS_PARAMS"][::std::mem::size_of::<CK_RSA_PKCS_PSS_PARAMS>() - 24usize];
    ["Alignment of CK_RSA_PKCS_PSS_PARAMS"]
        [::std::mem::align_of::<CK_RSA_PKCS_PSS_PARAMS>() - 8usize];
    ["Offset of field: CK_RSA_PKCS_PSS_PARAMS::hashAlg"]
        [::std::mem::offset_of!(CK_RSA_PKCS_PSS_PARAMS, hashAlg) - 0usize];
    ["Offset of field: CK_RSA_PKCS_PSS_PARAMS::mgf"]
        [::std::mem::offset_of!(CK_RSA_PKCS_PSS_PARAMS, mgf) - 8usize];
    ["Offset of field: CK_RSA_PKCS_PSS_PARAMS::sLen"]
        [::std::mem::offset_of!(CK_RSA_PKCS_PSS_PARAMS, sLen) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS {
    pub pNonce: *mut CK_BYTE,
    pub ulNonceLen: CK_ULONG,
    pub pTag: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS"]
        [::std::mem::size_of::<CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS>() - 24usize];
    ["Alignment of CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS"]
        [::std::mem::align_of::<CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS>() - 8usize];
    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS::pNonce"]
        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS, pNonce) - 0usize];
    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS::ulNonceLen"]
        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS, ulNonceLen) - 8usize];
    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS::pTag"]
        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS, pTag) - 16usize];
};
impl Default for CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_SALSA20_CHACHA20_POLY1305_PARAMS {
    pub pNonce: *mut CK_BYTE,
    pub ulNonceLen: CK_ULONG,
    pub pAAD: *mut CK_BYTE,
    pub ulAADLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SALSA20_CHACHA20_POLY1305_PARAMS"]
        [::std::mem::size_of::<CK_SALSA20_CHACHA20_POLY1305_PARAMS>() - 32usize];
    ["Alignment of CK_SALSA20_CHACHA20_POLY1305_PARAMS"]
        [::std::mem::align_of::<CK_SALSA20_CHACHA20_POLY1305_PARAMS>() - 8usize];
    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_PARAMS::pNonce"]
        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_PARAMS, pNonce) - 0usize];
    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_PARAMS::ulNonceLen"]
        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_PARAMS, ulNonceLen) - 8usize];
    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_PARAMS::pAAD"]
        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_PARAMS, pAAD) - 16usize];
    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_PARAMS::ulAADLen"]
        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_PARAMS, ulAADLen) - 24usize];
};
impl Default for CK_SALSA20_CHACHA20_POLY1305_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_SALSA20_PARAMS {
    pub pBlockCounter: *mut CK_BYTE,
    pub pNonce: *mut CK_BYTE,
    pub ulNonceBits: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SALSA20_PARAMS"][::std::mem::size_of::<CK_SALSA20_PARAMS>() - 24usize];
    ["Alignment of CK_SALSA20_PARAMS"][::std::mem::align_of::<CK_SALSA20_PARAMS>() - 8usize];
    ["Offset of field: CK_SALSA20_PARAMS::pBlockCounter"]
        [::std::mem::offset_of!(CK_SALSA20_PARAMS, pBlockCounter) - 0usize];
    ["Offset of field: CK_SALSA20_PARAMS::pNonce"]
        [::std::mem::offset_of!(CK_SALSA20_PARAMS, pNonce) - 8usize];
    ["Offset of field: CK_SALSA20_PARAMS::ulNonceBits"]
        [::std::mem::offset_of!(CK_SALSA20_PARAMS, ulNonceBits) - 16usize];
};
impl Default for CK_SALSA20_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_SEED_CBC_ENCRYPT_DATA_PARAMS {
    pub iv: [CK_BYTE; 16usize],
    pub pData: *mut CK_BYTE,
    pub length: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SEED_CBC_ENCRYPT_DATA_PARAMS"]
        [::std::mem::size_of::<CK_SEED_CBC_ENCRYPT_DATA_PARAMS>() - 32usize];
    ["Alignment of CK_SEED_CBC_ENCRYPT_DATA_PARAMS"]
        [::std::mem::align_of::<CK_SEED_CBC_ENCRYPT_DATA_PARAMS>() - 8usize];
    ["Offset of field: CK_SEED_CBC_ENCRYPT_DATA_PARAMS::iv"]
        [::std::mem::offset_of!(CK_SEED_CBC_ENCRYPT_DATA_PARAMS, iv) - 0usize];
    ["Offset of field: CK_SEED_CBC_ENCRYPT_DATA_PARAMS::pData"]
        [::std::mem::offset_of!(CK_SEED_CBC_ENCRYPT_DATA_PARAMS, pData) - 16usize];
    ["Offset of field: CK_SEED_CBC_ENCRYPT_DATA_PARAMS::length"]
        [::std::mem::offset_of!(CK_SEED_CBC_ENCRYPT_DATA_PARAMS, length) - 24usize];
};
impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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,
    pub ulPublicDataLen: CK_ULONG,
    pub pPublicData: *mut CK_BYTE,
    pub ulPAndGLen: CK_ULONG,
    pub ulQLen: CK_ULONG,
    pub ulRandomLen: CK_ULONG,
    pub pRandomA: *mut CK_BYTE,
    pub pPrimeP: *mut CK_BYTE,
    pub pBaseG: *mut CK_BYTE,
    pub pSubprimeQ: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SKIPJACK_PRIVATE_WRAP_PARAMS"]
        [::std::mem::size_of::<CK_SKIPJACK_PRIVATE_WRAP_PARAMS>() - 88usize];
    ["Alignment of CK_SKIPJACK_PRIVATE_WRAP_PARAMS"]
        [::std::mem::align_of::<CK_SKIPJACK_PRIVATE_WRAP_PARAMS>() - 8usize];
    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::ulPasswordLen"]
        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, ulPasswordLen) - 0usize];
    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::pPassword"]
        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, pPassword) - 8usize];
    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::ulPublicDataLen"]
        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, ulPublicDataLen) - 16usize];
    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::pPublicData"]
        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, pPublicData) - 24usize];
    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::ulPAndGLen"]
        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, ulPAndGLen) - 32usize];
    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::ulQLen"]
        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, ulQLen) - 40usize];
    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::ulRandomLen"]
        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, ulRandomLen) - 48usize];
    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::pRandomA"]
        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, pRandomA) - 56usize];
    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::pPrimeP"]
        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, pPrimeP) - 64usize];
    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::pBaseG"]
        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, pBaseG) - 72usize];
    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::pSubprimeQ"]
        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, pSubprimeQ) - 80usize];
};
impl Default for CK_SKIPJACK_PRIVATE_WRAP_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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_RELAYX_PARAMS {
    pub ulOldWrappedXLen: CK_ULONG,
    pub pOldWrappedX: *mut CK_BYTE,
    pub ulOldPasswordLen: CK_ULONG,
    pub pOldPassword: *mut CK_BYTE,
    pub ulOldPublicDataLen: CK_ULONG,
    pub pOldPublicData: *mut CK_BYTE,
    pub ulOldRandomLen: CK_ULONG,
    pub pOldRandomA: *mut CK_BYTE,
    pub ulNewPasswordLen: CK_ULONG,
    pub pNewPassword: *mut CK_BYTE,
    pub ulNewPublicDataLen: CK_ULONG,
    pub pNewPublicData: *mut CK_BYTE,
    pub ulNewRandomLen: CK_ULONG,
    pub pNewRandomA: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SKIPJACK_RELAYX_PARAMS"]
        [::std::mem::size_of::<CK_SKIPJACK_RELAYX_PARAMS>() - 112usize];
    ["Alignment of CK_SKIPJACK_RELAYX_PARAMS"]
        [::std::mem::align_of::<CK_SKIPJACK_RELAYX_PARAMS>() - 8usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulOldWrappedXLen"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulOldWrappedXLen) - 0usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pOldWrappedX"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pOldWrappedX) - 8usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulOldPasswordLen"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulOldPasswordLen) - 16usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pOldPassword"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pOldPassword) - 24usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulOldPublicDataLen"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulOldPublicDataLen) - 32usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pOldPublicData"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pOldPublicData) - 40usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulOldRandomLen"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulOldRandomLen) - 48usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pOldRandomA"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pOldRandomA) - 56usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulNewPasswordLen"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulNewPasswordLen) - 64usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pNewPassword"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pNewPassword) - 72usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulNewPublicDataLen"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulNewPublicDataLen) - 80usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pNewPublicData"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pNewPublicData) - 88usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulNewRandomLen"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulNewRandomLen) - 96usize];
    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pNewRandomA"]
        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pNewRandomA) - 104usize];
};
impl Default for CK_SKIPJACK_RELAYX_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_SP800_108_COUNTER_FORMAT {
    pub bLittleEndian: CK_BBOOL,
    pub ulWidthInBits: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SP800_108_COUNTER_FORMAT"]
        [::std::mem::size_of::<CK_SP800_108_COUNTER_FORMAT>() - 16usize];
    ["Alignment of CK_SP800_108_COUNTER_FORMAT"]
        [::std::mem::align_of::<CK_SP800_108_COUNTER_FORMAT>() - 8usize];
    ["Offset of field: CK_SP800_108_COUNTER_FORMAT::bLittleEndian"]
        [::std::mem::offset_of!(CK_SP800_108_COUNTER_FORMAT, bLittleEndian) - 0usize];
    ["Offset of field: CK_SP800_108_COUNTER_FORMAT::ulWidthInBits"]
        [::std::mem::offset_of!(CK_SP800_108_COUNTER_FORMAT, ulWidthInBits) - 8usize];
};
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_SP800_108_DKM_LENGTH_FORMAT {
    pub dkmLengthMethod: CK_SP800_108_DKM_LENGTH_METHOD,
    pub bLittleEndian: CK_BBOOL,
    pub ulWidthInBits: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SP800_108_DKM_LENGTH_FORMAT"]
        [::std::mem::size_of::<CK_SP800_108_DKM_LENGTH_FORMAT>() - 24usize];
    ["Alignment of CK_SP800_108_DKM_LENGTH_FORMAT"]
        [::std::mem::align_of::<CK_SP800_108_DKM_LENGTH_FORMAT>() - 8usize];
    ["Offset of field: CK_SP800_108_DKM_LENGTH_FORMAT::dkmLengthMethod"]
        [::std::mem::offset_of!(CK_SP800_108_DKM_LENGTH_FORMAT, dkmLengthMethod) - 0usize];
    ["Offset of field: CK_SP800_108_DKM_LENGTH_FORMAT::bLittleEndian"]
        [::std::mem::offset_of!(CK_SP800_108_DKM_LENGTH_FORMAT, bLittleEndian) - 8usize];
    ["Offset of field: CK_SP800_108_DKM_LENGTH_FORMAT::ulWidthInBits"]
        [::std::mem::offset_of!(CK_SP800_108_DKM_LENGTH_FORMAT, ulWidthInBits) - 16usize];
};
pub type CK_SP800_108_PRF_TYPE = CK_MECHANISM_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_SP800_108_FEEDBACK_KDF_PARAMS {
    pub prfType: CK_SP800_108_PRF_TYPE,
    pub ulNumberOfDataParams: CK_ULONG,
    pub pDataParams: *mut CK_PRF_DATA_PARAM,
    pub ulIVLen: CK_ULONG,
    pub pIV: *mut CK_BYTE,
    pub ulAdditionalDerivedKeys: CK_ULONG,
    pub pAdditionalDerivedKeys: *mut CK_DERIVED_KEY,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SP800_108_FEEDBACK_KDF_PARAMS"]
        [::std::mem::size_of::<CK_SP800_108_FEEDBACK_KDF_PARAMS>() - 56usize];
    ["Alignment of CK_SP800_108_FEEDBACK_KDF_PARAMS"]
        [::std::mem::align_of::<CK_SP800_108_FEEDBACK_KDF_PARAMS>() - 8usize];
    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::prfType"]
        [::std::mem::offset_of!(CK_SP800_108_FEEDBACK_KDF_PARAMS, prfType) - 0usize];
    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::ulNumberOfDataParams"]
        [::std::mem::offset_of!(CK_SP800_108_FEEDBACK_KDF_PARAMS, ulNumberOfDataParams) - 8usize];
    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::pDataParams"]
        [::std::mem::offset_of!(CK_SP800_108_FEEDBACK_KDF_PARAMS, pDataParams) - 16usize];
    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::ulIVLen"]
        [::std::mem::offset_of!(CK_SP800_108_FEEDBACK_KDF_PARAMS, ulIVLen) - 24usize];
    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::pIV"]
        [::std::mem::offset_of!(CK_SP800_108_FEEDBACK_KDF_PARAMS, pIV) - 32usize];
    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::ulAdditionalDerivedKeys"][::std::mem::offset_of!(
        CK_SP800_108_FEEDBACK_KDF_PARAMS,
        ulAdditionalDerivedKeys
    ) - 40usize];
    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::pAdditionalDerivedKeys"][::std::mem::offset_of!(
        CK_SP800_108_FEEDBACK_KDF_PARAMS,
        pAdditionalDerivedKeys
    ) - 48usize];
};
impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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,
    pub pDataParams: *mut CK_PRF_DATA_PARAM,
    pub ulAdditionalDerivedKeys: CK_ULONG,
    pub pAdditionalDerivedKeys: *mut CK_DERIVED_KEY,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SP800_108_KDF_PARAMS"][::std::mem::size_of::<CK_SP800_108_KDF_PARAMS>() - 40usize];
    ["Alignment of CK_SP800_108_KDF_PARAMS"]
        [::std::mem::align_of::<CK_SP800_108_KDF_PARAMS>() - 8usize];
    ["Offset of field: CK_SP800_108_KDF_PARAMS::prfType"]
        [::std::mem::offset_of!(CK_SP800_108_KDF_PARAMS, prfType) - 0usize];
    ["Offset of field: CK_SP800_108_KDF_PARAMS::ulNumberOfDataParams"]
        [::std::mem::offset_of!(CK_SP800_108_KDF_PARAMS, ulNumberOfDataParams) - 8usize];
    ["Offset of field: CK_SP800_108_KDF_PARAMS::pDataParams"]
        [::std::mem::offset_of!(CK_SP800_108_KDF_PARAMS, pDataParams) - 16usize];
    ["Offset of field: CK_SP800_108_KDF_PARAMS::ulAdditionalDerivedKeys"]
        [::std::mem::offset_of!(CK_SP800_108_KDF_PARAMS, ulAdditionalDerivedKeys) - 24usize];
    ["Offset of field: CK_SP800_108_KDF_PARAMS::pAdditionalDerivedKeys"]
        [::std::mem::offset_of!(CK_SP800_108_KDF_PARAMS, pAdditionalDerivedKeys) - 32usize];
};
impl Default for CK_SP800_108_KDF_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_X2RATCHET_INITIALIZE_PARAMS {
    pub sk: *mut CK_BYTE,
    pub peer_public_prekey: CK_OBJECT_HANDLE,
    pub peer_public_identity: CK_OBJECT_HANDLE,
    pub own_public_identity: CK_OBJECT_HANDLE,
    pub bEncryptedHeader: CK_BBOOL,
    pub eCurve: CK_ULONG,
    pub aeadMechanism: CK_MECHANISM_TYPE,
    pub kdfMechanism: CK_X2RATCHET_KDF_TYPE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_X2RATCHET_INITIALIZE_PARAMS"]
        [::std::mem::size_of::<CK_X2RATCHET_INITIALIZE_PARAMS>() - 64usize];
    ["Alignment of CK_X2RATCHET_INITIALIZE_PARAMS"]
        [::std::mem::align_of::<CK_X2RATCHET_INITIALIZE_PARAMS>() - 8usize];
    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::sk"]
        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, sk) - 0usize];
    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::peer_public_prekey"]
        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, peer_public_prekey) - 8usize];
    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::peer_public_identity"]
        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, peer_public_identity) - 16usize];
    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::own_public_identity"]
        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, own_public_identity) - 24usize];
    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::bEncryptedHeader"]
        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, bEncryptedHeader) - 32usize];
    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::eCurve"]
        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, eCurve) - 40usize];
    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::aeadMechanism"]
        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, aeadMechanism) - 48usize];
    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::kdfMechanism"]
        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, kdfMechanism) - 56usize];
};
impl Default for CK_X2RATCHET_INITIALIZE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_X2RATCHET_RESPOND_PARAMS {
    pub sk: *mut CK_BYTE,
    pub own_prekey: CK_OBJECT_HANDLE,
    pub initiator_identity: CK_OBJECT_HANDLE,
    pub own_public_identity: CK_OBJECT_HANDLE,
    pub bEncryptedHeader: CK_BBOOL,
    pub eCurve: CK_ULONG,
    pub aeadMechanism: CK_MECHANISM_TYPE,
    pub kdfMechanism: CK_X2RATCHET_KDF_TYPE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_X2RATCHET_RESPOND_PARAMS"]
        [::std::mem::size_of::<CK_X2RATCHET_RESPOND_PARAMS>() - 64usize];
    ["Alignment of CK_X2RATCHET_RESPOND_PARAMS"]
        [::std::mem::align_of::<CK_X2RATCHET_RESPOND_PARAMS>() - 8usize];
    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::sk"]
        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, sk) - 0usize];
    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::own_prekey"]
        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, own_prekey) - 8usize];
    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::initiator_identity"]
        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, initiator_identity) - 16usize];
    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::own_public_identity"]
        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, own_public_identity) - 24usize];
    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::bEncryptedHeader"]
        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, bEncryptedHeader) - 32usize];
    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::eCurve"]
        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, eCurve) - 40usize];
    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::aeadMechanism"]
        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, aeadMechanism) - 48usize];
    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::kdfMechanism"]
        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, kdfMechanism) - 56usize];
};
impl Default for CK_X2RATCHET_RESPOND_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_X3DH_INITIATE_PARAMS {
    pub kdf: CK_X3DH_KDF_TYPE,
    pub pPeer_identity: CK_OBJECT_HANDLE,
    pub pPeer_prekey: CK_OBJECT_HANDLE,
    pub pPrekey_signature: *mut CK_BYTE,
    pub pOnetime_key: *mut CK_BYTE,
    pub pOwn_identity: CK_OBJECT_HANDLE,
    pub pOwn_ephemeral: CK_OBJECT_HANDLE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_X3DH_INITIATE_PARAMS"][::std::mem::size_of::<CK_X3DH_INITIATE_PARAMS>() - 56usize];
    ["Alignment of CK_X3DH_INITIATE_PARAMS"]
        [::std::mem::align_of::<CK_X3DH_INITIATE_PARAMS>() - 8usize];
    ["Offset of field: CK_X3DH_INITIATE_PARAMS::kdf"]
        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, kdf) - 0usize];
    ["Offset of field: CK_X3DH_INITIATE_PARAMS::pPeer_identity"]
        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, pPeer_identity) - 8usize];
    ["Offset of field: CK_X3DH_INITIATE_PARAMS::pPeer_prekey"]
        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, pPeer_prekey) - 16usize];
    ["Offset of field: CK_X3DH_INITIATE_PARAMS::pPrekey_signature"]
        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, pPrekey_signature) - 24usize];
    ["Offset of field: CK_X3DH_INITIATE_PARAMS::pOnetime_key"]
        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, pOnetime_key) - 32usize];
    ["Offset of field: CK_X3DH_INITIATE_PARAMS::pOwn_identity"]
        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, pOwn_identity) - 40usize];
    ["Offset of field: CK_X3DH_INITIATE_PARAMS::pOwn_ephemeral"]
        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, pOwn_ephemeral) - 48usize];
};
impl Default for CK_X3DH_INITIATE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_X3DH_RESPOND_PARAMS {
    pub kdf: CK_X3DH_KDF_TYPE,
    pub pIdentity_id: *mut CK_BYTE,
    pub pPrekey_id: *mut CK_BYTE,
    pub pOnetime_id: *mut CK_BYTE,
    pub pInitiator_identity: CK_OBJECT_HANDLE,
    pub pInitiator_ephemeral: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_X3DH_RESPOND_PARAMS"][::std::mem::size_of::<CK_X3DH_RESPOND_PARAMS>() - 48usize];
    ["Alignment of CK_X3DH_RESPOND_PARAMS"]
        [::std::mem::align_of::<CK_X3DH_RESPOND_PARAMS>() - 8usize];
    ["Offset of field: CK_X3DH_RESPOND_PARAMS::kdf"]
        [::std::mem::offset_of!(CK_X3DH_RESPOND_PARAMS, kdf) - 0usize];
    ["Offset of field: CK_X3DH_RESPOND_PARAMS::pIdentity_id"]
        [::std::mem::offset_of!(CK_X3DH_RESPOND_PARAMS, pIdentity_id) - 8usize];
    ["Offset of field: CK_X3DH_RESPOND_PARAMS::pPrekey_id"]
        [::std::mem::offset_of!(CK_X3DH_RESPOND_PARAMS, pPrekey_id) - 16usize];
    ["Offset of field: CK_X3DH_RESPOND_PARAMS::pOnetime_id"]
        [::std::mem::offset_of!(CK_X3DH_RESPOND_PARAMS, pOnetime_id) - 24usize];
    ["Offset of field: CK_X3DH_RESPOND_PARAMS::pInitiator_identity"]
        [::std::mem::offset_of!(CK_X3DH_RESPOND_PARAMS, pInitiator_identity) - 32usize];
    ["Offset of field: CK_X3DH_RESPOND_PARAMS::pInitiator_ephemeral"]
        [::std::mem::offset_of!(CK_X3DH_RESPOND_PARAMS, pInitiator_ephemeral) - 40usize];
};
impl Default for CK_X3DH_RESPOND_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_X9_42_DH1_DERIVE_PARAMS {
    pub kdf: CK_X9_42_DH_KDF_TYPE,
    pub ulOtherInfoLen: CK_ULONG,
    pub pOtherInfo: *mut CK_BYTE,
    pub ulPublicDataLen: CK_ULONG,
    pub pPublicData: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_X9_42_DH1_DERIVE_PARAMS"]
        [::std::mem::size_of::<CK_X9_42_DH1_DERIVE_PARAMS>() - 40usize];
    ["Alignment of CK_X9_42_DH1_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_X9_42_DH1_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_X9_42_DH1_DERIVE_PARAMS::kdf"]
        [::std::mem::offset_of!(CK_X9_42_DH1_DERIVE_PARAMS, kdf) - 0usize];
    ["Offset of field: CK_X9_42_DH1_DERIVE_PARAMS::ulOtherInfoLen"]
        [::std::mem::offset_of!(CK_X9_42_DH1_DERIVE_PARAMS, ulOtherInfoLen) - 8usize];
    ["Offset of field: CK_X9_42_DH1_DERIVE_PARAMS::pOtherInfo"]
        [::std::mem::offset_of!(CK_X9_42_DH1_DERIVE_PARAMS, pOtherInfo) - 16usize];
    ["Offset of field: CK_X9_42_DH1_DERIVE_PARAMS::ulPublicDataLen"]
        [::std::mem::offset_of!(CK_X9_42_DH1_DERIVE_PARAMS, ulPublicDataLen) - 24usize];
    ["Offset of field: CK_X9_42_DH1_DERIVE_PARAMS::pPublicData"]
        [::std::mem::offset_of!(CK_X9_42_DH1_DERIVE_PARAMS, pPublicData) - 32usize];
};
impl Default for CK_X9_42_DH1_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_X9_42_DH2_DERIVE_PARAMS {
    pub kdf: CK_X9_42_DH_KDF_TYPE,
    pub ulOtherInfoLen: CK_ULONG,
    pub pOtherInfo: *mut CK_BYTE,
    pub ulPublicDataLen: CK_ULONG,
    pub pPublicData: *mut CK_BYTE,
    pub ulPrivateDataLen: CK_ULONG,
    pub hPrivateData: CK_OBJECT_HANDLE,
    pub ulPublicDataLen2: CK_ULONG,
    pub pPublicData2: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_X9_42_DH2_DERIVE_PARAMS"]
        [::std::mem::size_of::<CK_X9_42_DH2_DERIVE_PARAMS>() - 72usize];
    ["Alignment of CK_X9_42_DH2_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_X9_42_DH2_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::kdf"]
        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, kdf) - 0usize];
    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::ulOtherInfoLen"]
        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, ulOtherInfoLen) - 8usize];
    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::pOtherInfo"]
        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, pOtherInfo) - 16usize];
    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::ulPublicDataLen"]
        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, ulPublicDataLen) - 24usize];
    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::pPublicData"]
        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, pPublicData) - 32usize];
    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::ulPrivateDataLen"]
        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, ulPrivateDataLen) - 40usize];
    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::hPrivateData"]
        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, hPrivateData) - 48usize];
    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::ulPublicDataLen2"]
        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, ulPublicDataLen2) - 56usize];
    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::pPublicData2"]
        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, pPublicData2) - 64usize];
};
impl Default for CK_X9_42_DH2_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_X9_42_MQV_DERIVE_PARAMS {
    pub kdf: CK_X9_42_DH_KDF_TYPE,
    pub ulOtherInfoLen: CK_ULONG,
    pub OtherInfo: *mut CK_BYTE,
    pub ulPublicDataLen: CK_ULONG,
    pub PublicData: *mut CK_BYTE,
    pub ulPrivateDataLen: CK_ULONG,
    pub hPrivateData: CK_OBJECT_HANDLE,
    pub ulPublicDataLen2: CK_ULONG,
    pub PublicData2: *mut CK_BYTE,
    pub publicKey: CK_OBJECT_HANDLE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_X9_42_MQV_DERIVE_PARAMS"]
        [::std::mem::size_of::<CK_X9_42_MQV_DERIVE_PARAMS>() - 80usize];
    ["Alignment of CK_X9_42_MQV_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_X9_42_MQV_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::kdf"]
        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, kdf) - 0usize];
    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::ulOtherInfoLen"]
        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, ulOtherInfoLen) - 8usize];
    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::OtherInfo"]
        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, OtherInfo) - 16usize];
    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::ulPublicDataLen"]
        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, ulPublicDataLen) - 24usize];
    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::PublicData"]
        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, PublicData) - 32usize];
    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::ulPrivateDataLen"]
        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, ulPrivateDataLen) - 40usize];
    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::hPrivateData"]
        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, hPrivateData) - 48usize];
    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::ulPublicDataLen2"]
        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, ulPublicDataLen2) - 56usize];
    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::PublicData2"]
        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, PublicData2) - 64usize];
    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::publicKey"]
        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, publicKey) - 72usize];
};
impl Default for CK_X9_42_MQV_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_XEDDSA_PARAMS {
    pub hash: CK_XEDDSA_HASH_TYPE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_XEDDSA_PARAMS"][::std::mem::size_of::<CK_XEDDSA_PARAMS>() - 8usize];
    ["Alignment of CK_XEDDSA_PARAMS"][::std::mem::align_of::<CK_XEDDSA_PARAMS>() - 8usize];
    ["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::<specifiedParams>() - 136usize];
    ["Alignment of specifiedParams"][::std::mem::align_of::<specifiedParams>() - 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;
pub type CK_SSL3_KEY_MAT_PARAMS_PTR_PTR = *mut *mut CK_SSL3_KEY_MAT_PARAMS;
pub type CK_SSL3_MASTER_KEY_DERIVE_PARAMS_PTR = *mut CK_SSL3_MASTER_KEY_DERIVE_PARAMS;
pub type CK_SSL3_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_SSL3_MASTER_KEY_DERIVE_PARAMS;
pub type CK_SSL3_RANDOM_DATA_PTR = *mut CK_SSL3_RANDOM_DATA;
pub type CK_SSL3_RANDOM_DATA_PTR_PTR = *mut *mut CK_SSL3_RANDOM_DATA;
pub type CK_TLS_KDF_PARAMS_PTR = *mut CK_TLS_KDF_PARAMS;
pub type CK_TLS_KDF_PARAMS_PTR_PTR = *mut *mut CK_TLS_KDF_PARAMS;
pub type CK_TLS_MAC_PARAMS_PTR = *mut CK_TLS_MAC_PARAMS;
pub type CK_TLS_MAC_PARAMS_PTR_PTR = *mut *mut CK_TLS_MAC_PARAMS;
pub type CK_TLS_PRF_PARAMS_PTR = *mut CK_TLS_PRF_PARAMS;
pub type CK_TLS_PRF_PARAMS_PTR_PTR = *mut *mut CK_TLS_PRF_PARAMS;
pub type CK_TLS12_KEY_MAT_PARAMS_PTR = *mut CK_TLS12_KEY_MAT_PARAMS;
pub type CK_TLS12_KEY_MAT_PARAMS_PTR_PTR = *mut *mut CK_TLS12_KEY_MAT_PARAMS;
pub type CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR = *mut CK_TLS12_MASTER_KEY_DERIVE_PARAMS;
pub type CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_TLS12_MASTER_KEY_DERIVE_PARAMS;
pub type CK_WTLS_KEY_MAT_OUT_PTR = *mut CK_WTLS_KEY_MAT_OUT;
pub type CK_WTLS_KEY_MAT_OUT_PTR_PTR = *mut *mut CK_WTLS_KEY_MAT_OUT;
pub type CK_WTLS_KEY_MAT_PARAMS_PTR = *mut CK_WTLS_KEY_MAT_PARAMS;
pub type CK_WTLS_KEY_MAT_PARAMS_PTR_PTR = *mut *mut CK_WTLS_KEY_MAT_PARAMS;
pub type CK_WTLS_MASTER_KEY_DERIVE_PARAMS_PTR = *mut CK_WTLS_MASTER_KEY_DERIVE_PARAMS;
pub type CK_WTLS_MASTER_KEY_DERIVE_PARAMS_PTR_PTR = *mut *mut CK_WTLS_MASTER_KEY_DERIVE_PARAMS;
pub type CK_WTLS_PRF_PARAMS_PTR = *mut CK_WTLS_PRF_PARAMS;
pub type CK_WTLS_PRF_PARAMS_PTR_PTR = *mut *mut CK_WTLS_PRF_PARAMS;
pub type CK_WTLS_RANDOM_DATA_PTR = *mut CK_WTLS_RANDOM_DATA;
pub type CK_WTLS_RANDOM_DATA_PTR_PTR = *mut *mut CK_WTLS_RANDOM_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_SSL3_KEY_MAT_OUT {
    pub hClientMacSecret: CK_OBJECT_HANDLE,
    pub hServerMacSecret: CK_OBJECT_HANDLE,
    pub hClientKey: CK_OBJECT_HANDLE,
    pub hServerKey: CK_OBJECT_HANDLE,
    pub pIVClient: *mut CK_BYTE,
    pub pIVServer: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SSL3_KEY_MAT_OUT"][::std::mem::size_of::<CK_SSL3_KEY_MAT_OUT>() - 48usize];
    ["Alignment of CK_SSL3_KEY_MAT_OUT"][::std::mem::align_of::<CK_SSL3_KEY_MAT_OUT>() - 8usize];
    ["Offset of field: CK_SSL3_KEY_MAT_OUT::hClientMacSecret"]
        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_OUT, hClientMacSecret) - 0usize];
    ["Offset of field: CK_SSL3_KEY_MAT_OUT::hServerMacSecret"]
        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_OUT, hServerMacSecret) - 8usize];
    ["Offset of field: CK_SSL3_KEY_MAT_OUT::hClientKey"]
        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_OUT, hClientKey) - 16usize];
    ["Offset of field: CK_SSL3_KEY_MAT_OUT::hServerKey"]
        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_OUT, hServerKey) - 24usize];
    ["Offset of field: CK_SSL3_KEY_MAT_OUT::pIVClient"]
        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_OUT, pIVClient) - 32usize];
    ["Offset of field: CK_SSL3_KEY_MAT_OUT::pIVServer"]
        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_OUT, pIVServer) - 40usize];
};
impl Default for CK_SSL3_KEY_MAT_OUT {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_SSL3_RANDOM_DATA {
    pub pClientRandom: *mut CK_BYTE,
    pub ulClientRandomLen: CK_ULONG,
    pub pServerRandom: *mut CK_BYTE,
    pub ulServerRandomLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SSL3_RANDOM_DATA"][::std::mem::size_of::<CK_SSL3_RANDOM_DATA>() - 32usize];
    ["Alignment of CK_SSL3_RANDOM_DATA"][::std::mem::align_of::<CK_SSL3_RANDOM_DATA>() - 8usize];
    ["Offset of field: CK_SSL3_RANDOM_DATA::pClientRandom"]
        [::std::mem::offset_of!(CK_SSL3_RANDOM_DATA, pClientRandom) - 0usize];
    ["Offset of field: CK_SSL3_RANDOM_DATA::ulClientRandomLen"]
        [::std::mem::offset_of!(CK_SSL3_RANDOM_DATA, ulClientRandomLen) - 8usize];
    ["Offset of field: CK_SSL3_RANDOM_DATA::pServerRandom"]
        [::std::mem::offset_of!(CK_SSL3_RANDOM_DATA, pServerRandom) - 16usize];
    ["Offset of field: CK_SSL3_RANDOM_DATA::ulServerRandomLen"]
        [::std::mem::offset_of!(CK_SSL3_RANDOM_DATA, ulServerRandomLen) - 24usize];
};
impl Default for CK_SSL3_RANDOM_DATA {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_SSL3_KEY_MAT_PARAMS {
    pub ulMacSizeInBits: CK_ULONG,
    pub ulKeySizeInBits: CK_ULONG,
    pub ulIVSizeInBits: CK_ULONG,
    pub bIsExport: CK_BBOOL,
    pub RandomInfo: CK_SSL3_RANDOM_DATA,
    pub pReturnedKeyMaterial: *mut CK_SSL3_KEY_MAT_OUT,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SSL3_KEY_MAT_PARAMS"][::std::mem::size_of::<CK_SSL3_KEY_MAT_PARAMS>() - 72usize];
    ["Alignment of CK_SSL3_KEY_MAT_PARAMS"]
        [::std::mem::align_of::<CK_SSL3_KEY_MAT_PARAMS>() - 8usize];
    ["Offset of field: CK_SSL3_KEY_MAT_PARAMS::ulMacSizeInBits"]
        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_PARAMS, ulMacSizeInBits) - 0usize];
    ["Offset of field: CK_SSL3_KEY_MAT_PARAMS::ulKeySizeInBits"]
        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_PARAMS, ulKeySizeInBits) - 8usize];
    ["Offset of field: CK_SSL3_KEY_MAT_PARAMS::ulIVSizeInBits"]
        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_PARAMS, ulIVSizeInBits) - 16usize];
    ["Offset of field: CK_SSL3_KEY_MAT_PARAMS::bIsExport"]
        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_PARAMS, bIsExport) - 24usize];
    ["Offset of field: CK_SSL3_KEY_MAT_PARAMS::RandomInfo"]
        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_PARAMS, RandomInfo) - 32usize];
    ["Offset of field: CK_SSL3_KEY_MAT_PARAMS::pReturnedKeyMaterial"]
        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_PARAMS, pReturnedKeyMaterial) - 64usize];
};
impl Default for CK_SSL3_KEY_MAT_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS {
    pub RandomInfo: CK_SSL3_RANDOM_DATA,
    pub pVersion: *mut CK_VERSION,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_SSL3_MASTER_KEY_DERIVE_PARAMS"]
        [::std::mem::size_of::<CK_SSL3_MASTER_KEY_DERIVE_PARAMS>() - 40usize];
    ["Alignment of CK_SSL3_MASTER_KEY_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_SSL3_MASTER_KEY_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_SSL3_MASTER_KEY_DERIVE_PARAMS::RandomInfo"]
        [::std::mem::offset_of!(CK_SSL3_MASTER_KEY_DERIVE_PARAMS, RandomInfo) - 0usize];
    ["Offset of field: CK_SSL3_MASTER_KEY_DERIVE_PARAMS::pVersion"]
        [::std::mem::offset_of!(CK_SSL3_MASTER_KEY_DERIVE_PARAMS, pVersion) - 32usize];
};
impl Default for CK_SSL3_MASTER_KEY_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_TLS_KDF_PARAMS {
    pub prfMechanism: CK_MECHANISM_TYPE,
    pub pLabel: *mut CK_BYTE,
    pub ulLabelLength: CK_ULONG,
    pub RandomInfo: CK_SSL3_RANDOM_DATA,
    pub pContextData: *mut CK_BYTE,
    pub ulContextDataLength: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_TLS_KDF_PARAMS"][::std::mem::size_of::<CK_TLS_KDF_PARAMS>() - 72usize];
    ["Alignment of CK_TLS_KDF_PARAMS"][::std::mem::align_of::<CK_TLS_KDF_PARAMS>() - 8usize];
    ["Offset of field: CK_TLS_KDF_PARAMS::prfMechanism"]
        [::std::mem::offset_of!(CK_TLS_KDF_PARAMS, prfMechanism) - 0usize];
    ["Offset of field: CK_TLS_KDF_PARAMS::pLabel"]
        [::std::mem::offset_of!(CK_TLS_KDF_PARAMS, pLabel) - 8usize];
    ["Offset of field: CK_TLS_KDF_PARAMS::ulLabelLength"]
        [::std::mem::offset_of!(CK_TLS_KDF_PARAMS, ulLabelLength) - 16usize];
    ["Offset of field: CK_TLS_KDF_PARAMS::RandomInfo"]
        [::std::mem::offset_of!(CK_TLS_KDF_PARAMS, RandomInfo) - 24usize];
    ["Offset of field: CK_TLS_KDF_PARAMS::pContextData"]
        [::std::mem::offset_of!(CK_TLS_KDF_PARAMS, pContextData) - 56usize];
    ["Offset of field: CK_TLS_KDF_PARAMS::ulContextDataLength"]
        [::std::mem::offset_of!(CK_TLS_KDF_PARAMS, ulContextDataLength) - 64usize];
};
impl Default for CK_TLS_KDF_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_TLS_MAC_PARAMS {
    pub prfHashMechanism: CK_MECHANISM_TYPE,
    pub ulMacLength: CK_ULONG,
    pub ulServerOrClient: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_TLS_MAC_PARAMS"][::std::mem::size_of::<CK_TLS_MAC_PARAMS>() - 24usize];
    ["Alignment of CK_TLS_MAC_PARAMS"][::std::mem::align_of::<CK_TLS_MAC_PARAMS>() - 8usize];
    ["Offset of field: CK_TLS_MAC_PARAMS::prfHashMechanism"]
        [::std::mem::offset_of!(CK_TLS_MAC_PARAMS, prfHashMechanism) - 0usize];
    ["Offset of field: CK_TLS_MAC_PARAMS::ulMacLength"]
        [::std::mem::offset_of!(CK_TLS_MAC_PARAMS, ulMacLength) - 8usize];
    ["Offset of field: CK_TLS_MAC_PARAMS::ulServerOrClient"]
        [::std::mem::offset_of!(CK_TLS_MAC_PARAMS, ulServerOrClient) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_TLS_PRF_PARAMS {
    pub pSeed: *mut CK_BYTE,
    pub ulSeedLen: CK_ULONG,
    pub pLabel: *mut CK_BYTE,
    pub ulLabelLen: CK_ULONG,
    pub pOutput: *mut CK_BYTE,
    pub pulOutputLen: *mut CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_TLS_PRF_PARAMS"][::std::mem::size_of::<CK_TLS_PRF_PARAMS>() - 48usize];
    ["Alignment of CK_TLS_PRF_PARAMS"][::std::mem::align_of::<CK_TLS_PRF_PARAMS>() - 8usize];
    ["Offset of field: CK_TLS_PRF_PARAMS::pSeed"]
        [::std::mem::offset_of!(CK_TLS_PRF_PARAMS, pSeed) - 0usize];
    ["Offset of field: CK_TLS_PRF_PARAMS::ulSeedLen"]
        [::std::mem::offset_of!(CK_TLS_PRF_PARAMS, ulSeedLen) - 8usize];
    ["Offset of field: CK_TLS_PRF_PARAMS::pLabel"]
        [::std::mem::offset_of!(CK_TLS_PRF_PARAMS, pLabel) - 16usize];
    ["Offset of field: CK_TLS_PRF_PARAMS::ulLabelLen"]
        [::std::mem::offset_of!(CK_TLS_PRF_PARAMS, ulLabelLen) - 24usize];
    ["Offset of field: CK_TLS_PRF_PARAMS::pOutput"]
        [::std::mem::offset_of!(CK_TLS_PRF_PARAMS, pOutput) - 32usize];
    ["Offset of field: CK_TLS_PRF_PARAMS::pulOutputLen"]
        [::std::mem::offset_of!(CK_TLS_PRF_PARAMS, pulOutputLen) - 40usize];
};
impl Default for CK_TLS_PRF_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_TLS12_KEY_MAT_PARAMS {
    pub ulMacSizeInBits: CK_ULONG,
    pub ulKeySizeInBits: CK_ULONG,
    pub ulIVSizeInBits: CK_ULONG,
    pub bIsExport: CK_BBOOL,
    pub RandomInfo: CK_SSL3_RANDOM_DATA,
    pub pReturnedKeyMaterial: *mut CK_SSL3_KEY_MAT_OUT,
    pub prfHashMechanism: CK_MECHANISM_TYPE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_TLS12_KEY_MAT_PARAMS"][::std::mem::size_of::<CK_TLS12_KEY_MAT_PARAMS>() - 80usize];
    ["Alignment of CK_TLS12_KEY_MAT_PARAMS"]
        [::std::mem::align_of::<CK_TLS12_KEY_MAT_PARAMS>() - 8usize];
    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::ulMacSizeInBits"]
        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, ulMacSizeInBits) - 0usize];
    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::ulKeySizeInBits"]
        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, ulKeySizeInBits) - 8usize];
    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::ulIVSizeInBits"]
        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, ulIVSizeInBits) - 16usize];
    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::bIsExport"]
        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, bIsExport) - 24usize];
    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::RandomInfo"]
        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, RandomInfo) - 32usize];
    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::pReturnedKeyMaterial"]
        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, pReturnedKeyMaterial) - 64usize];
    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::prfHashMechanism"]
        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, prfHashMechanism) - 72usize];
};
impl Default for CK_TLS12_KEY_MAT_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_TLS12_MASTER_KEY_DERIVE_PARAMS {
    pub RandomInfo: CK_SSL3_RANDOM_DATA,
    pub pVersion: *mut CK_VERSION,
    pub prfHashMechanism: CK_MECHANISM_TYPE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_TLS12_MASTER_KEY_DERIVE_PARAMS"]
        [::std::mem::size_of::<CK_TLS12_MASTER_KEY_DERIVE_PARAMS>() - 48usize];
    ["Alignment of CK_TLS12_MASTER_KEY_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_TLS12_MASTER_KEY_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_TLS12_MASTER_KEY_DERIVE_PARAMS::RandomInfo"]
        [::std::mem::offset_of!(CK_TLS12_MASTER_KEY_DERIVE_PARAMS, RandomInfo) - 0usize];
    ["Offset of field: CK_TLS12_MASTER_KEY_DERIVE_PARAMS::pVersion"]
        [::std::mem::offset_of!(CK_TLS12_MASTER_KEY_DERIVE_PARAMS, pVersion) - 32usize];
    ["Offset of field: CK_TLS12_MASTER_KEY_DERIVE_PARAMS::prfHashMechanism"]
        [::std::mem::offset_of!(CK_TLS12_MASTER_KEY_DERIVE_PARAMS, prfHashMechanism) - 40usize];
};
impl Default for CK_TLS12_MASTER_KEY_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_WTLS_KEY_MAT_OUT {
    pub hMacSecret: CK_OBJECT_HANDLE,
    pub hKey: CK_OBJECT_HANDLE,
    pub pIV: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_WTLS_KEY_MAT_OUT"][::std::mem::size_of::<CK_WTLS_KEY_MAT_OUT>() - 24usize];
    ["Alignment of CK_WTLS_KEY_MAT_OUT"][::std::mem::align_of::<CK_WTLS_KEY_MAT_OUT>() - 8usize];
    ["Offset of field: CK_WTLS_KEY_MAT_OUT::hMacSecret"]
        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_OUT, hMacSecret) - 0usize];
    ["Offset of field: CK_WTLS_KEY_MAT_OUT::hKey"]
        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_OUT, hKey) - 8usize];
    ["Offset of field: CK_WTLS_KEY_MAT_OUT::pIV"]
        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_OUT, pIV) - 16usize];
};
impl Default for CK_WTLS_KEY_MAT_OUT {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_WTLS_RANDOM_DATA {
    pub pClientRandom: *mut CK_BYTE,
    pub ulClientRandomLen: CK_ULONG,
    pub pServerRandom: *mut CK_BYTE,
    pub ulServerRandomLen: CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_WTLS_RANDOM_DATA"][::std::mem::size_of::<CK_WTLS_RANDOM_DATA>() - 32usize];
    ["Alignment of CK_WTLS_RANDOM_DATA"][::std::mem::align_of::<CK_WTLS_RANDOM_DATA>() - 8usize];
    ["Offset of field: CK_WTLS_RANDOM_DATA::pClientRandom"]
        [::std::mem::offset_of!(CK_WTLS_RANDOM_DATA, pClientRandom) - 0usize];
    ["Offset of field: CK_WTLS_RANDOM_DATA::ulClientRandomLen"]
        [::std::mem::offset_of!(CK_WTLS_RANDOM_DATA, ulClientRandomLen) - 8usize];
    ["Offset of field: CK_WTLS_RANDOM_DATA::pServerRandom"]
        [::std::mem::offset_of!(CK_WTLS_RANDOM_DATA, pServerRandom) - 16usize];
    ["Offset of field: CK_WTLS_RANDOM_DATA::ulServerRandomLen"]
        [::std::mem::offset_of!(CK_WTLS_RANDOM_DATA, ulServerRandomLen) - 24usize];
};
impl Default for CK_WTLS_RANDOM_DATA {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_WTLS_KEY_MAT_PARAMS {
    pub DigestMechanism: CK_MECHANISM_TYPE,
    pub ulMacSizeInBits: CK_ULONG,
    pub ulKeySizeInBits: CK_ULONG,
    pub ulIVSizeInBits: CK_ULONG,
    pub ulSequenceNumber: CK_ULONG,
    pub bIsExport: CK_BBOOL,
    pub RandomInfo: CK_WTLS_RANDOM_DATA,
    pub pReturnedKeyMaterial: *mut CK_WTLS_KEY_MAT_OUT,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_WTLS_KEY_MAT_PARAMS"][::std::mem::size_of::<CK_WTLS_KEY_MAT_PARAMS>() - 88usize];
    ["Alignment of CK_WTLS_KEY_MAT_PARAMS"]
        [::std::mem::align_of::<CK_WTLS_KEY_MAT_PARAMS>() - 8usize];
    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::DigestMechanism"]
        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, DigestMechanism) - 0usize];
    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::ulMacSizeInBits"]
        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, ulMacSizeInBits) - 8usize];
    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::ulKeySizeInBits"]
        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, ulKeySizeInBits) - 16usize];
    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::ulIVSizeInBits"]
        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, ulIVSizeInBits) - 24usize];
    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::ulSequenceNumber"]
        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, ulSequenceNumber) - 32usize];
    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::bIsExport"]
        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, bIsExport) - 40usize];
    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::RandomInfo"]
        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, RandomInfo) - 48usize];
    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::pReturnedKeyMaterial"]
        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, pReturnedKeyMaterial) - 80usize];
};
impl Default for CK_WTLS_KEY_MAT_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_WTLS_MASTER_KEY_DERIVE_PARAMS {
    pub DigestMechanism: CK_MECHANISM_TYPE,
    pub RandomInfo: CK_WTLS_RANDOM_DATA,
    pub pVersion: *mut CK_BYTE,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_WTLS_MASTER_KEY_DERIVE_PARAMS"]
        [::std::mem::size_of::<CK_WTLS_MASTER_KEY_DERIVE_PARAMS>() - 48usize];
    ["Alignment of CK_WTLS_MASTER_KEY_DERIVE_PARAMS"]
        [::std::mem::align_of::<CK_WTLS_MASTER_KEY_DERIVE_PARAMS>() - 8usize];
    ["Offset of field: CK_WTLS_MASTER_KEY_DERIVE_PARAMS::DigestMechanism"]
        [::std::mem::offset_of!(CK_WTLS_MASTER_KEY_DERIVE_PARAMS, DigestMechanism) - 0usize];
    ["Offset of field: CK_WTLS_MASTER_KEY_DERIVE_PARAMS::RandomInfo"]
        [::std::mem::offset_of!(CK_WTLS_MASTER_KEY_DERIVE_PARAMS, RandomInfo) - 8usize];
    ["Offset of field: CK_WTLS_MASTER_KEY_DERIVE_PARAMS::pVersion"]
        [::std::mem::offset_of!(CK_WTLS_MASTER_KEY_DERIVE_PARAMS, pVersion) - 40usize];
};
impl Default for CK_WTLS_MASTER_KEY_DERIVE_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CK_WTLS_PRF_PARAMS {
    pub DigestMechanism: CK_MECHANISM_TYPE,
    pub pSeed: *mut CK_BYTE,
    pub ulSeedLen: CK_ULONG,
    pub pLabel: *mut CK_BYTE,
    pub ulLabelLen: CK_ULONG,
    pub pOutput: *mut CK_BYTE,
    pub pulOutputLen: *mut CK_ULONG,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_WTLS_PRF_PARAMS"][::std::mem::size_of::<CK_WTLS_PRF_PARAMS>() - 56usize];
    ["Alignment of CK_WTLS_PRF_PARAMS"][::std::mem::align_of::<CK_WTLS_PRF_PARAMS>() - 8usize];
    ["Offset of field: CK_WTLS_PRF_PARAMS::DigestMechanism"]
        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, DigestMechanism) - 0usize];
    ["Offset of field: CK_WTLS_PRF_PARAMS::pSeed"]
        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, pSeed) - 8usize];
    ["Offset of field: CK_WTLS_PRF_PARAMS::ulSeedLen"]
        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, ulSeedLen) - 16usize];
    ["Offset of field: CK_WTLS_PRF_PARAMS::pLabel"]
        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, pLabel) - 24usize];
    ["Offset of field: CK_WTLS_PRF_PARAMS::ulLabelLen"]
        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, ulLabelLen) - 32usize];
    ["Offset of field: CK_WTLS_PRF_PARAMS::pOutput"]
        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, pOutput) - 40usize];
    ["Offset of field: CK_WTLS_PRF_PARAMS::pulOutputLen"]
        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, pulOutputLen) - 48usize];
};
impl Default for CK_WTLS_PRF_PARAMS {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type CK_C_Initialize =
    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> CK_RV>;
pub type CK_C_Finalize =
    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> CK_RV>;
pub type CK_C_GetInfo = ::std::option::Option<unsafe extern "C" fn(arg1: *mut CK_INFO) -> CK_RV>;
pub type CK_C_GetFunctionList =
    ::std::option::Option<unsafe extern "C" fn(arg1: *mut *mut CK_FUNCTION_LIST) -> CK_RV>;
pub type CK_C_GetSlotList = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_BBOOL, arg2: *mut CK_SLOT_ID, arg3: *mut CK_ULONG) -> CK_RV,
>;
pub type CK_C_GetSlotInfo =
    ::std::option::Option<unsafe extern "C" fn(arg1: CK_SLOT_ID, arg2: *mut CK_SLOT_INFO) -> CK_RV>;
pub type CK_C_GetTokenInfo = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SLOT_ID, arg2: *mut CK_TOKEN_INFO) -> CK_RV,
>;
pub type CK_C_GetMechanismList = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SLOT_ID,
        arg2: *mut CK_MECHANISM_TYPE,
        arg3: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_GetMechanismInfo = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SLOT_ID,
        arg2: CK_MECHANISM_TYPE,
        arg3: *mut CK_MECHANISM_INFO,
    ) -> CK_RV,
>;
pub type CK_C_InitToken = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SLOT_ID,
        arg2: *mut CK_UTF8CHAR,
        arg3: CK_ULONG,
        arg4: *mut CK_UTF8CHAR,
    ) -> CK_RV,
>;
pub type CK_C_InitPIN = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_UTF8CHAR, arg3: CK_ULONG) -> CK_RV,
>;
pub type CK_C_SetPIN = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_UTF8CHAR,
        arg3: CK_ULONG,
        arg4: *mut CK_UTF8CHAR,
        arg5: CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_OpenSession = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SLOT_ID,
        arg2: CK_FLAGS,
        arg3: *mut ::std::os::raw::c_void,
        arg4: CK_NOTIFY,
        arg5: *mut CK_SESSION_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_CloseSession =
    ::std::option::Option<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV>;
pub type CK_C_CloseAllSessions =
    ::std::option::Option<unsafe extern "C" fn(arg1: CK_SLOT_ID) -> CK_RV>;
pub type CK_C_GetSessionInfo = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_SESSION_INFO) -> CK_RV,
>;
pub type CK_C_GetOperationState = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: *mut CK_ULONG) -> CK_RV,
>;
pub type CK_C_SetOperationState = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: CK_OBJECT_HANDLE,
        arg5: CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_Login = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: CK_USER_TYPE,
        arg3: *mut CK_UTF8CHAR,
        arg4: CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_Logout =
    ::std::option::Option<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV>;
pub type CK_C_CreateObject = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_ATTRIBUTE,
        arg3: CK_ULONG,
        arg4: *mut CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_CopyObject = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: CK_OBJECT_HANDLE,
        arg3: *mut CK_ATTRIBUTE,
        arg4: CK_ULONG,
        arg5: *mut CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_DestroyObject = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: CK_OBJECT_HANDLE) -> CK_RV,
>;
pub type CK_C_GetObjectSize = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: CK_OBJECT_HANDLE,
        arg3: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_GetAttributeValue = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: CK_OBJECT_HANDLE,
        arg3: *mut CK_ATTRIBUTE,
        arg4: CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_SetAttributeValue = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: CK_OBJECT_HANDLE,
        arg3: *mut CK_ATTRIBUTE,
        arg4: CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_FindObjectsInit = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_ATTRIBUTE, arg3: CK_ULONG) -> CK_RV,
>;
pub type CK_C_FindObjects = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_OBJECT_HANDLE,
        arg3: CK_ULONG,
        arg4: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_FindObjectsFinal =
    ::std::option::Option<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV>;
pub type CK_C_EncryptInit = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_Encrypt = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_EncryptUpdate = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_EncryptFinal = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: *mut CK_ULONG) -> CK_RV,
>;
pub type CK_C_DecryptInit = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_Decrypt = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_DecryptUpdate = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_DecryptFinal = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: *mut CK_ULONG) -> CK_RV,
>;
pub type CK_C_DigestInit = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_MECHANISM) -> CK_RV,
>;
pub type CK_C_Digest = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_DigestUpdate = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV,
>;
pub type CK_C_DigestKey = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: CK_OBJECT_HANDLE) -> CK_RV,
>;
pub type CK_C_DigestFinal = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: *mut CK_ULONG) -> CK_RV,
>;
pub type CK_C_SignInit = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_Sign = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_SignUpdate = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV,
>;
pub type CK_C_SignFinal = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: *mut CK_ULONG) -> CK_RV,
>;
pub type CK_C_SignRecoverInit = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_SignRecover = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_VerifyInit = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_Verify = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_VerifyUpdate = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV,
>;
pub type CK_C_VerifyFinal = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV,
>;
pub type CK_C_VerifyRecoverInit = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_VerifyRecover = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_DigestEncryptUpdate = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_DecryptDigestUpdate = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_SignEncryptUpdate = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_DecryptVerifyUpdate = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_GenerateKey = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: *mut CK_ATTRIBUTE,
        arg4: CK_ULONG,
        arg5: *mut CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_GenerateKeyPair = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: *mut CK_ATTRIBUTE,
        arg4: CK_ULONG,
        arg5: *mut CK_ATTRIBUTE,
        arg6: CK_ULONG,
        arg7: *mut CK_OBJECT_HANDLE,
        arg8: *mut CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_WrapKey = ::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,
    ) -> CK_RV,
>;
pub type CK_C_UnwrapKey = ::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_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_DeriveKey = ::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_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_SeedRandom = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV,
>;
pub type CK_C_GenerateRandom = ::std::option::Option<
    unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV,
>;
pub type CK_C_GetFunctionStatus =
    ::std::option::Option<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV>;
pub type CK_C_CancelFunction =
    ::std::option::Option<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV>;
pub type CK_C_WaitForSlotEvent = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_FLAGS,
        arg2: *mut CK_SLOT_ID,
        arg3: *mut ::std::os::raw::c_void,
    ) -> CK_RV,
>;
pub type CK_C_GetInterfaceList = ::std::option::Option<
    unsafe extern "C" fn(arg1: *mut CK_INTERFACE, arg2: *mut CK_ULONG) -> CK_RV,
>;
pub type CK_C_GetInterface = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *mut CK_UTF8CHAR,
        arg2: *mut CK_VERSION,
        arg3: *mut *mut CK_INTERFACE,
        arg4: CK_FLAGS,
    ) -> CK_RV,
>;
pub type CK_C_LoginUser = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: CK_USER_TYPE,
        arg3: *mut CK_UTF8CHAR,
        arg4: CK_ULONG,
        arg5: *mut CK_UTF8CHAR,
        arg6: CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_SessionCancel =
    ::std::option::Option<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: CK_FLAGS) -> CK_RV>;
pub type CK_C_MessageEncryptInit = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_EncryptMessage = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: CK_ULONG,
        arg8: *mut CK_BYTE,
        arg9: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_EncryptMessageBegin = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_EncryptMessageNext = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: *mut CK_ULONG,
        arg8: CK_FLAGS,
    ) -> CK_RV,
>;
pub type CK_C_MessageEncryptFinal =
    ::std::option::Option<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV>;
pub type CK_C_MessageDecryptInit = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_DecryptMessage = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: CK_ULONG,
        arg8: *mut CK_BYTE,
        arg9: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_DecryptMessageBegin = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_DecryptMessageNext = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: *mut CK_ULONG,
        arg8: CK_FLAGS,
    ) -> CK_RV,
>;
pub type CK_C_MessageDecryptFinal =
    ::std::option::Option<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV>;
pub type CK_C_MessageSignInit = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_SignMessage = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_SignMessageBegin = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_SignMessageNext = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: *mut CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_MessageSignFinal =
    ::std::option::Option<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV>;
pub type CK_C_MessageVerifyInit = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV,
>;
pub type CK_C_VerifyMessage = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_VerifyMessageBegin = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_VerifyMessageNext = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: CK_ULONG,
    ) -> CK_RV,
>;
pub type CK_C_MessageVerifyFinal =
    ::std::option::Option<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV>;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_FUNCTION_LIST_3_0 {
    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,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_FUNCTION_LIST_3_0"][::std::mem::size_of::<CK_FUNCTION_LIST_3_0>() - 744usize];
    ["Alignment of CK_FUNCTION_LIST_3_0"][::std::mem::align_of::<CK_FUNCTION_LIST_3_0>() - 8usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::version"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, version) - 0usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Initialize"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Initialize) - 8usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Finalize"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Finalize) - 16usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetInfo"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetInfo) - 24usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetFunctionList"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetFunctionList) - 32usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetSlotList"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetSlotList) - 40usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetSlotInfo"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetSlotInfo) - 48usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetTokenInfo"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetTokenInfo) - 56usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetMechanismList"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetMechanismList) - 64usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetMechanismInfo"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetMechanismInfo) - 72usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_InitToken"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_InitToken) - 80usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_InitPIN"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_InitPIN) - 88usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SetPIN"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SetPIN) - 96usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_OpenSession"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_OpenSession) - 104usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_CloseSession"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_CloseSession) - 112usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_CloseAllSessions"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_CloseAllSessions) - 120usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetSessionInfo"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetSessionInfo) - 128usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetOperationState"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetOperationState) - 136usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SetOperationState"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SetOperationState) - 144usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Login"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Login) - 152usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Logout"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Logout) - 160usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_CreateObject"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_CreateObject) - 168usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_CopyObject"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_CopyObject) - 176usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DestroyObject"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DestroyObject) - 184usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetObjectSize"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetObjectSize) - 192usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetAttributeValue"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetAttributeValue) - 200usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SetAttributeValue"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SetAttributeValue) - 208usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_FindObjectsInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_FindObjectsInit) - 216usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_FindObjects"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_FindObjects) - 224usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_FindObjectsFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_FindObjectsFinal) - 232usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_EncryptInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_EncryptInit) - 240usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Encrypt"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Encrypt) - 248usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_EncryptUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_EncryptUpdate) - 256usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_EncryptFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_EncryptFinal) - 264usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptInit) - 272usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Decrypt"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Decrypt) - 280usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptUpdate) - 288usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptFinal) - 296usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DigestInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DigestInit) - 304usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Digest"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Digest) - 312usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DigestUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DigestUpdate) - 320usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DigestKey"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DigestKey) - 328usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DigestFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DigestFinal) - 336usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignInit) - 344usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Sign"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Sign) - 352usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignUpdate) - 360usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignFinal) - 368usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignRecoverInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignRecoverInit) - 376usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignRecover"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignRecover) - 384usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyInit) - 392usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Verify"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Verify) - 400usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyUpdate) - 408usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyFinal) - 416usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyRecoverInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyRecoverInit) - 424usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyRecover"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyRecover) - 432usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DigestEncryptUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DigestEncryptUpdate) - 440usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptDigestUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptDigestUpdate) - 448usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignEncryptUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignEncryptUpdate) - 456usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptVerifyUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptVerifyUpdate) - 464usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GenerateKey"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GenerateKey) - 472usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GenerateKeyPair"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GenerateKeyPair) - 480usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_WrapKey"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_WrapKey) - 488usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_UnwrapKey"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_UnwrapKey) - 496usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DeriveKey"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DeriveKey) - 504usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SeedRandom"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SeedRandom) - 512usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GenerateRandom"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GenerateRandom) - 520usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetFunctionStatus"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetFunctionStatus) - 528usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_CancelFunction"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_CancelFunction) - 536usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_WaitForSlotEvent"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_WaitForSlotEvent) - 544usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetInterfaceList"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetInterfaceList) - 552usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetInterface"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetInterface) - 560usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_LoginUser"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_LoginUser) - 568usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SessionCancel"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SessionCancel) - 576usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageEncryptInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageEncryptInit) - 584usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_EncryptMessage"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_EncryptMessage) - 592usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_EncryptMessageBegin"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_EncryptMessageBegin) - 600usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_EncryptMessageNext"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_EncryptMessageNext) - 608usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageEncryptFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageEncryptFinal) - 616usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageDecryptInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageDecryptInit) - 624usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptMessage"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptMessage) - 632usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptMessageBegin"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptMessageBegin) - 640usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptMessageNext"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptMessageNext) - 648usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageDecryptFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageDecryptFinal) - 656usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageSignInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageSignInit) - 664usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignMessage"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignMessage) - 672usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignMessageBegin"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignMessageBegin) - 680usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignMessageNext"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignMessageNext) - 688usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageSignFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageSignFinal) - 696usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageVerifyInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageVerifyInit) - 704usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyMessage"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyMessage) - 712usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyMessageBegin"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyMessageBegin) - 720usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyMessageNext"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyMessageNext) - 728usize];
    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageVerifyFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageVerifyFinal) - 736usize];
};
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CK_FUNCTION_LIST {
    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,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CK_FUNCTION_LIST"][::std::mem::size_of::<CK_FUNCTION_LIST>() - 552usize];
    ["Alignment of CK_FUNCTION_LIST"][::std::mem::align_of::<CK_FUNCTION_LIST>() - 8usize];
    ["Offset of field: CK_FUNCTION_LIST::version"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, version) - 0usize];
    ["Offset of field: CK_FUNCTION_LIST::C_Initialize"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Initialize) - 8usize];
    ["Offset of field: CK_FUNCTION_LIST::C_Finalize"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Finalize) - 16usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GetInfo"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetInfo) - 24usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GetFunctionList"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetFunctionList) - 32usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GetSlotList"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetSlotList) - 40usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GetSlotInfo"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetSlotInfo) - 48usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GetTokenInfo"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetTokenInfo) - 56usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GetMechanismList"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetMechanismList) - 64usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GetMechanismInfo"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetMechanismInfo) - 72usize];
    ["Offset of field: CK_FUNCTION_LIST::C_InitToken"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_InitToken) - 80usize];
    ["Offset of field: CK_FUNCTION_LIST::C_InitPIN"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_InitPIN) - 88usize];
    ["Offset of field: CK_FUNCTION_LIST::C_SetPIN"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SetPIN) - 96usize];
    ["Offset of field: CK_FUNCTION_LIST::C_OpenSession"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_OpenSession) - 104usize];
    ["Offset of field: CK_FUNCTION_LIST::C_CloseSession"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_CloseSession) - 112usize];
    ["Offset of field: CK_FUNCTION_LIST::C_CloseAllSessions"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_CloseAllSessions) - 120usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GetSessionInfo"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetSessionInfo) - 128usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GetOperationState"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetOperationState) - 136usize];
    ["Offset of field: CK_FUNCTION_LIST::C_SetOperationState"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SetOperationState) - 144usize];
    ["Offset of field: CK_FUNCTION_LIST::C_Login"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Login) - 152usize];
    ["Offset of field: CK_FUNCTION_LIST::C_Logout"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Logout) - 160usize];
    ["Offset of field: CK_FUNCTION_LIST::C_CreateObject"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_CreateObject) - 168usize];
    ["Offset of field: CK_FUNCTION_LIST::C_CopyObject"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_CopyObject) - 176usize];
    ["Offset of field: CK_FUNCTION_LIST::C_DestroyObject"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DestroyObject) - 184usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GetObjectSize"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetObjectSize) - 192usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GetAttributeValue"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetAttributeValue) - 200usize];
    ["Offset of field: CK_FUNCTION_LIST::C_SetAttributeValue"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SetAttributeValue) - 208usize];
    ["Offset of field: CK_FUNCTION_LIST::C_FindObjectsInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_FindObjectsInit) - 216usize];
    ["Offset of field: CK_FUNCTION_LIST::C_FindObjects"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_FindObjects) - 224usize];
    ["Offset of field: CK_FUNCTION_LIST::C_FindObjectsFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_FindObjectsFinal) - 232usize];
    ["Offset of field: CK_FUNCTION_LIST::C_EncryptInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_EncryptInit) - 240usize];
    ["Offset of field: CK_FUNCTION_LIST::C_Encrypt"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Encrypt) - 248usize];
    ["Offset of field: CK_FUNCTION_LIST::C_EncryptUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_EncryptUpdate) - 256usize];
    ["Offset of field: CK_FUNCTION_LIST::C_EncryptFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_EncryptFinal) - 264usize];
    ["Offset of field: CK_FUNCTION_LIST::C_DecryptInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DecryptInit) - 272usize];
    ["Offset of field: CK_FUNCTION_LIST::C_Decrypt"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Decrypt) - 280usize];
    ["Offset of field: CK_FUNCTION_LIST::C_DecryptUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DecryptUpdate) - 288usize];
    ["Offset of field: CK_FUNCTION_LIST::C_DecryptFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DecryptFinal) - 296usize];
    ["Offset of field: CK_FUNCTION_LIST::C_DigestInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DigestInit) - 304usize];
    ["Offset of field: CK_FUNCTION_LIST::C_Digest"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Digest) - 312usize];
    ["Offset of field: CK_FUNCTION_LIST::C_DigestUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DigestUpdate) - 320usize];
    ["Offset of field: CK_FUNCTION_LIST::C_DigestKey"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DigestKey) - 328usize];
    ["Offset of field: CK_FUNCTION_LIST::C_DigestFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DigestFinal) - 336usize];
    ["Offset of field: CK_FUNCTION_LIST::C_SignInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SignInit) - 344usize];
    ["Offset of field: CK_FUNCTION_LIST::C_Sign"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Sign) - 352usize];
    ["Offset of field: CK_FUNCTION_LIST::C_SignUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SignUpdate) - 360usize];
    ["Offset of field: CK_FUNCTION_LIST::C_SignFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SignFinal) - 368usize];
    ["Offset of field: CK_FUNCTION_LIST::C_SignRecoverInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SignRecoverInit) - 376usize];
    ["Offset of field: CK_FUNCTION_LIST::C_SignRecover"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SignRecover) - 384usize];
    ["Offset of field: CK_FUNCTION_LIST::C_VerifyInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_VerifyInit) - 392usize];
    ["Offset of field: CK_FUNCTION_LIST::C_Verify"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Verify) - 400usize];
    ["Offset of field: CK_FUNCTION_LIST::C_VerifyUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_VerifyUpdate) - 408usize];
    ["Offset of field: CK_FUNCTION_LIST::C_VerifyFinal"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_VerifyFinal) - 416usize];
    ["Offset of field: CK_FUNCTION_LIST::C_VerifyRecoverInit"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_VerifyRecoverInit) - 424usize];
    ["Offset of field: CK_FUNCTION_LIST::C_VerifyRecover"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_VerifyRecover) - 432usize];
    ["Offset of field: CK_FUNCTION_LIST::C_DigestEncryptUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DigestEncryptUpdate) - 440usize];
    ["Offset of field: CK_FUNCTION_LIST::C_DecryptDigestUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DecryptDigestUpdate) - 448usize];
    ["Offset of field: CK_FUNCTION_LIST::C_SignEncryptUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SignEncryptUpdate) - 456usize];
    ["Offset of field: CK_FUNCTION_LIST::C_DecryptVerifyUpdate"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DecryptVerifyUpdate) - 464usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GenerateKey"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GenerateKey) - 472usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GenerateKeyPair"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GenerateKeyPair) - 480usize];
    ["Offset of field: CK_FUNCTION_LIST::C_WrapKey"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_WrapKey) - 488usize];
    ["Offset of field: CK_FUNCTION_LIST::C_UnwrapKey"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_UnwrapKey) - 496usize];
    ["Offset of field: CK_FUNCTION_LIST::C_DeriveKey"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DeriveKey) - 504usize];
    ["Offset of field: CK_FUNCTION_LIST::C_SeedRandom"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SeedRandom) - 512usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GenerateRandom"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GenerateRandom) - 520usize];
    ["Offset of field: CK_FUNCTION_LIST::C_GetFunctionStatus"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetFunctionStatus) - 528usize];
    ["Offset of field: CK_FUNCTION_LIST::C_CancelFunction"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_CancelFunction) - 536usize];
    ["Offset of field: CK_FUNCTION_LIST::C_WaitForSlotEvent"]
        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_WaitForSlotEvent) - 544usize];
};
pub struct Pkcs11 {
    __library: ::libloading::Library,
    pub C_Initialize: Result<
        unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_Finalize: Result<
        unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GetInfo: Result<unsafe extern "C" fn(arg1: *mut CK_INFO) -> CK_RV, ::libloading::Error>,
    pub C_GetFunctionList: Result<
        unsafe extern "C" fn(arg1: *mut *mut CK_FUNCTION_LIST) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GetSlotList: Result<
        unsafe extern "C" fn(arg1: CK_BBOOL, arg2: *mut CK_SLOT_ID, arg3: *mut CK_ULONG) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GetSlotInfo: Result<
        unsafe extern "C" fn(arg1: CK_SLOT_ID, arg2: *mut CK_SLOT_INFO) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GetTokenInfo: Result<
        unsafe extern "C" fn(arg1: CK_SLOT_ID, arg2: *mut CK_TOKEN_INFO) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GetMechanismList: Result<
        unsafe extern "C" fn(
            arg1: CK_SLOT_ID,
            arg2: *mut CK_MECHANISM_TYPE,
            arg3: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GetMechanismInfo: Result<
        unsafe extern "C" fn(
            arg1: CK_SLOT_ID,
            arg2: CK_MECHANISM_TYPE,
            arg3: *mut CK_MECHANISM_INFO,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_InitToken: Result<
        unsafe extern "C" fn(
            arg1: CK_SLOT_ID,
            arg2: *mut CK_UTF8CHAR,
            arg3: CK_ULONG,
            arg4: *mut CK_UTF8CHAR,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_InitPIN: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_UTF8CHAR,
            arg3: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SetPIN: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_UTF8CHAR,
            arg3: CK_ULONG,
            arg4: *mut CK_UTF8CHAR,
            arg5: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_OpenSession: Result<
        unsafe extern "C" fn(
            arg1: CK_SLOT_ID,
            arg2: CK_FLAGS,
            arg3: *mut ::std::os::raw::c_void,
            arg4: CK_NOTIFY,
            arg5: *mut CK_SESSION_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_CloseSession:
        Result<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV, ::libloading::Error>,
    pub C_CloseAllSessions:
        Result<unsafe extern "C" fn(arg1: CK_SLOT_ID) -> CK_RV, ::libloading::Error>,
    pub C_GetSessionInfo: Result<
        unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_SESSION_INFO) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GetOperationState: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SetOperationState: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: CK_OBJECT_HANDLE,
            arg5: CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_Login: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: CK_USER_TYPE,
            arg3: *mut CK_UTF8CHAR,
            arg4: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_Logout:
        Result<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV, ::libloading::Error>,
    pub C_CreateObject: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_ATTRIBUTE,
            arg3: CK_ULONG,
            arg4: *mut CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_CopyObject: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: CK_OBJECT_HANDLE,
            arg3: *mut CK_ATTRIBUTE,
            arg4: CK_ULONG,
            arg5: *mut CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DestroyObject: Result<
        unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: CK_OBJECT_HANDLE) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GetObjectSize: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: CK_OBJECT_HANDLE,
            arg3: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GetAttributeValue: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: CK_OBJECT_HANDLE,
            arg3: *mut CK_ATTRIBUTE,
            arg4: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SetAttributeValue: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: CK_OBJECT_HANDLE,
            arg3: *mut CK_ATTRIBUTE,
            arg4: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_FindObjectsInit: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_ATTRIBUTE,
            arg3: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_FindObjects: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_OBJECT_HANDLE,
            arg3: CK_ULONG,
            arg4: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_FindObjectsFinal:
        Result<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV, ::libloading::Error>,
    pub C_EncryptInit: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_MECHANISM,
            arg3: CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_Encrypt: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_EncryptUpdate: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_EncryptFinal: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DecryptInit: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_MECHANISM,
            arg3: CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_Decrypt: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DecryptUpdate: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DecryptFinal: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DigestInit: Result<
        unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_MECHANISM) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_Digest: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DigestUpdate: Result<
        unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DigestKey: Result<
        unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: CK_OBJECT_HANDLE) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DigestFinal: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SignInit: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_MECHANISM,
            arg3: CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_Sign: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SignUpdate: Result<
        unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SignFinal: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SignRecoverInit: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_MECHANISM,
            arg3: CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SignRecover: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_VerifyInit: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_MECHANISM,
            arg3: CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_Verify: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_VerifyUpdate: Result<
        unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_VerifyFinal: Result<
        unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_VerifyRecoverInit: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_MECHANISM,
            arg3: CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_VerifyRecover: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DigestEncryptUpdate: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DecryptDigestUpdate: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SignEncryptUpdate: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DecryptVerifyUpdate: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_BYTE,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GenerateKey: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_MECHANISM,
            arg3: *mut CK_ATTRIBUTE,
            arg4: CK_ULONG,
            arg5: *mut CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GenerateKeyPair: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_MECHANISM,
            arg3: *mut CK_ATTRIBUTE,
            arg4: CK_ULONG,
            arg5: *mut CK_ATTRIBUTE,
            arg6: CK_ULONG,
            arg7: *mut CK_OBJECT_HANDLE,
            arg8: *mut CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_WrapKey: 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,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_UnwrapKey: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_MECHANISM,
            arg3: CK_OBJECT_HANDLE,
            arg4: *mut CK_BYTE,
            arg5: *mut CK_ULONG,
            arg6: *mut CK_ATTRIBUTE,
            arg7: CK_ULONG,
            arg8: *mut CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DeriveKey: 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_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SeedRandom: Result<
        unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GenerateRandom: Result<
        unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: *mut CK_BYTE, arg3: CK_ULONG) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GetFunctionStatus:
        Result<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV, ::libloading::Error>,
    pub C_CancelFunction:
        Result<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV, ::libloading::Error>,
    pub C_WaitForSlotEvent: Result<
        unsafe extern "C" fn(
            arg1: CK_FLAGS,
            arg2: *mut CK_SLOT_ID,
            arg3: *mut ::std::os::raw::c_void,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GetInterfaceList: Result<
        unsafe extern "C" fn(arg1: *mut CK_INTERFACE, arg2: *mut CK_ULONG) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_GetInterface: Result<
        unsafe extern "C" fn(
            arg1: *mut CK_UTF8CHAR,
            arg2: *mut CK_VERSION,
            arg3: *mut *mut CK_INTERFACE,
            arg4: CK_FLAGS,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_LoginUser: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: CK_USER_TYPE,
            arg3: *mut CK_UTF8CHAR,
            arg4: CK_ULONG,
            arg5: *mut CK_UTF8CHAR,
            arg6: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SessionCancel: Result<
        unsafe extern "C" fn(arg1: CK_SESSION_HANDLE, arg2: CK_FLAGS) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_MessageEncryptInit: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_MECHANISM,
            arg3: CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_EncryptMessage: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut ::std::os::raw::c_void,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: CK_ULONG,
            arg6: *mut CK_BYTE,
            arg7: CK_ULONG,
            arg8: *mut CK_BYTE,
            arg9: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_EncryptMessageBegin: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut ::std::os::raw::c_void,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_EncryptMessageNext: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut ::std::os::raw::c_void,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: CK_ULONG,
            arg6: *mut CK_BYTE,
            arg7: *mut CK_ULONG,
            arg8: CK_FLAGS,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_MessageEncryptFinal:
        Result<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV, ::libloading::Error>,
    pub C_MessageDecryptInit: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_MECHANISM,
            arg3: CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DecryptMessage: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut ::std::os::raw::c_void,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: CK_ULONG,
            arg6: *mut CK_BYTE,
            arg7: CK_ULONG,
            arg8: *mut CK_BYTE,
            arg9: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DecryptMessageBegin: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut ::std::os::raw::c_void,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_DecryptMessageNext: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut ::std::os::raw::c_void,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: CK_ULONG,
            arg6: *mut CK_BYTE,
            arg7: *mut CK_ULONG,
            arg8: CK_FLAGS,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_MessageDecryptFinal:
        Result<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV, ::libloading::Error>,
    pub C_MessageSignInit: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_MECHANISM,
            arg3: CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SignMessage: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut ::std::os::raw::c_void,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: CK_ULONG,
            arg6: *mut CK_BYTE,
            arg7: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SignMessageBegin: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut ::std::os::raw::c_void,
            arg3: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_SignMessageNext: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut ::std::os::raw::c_void,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: CK_ULONG,
            arg6: *mut CK_BYTE,
            arg7: *mut CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_MessageSignFinal:
        Result<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV, ::libloading::Error>,
    pub C_MessageVerifyInit: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut CK_MECHANISM,
            arg3: CK_OBJECT_HANDLE,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_VerifyMessage: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut ::std::os::raw::c_void,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: CK_ULONG,
            arg6: *mut CK_BYTE,
            arg7: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_VerifyMessageBegin: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut ::std::os::raw::c_void,
            arg3: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_VerifyMessageNext: Result<
        unsafe extern "C" fn(
            arg1: CK_SESSION_HANDLE,
            arg2: *mut ::std::os::raw::c_void,
            arg3: CK_ULONG,
            arg4: *mut CK_BYTE,
            arg5: CK_ULONG,
            arg6: *mut CK_BYTE,
            arg7: CK_ULONG,
        ) -> CK_RV,
        ::libloading::Error,
    >,
    pub C_MessageVerifyFinal:
        Result<unsafe extern "C" fn(arg1: CK_SESSION_HANDLE) -> CK_RV, ::libloading::Error>,
}
impl Pkcs11 {
    pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
    where
        P: AsRef<::std::ffi::OsStr>,
    {
        let library = ::libloading::Library::new(path)?;
        Self::from_library(library)
    }
    pub unsafe fn from_library<L>(library: L) -> Result<Self, ::libloading::Error>
    where
        L: Into<::libloading::Library>,
    {
        let __library = library.into();
        let C_Initialize = __library.get(b"C_Initialize\0").map(|sym| *sym);
        let C_Finalize = __library.get(b"C_Finalize\0").map(|sym| *sym);
        let C_GetInfo = __library.get(b"C_GetInfo\0").map(|sym| *sym);
        let C_GetFunctionList = __library.get(b"C_GetFunctionList\0").map(|sym| *sym);
        let C_GetSlotList = __library.get(b"C_GetSlotList\0").map(|sym| *sym);
        let C_GetSlotInfo = __library.get(b"C_GetSlotInfo\0").map(|sym| *sym);
        let C_GetTokenInfo = __library.get(b"C_GetTokenInfo\0").map(|sym| *sym);
        let C_GetMechanismList = __library.get(b"C_GetMechanismList\0").map(|sym| *sym);
        let C_GetMechanismInfo = __library.get(b"C_GetMechanismInfo\0").map(|sym| *sym);
        let C_InitToken = __library.get(b"C_InitToken\0").map(|sym| *sym);
        let C_InitPIN = __library.get(b"C_InitPIN\0").map(|sym| *sym);
        let C_SetPIN = __library.get(b"C_SetPIN\0").map(|sym| *sym);
        let C_OpenSession = __library.get(b"C_OpenSession\0").map(|sym| *sym);
        let C_CloseSession = __library.get(b"C_CloseSession\0").map(|sym| *sym);
        let C_CloseAllSessions = __library.get(b"C_CloseAllSessions\0").map(|sym| *sym);
        let C_GetSessionInfo = __library.get(b"C_GetSessionInfo\0").map(|sym| *sym);
        let C_GetOperationState = __library.get(b"C_GetOperationState\0").map(|sym| *sym);
        let C_SetOperationState = __library.get(b"C_SetOperationState\0").map(|sym| *sym);
        let C_Login = __library.get(b"C_Login\0").map(|sym| *sym);
        let C_Logout = __library.get(b"C_Logout\0").map(|sym| *sym);
        let C_CreateObject = __library.get(b"C_CreateObject\0").map(|sym| *sym);
        let C_CopyObject = __library.get(b"C_CopyObject\0").map(|sym| *sym);
        let C_DestroyObject = __library.get(b"C_DestroyObject\0").map(|sym| *sym);
        let C_GetObjectSize = __library.get(b"C_GetObjectSize\0").map(|sym| *sym);
        let C_GetAttributeValue = __library.get(b"C_GetAttributeValue\0").map(|sym| *sym);
        let C_SetAttributeValue = __library.get(b"C_SetAttributeValue\0").map(|sym| *sym);
        let C_FindObjectsInit = __library.get(b"C_FindObjectsInit\0").map(|sym| *sym);
        let C_FindObjects = __library.get(b"C_FindObjects\0").map(|sym| *sym);
        let C_FindObjectsFinal = __library.get(b"C_FindObjectsFinal\0").map(|sym| *sym);
        let C_EncryptInit = __library.get(b"C_EncryptInit\0").map(|sym| *sym);
        let C_Encrypt = __library.get(b"C_Encrypt\0").map(|sym| *sym);
        let C_EncryptUpdate = __library.get(b"C_EncryptUpdate\0").map(|sym| *sym);
        let C_EncryptFinal = __library.get(b"C_EncryptFinal\0").map(|sym| *sym);
        let C_DecryptInit = __library.get(b"C_DecryptInit\0").map(|sym| *sym);
        let C_Decrypt = __library.get(b"C_Decrypt\0").map(|sym| *sym);
        let C_DecryptUpdate = __library.get(b"C_DecryptUpdate\0").map(|sym| *sym);
        let C_DecryptFinal = __library.get(b"C_DecryptFinal\0").map(|sym| *sym);
        let C_DigestInit = __library.get(b"C_DigestInit\0").map(|sym| *sym);
        let C_Digest = __library.get(b"C_Digest\0").map(|sym| *sym);
        let C_DigestUpdate = __library.get(b"C_DigestUpdate\0").map(|sym| *sym);
        let C_DigestKey = __library.get(b"C_DigestKey\0").map(|sym| *sym);
        let C_DigestFinal = __library.get(b"C_DigestFinal\0").map(|sym| *sym);
        let C_SignInit = __library.get(b"C_SignInit\0").map(|sym| *sym);
        let C_Sign = __library.get(b"C_Sign\0").map(|sym| *sym);
        let C_SignUpdate = __library.get(b"C_SignUpdate\0").map(|sym| *sym);
        let C_SignFinal = __library.get(b"C_SignFinal\0").map(|sym| *sym);
        let C_SignRecoverInit = __library.get(b"C_SignRecoverInit\0").map(|sym| *sym);
        let C_SignRecover = __library.get(b"C_SignRecover\0").map(|sym| *sym);
        let C_VerifyInit = __library.get(b"C_VerifyInit\0").map(|sym| *sym);
        let C_Verify = __library.get(b"C_Verify\0").map(|sym| *sym);
        let C_VerifyUpdate = __library.get(b"C_VerifyUpdate\0").map(|sym| *sym);
        let C_VerifyFinal = __library.get(b"C_VerifyFinal\0").map(|sym| *sym);
        let C_VerifyRecoverInit = __library.get(b"C_VerifyRecoverInit\0").map(|sym| *sym);
        let C_VerifyRecover = __library.get(b"C_VerifyRecover\0").map(|sym| *sym);
        let C_DigestEncryptUpdate = __library.get(b"C_DigestEncryptUpdate\0").map(|sym| *sym);
        let C_DecryptDigestUpdate = __library.get(b"C_DecryptDigestUpdate\0").map(|sym| *sym);
        let C_SignEncryptUpdate = __library.get(b"C_SignEncryptUpdate\0").map(|sym| *sym);
        let C_DecryptVerifyUpdate = __library.get(b"C_DecryptVerifyUpdate\0").map(|sym| *sym);
        let C_GenerateKey = __library.get(b"C_GenerateKey\0").map(|sym| *sym);
        let C_GenerateKeyPair = __library.get(b"C_GenerateKeyPair\0").map(|sym| *sym);
        let C_WrapKey = __library.get(b"C_WrapKey\0").map(|sym| *sym);
        let C_UnwrapKey = __library.get(b"C_UnwrapKey\0").map(|sym| *sym);
        let C_DeriveKey = __library.get(b"C_DeriveKey\0").map(|sym| *sym);
        let C_SeedRandom = __library.get(b"C_SeedRandom\0").map(|sym| *sym);
        let C_GenerateRandom = __library.get(b"C_GenerateRandom\0").map(|sym| *sym);
        let C_GetFunctionStatus = __library.get(b"C_GetFunctionStatus\0").map(|sym| *sym);
        let C_CancelFunction = __library.get(b"C_CancelFunction\0").map(|sym| *sym);
        let C_WaitForSlotEvent = __library.get(b"C_WaitForSlotEvent\0").map(|sym| *sym);
        let C_GetInterfaceList = __library.get(b"C_GetInterfaceList\0").map(|sym| *sym);
        let C_GetInterface = __library.get(b"C_GetInterface\0").map(|sym| *sym);
        let C_LoginUser = __library.get(b"C_LoginUser\0").map(|sym| *sym);
        let C_SessionCancel = __library.get(b"C_SessionCancel\0").map(|sym| *sym);
        let C_MessageEncryptInit = __library.get(b"C_MessageEncryptInit\0").map(|sym| *sym);
        let C_EncryptMessage = __library.get(b"C_EncryptMessage\0").map(|sym| *sym);
        let C_EncryptMessageBegin = __library.get(b"C_EncryptMessageBegin\0").map(|sym| *sym);
        let C_EncryptMessageNext = __library.get(b"C_EncryptMessageNext\0").map(|sym| *sym);
        let C_MessageEncryptFinal = __library.get(b"C_MessageEncryptFinal\0").map(|sym| *sym);
        let C_MessageDecryptInit = __library.get(b"C_MessageDecryptInit\0").map(|sym| *sym);
        let C_DecryptMessage = __library.get(b"C_DecryptMessage\0").map(|sym| *sym);
        let C_DecryptMessageBegin = __library.get(b"C_DecryptMessageBegin\0").map(|sym| *sym);
        let C_DecryptMessageNext = __library.get(b"C_DecryptMessageNext\0").map(|sym| *sym);
        let C_MessageDecryptFinal = __library.get(b"C_MessageDecryptFinal\0").map(|sym| *sym);
        let C_MessageSignInit = __library.get(b"C_MessageSignInit\0").map(|sym| *sym);
        let C_SignMessage = __library.get(b"C_SignMessage\0").map(|sym| *sym);
        let C_SignMessageBegin = __library.get(b"C_SignMessageBegin\0").map(|sym| *sym);
        let C_SignMessageNext = __library.get(b"C_SignMessageNext\0").map(|sym| *sym);
        let C_MessageSignFinal = __library.get(b"C_MessageSignFinal\0").map(|sym| *sym);
        let C_MessageVerifyInit = __library.get(b"C_MessageVerifyInit\0").map(|sym| *sym);
        let C_VerifyMessage = __library.get(b"C_VerifyMessage\0").map(|sym| *sym);
        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);
        Ok(Pkcs11 {
            __library,
            C_Initialize,
            C_Finalize,
            C_GetInfo,
            C_GetFunctionList,
            C_GetSlotList,
            C_GetSlotInfo,
            C_GetTokenInfo,
            C_GetMechanismList,
            C_GetMechanismInfo,
            C_InitToken,
            C_InitPIN,
            C_SetPIN,
            C_OpenSession,
            C_CloseSession,
            C_CloseAllSessions,
            C_GetSessionInfo,
            C_GetOperationState,
            C_SetOperationState,
            C_Login,
            C_Logout,
            C_CreateObject,
            C_CopyObject,
            C_DestroyObject,
            C_GetObjectSize,
            C_GetAttributeValue,
            C_SetAttributeValue,
            C_FindObjectsInit,
            C_FindObjects,
            C_FindObjectsFinal,
            C_EncryptInit,
            C_Encrypt,
            C_EncryptUpdate,
            C_EncryptFinal,
            C_DecryptInit,
            C_Decrypt,
            C_DecryptUpdate,
            C_DecryptFinal,
            C_DigestInit,
            C_Digest,
            C_DigestUpdate,
            C_DigestKey,
            C_DigestFinal,
            C_SignInit,
            C_Sign,
            C_SignUpdate,
            C_SignFinal,
            C_SignRecoverInit,
            C_SignRecover,
            C_VerifyInit,
            C_Verify,
            C_VerifyUpdate,
            C_VerifyFinal,
            C_VerifyRecoverInit,
            C_VerifyRecover,
            C_DigestEncryptUpdate,
            C_DecryptDigestUpdate,
            C_SignEncryptUpdate,
            C_DecryptVerifyUpdate,
            C_GenerateKey,
            C_GenerateKeyPair,
            C_WrapKey,
            C_UnwrapKey,
            C_DeriveKey,
            C_SeedRandom,
            C_GenerateRandom,
            C_GetFunctionStatus,
            C_CancelFunction,
            C_WaitForSlotEvent,
            C_GetInterfaceList,
            C_GetInterface,
            C_LoginUser,
            C_SessionCancel,
            C_MessageEncryptInit,
            C_EncryptMessage,
            C_EncryptMessageBegin,
            C_EncryptMessageNext,
            C_MessageEncryptFinal,
            C_MessageDecryptInit,
            C_DecryptMessage,
            C_DecryptMessageBegin,
            C_DecryptMessageNext,
            C_MessageDecryptFinal,
            C_MessageSignInit,
            C_SignMessage,
            C_SignMessageBegin,
            C_SignMessageNext,
            C_MessageSignFinal,
            C_MessageVerifyInit,
            C_VerifyMessage,
            C_VerifyMessageBegin,
            C_VerifyMessageNext,
            C_MessageVerifyFinal,
        })
    }
    pub unsafe fn C_Initialize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV {
        (self
            .C_Initialize
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
    pub unsafe fn C_Finalize(&self, arg1: *mut ::std::os::raw::c_void) -> CK_RV {
        (self
            .C_Finalize
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
    pub unsafe fn C_GetInfo(&self, arg1: *mut CK_INFO) -> CK_RV {
        (self
            .C_GetInfo
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
    pub unsafe fn C_GetFunctionList(&self, arg1: *mut *mut CK_FUNCTION_LIST) -> CK_RV {
        (self
            .C_GetFunctionList
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
    pub unsafe fn C_GetSlotList(
        &self,
        arg1: CK_BBOOL,
        arg2: *mut CK_SLOT_ID,
        arg3: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_GetSlotList
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_GetSlotInfo(&self, arg1: CK_SLOT_ID, arg2: *mut CK_SLOT_INFO) -> CK_RV {
        (self
            .C_GetSlotInfo
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn C_GetTokenInfo(&self, arg1: CK_SLOT_ID, arg2: *mut CK_TOKEN_INFO) -> CK_RV {
        (self
            .C_GetTokenInfo
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn C_GetMechanismList(
        &self,
        arg1: CK_SLOT_ID,
        arg2: *mut CK_MECHANISM_TYPE,
        arg3: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_GetMechanismList
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_GetMechanismInfo(
        &self,
        arg1: CK_SLOT_ID,
        arg2: CK_MECHANISM_TYPE,
        arg3: *mut CK_MECHANISM_INFO,
    ) -> CK_RV {
        (self
            .C_GetMechanismInfo
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_InitToken(
        &self,
        arg1: CK_SLOT_ID,
        arg2: *mut CK_UTF8CHAR,
        arg3: CK_ULONG,
        arg4: *mut CK_UTF8CHAR,
    ) -> CK_RV {
        (self
            .C_InitToken
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4)
    }
    pub unsafe fn C_InitPIN(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_UTF8CHAR,
        arg3: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_InitPIN
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_SetPIN(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_UTF8CHAR,
        arg3: CK_ULONG,
        arg4: *mut CK_UTF8CHAR,
        arg5: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_SetPIN
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_OpenSession(
        &self,
        arg1: CK_SLOT_ID,
        arg2: CK_FLAGS,
        arg3: *mut ::std::os::raw::c_void,
        arg4: CK_NOTIFY,
        arg5: *mut CK_SESSION_HANDLE,
    ) -> CK_RV {
        (self
            .C_OpenSession
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_CloseSession(&self, arg1: CK_SESSION_HANDLE) -> CK_RV {
        (self
            .C_CloseSession
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
    pub unsafe fn C_CloseAllSessions(&self, arg1: CK_SLOT_ID) -> CK_RV {
        (self
            .C_CloseAllSessions
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
    pub unsafe fn C_GetSessionInfo(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_SESSION_INFO,
    ) -> CK_RV {
        (self
            .C_GetSessionInfo
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn C_GetOperationState(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_GetOperationState
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_SetOperationState(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: CK_OBJECT_HANDLE,
        arg5: CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_SetOperationState
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_Login(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: CK_USER_TYPE,
        arg3: *mut CK_UTF8CHAR,
        arg4: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_Login
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4)
    }
    pub unsafe fn C_Logout(&self, arg1: CK_SESSION_HANDLE) -> CK_RV {
        (self
            .C_Logout
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
    pub unsafe fn C_CreateObject(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_ATTRIBUTE,
        arg3: CK_ULONG,
        arg4: *mut CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_CreateObject
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4)
    }
    pub unsafe fn C_CopyObject(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: CK_OBJECT_HANDLE,
        arg3: *mut CK_ATTRIBUTE,
        arg4: CK_ULONG,
        arg5: *mut CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_CopyObject
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_DestroyObject(&self, arg1: CK_SESSION_HANDLE, arg2: CK_OBJECT_HANDLE) -> CK_RV {
        (self
            .C_DestroyObject
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn C_GetObjectSize(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: CK_OBJECT_HANDLE,
        arg3: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_GetObjectSize
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_GetAttributeValue(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: CK_OBJECT_HANDLE,
        arg3: *mut CK_ATTRIBUTE,
        arg4: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_GetAttributeValue
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4)
    }
    pub unsafe fn C_SetAttributeValue(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: CK_OBJECT_HANDLE,
        arg3: *mut CK_ATTRIBUTE,
        arg4: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_SetAttributeValue
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4)
    }
    pub unsafe fn C_FindObjectsInit(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_ATTRIBUTE,
        arg3: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_FindObjectsInit
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_FindObjects(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_OBJECT_HANDLE,
        arg3: CK_ULONG,
        arg4: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_FindObjects
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4)
    }
    pub unsafe fn C_FindObjectsFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV {
        (self
            .C_FindObjectsFinal
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
    pub unsafe fn C_EncryptInit(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_EncryptInit
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_Encrypt(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_Encrypt
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_EncryptUpdate(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_EncryptUpdate
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_EncryptFinal(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_EncryptFinal
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_DecryptInit(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_DecryptInit
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_Decrypt(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_Decrypt
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_DecryptUpdate(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_DecryptUpdate
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_DecryptFinal(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_DecryptFinal
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_DigestInit(&self, arg1: CK_SESSION_HANDLE, arg2: *mut CK_MECHANISM) -> CK_RV {
        (self
            .C_DigestInit
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn C_Digest(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_Digest
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_DigestUpdate(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_DigestUpdate
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_DigestKey(&self, arg1: CK_SESSION_HANDLE, arg2: CK_OBJECT_HANDLE) -> CK_RV {
        (self
            .C_DigestKey
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn C_DigestFinal(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_DigestFinal
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_SignInit(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_SignInit
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_Sign(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV {
        (self.C_Sign.as_ref().expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_SignUpdate(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_SignUpdate
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_SignFinal(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_SignFinal
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_SignRecoverInit(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_SignRecoverInit
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_SignRecover(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_SignRecover
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_VerifyInit(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_VerifyInit
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_Verify(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_Verify
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_VerifyUpdate(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_VerifyUpdate
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_VerifyFinal(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_VerifyFinal
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_VerifyRecoverInit(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_VerifyRecoverInit
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_VerifyRecover(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_VerifyRecover
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_DigestEncryptUpdate(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_DigestEncryptUpdate
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_DecryptDigestUpdate(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_DecryptDigestUpdate
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_SignEncryptUpdate(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_SignEncryptUpdate
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_DecryptVerifyUpdate(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_DecryptVerifyUpdate
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_GenerateKey(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: *mut CK_ATTRIBUTE,
        arg4: CK_ULONG,
        arg5: *mut CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_GenerateKey
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_GenerateKeyPair(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: *mut CK_ATTRIBUTE,
        arg4: CK_ULONG,
        arg5: *mut CK_ATTRIBUTE,
        arg6: CK_ULONG,
        arg7: *mut CK_OBJECT_HANDLE,
        arg8: *mut CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_GenerateKeyPair
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
        )
    }
    pub unsafe fn C_WrapKey(
        &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,
    ) -> CK_RV {
        (self
            .C_WrapKey
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5, arg6)
    }
    pub unsafe fn C_UnwrapKey(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
        arg4: *mut CK_BYTE,
        arg5: *mut CK_ULONG,
        arg6: *mut CK_ATTRIBUTE,
        arg7: CK_ULONG,
        arg8: *mut CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_UnwrapKey
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
        )
    }
    pub unsafe fn C_DeriveKey(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
        arg4: *mut CK_ATTRIBUTE,
        arg5: CK_ULONG,
        arg6: *mut CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_DeriveKey
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5, arg6)
    }
    pub unsafe fn C_SeedRandom(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_SeedRandom
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_GenerateRandom(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_BYTE,
        arg3: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_GenerateRandom
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_GetFunctionStatus(&self, arg1: CK_SESSION_HANDLE) -> CK_RV {
        (self
            .C_GetFunctionStatus
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
    pub unsafe fn C_CancelFunction(&self, arg1: CK_SESSION_HANDLE) -> CK_RV {
        (self
            .C_CancelFunction
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
    pub unsafe fn C_WaitForSlotEvent(
        &self,
        arg1: CK_FLAGS,
        arg2: *mut CK_SLOT_ID,
        arg3: *mut ::std::os::raw::c_void,
    ) -> CK_RV {
        (self
            .C_WaitForSlotEvent
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_GetInterfaceList(&self, arg1: *mut CK_INTERFACE, arg2: *mut CK_ULONG) -> CK_RV {
        (self
            .C_GetInterfaceList
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn C_GetInterface(
        &self,
        arg1: *mut CK_UTF8CHAR,
        arg2: *mut CK_VERSION,
        arg3: *mut *mut CK_INTERFACE,
        arg4: CK_FLAGS,
    ) -> CK_RV {
        (self
            .C_GetInterface
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4)
    }
    pub unsafe fn C_LoginUser(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: CK_USER_TYPE,
        arg3: *mut CK_UTF8CHAR,
        arg4: CK_ULONG,
        arg5: *mut CK_UTF8CHAR,
        arg6: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_LoginUser
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5, arg6)
    }
    pub unsafe fn C_SessionCancel(&self, arg1: CK_SESSION_HANDLE, arg2: CK_FLAGS) -> CK_RV {
        (self
            .C_SessionCancel
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn C_MessageEncryptInit(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_MessageEncryptInit
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_EncryptMessage(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: CK_ULONG,
        arg8: *mut CK_BYTE,
        arg9: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_EncryptMessage
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9,
        )
    }
    pub unsafe fn C_EncryptMessageBegin(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_EncryptMessageBegin
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_EncryptMessageNext(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: *mut CK_ULONG,
        arg8: CK_FLAGS,
    ) -> CK_RV {
        (self
            .C_EncryptMessageNext
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
        )
    }
    pub unsafe fn C_MessageEncryptFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV {
        (self
            .C_MessageEncryptFinal
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
    pub unsafe fn C_MessageDecryptInit(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_MessageDecryptInit
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_DecryptMessage(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: CK_ULONG,
        arg8: *mut CK_BYTE,
        arg9: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_DecryptMessage
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9,
        )
    }
    pub unsafe fn C_DecryptMessageBegin(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_DecryptMessageBegin
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn C_DecryptMessageNext(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: *mut CK_ULONG,
        arg8: CK_FLAGS,
    ) -> CK_RV {
        (self
            .C_DecryptMessageNext
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
        )
    }
    pub unsafe fn C_MessageDecryptFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV {
        (self
            .C_MessageDecryptFinal
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
    pub unsafe fn C_MessageSignInit(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_MessageSignInit
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_SignMessage(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_SignMessage
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7
        )
    }
    pub unsafe fn C_SignMessageBegin(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_SignMessageBegin
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_SignMessageNext(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: *mut CK_ULONG,
    ) -> CK_RV {
        (self
            .C_SignMessageNext
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7
        )
    }
    pub unsafe fn C_MessageSignFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV {
        (self
            .C_MessageSignFinal
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
    pub unsafe fn C_MessageVerifyInit(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut CK_MECHANISM,
        arg3: CK_OBJECT_HANDLE,
    ) -> CK_RV {
        (self
            .C_MessageVerifyInit
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_VerifyMessage(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_VerifyMessage
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7
        )
    }
    pub unsafe fn C_VerifyMessageBegin(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_VerifyMessageBegin
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn C_VerifyMessageNext(
        &self,
        arg1: CK_SESSION_HANDLE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: CK_ULONG,
        arg4: *mut CK_BYTE,
        arg5: CK_ULONG,
        arg6: *mut CK_BYTE,
        arg7: CK_ULONG,
    ) -> CK_RV {
        (self
            .C_VerifyMessageNext
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7
        )
    }
    pub unsafe fn C_MessageVerifyFinal(&self, arg1: CK_SESSION_HANDLE) -> CK_RV {
        (self
            .C_MessageVerifyFinal
            .as_ref()
            .expect("Expected function, got error."))(arg1)
    }
}
