pkcs11_sys/
pkcs11_unix.rs

1/* automatically generated by rust-bindgen 0.71.1 */
2
3// Copyright 2022 Google LLC
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9//      http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16
17pub const NULL_PTR: u32 = 0;
18pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 3;
19pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 1;
20pub const CRYPTOKI_VERSION_AMENDMENT: CK_BYTE = 0;
21pub const CK_TRUE: CK_BBOOL = 1;
22pub const CK_FALSE: CK_BBOOL = 0;
23pub const FALSE: u32 = 0;
24pub const TRUE: u32 = 1;
25pub const CK_UNAVAILABLE_INFORMATION: CK_ULONG = 18446744073709551615;
26pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0;
27pub const CK_INVALID_HANDLE: CK_ULONG = 0;
28pub const CKN_SURRENDER: CK_NOTIFICATION = 0;
29pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1;
30pub const CKF_TOKEN_PRESENT: CK_FLAGS = 1;
31pub const CKF_REMOVABLE_DEVICE: CK_FLAGS = 2;
32pub const CKF_HW_SLOT: CK_FLAGS = 4;
33pub const CKF_RNG: CK_FLAGS = 1;
34pub const CKF_WRITE_PROTECTED: CK_FLAGS = 2;
35pub const CKF_LOGIN_REQUIRED: CK_FLAGS = 4;
36pub const CKF_USER_PIN_INITIALIZED: CK_FLAGS = 8;
37pub const CKF_RESTORE_KEY_NOT_NEEDED: CK_FLAGS = 32;
38pub const CKF_CLOCK_ON_TOKEN: CK_FLAGS = 64;
39pub const CKF_PROTECTED_AUTHENTICATION_PATH: CK_FLAGS = 256;
40pub const CKF_DUAL_CRYPTO_OPERATIONS: CK_FLAGS = 512;
41pub const CKF_TOKEN_INITIALIZED: CK_FLAGS = 1024;
42pub const CKF_SECONDARY_AUTHENTICATION: CK_FLAGS = 2048;
43pub const CKF_USER_PIN_COUNT_LOW: CK_FLAGS = 65536;
44pub const CKF_USER_PIN_FINAL_TRY: CK_FLAGS = 131072;
45pub const CKF_USER_PIN_LOCKED: CK_FLAGS = 262144;
46pub const CKF_USER_PIN_TO_BE_CHANGED: CK_FLAGS = 524288;
47pub const CKF_SO_PIN_COUNT_LOW: CK_FLAGS = 1048576;
48pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152;
49pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304;
50pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608;
51pub const CKF_ERROR_STATE: CK_FLAGS = 16777216;
52pub const CKU_SO: CK_USER_TYPE = 0;
53pub const CKU_USER: CK_USER_TYPE = 1;
54pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2;
55pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0;
56pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1;
57pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2;
58pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3;
59pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4;
60pub const CKF_RW_SESSION: CK_FLAGS = 2;
61pub const CKF_SERIAL_SESSION: CK_FLAGS = 4;
62pub const CKO_DATA: CK_OBJECT_CLASS = 0;
63pub const CKO_CERTIFICATE: CK_OBJECT_CLASS = 1;
64pub const CKO_PUBLIC_KEY: CK_OBJECT_CLASS = 2;
65pub const CKO_PRIVATE_KEY: CK_OBJECT_CLASS = 3;
66pub const CKO_SECRET_KEY: CK_OBJECT_CLASS = 4;
67pub const CKO_HW_FEATURE: CK_OBJECT_CLASS = 5;
68pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6;
69pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7;
70pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8;
71pub const CKO_PROFILE: CK_OBJECT_CLASS = 9;
72pub const CKO_VENDOR_DEFINED: CK_OBJECT_CLASS = 2147483648;
73pub const CKP_INVALID_ID: CK_PROFILE_ID = 0;
74pub const CKP_BASELINE_PROVIDER: CK_PROFILE_ID = 1;
75pub const CKP_EXTENDED_PROVIDER: CK_PROFILE_ID = 2;
76pub const CKP_AUTHENTICATION_TOKEN: CK_PROFILE_ID = 3;
77pub const CKP_PUBLIC_CERTIFICATES_TOKEN: CK_PROFILE_ID = 4;
78pub const CKP_COMPLETE_PROVIDER: CK_PROFILE_ID = 5;
79pub const CKP_HKDF_TLS_TOKEN: CK_PROFILE_ID = 6;
80pub const CKP_VENDOR_DEFINED: CK_PROFILE_ID = 2147483648;
81pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1;
82pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2;
83pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3;
84pub const CKH_VENDOR_DEFINED: CK_HW_FEATURE_TYPE = 2147483648;
85pub const CKK_RSA: CK_KEY_TYPE = 0;
86pub const CKK_DSA: CK_KEY_TYPE = 1;
87pub const CKK_DH: CK_KEY_TYPE = 2;
88pub const CKK_ECDSA: CK_KEY_TYPE = 3;
89pub const CKK_EC: CK_KEY_TYPE = 3;
90pub const CKK_X9_42_DH: CK_KEY_TYPE = 4;
91pub const CKK_KEA: CK_KEY_TYPE = 5;
92pub const CKK_GENERIC_SECRET: CK_KEY_TYPE = 16;
93pub const CKK_RC2: CK_KEY_TYPE = 17;
94pub const CKK_RC4: CK_KEY_TYPE = 18;
95pub const CKK_DES: CK_KEY_TYPE = 19;
96pub const CKK_DES2: CK_KEY_TYPE = 20;
97pub const CKK_DES3: CK_KEY_TYPE = 21;
98pub const CKK_CAST: CK_KEY_TYPE = 22;
99pub const CKK_CAST3: CK_KEY_TYPE = 23;
100pub const CKK_CAST5: CK_KEY_TYPE = 24;
101pub const CKK_CAST128: CK_KEY_TYPE = 24;
102pub const CKK_RC5: CK_KEY_TYPE = 25;
103pub const CKK_IDEA: CK_KEY_TYPE = 26;
104pub const CKK_SKIPJACK: CK_KEY_TYPE = 27;
105pub const CKK_BATON: CK_KEY_TYPE = 28;
106pub const CKK_JUNIPER: CK_KEY_TYPE = 29;
107pub const CKK_CDMF: CK_KEY_TYPE = 30;
108pub const CKK_AES: CK_KEY_TYPE = 31;
109pub const CKK_BLOWFISH: CK_KEY_TYPE = 32;
110pub const CKK_TWOFISH: CK_KEY_TYPE = 33;
111pub const CKK_SECURID: CK_KEY_TYPE = 34;
112pub const CKK_HOTP: CK_KEY_TYPE = 35;
113pub const CKK_ACTI: CK_KEY_TYPE = 36;
114pub const CKK_CAMELLIA: CK_KEY_TYPE = 37;
115pub const CKK_ARIA: CK_KEY_TYPE = 38;
116pub const CKK_MD5_HMAC: CK_KEY_TYPE = 39;
117pub const CKK_SHA_1_HMAC: CK_KEY_TYPE = 40;
118pub const CKK_RIPEMD128_HMAC: CK_KEY_TYPE = 41;
119pub const CKK_RIPEMD160_HMAC: CK_KEY_TYPE = 42;
120pub const CKK_SHA256_HMAC: CK_KEY_TYPE = 43;
121pub const CKK_SHA384_HMAC: CK_KEY_TYPE = 44;
122pub const CKK_SHA512_HMAC: CK_KEY_TYPE = 45;
123pub const CKK_SHA224_HMAC: CK_KEY_TYPE = 46;
124pub const CKK_SEED: CK_KEY_TYPE = 47;
125pub const CKK_GOSTR3410: CK_KEY_TYPE = 48;
126pub const CKK_GOSTR3411: CK_KEY_TYPE = 49;
127pub const CKK_GOST28147: CK_KEY_TYPE = 50;
128pub const CKK_CHACHA20: CK_KEY_TYPE = 51;
129pub const CKK_POLY1305: CK_KEY_TYPE = 52;
130pub const CKK_AES_XTS: CK_KEY_TYPE = 53;
131pub const CKK_SHA3_224_HMAC: CK_KEY_TYPE = 54;
132pub const CKK_SHA3_256_HMAC: CK_KEY_TYPE = 55;
133pub const CKK_SHA3_384_HMAC: CK_KEY_TYPE = 56;
134pub const CKK_SHA3_512_HMAC: CK_KEY_TYPE = 57;
135pub const CKK_BLAKE2B_160_HMAC: CK_KEY_TYPE = 58;
136pub const CKK_BLAKE2B_256_HMAC: CK_KEY_TYPE = 59;
137pub const CKK_BLAKE2B_384_HMAC: CK_KEY_TYPE = 60;
138pub const CKK_BLAKE2B_512_HMAC: CK_KEY_TYPE = 61;
139pub const CKK_SALSA20: CK_KEY_TYPE = 62;
140pub const CKK_X2RATCHET: CK_KEY_TYPE = 63;
141pub const CKK_EC_EDWARDS: CK_KEY_TYPE = 64;
142pub const CKK_EC_MONTGOMERY: CK_KEY_TYPE = 65;
143pub const CKK_HKDF: CK_KEY_TYPE = 66;
144pub const CKK_SHA512_224_HMAC: CK_KEY_TYPE = 67;
145pub const CKK_SHA512_256_HMAC: CK_KEY_TYPE = 68;
146pub const CKK_SHA512_T_HMAC: CK_KEY_TYPE = 69;
147pub const CKK_HSS: CK_KEY_TYPE = 70;
148pub const CKK_VENDOR_DEFINED: CK_KEY_TYPE = 2147483648;
149pub const CK_CERTIFICATE_CATEGORY_UNSPECIFIED: CK_ULONG = 0;
150pub const CK_CERTIFICATE_CATEGORY_TOKEN_USER: CK_ULONG = 1;
151pub const CK_CERTIFICATE_CATEGORY_AUTHORITY: CK_ULONG = 2;
152pub const CK_CERTIFICATE_CATEGORY_OTHER_ENTITY: CK_ULONG = 3;
153pub const CK_SECURITY_DOMAIN_UNSPECIFIED: CK_ULONG = 0;
154pub const CK_SECURITY_DOMAIN_MANUFACTURER: CK_ULONG = 1;
155pub const CK_SECURITY_DOMAIN_OPERATOR: CK_ULONG = 2;
156pub const CK_SECURITY_DOMAIN_THIRD_PARTY: CK_ULONG = 3;
157pub const CKC_X_509: CK_CERTIFICATE_TYPE = 0;
158pub const CKC_X_509_ATTR_CERT: CK_CERTIFICATE_TYPE = 1;
159pub const CKC_WTLS: CK_CERTIFICATE_TYPE = 2;
160pub const CKC_VENDOR_DEFINED: CK_CERTIFICATE_TYPE = 2147483648;
161pub const CKF_ARRAY_ATTRIBUTE: CK_FLAGS = 1073741824;
162pub const CK_OTP_FORMAT_DECIMAL: CK_ULONG = 0;
163pub const CK_OTP_FORMAT_HEXADECIMAL: CK_ULONG = 1;
164pub const CK_OTP_FORMAT_ALPHANUMERIC: CK_ULONG = 2;
165pub const CK_OTP_FORMAT_BINARY: CK_ULONG = 3;
166pub const CK_OTP_PARAM_IGNORED: CK_ULONG = 0;
167pub const CK_OTP_PARAM_OPTIONAL: CK_ULONG = 1;
168pub const CK_OTP_PARAM_MANDATORY: CK_ULONG = 2;
169pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0;
170pub const CKA_TOKEN: CK_ATTRIBUTE_TYPE = 1;
171pub const CKA_PRIVATE: CK_ATTRIBUTE_TYPE = 2;
172pub const CKA_LABEL: CK_ATTRIBUTE_TYPE = 3;
173pub const CKA_UNIQUE_ID: CK_ATTRIBUTE_TYPE = 4;
174pub const CKA_APPLICATION: CK_ATTRIBUTE_TYPE = 16;
175pub const CKA_VALUE: CK_ATTRIBUTE_TYPE = 17;
176pub const CKA_OBJECT_ID: CK_ATTRIBUTE_TYPE = 18;
177pub const CKA_CERTIFICATE_TYPE: CK_ATTRIBUTE_TYPE = 128;
178pub const CKA_ISSUER: CK_ATTRIBUTE_TYPE = 129;
179pub const CKA_SERIAL_NUMBER: CK_ATTRIBUTE_TYPE = 130;
180pub const CKA_AC_ISSUER: CK_ATTRIBUTE_TYPE = 131;
181pub const CKA_OWNER: CK_ATTRIBUTE_TYPE = 132;
182pub const CKA_ATTR_TYPES: CK_ATTRIBUTE_TYPE = 133;
183pub const CKA_TRUSTED: CK_ATTRIBUTE_TYPE = 134;
184pub const CKA_CERTIFICATE_CATEGORY: CK_ATTRIBUTE_TYPE = 135;
185pub const CKA_JAVA_MIDP_SECURITY_DOMAIN: CK_ATTRIBUTE_TYPE = 136;
186pub const CKA_URL: CK_ATTRIBUTE_TYPE = 137;
187pub const CKA_HASH_OF_SUBJECT_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 138;
188pub const CKA_HASH_OF_ISSUER_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 139;
189pub const CKA_NAME_HASH_ALGORITHM: CK_ATTRIBUTE_TYPE = 140;
190pub const CKA_CHECK_VALUE: CK_ATTRIBUTE_TYPE = 144;
191pub const CKA_KEY_TYPE: CK_ATTRIBUTE_TYPE = 256;
192pub const CKA_SUBJECT: CK_ATTRIBUTE_TYPE = 257;
193pub const CKA_ID: CK_ATTRIBUTE_TYPE = 258;
194pub const CKA_SENSITIVE: CK_ATTRIBUTE_TYPE = 259;
195pub const CKA_ENCRYPT: CK_ATTRIBUTE_TYPE = 260;
196pub const CKA_DECRYPT: CK_ATTRIBUTE_TYPE = 261;
197pub const CKA_WRAP: CK_ATTRIBUTE_TYPE = 262;
198pub const CKA_UNWRAP: CK_ATTRIBUTE_TYPE = 263;
199pub const CKA_SIGN: CK_ATTRIBUTE_TYPE = 264;
200pub const CKA_SIGN_RECOVER: CK_ATTRIBUTE_TYPE = 265;
201pub const CKA_VERIFY: CK_ATTRIBUTE_TYPE = 266;
202pub const CKA_VERIFY_RECOVER: CK_ATTRIBUTE_TYPE = 267;
203pub const CKA_DERIVE: CK_ATTRIBUTE_TYPE = 268;
204pub const CKA_START_DATE: CK_ATTRIBUTE_TYPE = 272;
205pub const CKA_END_DATE: CK_ATTRIBUTE_TYPE = 273;
206pub const CKA_MODULUS: CK_ATTRIBUTE_TYPE = 288;
207pub const CKA_MODULUS_BITS: CK_ATTRIBUTE_TYPE = 289;
208pub const CKA_PUBLIC_EXPONENT: CK_ATTRIBUTE_TYPE = 290;
209pub const CKA_PRIVATE_EXPONENT: CK_ATTRIBUTE_TYPE = 291;
210pub const CKA_PRIME_1: CK_ATTRIBUTE_TYPE = 292;
211pub const CKA_PRIME_2: CK_ATTRIBUTE_TYPE = 293;
212pub const CKA_EXPONENT_1: CK_ATTRIBUTE_TYPE = 294;
213pub const CKA_EXPONENT_2: CK_ATTRIBUTE_TYPE = 295;
214pub const CKA_COEFFICIENT: CK_ATTRIBUTE_TYPE = 296;
215pub const CKA_PUBLIC_KEY_INFO: CK_ATTRIBUTE_TYPE = 297;
216pub const CKA_PRIME: CK_ATTRIBUTE_TYPE = 304;
217pub const CKA_SUBPRIME: CK_ATTRIBUTE_TYPE = 305;
218pub const CKA_BASE: CK_ATTRIBUTE_TYPE = 306;
219pub const CKA_PRIME_BITS: CK_ATTRIBUTE_TYPE = 307;
220pub const CKA_SUBPRIME_BITS: CK_ATTRIBUTE_TYPE = 308;
221pub const CKA_SUB_PRIME_BITS: CK_ATTRIBUTE_TYPE = 308;
222pub const CKA_VALUE_BITS: CK_ATTRIBUTE_TYPE = 352;
223pub const CKA_VALUE_LEN: CK_ATTRIBUTE_TYPE = 353;
224pub const CKA_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 354;
225pub const CKA_LOCAL: CK_ATTRIBUTE_TYPE = 355;
226pub const CKA_NEVER_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 356;
227pub const CKA_ALWAYS_SENSITIVE: CK_ATTRIBUTE_TYPE = 357;
228pub const CKA_KEY_GEN_MECHANISM: CK_ATTRIBUTE_TYPE = 358;
229pub const CKA_MODIFIABLE: CK_ATTRIBUTE_TYPE = 368;
230pub const CKA_COPYABLE: CK_ATTRIBUTE_TYPE = 369;
231pub const CKA_DESTROYABLE: CK_ATTRIBUTE_TYPE = 370;
232pub const CKA_ECDSA_PARAMS: CK_ATTRIBUTE_TYPE = 384;
233pub const CKA_EC_PARAMS: CK_ATTRIBUTE_TYPE = 384;
234pub const CKA_EC_POINT: CK_ATTRIBUTE_TYPE = 385;
235pub const CKA_SECONDARY_AUTH: CK_ATTRIBUTE_TYPE = 512;
236pub const CKA_AUTH_PIN_FLAGS: CK_ATTRIBUTE_TYPE = 513;
237pub const CKA_ALWAYS_AUTHENTICATE: CK_ATTRIBUTE_TYPE = 514;
238pub const CKA_WRAP_WITH_TRUSTED: CK_ATTRIBUTE_TYPE = 528;
239pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742353;
240pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742354;
241pub const CKA_DERIVE_TEMPLATE: CK_ATTRIBUTE_TYPE = 1073742355;
242pub const CKA_OTP_FORMAT: CK_ATTRIBUTE_TYPE = 544;
243pub const CKA_OTP_LENGTH: CK_ATTRIBUTE_TYPE = 545;
244pub const CKA_OTP_TIME_INTERVAL: CK_ATTRIBUTE_TYPE = 546;
245pub const CKA_OTP_USER_FRIENDLY_MODE: CK_ATTRIBUTE_TYPE = 547;
246pub const CKA_OTP_CHALLENGE_REQUIREMENT: CK_ATTRIBUTE_TYPE = 548;
247pub const CKA_OTP_TIME_REQUIREMENT: CK_ATTRIBUTE_TYPE = 549;
248pub const CKA_OTP_COUNTER_REQUIREMENT: CK_ATTRIBUTE_TYPE = 550;
249pub const CKA_OTP_PIN_REQUIREMENT: CK_ATTRIBUTE_TYPE = 551;
250pub const CKA_OTP_COUNTER: CK_ATTRIBUTE_TYPE = 558;
251pub const CKA_OTP_TIME: CK_ATTRIBUTE_TYPE = 559;
252pub const CKA_OTP_USER_IDENTIFIER: CK_ATTRIBUTE_TYPE = 554;
253pub const CKA_OTP_SERVICE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 555;
254pub const CKA_OTP_SERVICE_LOGO: CK_ATTRIBUTE_TYPE = 556;
255pub const CKA_OTP_SERVICE_LOGO_TYPE: CK_ATTRIBUTE_TYPE = 557;
256pub const CKA_GOSTR3410_PARAMS: CK_ATTRIBUTE_TYPE = 592;
257pub const CKA_GOSTR3411_PARAMS: CK_ATTRIBUTE_TYPE = 593;
258pub const CKA_GOST28147_PARAMS: CK_ATTRIBUTE_TYPE = 594;
259pub const CKA_HW_FEATURE_TYPE: CK_ATTRIBUTE_TYPE = 768;
260pub const CKA_RESET_ON_INIT: CK_ATTRIBUTE_TYPE = 769;
261pub const CKA_HAS_RESET: CK_ATTRIBUTE_TYPE = 770;
262pub const CKA_PIXEL_X: CK_ATTRIBUTE_TYPE = 1024;
263pub const CKA_PIXEL_Y: CK_ATTRIBUTE_TYPE = 1025;
264pub const CKA_RESOLUTION: CK_ATTRIBUTE_TYPE = 1026;
265pub const CKA_CHAR_ROWS: CK_ATTRIBUTE_TYPE = 1027;
266pub const CKA_CHAR_COLUMNS: CK_ATTRIBUTE_TYPE = 1028;
267pub const CKA_COLOR: CK_ATTRIBUTE_TYPE = 1029;
268pub const CKA_BITS_PER_PIXEL: CK_ATTRIBUTE_TYPE = 1030;
269pub const CKA_CHAR_SETS: CK_ATTRIBUTE_TYPE = 1152;
270pub const CKA_ENCODING_METHODS: CK_ATTRIBUTE_TYPE = 1153;
271pub const CKA_MIME_TYPES: CK_ATTRIBUTE_TYPE = 1154;
272pub const CKA_MECHANISM_TYPE: CK_ATTRIBUTE_TYPE = 1280;
273pub const CKA_REQUIRED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1281;
274pub const CKA_DEFAULT_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1282;
275pub const CKA_SUPPORTED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1283;
276pub const CKA_ALLOWED_MECHANISMS: CK_ATTRIBUTE_TYPE = 1073743360;
277pub const CKA_PROFILE_ID: CK_ATTRIBUTE_TYPE = 1537;
278pub const CKA_X2RATCHET_BAG: CK_ATTRIBUTE_TYPE = 1538;
279pub const CKA_X2RATCHET_BAGSIZE: CK_ATTRIBUTE_TYPE = 1539;
280pub const CKA_X2RATCHET_BOBS1STMSG: CK_ATTRIBUTE_TYPE = 1540;
281pub const CKA_X2RATCHET_CKR: CK_ATTRIBUTE_TYPE = 1541;
282pub const CKA_X2RATCHET_CKS: CK_ATTRIBUTE_TYPE = 1542;
283pub const CKA_X2RATCHET_DHP: CK_ATTRIBUTE_TYPE = 1543;
284pub const CKA_X2RATCHET_DHR: CK_ATTRIBUTE_TYPE = 1544;
285pub const CKA_X2RATCHET_DHS: CK_ATTRIBUTE_TYPE = 1545;
286pub const CKA_X2RATCHET_HKR: CK_ATTRIBUTE_TYPE = 1546;
287pub const CKA_X2RATCHET_HKS: CK_ATTRIBUTE_TYPE = 1547;
288pub const CKA_X2RATCHET_ISALICE: CK_ATTRIBUTE_TYPE = 1548;
289pub const CKA_X2RATCHET_NHKR: CK_ATTRIBUTE_TYPE = 1549;
290pub const CKA_X2RATCHET_NHKS: CK_ATTRIBUTE_TYPE = 1550;
291pub const CKA_X2RATCHET_NR: CK_ATTRIBUTE_TYPE = 1551;
292pub const CKA_X2RATCHET_NS: CK_ATTRIBUTE_TYPE = 1552;
293pub const CKA_X2RATCHET_PNS: CK_ATTRIBUTE_TYPE = 1553;
294pub const CKA_X2RATCHET_RK: CK_ATTRIBUTE_TYPE = 1554;
295pub const CKA_HSS_LEVELS: CK_ATTRIBUTE_TYPE = 1559;
296pub const CKA_HSS_LMS_TYPE: CK_ATTRIBUTE_TYPE = 1560;
297pub const CKA_HSS_LMOTS_TYPE: CK_ATTRIBUTE_TYPE = 1561;
298pub const CKA_HSS_LMS_TYPES: CK_ATTRIBUTE_TYPE = 1562;
299pub const CKA_HSS_LMOTS_TYPES: CK_ATTRIBUTE_TYPE = 1563;
300pub const CKA_HSS_KEYS_REMAINING: CK_ATTRIBUTE_TYPE = 1564;
301pub const CKA_VENDOR_DEFINED: CK_ATTRIBUTE_TYPE = 2147483648;
302pub const CKM_RSA_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 0;
303pub const CKM_RSA_PKCS: CK_MECHANISM_TYPE = 1;
304pub const CKM_RSA_9796: CK_MECHANISM_TYPE = 2;
305pub const CKM_RSA_X_509: CK_MECHANISM_TYPE = 3;
306pub const CKM_MD2_RSA_PKCS: CK_MECHANISM_TYPE = 4;
307pub const CKM_MD5_RSA_PKCS: CK_MECHANISM_TYPE = 5;
308pub const CKM_SHA1_RSA_PKCS: CK_MECHANISM_TYPE = 6;
309pub const CKM_RIPEMD128_RSA_PKCS: CK_MECHANISM_TYPE = 7;
310pub const CKM_RIPEMD160_RSA_PKCS: CK_MECHANISM_TYPE = 8;
311pub const CKM_RSA_PKCS_OAEP: CK_MECHANISM_TYPE = 9;
312pub const CKM_RSA_X9_31_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 10;
313pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11;
314pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12;
315pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13;
316pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14;
317pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16;
318pub const CKM_DSA: CK_MECHANISM_TYPE = 17;
319pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18;
320pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19;
321pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20;
322pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21;
323pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22;
324pub const CKM_DSA_SHA3_224: CK_MECHANISM_TYPE = 24;
325pub const CKM_DSA_SHA3_256: CK_MECHANISM_TYPE = 25;
326pub const CKM_DSA_SHA3_384: CK_MECHANISM_TYPE = 26;
327pub const CKM_DSA_SHA3_512: CK_MECHANISM_TYPE = 27;
328pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32;
329pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33;
330pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48;
331pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49;
332pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50;
333pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51;
334pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64;
335pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65;
336pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66;
337pub const CKM_SHA256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 67;
338pub const CKM_SHA384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 68;
339pub const CKM_SHA512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 69;
340pub const CKM_SHA224_RSA_PKCS: CK_MECHANISM_TYPE = 70;
341pub const CKM_SHA224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 71;
342pub const CKM_SHA512_224: CK_MECHANISM_TYPE = 72;
343pub const CKM_SHA512_224_HMAC: CK_MECHANISM_TYPE = 73;
344pub const CKM_SHA512_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 74;
345pub const CKM_SHA512_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 75;
346pub const CKM_SHA512_256: CK_MECHANISM_TYPE = 76;
347pub const CKM_SHA512_256_HMAC: CK_MECHANISM_TYPE = 77;
348pub const CKM_SHA512_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 78;
349pub const CKM_SHA512_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 79;
350pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80;
351pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81;
352pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82;
353pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83;
354pub const CKM_SHA3_256_RSA_PKCS: CK_MECHANISM_TYPE = 96;
355pub const CKM_SHA3_384_RSA_PKCS: CK_MECHANISM_TYPE = 97;
356pub const CKM_SHA3_512_RSA_PKCS: CK_MECHANISM_TYPE = 98;
357pub const CKM_SHA3_256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 99;
358pub const CKM_SHA3_384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 100;
359pub const CKM_SHA3_512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 101;
360pub const CKM_SHA3_224_RSA_PKCS: CK_MECHANISM_TYPE = 102;
361pub const CKM_SHA3_224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 103;
362pub const CKM_RC2_KEY_GEN: CK_MECHANISM_TYPE = 256;
363pub const CKM_RC2_ECB: CK_MECHANISM_TYPE = 257;
364pub const CKM_RC2_CBC: CK_MECHANISM_TYPE = 258;
365pub const CKM_RC2_MAC: CK_MECHANISM_TYPE = 259;
366pub const CKM_RC2_MAC_GENERAL: CK_MECHANISM_TYPE = 260;
367pub const CKM_RC2_CBC_PAD: CK_MECHANISM_TYPE = 261;
368pub const CKM_RC4_KEY_GEN: CK_MECHANISM_TYPE = 272;
369pub const CKM_RC4: CK_MECHANISM_TYPE = 273;
370pub const CKM_DES_KEY_GEN: CK_MECHANISM_TYPE = 288;
371pub const CKM_DES_ECB: CK_MECHANISM_TYPE = 289;
372pub const CKM_DES_CBC: CK_MECHANISM_TYPE = 290;
373pub const CKM_DES_MAC: CK_MECHANISM_TYPE = 291;
374pub const CKM_DES_MAC_GENERAL: CK_MECHANISM_TYPE = 292;
375pub const CKM_DES_CBC_PAD: CK_MECHANISM_TYPE = 293;
376pub const CKM_DES2_KEY_GEN: CK_MECHANISM_TYPE = 304;
377pub const CKM_DES3_KEY_GEN: CK_MECHANISM_TYPE = 305;
378pub const CKM_DES3_ECB: CK_MECHANISM_TYPE = 306;
379pub const CKM_DES3_CBC: CK_MECHANISM_TYPE = 307;
380pub const CKM_DES3_MAC: CK_MECHANISM_TYPE = 308;
381pub const CKM_DES3_MAC_GENERAL: CK_MECHANISM_TYPE = 309;
382pub const CKM_DES3_CBC_PAD: CK_MECHANISM_TYPE = 310;
383pub const CKM_DES3_CMAC_GENERAL: CK_MECHANISM_TYPE = 311;
384pub const CKM_DES3_CMAC: CK_MECHANISM_TYPE = 312;
385pub const CKM_CDMF_KEY_GEN: CK_MECHANISM_TYPE = 320;
386pub const CKM_CDMF_ECB: CK_MECHANISM_TYPE = 321;
387pub const CKM_CDMF_CBC: CK_MECHANISM_TYPE = 322;
388pub const CKM_CDMF_MAC: CK_MECHANISM_TYPE = 323;
389pub const CKM_CDMF_MAC_GENERAL: CK_MECHANISM_TYPE = 324;
390pub const CKM_CDMF_CBC_PAD: CK_MECHANISM_TYPE = 325;
391pub const CKM_DES_OFB64: CK_MECHANISM_TYPE = 336;
392pub const CKM_DES_OFB8: CK_MECHANISM_TYPE = 337;
393pub const CKM_DES_CFB64: CK_MECHANISM_TYPE = 338;
394pub const CKM_DES_CFB8: CK_MECHANISM_TYPE = 339;
395pub const CKM_MD2: CK_MECHANISM_TYPE = 512;
396pub const CKM_MD2_HMAC: CK_MECHANISM_TYPE = 513;
397pub const CKM_MD2_HMAC_GENERAL: CK_MECHANISM_TYPE = 514;
398pub const CKM_MD5: CK_MECHANISM_TYPE = 528;
399pub const CKM_MD5_HMAC: CK_MECHANISM_TYPE = 529;
400pub const CKM_MD5_HMAC_GENERAL: CK_MECHANISM_TYPE = 530;
401pub const CKM_SHA_1: CK_MECHANISM_TYPE = 544;
402pub const CKM_SHA_1_HMAC: CK_MECHANISM_TYPE = 545;
403pub const CKM_SHA_1_HMAC_GENERAL: CK_MECHANISM_TYPE = 546;
404pub const CKM_RIPEMD128: CK_MECHANISM_TYPE = 560;
405pub const CKM_RIPEMD128_HMAC: CK_MECHANISM_TYPE = 561;
406pub const CKM_RIPEMD128_HMAC_GENERAL: CK_MECHANISM_TYPE = 562;
407pub const CKM_RIPEMD160: CK_MECHANISM_TYPE = 576;
408pub const CKM_RIPEMD160_HMAC: CK_MECHANISM_TYPE = 577;
409pub const CKM_RIPEMD160_HMAC_GENERAL: CK_MECHANISM_TYPE = 578;
410pub const CKM_SHA256: CK_MECHANISM_TYPE = 592;
411pub const CKM_SHA256_HMAC: CK_MECHANISM_TYPE = 593;
412pub const CKM_SHA256_HMAC_GENERAL: CK_MECHANISM_TYPE = 594;
413pub const CKM_SHA224: CK_MECHANISM_TYPE = 597;
414pub const CKM_SHA224_HMAC: CK_MECHANISM_TYPE = 598;
415pub const CKM_SHA224_HMAC_GENERAL: CK_MECHANISM_TYPE = 599;
416pub const CKM_SHA384: CK_MECHANISM_TYPE = 608;
417pub const CKM_SHA384_HMAC: CK_MECHANISM_TYPE = 609;
418pub const CKM_SHA384_HMAC_GENERAL: CK_MECHANISM_TYPE = 610;
419pub const CKM_SHA512: CK_MECHANISM_TYPE = 624;
420pub const CKM_SHA512_HMAC: CK_MECHANISM_TYPE = 625;
421pub const CKM_SHA512_HMAC_GENERAL: CK_MECHANISM_TYPE = 626;
422pub const CKM_SECURID_KEY_GEN: CK_MECHANISM_TYPE = 640;
423pub const CKM_SECURID: CK_MECHANISM_TYPE = 642;
424pub const CKM_HOTP_KEY_GEN: CK_MECHANISM_TYPE = 656;
425pub const CKM_HOTP: CK_MECHANISM_TYPE = 657;
426pub const CKM_ACTI: CK_MECHANISM_TYPE = 672;
427pub const CKM_ACTI_KEY_GEN: CK_MECHANISM_TYPE = 673;
428pub const CKM_SHA3_256: CK_MECHANISM_TYPE = 688;
429pub const CKM_SHA3_256_HMAC: CK_MECHANISM_TYPE = 689;
430pub const CKM_SHA3_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 690;
431pub const CKM_SHA3_256_KEY_GEN: CK_MECHANISM_TYPE = 691;
432pub const CKM_SHA3_224: CK_MECHANISM_TYPE = 693;
433pub const CKM_SHA3_224_HMAC: CK_MECHANISM_TYPE = 694;
434pub const CKM_SHA3_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 695;
435pub const CKM_SHA3_224_KEY_GEN: CK_MECHANISM_TYPE = 696;
436pub const CKM_SHA3_384: CK_MECHANISM_TYPE = 704;
437pub const CKM_SHA3_384_HMAC: CK_MECHANISM_TYPE = 705;
438pub const CKM_SHA3_384_HMAC_GENERAL: CK_MECHANISM_TYPE = 706;
439pub const CKM_SHA3_384_KEY_GEN: CK_MECHANISM_TYPE = 707;
440pub const CKM_SHA3_512: CK_MECHANISM_TYPE = 720;
441pub const CKM_SHA3_512_HMAC: CK_MECHANISM_TYPE = 721;
442pub const CKM_SHA3_512_HMAC_GENERAL: CK_MECHANISM_TYPE = 722;
443pub const CKM_SHA3_512_KEY_GEN: CK_MECHANISM_TYPE = 723;
444pub const CKM_CAST_KEY_GEN: CK_MECHANISM_TYPE = 768;
445pub const CKM_CAST_ECB: CK_MECHANISM_TYPE = 769;
446pub const CKM_CAST_CBC: CK_MECHANISM_TYPE = 770;
447pub const CKM_CAST_MAC: CK_MECHANISM_TYPE = 771;
448pub const CKM_CAST_MAC_GENERAL: CK_MECHANISM_TYPE = 772;
449pub const CKM_CAST_CBC_PAD: CK_MECHANISM_TYPE = 773;
450pub const CKM_CAST3_KEY_GEN: CK_MECHANISM_TYPE = 784;
451pub const CKM_CAST3_ECB: CK_MECHANISM_TYPE = 785;
452pub const CKM_CAST3_CBC: CK_MECHANISM_TYPE = 786;
453pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787;
454pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788;
455pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789;
456pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800;
457pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800;
458pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801;
459pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801;
460pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802;
461pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802;
462pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803;
463pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803;
464pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804;
465pub const CKM_CAST128_MAC_GENERAL: CK_MECHANISM_TYPE = 804;
466pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805;
467pub const CKM_CAST128_CBC_PAD: CK_MECHANISM_TYPE = 805;
468pub const CKM_RC5_KEY_GEN: CK_MECHANISM_TYPE = 816;
469pub const CKM_RC5_ECB: CK_MECHANISM_TYPE = 817;
470pub const CKM_RC5_CBC: CK_MECHANISM_TYPE = 818;
471pub const CKM_RC5_MAC: CK_MECHANISM_TYPE = 819;
472pub const CKM_RC5_MAC_GENERAL: CK_MECHANISM_TYPE = 820;
473pub const CKM_RC5_CBC_PAD: CK_MECHANISM_TYPE = 821;
474pub const CKM_IDEA_KEY_GEN: CK_MECHANISM_TYPE = 832;
475pub const CKM_IDEA_ECB: CK_MECHANISM_TYPE = 833;
476pub const CKM_IDEA_CBC: CK_MECHANISM_TYPE = 834;
477pub const CKM_IDEA_MAC: CK_MECHANISM_TYPE = 835;
478pub const CKM_IDEA_MAC_GENERAL: CK_MECHANISM_TYPE = 836;
479pub const CKM_IDEA_CBC_PAD: CK_MECHANISM_TYPE = 837;
480pub const CKM_GENERIC_SECRET_KEY_GEN: CK_MECHANISM_TYPE = 848;
481pub const CKM_CONCATENATE_BASE_AND_KEY: CK_MECHANISM_TYPE = 864;
482pub const CKM_CONCATENATE_BASE_AND_DATA: CK_MECHANISM_TYPE = 866;
483pub const CKM_CONCATENATE_DATA_AND_BASE: CK_MECHANISM_TYPE = 867;
484pub const CKM_XOR_BASE_AND_DATA: CK_MECHANISM_TYPE = 868;
485pub const CKM_EXTRACT_KEY_FROM_KEY: CK_MECHANISM_TYPE = 869;
486pub const CKM_SSL3_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 880;
487pub const CKM_SSL3_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 881;
488pub const CKM_SSL3_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 882;
489pub const CKM_SSL3_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 883;
490pub const CKM_TLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 884;
491pub const CKM_TLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 885;
492pub const CKM_TLS_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 886;
493pub const CKM_TLS_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 887;
494pub const CKM_TLS_PRF: CK_MECHANISM_TYPE = 888;
495pub const CKM_SSL3_MD5_MAC: CK_MECHANISM_TYPE = 896;
496pub const CKM_SSL3_SHA1_MAC: CK_MECHANISM_TYPE = 897;
497pub const CKM_MD5_KEY_DERIVATION: CK_MECHANISM_TYPE = 912;
498pub const CKM_MD2_KEY_DERIVATION: CK_MECHANISM_TYPE = 913;
499pub const CKM_SHA1_KEY_DERIVATION: CK_MECHANISM_TYPE = 914;
500pub const CKM_SHA256_KEY_DERIVATION: CK_MECHANISM_TYPE = 915;
501pub const CKM_SHA384_KEY_DERIVATION: CK_MECHANISM_TYPE = 916;
502pub const CKM_SHA512_KEY_DERIVATION: CK_MECHANISM_TYPE = 917;
503pub const CKM_SHA224_KEY_DERIVATION: CK_MECHANISM_TYPE = 918;
504pub const CKM_SHA3_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 919;
505pub const CKM_SHA3_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 920;
506pub const CKM_SHA3_384_KEY_DERIVATION: CK_MECHANISM_TYPE = 921;
507pub const CKM_SHA3_512_KEY_DERIVATION: CK_MECHANISM_TYPE = 922;
508pub const CKM_SHAKE_128_KEY_DERIVATION: CK_MECHANISM_TYPE = 923;
509pub const CKM_SHAKE_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 924;
510pub const CKM_SHA3_256_KEY_DERIVE: CK_MECHANISM_TYPE = 919;
511pub const CKM_SHA3_224_KEY_DERIVE: CK_MECHANISM_TYPE = 920;
512pub const CKM_SHA3_384_KEY_DERIVE: CK_MECHANISM_TYPE = 921;
513pub const CKM_SHA3_512_KEY_DERIVE: CK_MECHANISM_TYPE = 922;
514pub const CKM_SHAKE_128_KEY_DERIVE: CK_MECHANISM_TYPE = 923;
515pub const CKM_SHAKE_256_KEY_DERIVE: CK_MECHANISM_TYPE = 924;
516pub const CKM_PBE_MD2_DES_CBC: CK_MECHANISM_TYPE = 928;
517pub const CKM_PBE_MD5_DES_CBC: CK_MECHANISM_TYPE = 929;
518pub const CKM_PBE_MD5_CAST_CBC: CK_MECHANISM_TYPE = 930;
519pub const CKM_PBE_MD5_CAST3_CBC: CK_MECHANISM_TYPE = 931;
520pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932;
521pub const CKM_PBE_MD5_CAST128_CBC: CK_MECHANISM_TYPE = 932;
522pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933;
523pub const CKM_PBE_SHA1_CAST128_CBC: CK_MECHANISM_TYPE = 933;
524pub const CKM_PBE_SHA1_RC4_128: CK_MECHANISM_TYPE = 934;
525pub const CKM_PBE_SHA1_RC4_40: CK_MECHANISM_TYPE = 935;
526pub const CKM_PBE_SHA1_DES3_EDE_CBC: CK_MECHANISM_TYPE = 936;
527pub const CKM_PBE_SHA1_DES2_EDE_CBC: CK_MECHANISM_TYPE = 937;
528pub const CKM_PBE_SHA1_RC2_128_CBC: CK_MECHANISM_TYPE = 938;
529pub const CKM_PBE_SHA1_RC2_40_CBC: CK_MECHANISM_TYPE = 939;
530pub const CKM_PKCS5_PBKD2: CK_MECHANISM_TYPE = 944;
531pub const CKM_PBA_SHA1_WITH_SHA1_HMAC: CK_MECHANISM_TYPE = 960;
532pub const CKM_WTLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 976;
533pub const CKM_WTLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 977;
534pub const CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC: CK_MECHANISM_TYPE = 978;
535pub const CKM_WTLS_PRF: CK_MECHANISM_TYPE = 979;
536pub const CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 980;
537pub const CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 981;
538pub const CKM_TLS10_MAC_SERVER: CK_MECHANISM_TYPE = 982;
539pub const CKM_TLS10_MAC_CLIENT: CK_MECHANISM_TYPE = 983;
540pub const CKM_TLS12_MAC: CK_MECHANISM_TYPE = 984;
541pub const CKM_TLS12_KDF: CK_MECHANISM_TYPE = 985;
542pub const CKM_TLS12_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 992;
543pub const CKM_TLS12_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 993;
544pub const CKM_TLS12_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 994;
545pub const CKM_TLS12_KEY_SAFE_DERIVE: CK_MECHANISM_TYPE = 995;
546pub const CKM_TLS_MAC: CK_MECHANISM_TYPE = 996;
547pub const CKM_TLS_KDF: CK_MECHANISM_TYPE = 997;
548pub const CKM_KEY_WRAP_LYNKS: CK_MECHANISM_TYPE = 1024;
549pub const CKM_KEY_WRAP_SET_OAEP: CK_MECHANISM_TYPE = 1025;
550pub const CKM_CMS_SIG: CK_MECHANISM_TYPE = 1280;
551pub const CKM_KIP_DERIVE: CK_MECHANISM_TYPE = 1296;
552pub const CKM_KIP_WRAP: CK_MECHANISM_TYPE = 1297;
553pub const CKM_KIP_MAC: CK_MECHANISM_TYPE = 1298;
554pub const CKM_CAMELLIA_KEY_GEN: CK_MECHANISM_TYPE = 1360;
555pub const CKM_CAMELLIA_ECB: CK_MECHANISM_TYPE = 1361;
556pub const CKM_CAMELLIA_CBC: CK_MECHANISM_TYPE = 1362;
557pub const CKM_CAMELLIA_MAC: CK_MECHANISM_TYPE = 1363;
558pub const CKM_CAMELLIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1364;
559pub const CKM_CAMELLIA_CBC_PAD: CK_MECHANISM_TYPE = 1365;
560pub const CKM_CAMELLIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1366;
561pub const CKM_CAMELLIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1367;
562pub const CKM_CAMELLIA_CTR: CK_MECHANISM_TYPE = 1368;
563pub const CKM_ARIA_KEY_GEN: CK_MECHANISM_TYPE = 1376;
564pub const CKM_ARIA_ECB: CK_MECHANISM_TYPE = 1377;
565pub const CKM_ARIA_CBC: CK_MECHANISM_TYPE = 1378;
566pub const CKM_ARIA_MAC: CK_MECHANISM_TYPE = 1379;
567pub const CKM_ARIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1380;
568pub const CKM_ARIA_CBC_PAD: CK_MECHANISM_TYPE = 1381;
569pub const CKM_ARIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1382;
570pub const CKM_ARIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1383;
571pub const CKM_SEED_KEY_GEN: CK_MECHANISM_TYPE = 1616;
572pub const CKM_SEED_ECB: CK_MECHANISM_TYPE = 1617;
573pub const CKM_SEED_CBC: CK_MECHANISM_TYPE = 1618;
574pub const CKM_SEED_MAC: CK_MECHANISM_TYPE = 1619;
575pub const CKM_SEED_MAC_GENERAL: CK_MECHANISM_TYPE = 1620;
576pub const CKM_SEED_CBC_PAD: CK_MECHANISM_TYPE = 1621;
577pub const CKM_SEED_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1622;
578pub const CKM_SEED_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1623;
579pub const CKM_SKIPJACK_KEY_GEN: CK_MECHANISM_TYPE = 4096;
580pub const CKM_SKIPJACK_ECB64: CK_MECHANISM_TYPE = 4097;
581pub const CKM_SKIPJACK_CBC64: CK_MECHANISM_TYPE = 4098;
582pub const CKM_SKIPJACK_OFB64: CK_MECHANISM_TYPE = 4099;
583pub const CKM_SKIPJACK_CFB64: CK_MECHANISM_TYPE = 4100;
584pub const CKM_SKIPJACK_CFB32: CK_MECHANISM_TYPE = 4101;
585pub const CKM_SKIPJACK_CFB16: CK_MECHANISM_TYPE = 4102;
586pub const CKM_SKIPJACK_CFB8: CK_MECHANISM_TYPE = 4103;
587pub const CKM_SKIPJACK_WRAP: CK_MECHANISM_TYPE = 4104;
588pub const CKM_SKIPJACK_PRIVATE_WRAP: CK_MECHANISM_TYPE = 4105;
589pub const CKM_SKIPJACK_RELAYX: CK_MECHANISM_TYPE = 4106;
590pub const CKM_KEA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4112;
591pub const CKM_KEA_KEY_DERIVE: CK_MECHANISM_TYPE = 4113;
592pub const CKM_KEA_DERIVE: CK_MECHANISM_TYPE = 4114;
593pub const CKM_FORTEZZA_TIMESTAMP: CK_MECHANISM_TYPE = 4128;
594pub const CKM_BATON_KEY_GEN: CK_MECHANISM_TYPE = 4144;
595pub const CKM_BATON_ECB128: CK_MECHANISM_TYPE = 4145;
596pub const CKM_BATON_ECB96: CK_MECHANISM_TYPE = 4146;
597pub const CKM_BATON_CBC128: CK_MECHANISM_TYPE = 4147;
598pub const CKM_BATON_COUNTER: CK_MECHANISM_TYPE = 4148;
599pub const CKM_BATON_SHUFFLE: CK_MECHANISM_TYPE = 4149;
600pub const CKM_BATON_WRAP: CK_MECHANISM_TYPE = 4150;
601pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160;
602pub const CKM_EC_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160;
603pub const CKM_ECDSA: CK_MECHANISM_TYPE = 4161;
604pub const CKM_ECDSA_SHA1: CK_MECHANISM_TYPE = 4162;
605pub const CKM_ECDSA_SHA224: CK_MECHANISM_TYPE = 4163;
606pub const CKM_ECDSA_SHA256: CK_MECHANISM_TYPE = 4164;
607pub const CKM_ECDSA_SHA384: CK_MECHANISM_TYPE = 4165;
608pub const CKM_ECDSA_SHA512: CK_MECHANISM_TYPE = 4166;
609pub const CKM_EC_KEY_PAIR_GEN_W_EXTRA_BITS: CK_MECHANISM_TYPE = 5131;
610pub const CKM_ECDH1_DERIVE: CK_MECHANISM_TYPE = 4176;
611pub const CKM_ECDH1_COFACTOR_DERIVE: CK_MECHANISM_TYPE = 4177;
612pub const CKM_ECMQV_DERIVE: CK_MECHANISM_TYPE = 4178;
613pub const CKM_ECDH_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4179;
614pub const CKM_RSA_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4180;
615pub const CKM_JUNIPER_KEY_GEN: CK_MECHANISM_TYPE = 4192;
616pub const CKM_JUNIPER_ECB128: CK_MECHANISM_TYPE = 4193;
617pub const CKM_JUNIPER_CBC128: CK_MECHANISM_TYPE = 4194;
618pub const CKM_JUNIPER_COUNTER: CK_MECHANISM_TYPE = 4195;
619pub const CKM_JUNIPER_SHUFFLE: CK_MECHANISM_TYPE = 4196;
620pub const CKM_JUNIPER_WRAP: CK_MECHANISM_TYPE = 4197;
621pub const CKM_FASTHASH: CK_MECHANISM_TYPE = 4208;
622pub const CKM_AES_XTS: CK_MECHANISM_TYPE = 4209;
623pub const CKM_AES_XTS_KEY_GEN: CK_MECHANISM_TYPE = 4210;
624pub const CKM_AES_KEY_GEN: CK_MECHANISM_TYPE = 4224;
625pub const CKM_AES_ECB: CK_MECHANISM_TYPE = 4225;
626pub const CKM_AES_CBC: CK_MECHANISM_TYPE = 4226;
627pub const CKM_AES_MAC: CK_MECHANISM_TYPE = 4227;
628pub const CKM_AES_MAC_GENERAL: CK_MECHANISM_TYPE = 4228;
629pub const CKM_AES_CBC_PAD: CK_MECHANISM_TYPE = 4229;
630pub const CKM_AES_CTR: CK_MECHANISM_TYPE = 4230;
631pub const CKM_AES_GCM: CK_MECHANISM_TYPE = 4231;
632pub const CKM_AES_CCM: CK_MECHANISM_TYPE = 4232;
633pub const CKM_AES_CTS: CK_MECHANISM_TYPE = 4233;
634pub const CKM_AES_CMAC: CK_MECHANISM_TYPE = 4234;
635pub const CKM_AES_CMAC_GENERAL: CK_MECHANISM_TYPE = 4235;
636pub const CKM_AES_XCBC_MAC: CK_MECHANISM_TYPE = 4236;
637pub const CKM_AES_XCBC_MAC_96: CK_MECHANISM_TYPE = 4237;
638pub const CKM_AES_GMAC: CK_MECHANISM_TYPE = 4238;
639pub const CKM_BLOWFISH_KEY_GEN: CK_MECHANISM_TYPE = 4240;
640pub const CKM_BLOWFISH_CBC: CK_MECHANISM_TYPE = 4241;
641pub const CKM_TWOFISH_KEY_GEN: CK_MECHANISM_TYPE = 4242;
642pub const CKM_TWOFISH_CBC: CK_MECHANISM_TYPE = 4243;
643pub const CKM_BLOWFISH_CBC_PAD: CK_MECHANISM_TYPE = 4244;
644pub const CKM_TWOFISH_CBC_PAD: CK_MECHANISM_TYPE = 4245;
645pub const CKM_DES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4352;
646pub const CKM_DES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4353;
647pub const CKM_DES3_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4354;
648pub const CKM_DES3_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4355;
649pub const CKM_AES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4356;
650pub const CKM_AES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4357;
651pub const CKM_GOSTR3410_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4608;
652pub const CKM_GOSTR3410: CK_MECHANISM_TYPE = 4609;
653pub const CKM_GOSTR3410_WITH_GOSTR3411: CK_MECHANISM_TYPE = 4610;
654pub const CKM_GOSTR3410_KEY_WRAP: CK_MECHANISM_TYPE = 4611;
655pub const CKM_GOSTR3410_DERIVE: CK_MECHANISM_TYPE = 4612;
656pub const CKM_GOSTR3411: CK_MECHANISM_TYPE = 4624;
657pub const CKM_GOSTR3411_HMAC: CK_MECHANISM_TYPE = 4625;
658pub const CKM_GOST28147_KEY_GEN: CK_MECHANISM_TYPE = 4640;
659pub const CKM_GOST28147_ECB: CK_MECHANISM_TYPE = 4641;
660pub const CKM_GOST28147: CK_MECHANISM_TYPE = 4642;
661pub const CKM_GOST28147_MAC: CK_MECHANISM_TYPE = 4643;
662pub const CKM_GOST28147_KEY_WRAP: CK_MECHANISM_TYPE = 4644;
663pub const CKM_CHACHA20_KEY_GEN: CK_MECHANISM_TYPE = 4645;
664pub const CKM_CHACHA20: CK_MECHANISM_TYPE = 4646;
665pub const CKM_POLY1305_KEY_GEN: CK_MECHANISM_TYPE = 4647;
666pub const CKM_POLY1305: CK_MECHANISM_TYPE = 4648;
667pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192;
668pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193;
669pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194;
670pub const CKM_DSA_PROBABILISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195;
671pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195;
672pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196;
673pub const CKM_DSA_FIPS_G_GEN: CK_MECHANISM_TYPE = 8197;
674pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452;
675pub const CKM_AES_CFB64: CK_MECHANISM_TYPE = 8453;
676pub const CKM_AES_CFB8: CK_MECHANISM_TYPE = 8454;
677pub const CKM_AES_CFB128: CK_MECHANISM_TYPE = 8455;
678pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456;
679pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457;
680pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458;
681pub const CKM_AES_KEY_WRAP_KWP: CK_MECHANISM_TYPE = 8459;
682pub const CKM_AES_KEY_WRAP_PKCS7: CK_MECHANISM_TYPE = 8460;
683pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385;
684pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386;
685pub const CKM_SHA_1_KEY_GEN: CK_MECHANISM_TYPE = 16387;
686pub const CKM_SHA224_KEY_GEN: CK_MECHANISM_TYPE = 16388;
687pub const CKM_SHA256_KEY_GEN: CK_MECHANISM_TYPE = 16389;
688pub const CKM_SHA384_KEY_GEN: CK_MECHANISM_TYPE = 16390;
689pub const CKM_SHA512_KEY_GEN: CK_MECHANISM_TYPE = 16391;
690pub const CKM_SHA512_224_KEY_GEN: CK_MECHANISM_TYPE = 16392;
691pub const CKM_SHA512_256_KEY_GEN: CK_MECHANISM_TYPE = 16393;
692pub const CKM_SHA512_T_KEY_GEN: CK_MECHANISM_TYPE = 16394;
693pub const CKM_NULL: CK_MECHANISM_TYPE = 16395;
694pub const CKM_BLAKE2B_160: CK_MECHANISM_TYPE = 16396;
695pub const CKM_BLAKE2B_160_HMAC: CK_MECHANISM_TYPE = 16397;
696pub const CKM_BLAKE2B_160_HMAC_GENERAL: CK_MECHANISM_TYPE = 16398;
697pub const CKM_BLAKE2B_160_KEY_DERIVE: CK_MECHANISM_TYPE = 16399;
698pub const CKM_BLAKE2B_160_KEY_GEN: CK_MECHANISM_TYPE = 16400;
699pub const CKM_BLAKE2B_256: CK_MECHANISM_TYPE = 16401;
700pub const CKM_BLAKE2B_256_HMAC: CK_MECHANISM_TYPE = 16402;
701pub const CKM_BLAKE2B_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 16403;
702pub const CKM_BLAKE2B_256_KEY_DERIVE: CK_MECHANISM_TYPE = 16404;
703pub const CKM_BLAKE2B_256_KEY_GEN: CK_MECHANISM_TYPE = 16405;
704pub const CKM_BLAKE2B_384: CK_MECHANISM_TYPE = 16406;
705pub const CKM_BLAKE2B_384_HMAC: CK_MECHANISM_TYPE = 16407;
706pub const CKM_BLAKE2B_384_HMAC_GENERAL: CK_MECHANISM_TYPE = 16408;
707pub const CKM_BLAKE2B_384_KEY_DERIVE: CK_MECHANISM_TYPE = 16409;
708pub const CKM_BLAKE2B_384_KEY_GEN: CK_MECHANISM_TYPE = 16410;
709pub const CKM_BLAKE2B_512: CK_MECHANISM_TYPE = 16411;
710pub const CKM_BLAKE2B_512_HMAC: CK_MECHANISM_TYPE = 16412;
711pub const CKM_BLAKE2B_512_HMAC_GENERAL: CK_MECHANISM_TYPE = 16413;
712pub const CKM_BLAKE2B_512_KEY_DERIVE: CK_MECHANISM_TYPE = 16414;
713pub const CKM_BLAKE2B_512_KEY_GEN: CK_MECHANISM_TYPE = 16415;
714pub const CKM_SALSA20: CK_MECHANISM_TYPE = 16416;
715pub const CKM_CHACHA20_POLY1305: CK_MECHANISM_TYPE = 16417;
716pub const CKM_SALSA20_POLY1305: CK_MECHANISM_TYPE = 16418;
717pub const CKM_X3DH_INITIALIZE: CK_MECHANISM_TYPE = 16419;
718pub const CKM_X3DH_RESPOND: CK_MECHANISM_TYPE = 16420;
719pub const CKM_X2RATCHET_INITIALIZE: CK_MECHANISM_TYPE = 16421;
720pub const CKM_X2RATCHET_RESPOND: CK_MECHANISM_TYPE = 16422;
721pub const CKM_X2RATCHET_ENCRYPT: CK_MECHANISM_TYPE = 16423;
722pub const CKM_X2RATCHET_DECRYPT: CK_MECHANISM_TYPE = 16424;
723pub const CKM_XEDDSA: CK_MECHANISM_TYPE = 16425;
724pub const CKM_HKDF_DERIVE: CK_MECHANISM_TYPE = 16426;
725pub const CKM_HKDF_DATA: CK_MECHANISM_TYPE = 16427;
726pub const CKM_HKDF_KEY_GEN: CK_MECHANISM_TYPE = 16428;
727pub const CKM_SALSA20_KEY_GEN: CK_MECHANISM_TYPE = 16429;
728pub const CKM_ECDSA_SHA3_224: CK_MECHANISM_TYPE = 4167;
729pub const CKM_ECDSA_SHA3_256: CK_MECHANISM_TYPE = 4168;
730pub const CKM_ECDSA_SHA3_384: CK_MECHANISM_TYPE = 4169;
731pub const CKM_ECDSA_SHA3_512: CK_MECHANISM_TYPE = 4170;
732pub const CKM_EC_EDWARDS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4181;
733pub const CKM_EC_MONTGOMERY_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4182;
734pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183;
735pub const CKM_SP800_108_COUNTER_KDF: CK_MECHANISM_TYPE = 940;
736pub const CKM_SP800_108_FEEDBACK_KDF: CK_MECHANISM_TYPE = 941;
737pub const CKM_SP800_108_DOUBLE_PIPELINE_KDF: CK_MECHANISM_TYPE = 942;
738pub const CKM_IKE2_PRF_PLUS_DERIVE: CK_MECHANISM_TYPE = 16430;
739pub const CKM_IKE_PRF_DERIVE: CK_MECHANISM_TYPE = 16431;
740pub const CKM_IKE1_PRF_DERIVE: CK_MECHANISM_TYPE = 16432;
741pub const CKM_IKE1_EXTENDED_DERIVE: CK_MECHANISM_TYPE = 16433;
742pub const CKM_HSS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16434;
743pub const CKM_HSS: CK_MECHANISM_TYPE = 16435;
744pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 2147483648;
745pub const CKF_HW: CK_FLAGS = 1;
746pub const CKF_MESSAGE_ENCRYPT: CK_FLAGS = 2;
747pub const CKF_MESSAGE_DECRYPT: CK_FLAGS = 4;
748pub const CKF_MESSAGE_SIGN: CK_FLAGS = 8;
749pub const CKF_MESSAGE_VERIFY: CK_FLAGS = 16;
750pub const CKF_MULTI_MESSAGE: CK_FLAGS = 32;
751pub const CKF_MULTI_MESSGE: CK_FLAGS = 32;
752pub const CKF_FIND_OBJECTS: CK_FLAGS = 64;
753pub const CKF_ENCRYPT: CK_FLAGS = 256;
754pub const CKF_DECRYPT: CK_FLAGS = 512;
755pub const CKF_DIGEST: CK_FLAGS = 1024;
756pub const CKF_SIGN: CK_FLAGS = 2048;
757pub const CKF_SIGN_RECOVER: CK_FLAGS = 4096;
758pub const CKF_VERIFY: CK_FLAGS = 8192;
759pub const CKF_VERIFY_RECOVER: CK_FLAGS = 16384;
760pub const CKF_GENERATE: CK_FLAGS = 32768;
761pub const CKF_GENERATE_KEY_PAIR: CK_FLAGS = 65536;
762pub const CKF_WRAP: CK_FLAGS = 131072;
763pub const CKF_UNWRAP: CK_FLAGS = 262144;
764pub const CKF_DERIVE: CK_FLAGS = 524288;
765pub const CKF_EC_F_P: CK_FLAGS = 1048576;
766pub const CKF_EC_F_2M: CK_FLAGS = 2097152;
767pub const CKF_EC_ECPARAMETERS: CK_FLAGS = 4194304;
768pub const CKF_EC_OID: CK_FLAGS = 8388608;
769pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608;
770pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216;
771pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432;
772pub const CKF_EC_CURVENAME: CK_FLAGS = 67108864;
773pub const CKF_EXTENSION: CK_FLAGS = 2147483648;
774pub const CKR_OK: CK_RV = 0;
775pub const CKR_CANCEL: CK_RV = 1;
776pub const CKR_HOST_MEMORY: CK_RV = 2;
777pub const CKR_SLOT_ID_INVALID: CK_RV = 3;
778pub const CKR_GENERAL_ERROR: CK_RV = 5;
779pub const CKR_FUNCTION_FAILED: CK_RV = 6;
780pub const CKR_ARGUMENTS_BAD: CK_RV = 7;
781pub const CKR_NO_EVENT: CK_RV = 8;
782pub const CKR_NEED_TO_CREATE_THREADS: CK_RV = 9;
783pub const CKR_CANT_LOCK: CK_RV = 10;
784pub const CKR_ATTRIBUTE_READ_ONLY: CK_RV = 16;
785pub const CKR_ATTRIBUTE_SENSITIVE: CK_RV = 17;
786pub const CKR_ATTRIBUTE_TYPE_INVALID: CK_RV = 18;
787pub const CKR_ATTRIBUTE_VALUE_INVALID: CK_RV = 19;
788pub const CKR_ACTION_PROHIBITED: CK_RV = 27;
789pub const CKR_DATA_INVALID: CK_RV = 32;
790pub const CKR_DATA_LEN_RANGE: CK_RV = 33;
791pub const CKR_DEVICE_ERROR: CK_RV = 48;
792pub const CKR_DEVICE_MEMORY: CK_RV = 49;
793pub const CKR_DEVICE_REMOVED: CK_RV = 50;
794pub const CKR_ENCRYPTED_DATA_INVALID: CK_RV = 64;
795pub const CKR_ENCRYPTED_DATA_LEN_RANGE: CK_RV = 65;
796pub const CKR_AEAD_DECRYPT_FAILED: CK_RV = 66;
797pub const CKR_FUNCTION_CANCELED: CK_RV = 80;
798pub const CKR_FUNCTION_NOT_PARALLEL: CK_RV = 81;
799pub const CKR_FUNCTION_NOT_SUPPORTED: CK_RV = 84;
800pub const CKR_KEY_HANDLE_INVALID: CK_RV = 96;
801pub const CKR_KEY_SIZE_RANGE: CK_RV = 98;
802pub const CKR_KEY_TYPE_INCONSISTENT: CK_RV = 99;
803pub const CKR_KEY_NOT_NEEDED: CK_RV = 100;
804pub const CKR_KEY_CHANGED: CK_RV = 101;
805pub const CKR_KEY_NEEDED: CK_RV = 102;
806pub const CKR_KEY_INDIGESTIBLE: CK_RV = 103;
807pub const CKR_KEY_FUNCTION_NOT_PERMITTED: CK_RV = 104;
808pub const CKR_KEY_NOT_WRAPPABLE: CK_RV = 105;
809pub const CKR_KEY_UNEXTRACTABLE: CK_RV = 106;
810pub const CKR_MECHANISM_INVALID: CK_RV = 112;
811pub const CKR_MECHANISM_PARAM_INVALID: CK_RV = 113;
812pub const CKR_OBJECT_HANDLE_INVALID: CK_RV = 130;
813pub const CKR_OPERATION_ACTIVE: CK_RV = 144;
814pub const CKR_OPERATION_NOT_INITIALIZED: CK_RV = 145;
815pub const CKR_PIN_INCORRECT: CK_RV = 160;
816pub const CKR_PIN_INVALID: CK_RV = 161;
817pub const CKR_PIN_LEN_RANGE: CK_RV = 162;
818pub const CKR_PIN_EXPIRED: CK_RV = 163;
819pub const CKR_PIN_LOCKED: CK_RV = 164;
820pub const CKR_SESSION_CLOSED: CK_RV = 176;
821pub const CKR_SESSION_COUNT: CK_RV = 177;
822pub const CKR_SESSION_HANDLE_INVALID: CK_RV = 179;
823pub const CKR_SESSION_PARALLEL_NOT_SUPPORTED: CK_RV = 180;
824pub const CKR_SESSION_READ_ONLY: CK_RV = 181;
825pub const CKR_SESSION_EXISTS: CK_RV = 182;
826pub const CKR_SESSION_READ_ONLY_EXISTS: CK_RV = 183;
827pub const CKR_SESSION_READ_WRITE_SO_EXISTS: CK_RV = 184;
828pub const CKR_SIGNATURE_INVALID: CK_RV = 192;
829pub const CKR_SIGNATURE_LEN_RANGE: CK_RV = 193;
830pub const CKR_TEMPLATE_INCOMPLETE: CK_RV = 208;
831pub const CKR_TEMPLATE_INCONSISTENT: CK_RV = 209;
832pub const CKR_TOKEN_NOT_PRESENT: CK_RV = 224;
833pub const CKR_TOKEN_NOT_RECOGNIZED: CK_RV = 225;
834pub const CKR_TOKEN_WRITE_PROTECTED: CK_RV = 226;
835pub const CKR_UNWRAPPING_KEY_HANDLE_INVALID: CK_RV = 240;
836pub const CKR_UNWRAPPING_KEY_SIZE_RANGE: CK_RV = 241;
837pub const CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 242;
838pub const CKR_USER_ALREADY_LOGGED_IN: CK_RV = 256;
839pub const CKR_USER_NOT_LOGGED_IN: CK_RV = 257;
840pub const CKR_USER_PIN_NOT_INITIALIZED: CK_RV = 258;
841pub const CKR_USER_TYPE_INVALID: CK_RV = 259;
842pub const CKR_USER_ANOTHER_ALREADY_LOGGED_IN: CK_RV = 260;
843pub const CKR_USER_TOO_MANY_TYPES: CK_RV = 261;
844pub const CKR_WRAPPED_KEY_INVALID: CK_RV = 272;
845pub const CKR_WRAPPED_KEY_LEN_RANGE: CK_RV = 274;
846pub const CKR_WRAPPING_KEY_HANDLE_INVALID: CK_RV = 275;
847pub const CKR_WRAPPING_KEY_SIZE_RANGE: CK_RV = 276;
848pub const CKR_WRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 277;
849pub const CKR_RANDOM_SEED_NOT_SUPPORTED: CK_RV = 288;
850pub const CKR_RANDOM_NO_RNG: CK_RV = 289;
851pub const CKR_DOMAIN_PARAMS_INVALID: CK_RV = 304;
852pub const CKR_CURVE_NOT_SUPPORTED: CK_RV = 320;
853pub const CKR_BUFFER_TOO_SMALL: CK_RV = 336;
854pub const CKR_SAVED_STATE_INVALID: CK_RV = 352;
855pub const CKR_INFORMATION_SENSITIVE: CK_RV = 368;
856pub const CKR_STATE_UNSAVEABLE: CK_RV = 384;
857pub const CKR_CRYPTOKI_NOT_INITIALIZED: CK_RV = 400;
858pub const CKR_CRYPTOKI_ALREADY_INITIALIZED: CK_RV = 401;
859pub const CKR_MUTEX_BAD: CK_RV = 416;
860pub const CKR_MUTEX_NOT_LOCKED: CK_RV = 417;
861pub const CKR_NEW_PIN_MODE: CK_RV = 432;
862pub const CKR_NEXT_OTP: CK_RV = 433;
863pub const CKR_EXCEEDED_MAX_ITERATIONS: CK_RV = 437;
864pub const CKR_FIPS_SELF_TEST_FAILED: CK_RV = 438;
865pub const CKR_LIBRARY_LOAD_FAILED: CK_RV = 439;
866pub const CKR_PIN_TOO_WEAK: CK_RV = 440;
867pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 441;
868pub const CKR_FUNCTION_REJECTED: CK_RV = 512;
869pub const CKR_TOKEN_RESOURCE_EXCEEDED: CK_RV = 513;
870pub const CKR_OPERATION_CANCEL_FAILED: CK_RV = 514;
871pub const CKR_KEY_EXHAUSTED: CK_RV = 515;
872pub const CKR_VENDOR_DEFINED: CK_RV = 2147483648;
873pub const CKF_END_OF_MESSAGE: CK_FLAGS = 1;
874pub const CKF_INTERFACE_FORK_SAFE: CK_FLAGS = 1;
875pub const CKF_LIBRARY_CANT_CREATE_OS_THREADS: CK_FLAGS = 1;
876pub const CKF_OS_LOCKING_OK: CK_FLAGS = 2;
877pub const CKF_DONT_BLOCK: CK_FLAGS = 1;
878pub const CKG_MGF1_SHA1: CK_RSA_PKCS_MGF_TYPE = 1;
879pub const CKG_MGF1_SHA256: CK_RSA_PKCS_MGF_TYPE = 2;
880pub const CKG_MGF1_SHA384: CK_RSA_PKCS_MGF_TYPE = 3;
881pub const CKG_MGF1_SHA512: CK_RSA_PKCS_MGF_TYPE = 4;
882pub const CKG_MGF1_SHA224: CK_RSA_PKCS_MGF_TYPE = 5;
883pub const CKG_MGF1_SHA3_224: CK_RSA_PKCS_MGF_TYPE = 6;
884pub const CKG_MGF1_SHA3_256: CK_RSA_PKCS_MGF_TYPE = 7;
885pub const CKG_MGF1_SHA3_384: CK_RSA_PKCS_MGF_TYPE = 8;
886pub const CKG_MGF1_SHA3_512: CK_RSA_PKCS_MGF_TYPE = 9;
887pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1;
888pub const CKD_NULL: CK_EC_KDF_TYPE = 1;
889pub const CKD_SHA1_KDF: CK_EC_KDF_TYPE = 2;
890pub const CKD_SHA1_KDF_ASN1: CK_EC_KDF_TYPE = 3;
891pub const CKD_SHA1_KDF_CONCATENATE: CK_EC_KDF_TYPE = 4;
892pub const CKD_SHA224_KDF: CK_EC_KDF_TYPE = 5;
893pub const CKD_SHA256_KDF: CK_EC_KDF_TYPE = 6;
894pub const CKD_SHA384_KDF: CK_EC_KDF_TYPE = 7;
895pub const CKD_SHA512_KDF: CK_EC_KDF_TYPE = 8;
896pub const CKD_CPDIVERSIFY_KDF: CK_EC_KDF_TYPE = 9;
897pub const CKD_SHA3_224_KDF: CK_EC_KDF_TYPE = 10;
898pub const CKD_SHA3_256_KDF: CK_EC_KDF_TYPE = 11;
899pub const CKD_SHA3_384_KDF: CK_EC_KDF_TYPE = 12;
900pub const CKD_SHA3_512_KDF: CK_EC_KDF_TYPE = 13;
901pub const CKD_SHA1_KDF_SP800: CK_EC_KDF_TYPE = 14;
902pub const CKD_SHA224_KDF_SP800: CK_EC_KDF_TYPE = 15;
903pub const CKD_SHA256_KDF_SP800: CK_EC_KDF_TYPE = 16;
904pub const CKD_SHA384_KDF_SP800: CK_EC_KDF_TYPE = 17;
905pub const CKD_SHA512_KDF_SP800: CK_EC_KDF_TYPE = 18;
906pub const CKD_SHA3_224_KDF_SP800: CK_EC_KDF_TYPE = 19;
907pub const CKD_SHA3_256_KDF_SP800: CK_EC_KDF_TYPE = 20;
908pub const CKD_SHA3_384_KDF_SP800: CK_EC_KDF_TYPE = 21;
909pub const CKD_SHA3_512_KDF_SP800: CK_EC_KDF_TYPE = 22;
910pub const CKD_BLAKE2B_160_KDF: CK_EC_KDF_TYPE = 23;
911pub const CKD_BLAKE2B_256_KDF: CK_EC_KDF_TYPE = 24;
912pub const CKD_BLAKE2B_384_KDF: CK_EC_KDF_TYPE = 25;
913pub const CKD_BLAKE2B_512_KDF: CK_EC_KDF_TYPE = 26;
914pub const CKP_PKCS5_PBKD2_HMAC_SHA1: CK_PROFILE_ID = 1;
915pub const CKP_PKCS5_PBKD2_HMAC_GOSTR3411: CK_PROFILE_ID = 2;
916pub const CKP_PKCS5_PBKD2_HMAC_SHA224: CK_PROFILE_ID = 3;
917pub const CKP_PKCS5_PBKD2_HMAC_SHA256: CK_PROFILE_ID = 4;
918pub const CKP_PKCS5_PBKD2_HMAC_SHA384: CK_PROFILE_ID = 5;
919pub const CKP_PKCS5_PBKD2_HMAC_SHA512: CK_PROFILE_ID = 6;
920pub const CKP_PKCS5_PBKD2_HMAC_SHA512_224: CK_PROFILE_ID = 7;
921pub const CKP_PKCS5_PBKD2_HMAC_SHA512_256: CK_PROFILE_ID = 8;
922pub const CKZ_SALT_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1;
923pub const CK_OTP_VALUE: CK_ULONG = 0;
924pub const CK_OTP_PIN: CK_ULONG = 1;
925pub const CK_OTP_CHALLENGE: CK_ULONG = 2;
926pub const CK_OTP_TIME: CK_ULONG = 3;
927pub const CK_OTP_COUNTER: CK_ULONG = 4;
928pub const CK_OTP_FLAGS: CK_ULONG = 5;
929pub const CK_OTP_OUTPUT_LENGTH: CK_ULONG = 6;
930pub const CK_OTP_OUTPUT_FORMAT: CK_ULONG = 7;
931pub const CKF_NEXT_OTP: CK_FLAGS = 1;
932pub const CKF_EXCLUDE_TIME: CK_FLAGS = 2;
933pub const CKF_EXCLUDE_COUNTER: CK_FLAGS = 4;
934pub const CKF_EXCLUDE_CHALLENGE: CK_FLAGS = 8;
935pub const CKF_EXCLUDE_PIN: CK_FLAGS = 16;
936pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32;
937pub const CKG_NO_GENERATE: CK_GENERATOR_FUNCTION = 0;
938pub const CKG_GENERATE: CK_GENERATOR_FUNCTION = 1;
939pub const CKG_GENERATE_COUNTER: CK_GENERATOR_FUNCTION = 2;
940pub const CKG_GENERATE_RANDOM: CK_GENERATOR_FUNCTION = 3;
941pub const CKG_GENERATE_COUNTER_XOR: CK_GENERATOR_FUNCTION = 4;
942pub const CK_SP800_108_ITERATION_VARIABLE: CK_ULONG = 1;
943pub const CK_SP800_108_OPTIONAL_COUNTER: CK_ULONG = 2;
944pub const CK_SP800_108_DKM_LENGTH: CK_ULONG = 3;
945pub const CK_SP800_108_BYTE_ARRAY: CK_ULONG = 4;
946pub const CK_SP800_108_COUNTER: CK_ULONG = 2;
947pub const CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS: CK_ULONG = 1;
948pub const CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS: CK_ULONG = 2;
949pub const CKF_HKDF_SALT_NULL: CK_FLAGS = 1;
950pub const CKF_HKDF_SALT_DATA: CK_FLAGS = 2;
951pub const CKF_HKDF_SALT_KEY: CK_FLAGS = 4;
952pub const CK_NEED_ARG_LIST: CK_ULONG = 1;
953pub const CK_PKCS11_2_0_ONLY: CK_ULONG = 1;
954pub type CK_BYTE = ::std::os::raw::c_uchar;
955pub type CK_CHAR = CK_BYTE;
956pub type CK_UTF8CHAR = CK_BYTE;
957pub type CK_BBOOL = CK_BYTE;
958pub type CK_ULONG = ::std::os::raw::c_ulong;
959pub type CK_LONG = ::std::os::raw::c_long;
960pub type CK_FLAGS = CK_ULONG;
961pub type CK_BYTE_PTR = *mut CK_BYTE;
962pub type CK_CHAR_PTR = *mut CK_CHAR;
963pub type CK_UTF8CHAR_PTR = *mut CK_UTF8CHAR;
964pub type CK_ULONG_PTR = *mut CK_ULONG;
965pub type CK_VOID_PTR = *mut ::std::os::raw::c_void;
966pub type CK_VOID_PTR_PTR = *mut CK_VOID_PTR;
967#[repr(C)]
968#[derive(Debug, Default, Copy, Clone)]
969pub struct CK_VERSION {
970    pub major: CK_BYTE,
971    pub minor: CK_BYTE,
972}
973#[allow(clippy::unnecessary_operation, clippy::identity_op)]
974const _: () = {
975    ["Size of CK_VERSION"][::std::mem::size_of::<CK_VERSION>() - 2usize];
976    ["Alignment of CK_VERSION"][::std::mem::align_of::<CK_VERSION>() - 1usize];
977    ["Offset of field: CK_VERSION::major"][::std::mem::offset_of!(CK_VERSION, major) - 0usize];
978    ["Offset of field: CK_VERSION::minor"][::std::mem::offset_of!(CK_VERSION, minor) - 1usize];
979};
980pub type CK_VERSION_PTR = *mut CK_VERSION;
981#[repr(C)]
982#[derive(Debug, Default, Copy, Clone)]
983pub struct CK_INFO {
984    pub cryptokiVersion: CK_VERSION,
985    pub manufacturerID: [CK_UTF8CHAR; 32usize],
986    pub flags: CK_FLAGS,
987    pub libraryDescription: [CK_UTF8CHAR; 32usize],
988    pub libraryVersion: CK_VERSION,
989}
990#[allow(clippy::unnecessary_operation, clippy::identity_op)]
991const _: () = {
992    ["Size of CK_INFO"][::std::mem::size_of::<CK_INFO>() - 88usize];
993    ["Alignment of CK_INFO"][::std::mem::align_of::<CK_INFO>() - 8usize];
994    ["Offset of field: CK_INFO::cryptokiVersion"]
995        [::std::mem::offset_of!(CK_INFO, cryptokiVersion) - 0usize];
996    ["Offset of field: CK_INFO::manufacturerID"]
997        [::std::mem::offset_of!(CK_INFO, manufacturerID) - 2usize];
998    ["Offset of field: CK_INFO::flags"][::std::mem::offset_of!(CK_INFO, flags) - 40usize];
999    ["Offset of field: CK_INFO::libraryDescription"]
1000        [::std::mem::offset_of!(CK_INFO, libraryDescription) - 48usize];
1001    ["Offset of field: CK_INFO::libraryVersion"]
1002        [::std::mem::offset_of!(CK_INFO, libraryVersion) - 80usize];
1003};
1004pub type CK_INFO_PTR = *mut CK_INFO;
1005pub type CK_NOTIFICATION = CK_ULONG;
1006pub type CK_SLOT_ID = CK_ULONG;
1007pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID;
1008#[repr(C)]
1009#[derive(Debug, Copy, Clone)]
1010pub struct CK_SLOT_INFO {
1011    pub slotDescription: [CK_UTF8CHAR; 64usize],
1012    pub manufacturerID: [CK_UTF8CHAR; 32usize],
1013    pub flags: CK_FLAGS,
1014    pub hardwareVersion: CK_VERSION,
1015    pub firmwareVersion: CK_VERSION,
1016}
1017#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1018const _: () = {
1019    ["Size of CK_SLOT_INFO"][::std::mem::size_of::<CK_SLOT_INFO>() - 112usize];
1020    ["Alignment of CK_SLOT_INFO"][::std::mem::align_of::<CK_SLOT_INFO>() - 8usize];
1021    ["Offset of field: CK_SLOT_INFO::slotDescription"]
1022        [::std::mem::offset_of!(CK_SLOT_INFO, slotDescription) - 0usize];
1023    ["Offset of field: CK_SLOT_INFO::manufacturerID"]
1024        [::std::mem::offset_of!(CK_SLOT_INFO, manufacturerID) - 64usize];
1025    ["Offset of field: CK_SLOT_INFO::flags"][::std::mem::offset_of!(CK_SLOT_INFO, flags) - 96usize];
1026    ["Offset of field: CK_SLOT_INFO::hardwareVersion"]
1027        [::std::mem::offset_of!(CK_SLOT_INFO, hardwareVersion) - 104usize];
1028    ["Offset of field: CK_SLOT_INFO::firmwareVersion"]
1029        [::std::mem::offset_of!(CK_SLOT_INFO, firmwareVersion) - 106usize];
1030};
1031impl Default for CK_SLOT_INFO {
1032    fn default() -> Self {
1033        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1034        unsafe {
1035            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1036            s.assume_init()
1037        }
1038    }
1039}
1040pub type CK_SLOT_INFO_PTR = *mut CK_SLOT_INFO;
1041#[repr(C)]
1042#[derive(Debug, Default, Copy, Clone)]
1043pub struct CK_TOKEN_INFO {
1044    pub label: [CK_UTF8CHAR; 32usize],
1045    pub manufacturerID: [CK_UTF8CHAR; 32usize],
1046    pub model: [CK_UTF8CHAR; 16usize],
1047    pub serialNumber: [CK_CHAR; 16usize],
1048    pub flags: CK_FLAGS,
1049    pub ulMaxSessionCount: CK_ULONG,
1050    pub ulSessionCount: CK_ULONG,
1051    pub ulMaxRwSessionCount: CK_ULONG,
1052    pub ulRwSessionCount: CK_ULONG,
1053    pub ulMaxPinLen: CK_ULONG,
1054    pub ulMinPinLen: CK_ULONG,
1055    pub ulTotalPublicMemory: CK_ULONG,
1056    pub ulFreePublicMemory: CK_ULONG,
1057    pub ulTotalPrivateMemory: CK_ULONG,
1058    pub ulFreePrivateMemory: CK_ULONG,
1059    pub hardwareVersion: CK_VERSION,
1060    pub firmwareVersion: CK_VERSION,
1061    pub utcTime: [CK_CHAR; 16usize],
1062}
1063#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1064const _: () = {
1065    ["Size of CK_TOKEN_INFO"][::std::mem::size_of::<CK_TOKEN_INFO>() - 208usize];
1066    ["Alignment of CK_TOKEN_INFO"][::std::mem::align_of::<CK_TOKEN_INFO>() - 8usize];
1067    ["Offset of field: CK_TOKEN_INFO::label"]
1068        [::std::mem::offset_of!(CK_TOKEN_INFO, label) - 0usize];
1069    ["Offset of field: CK_TOKEN_INFO::manufacturerID"]
1070        [::std::mem::offset_of!(CK_TOKEN_INFO, manufacturerID) - 32usize];
1071    ["Offset of field: CK_TOKEN_INFO::model"]
1072        [::std::mem::offset_of!(CK_TOKEN_INFO, model) - 64usize];
1073    ["Offset of field: CK_TOKEN_INFO::serialNumber"]
1074        [::std::mem::offset_of!(CK_TOKEN_INFO, serialNumber) - 80usize];
1075    ["Offset of field: CK_TOKEN_INFO::flags"]
1076        [::std::mem::offset_of!(CK_TOKEN_INFO, flags) - 96usize];
1077    ["Offset of field: CK_TOKEN_INFO::ulMaxSessionCount"]
1078        [::std::mem::offset_of!(CK_TOKEN_INFO, ulMaxSessionCount) - 104usize];
1079    ["Offset of field: CK_TOKEN_INFO::ulSessionCount"]
1080        [::std::mem::offset_of!(CK_TOKEN_INFO, ulSessionCount) - 112usize];
1081    ["Offset of field: CK_TOKEN_INFO::ulMaxRwSessionCount"]
1082        [::std::mem::offset_of!(CK_TOKEN_INFO, ulMaxRwSessionCount) - 120usize];
1083    ["Offset of field: CK_TOKEN_INFO::ulRwSessionCount"]
1084        [::std::mem::offset_of!(CK_TOKEN_INFO, ulRwSessionCount) - 128usize];
1085    ["Offset of field: CK_TOKEN_INFO::ulMaxPinLen"]
1086        [::std::mem::offset_of!(CK_TOKEN_INFO, ulMaxPinLen) - 136usize];
1087    ["Offset of field: CK_TOKEN_INFO::ulMinPinLen"]
1088        [::std::mem::offset_of!(CK_TOKEN_INFO, ulMinPinLen) - 144usize];
1089    ["Offset of field: CK_TOKEN_INFO::ulTotalPublicMemory"]
1090        [::std::mem::offset_of!(CK_TOKEN_INFO, ulTotalPublicMemory) - 152usize];
1091    ["Offset of field: CK_TOKEN_INFO::ulFreePublicMemory"]
1092        [::std::mem::offset_of!(CK_TOKEN_INFO, ulFreePublicMemory) - 160usize];
1093    ["Offset of field: CK_TOKEN_INFO::ulTotalPrivateMemory"]
1094        [::std::mem::offset_of!(CK_TOKEN_INFO, ulTotalPrivateMemory) - 168usize];
1095    ["Offset of field: CK_TOKEN_INFO::ulFreePrivateMemory"]
1096        [::std::mem::offset_of!(CK_TOKEN_INFO, ulFreePrivateMemory) - 176usize];
1097    ["Offset of field: CK_TOKEN_INFO::hardwareVersion"]
1098        [::std::mem::offset_of!(CK_TOKEN_INFO, hardwareVersion) - 184usize];
1099    ["Offset of field: CK_TOKEN_INFO::firmwareVersion"]
1100        [::std::mem::offset_of!(CK_TOKEN_INFO, firmwareVersion) - 186usize];
1101    ["Offset of field: CK_TOKEN_INFO::utcTime"]
1102        [::std::mem::offset_of!(CK_TOKEN_INFO, utcTime) - 188usize];
1103};
1104pub type CK_TOKEN_INFO_PTR = *mut CK_TOKEN_INFO;
1105pub type CK_SESSION_HANDLE = CK_ULONG;
1106pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE;
1107pub type CK_USER_TYPE = CK_ULONG;
1108pub type CK_STATE = CK_ULONG;
1109#[repr(C)]
1110#[derive(Debug, Default, Copy, Clone)]
1111pub struct CK_SESSION_INFO {
1112    pub slotID: CK_SLOT_ID,
1113    pub state: CK_STATE,
1114    pub flags: CK_FLAGS,
1115    pub ulDeviceError: CK_ULONG,
1116}
1117#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1118const _: () = {
1119    ["Size of CK_SESSION_INFO"][::std::mem::size_of::<CK_SESSION_INFO>() - 32usize];
1120    ["Alignment of CK_SESSION_INFO"][::std::mem::align_of::<CK_SESSION_INFO>() - 8usize];
1121    ["Offset of field: CK_SESSION_INFO::slotID"]
1122        [::std::mem::offset_of!(CK_SESSION_INFO, slotID) - 0usize];
1123    ["Offset of field: CK_SESSION_INFO::state"]
1124        [::std::mem::offset_of!(CK_SESSION_INFO, state) - 8usize];
1125    ["Offset of field: CK_SESSION_INFO::flags"]
1126        [::std::mem::offset_of!(CK_SESSION_INFO, flags) - 16usize];
1127    ["Offset of field: CK_SESSION_INFO::ulDeviceError"]
1128        [::std::mem::offset_of!(CK_SESSION_INFO, ulDeviceError) - 24usize];
1129};
1130pub type CK_SESSION_INFO_PTR = *mut CK_SESSION_INFO;
1131pub type CK_OBJECT_HANDLE = CK_ULONG;
1132pub type CK_OBJECT_HANDLE_PTR = *mut CK_OBJECT_HANDLE;
1133pub type CK_OBJECT_CLASS = CK_ULONG;
1134pub type CK_OBJECT_CLASS_PTR = *mut CK_OBJECT_CLASS;
1135pub type CK_HW_FEATURE_TYPE = CK_ULONG;
1136pub type CK_KEY_TYPE = CK_ULONG;
1137pub type CK_CERTIFICATE_TYPE = CK_ULONG;
1138pub type CK_ATTRIBUTE_TYPE = CK_ULONG;
1139#[repr(C)]
1140#[derive(Debug, Copy, Clone)]
1141pub struct CK_ATTRIBUTE {
1142    pub type_: CK_ATTRIBUTE_TYPE,
1143    pub pValue: CK_VOID_PTR,
1144    pub ulValueLen: CK_ULONG,
1145}
1146#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1147const _: () = {
1148    ["Size of CK_ATTRIBUTE"][::std::mem::size_of::<CK_ATTRIBUTE>() - 24usize];
1149    ["Alignment of CK_ATTRIBUTE"][::std::mem::align_of::<CK_ATTRIBUTE>() - 8usize];
1150    ["Offset of field: CK_ATTRIBUTE::type_"][::std::mem::offset_of!(CK_ATTRIBUTE, type_) - 0usize];
1151    ["Offset of field: CK_ATTRIBUTE::pValue"]
1152        [::std::mem::offset_of!(CK_ATTRIBUTE, pValue) - 8usize];
1153    ["Offset of field: CK_ATTRIBUTE::ulValueLen"]
1154        [::std::mem::offset_of!(CK_ATTRIBUTE, ulValueLen) - 16usize];
1155};
1156impl Default for CK_ATTRIBUTE {
1157    fn default() -> Self {
1158        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1159        unsafe {
1160            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1161            s.assume_init()
1162        }
1163    }
1164}
1165pub type CK_ATTRIBUTE_PTR = *mut CK_ATTRIBUTE;
1166#[repr(C)]
1167#[derive(Debug, Default, Copy, Clone)]
1168pub struct CK_DATE {
1169    pub year: [CK_CHAR; 4usize],
1170    pub month: [CK_CHAR; 2usize],
1171    pub day: [CK_CHAR; 2usize],
1172}
1173#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1174const _: () = {
1175    ["Size of CK_DATE"][::std::mem::size_of::<CK_DATE>() - 8usize];
1176    ["Alignment of CK_DATE"][::std::mem::align_of::<CK_DATE>() - 1usize];
1177    ["Offset of field: CK_DATE::year"][::std::mem::offset_of!(CK_DATE, year) - 0usize];
1178    ["Offset of field: CK_DATE::month"][::std::mem::offset_of!(CK_DATE, month) - 4usize];
1179    ["Offset of field: CK_DATE::day"][::std::mem::offset_of!(CK_DATE, day) - 6usize];
1180};
1181pub type CK_MECHANISM_TYPE = CK_ULONG;
1182pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE;
1183#[repr(C)]
1184#[derive(Debug, Copy, Clone)]
1185pub struct CK_MECHANISM {
1186    pub mechanism: CK_MECHANISM_TYPE,
1187    pub pParameter: CK_VOID_PTR,
1188    pub ulParameterLen: CK_ULONG,
1189}
1190#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1191const _: () = {
1192    ["Size of CK_MECHANISM"][::std::mem::size_of::<CK_MECHANISM>() - 24usize];
1193    ["Alignment of CK_MECHANISM"][::std::mem::align_of::<CK_MECHANISM>() - 8usize];
1194    ["Offset of field: CK_MECHANISM::mechanism"]
1195        [::std::mem::offset_of!(CK_MECHANISM, mechanism) - 0usize];
1196    ["Offset of field: CK_MECHANISM::pParameter"]
1197        [::std::mem::offset_of!(CK_MECHANISM, pParameter) - 8usize];
1198    ["Offset of field: CK_MECHANISM::ulParameterLen"]
1199        [::std::mem::offset_of!(CK_MECHANISM, ulParameterLen) - 16usize];
1200};
1201impl Default for CK_MECHANISM {
1202    fn default() -> Self {
1203        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1204        unsafe {
1205            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1206            s.assume_init()
1207        }
1208    }
1209}
1210pub type CK_MECHANISM_PTR = *mut CK_MECHANISM;
1211#[repr(C)]
1212#[derive(Debug, Default, Copy, Clone)]
1213pub struct CK_MECHANISM_INFO {
1214    pub ulMinKeySize: CK_ULONG,
1215    pub ulMaxKeySize: CK_ULONG,
1216    pub flags: CK_FLAGS,
1217}
1218#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1219const _: () = {
1220    ["Size of CK_MECHANISM_INFO"][::std::mem::size_of::<CK_MECHANISM_INFO>() - 24usize];
1221    ["Alignment of CK_MECHANISM_INFO"][::std::mem::align_of::<CK_MECHANISM_INFO>() - 8usize];
1222    ["Offset of field: CK_MECHANISM_INFO::ulMinKeySize"]
1223        [::std::mem::offset_of!(CK_MECHANISM_INFO, ulMinKeySize) - 0usize];
1224    ["Offset of field: CK_MECHANISM_INFO::ulMaxKeySize"]
1225        [::std::mem::offset_of!(CK_MECHANISM_INFO, ulMaxKeySize) - 8usize];
1226    ["Offset of field: CK_MECHANISM_INFO::flags"]
1227        [::std::mem::offset_of!(CK_MECHANISM_INFO, flags) - 16usize];
1228};
1229pub type CK_MECHANISM_INFO_PTR = *mut CK_MECHANISM_INFO;
1230pub type CK_RV = CK_ULONG;
1231pub type CK_NOTIFY = ::std::option::Option<
1232    unsafe extern "C" fn(
1233        hSession: CK_SESSION_HANDLE,
1234        event: CK_NOTIFICATION,
1235        pApplication: CK_VOID_PTR,
1236    ) -> CK_RV,
1237>;
1238pub type CK_FUNCTION_LIST_PTR = *mut CK_FUNCTION_LIST;
1239pub type CK_FUNCTION_LIST_3_0_PTR = *mut CK_FUNCTION_LIST_3_0;
1240pub type CK_FUNCTION_LIST_PTR_PTR = *mut CK_FUNCTION_LIST_PTR;
1241pub type CK_FUNCTION_LIST_3_0_PTR_PTR = *mut CK_FUNCTION_LIST_3_0_PTR;
1242#[repr(C)]
1243#[derive(Debug, Copy, Clone)]
1244pub struct CK_INTERFACE {
1245    pub pInterfaceName: *mut CK_CHAR,
1246    pub pFunctionList: CK_VOID_PTR,
1247    pub flags: CK_FLAGS,
1248}
1249#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1250const _: () = {
1251    ["Size of CK_INTERFACE"][::std::mem::size_of::<CK_INTERFACE>() - 24usize];
1252    ["Alignment of CK_INTERFACE"][::std::mem::align_of::<CK_INTERFACE>() - 8usize];
1253    ["Offset of field: CK_INTERFACE::pInterfaceName"]
1254        [::std::mem::offset_of!(CK_INTERFACE, pInterfaceName) - 0usize];
1255    ["Offset of field: CK_INTERFACE::pFunctionList"]
1256        [::std::mem::offset_of!(CK_INTERFACE, pFunctionList) - 8usize];
1257    ["Offset of field: CK_INTERFACE::flags"][::std::mem::offset_of!(CK_INTERFACE, flags) - 16usize];
1258};
1259impl Default for CK_INTERFACE {
1260    fn default() -> Self {
1261        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1262        unsafe {
1263            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1264            s.assume_init()
1265        }
1266    }
1267}
1268pub type CK_INTERFACE_PTR = *mut CK_INTERFACE;
1269pub type CK_INTERFACE_PTR_PTR = *mut CK_INTERFACE_PTR;
1270pub type CK_CREATEMUTEX =
1271    ::std::option::Option<unsafe extern "C" fn(ppMutex: CK_VOID_PTR_PTR) -> CK_RV>;
1272pub type CK_DESTROYMUTEX =
1273    ::std::option::Option<unsafe extern "C" fn(pMutex: CK_VOID_PTR) -> CK_RV>;
1274pub type CK_LOCKMUTEX = ::std::option::Option<unsafe extern "C" fn(pMutex: CK_VOID_PTR) -> CK_RV>;
1275pub type CK_UNLOCKMUTEX = ::std::option::Option<unsafe extern "C" fn(pMutex: CK_VOID_PTR) -> CK_RV>;
1276#[repr(C)]
1277#[derive(Debug, Copy, Clone)]
1278pub struct CK_C_INITIALIZE_ARGS {
1279    pub CreateMutex: CK_CREATEMUTEX,
1280    pub DestroyMutex: CK_DESTROYMUTEX,
1281    pub LockMutex: CK_LOCKMUTEX,
1282    pub UnlockMutex: CK_UNLOCKMUTEX,
1283    pub flags: CK_FLAGS,
1284    pub pReserved: CK_VOID_PTR,
1285}
1286#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1287const _: () = {
1288    ["Size of CK_C_INITIALIZE_ARGS"][::std::mem::size_of::<CK_C_INITIALIZE_ARGS>() - 48usize];
1289    ["Alignment of CK_C_INITIALIZE_ARGS"][::std::mem::align_of::<CK_C_INITIALIZE_ARGS>() - 8usize];
1290    ["Offset of field: CK_C_INITIALIZE_ARGS::CreateMutex"]
1291        [::std::mem::offset_of!(CK_C_INITIALIZE_ARGS, CreateMutex) - 0usize];
1292    ["Offset of field: CK_C_INITIALIZE_ARGS::DestroyMutex"]
1293        [::std::mem::offset_of!(CK_C_INITIALIZE_ARGS, DestroyMutex) - 8usize];
1294    ["Offset of field: CK_C_INITIALIZE_ARGS::LockMutex"]
1295        [::std::mem::offset_of!(CK_C_INITIALIZE_ARGS, LockMutex) - 16usize];
1296    ["Offset of field: CK_C_INITIALIZE_ARGS::UnlockMutex"]
1297        [::std::mem::offset_of!(CK_C_INITIALIZE_ARGS, UnlockMutex) - 24usize];
1298    ["Offset of field: CK_C_INITIALIZE_ARGS::flags"]
1299        [::std::mem::offset_of!(CK_C_INITIALIZE_ARGS, flags) - 32usize];
1300    ["Offset of field: CK_C_INITIALIZE_ARGS::pReserved"]
1301        [::std::mem::offset_of!(CK_C_INITIALIZE_ARGS, pReserved) - 40usize];
1302};
1303impl Default for CK_C_INITIALIZE_ARGS {
1304    fn default() -> Self {
1305        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1306        unsafe {
1307            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1308            s.assume_init()
1309        }
1310    }
1311}
1312pub type CK_C_INITIALIZE_ARGS_PTR = *mut CK_C_INITIALIZE_ARGS;
1313pub type CK_RSA_PKCS_MGF_TYPE = CK_ULONG;
1314pub type CK_RSA_PKCS_MGF_TYPE_PTR = *mut CK_RSA_PKCS_MGF_TYPE;
1315pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE = CK_ULONG;
1316pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE_PTR = *mut CK_RSA_PKCS_OAEP_SOURCE_TYPE;
1317#[repr(C)]
1318#[derive(Debug, Copy, Clone)]
1319pub struct CK_RSA_PKCS_OAEP_PARAMS {
1320    pub hashAlg: CK_MECHANISM_TYPE,
1321    pub mgf: CK_RSA_PKCS_MGF_TYPE,
1322    pub source: CK_RSA_PKCS_OAEP_SOURCE_TYPE,
1323    pub pSourceData: CK_VOID_PTR,
1324    pub ulSourceDataLen: CK_ULONG,
1325}
1326#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1327const _: () = {
1328    ["Size of CK_RSA_PKCS_OAEP_PARAMS"][::std::mem::size_of::<CK_RSA_PKCS_OAEP_PARAMS>() - 40usize];
1329    ["Alignment of CK_RSA_PKCS_OAEP_PARAMS"]
1330        [::std::mem::align_of::<CK_RSA_PKCS_OAEP_PARAMS>() - 8usize];
1331    ["Offset of field: CK_RSA_PKCS_OAEP_PARAMS::hashAlg"]
1332        [::std::mem::offset_of!(CK_RSA_PKCS_OAEP_PARAMS, hashAlg) - 0usize];
1333    ["Offset of field: CK_RSA_PKCS_OAEP_PARAMS::mgf"]
1334        [::std::mem::offset_of!(CK_RSA_PKCS_OAEP_PARAMS, mgf) - 8usize];
1335    ["Offset of field: CK_RSA_PKCS_OAEP_PARAMS::source"]
1336        [::std::mem::offset_of!(CK_RSA_PKCS_OAEP_PARAMS, source) - 16usize];
1337    ["Offset of field: CK_RSA_PKCS_OAEP_PARAMS::pSourceData"]
1338        [::std::mem::offset_of!(CK_RSA_PKCS_OAEP_PARAMS, pSourceData) - 24usize];
1339    ["Offset of field: CK_RSA_PKCS_OAEP_PARAMS::ulSourceDataLen"]
1340        [::std::mem::offset_of!(CK_RSA_PKCS_OAEP_PARAMS, ulSourceDataLen) - 32usize];
1341};
1342impl Default for CK_RSA_PKCS_OAEP_PARAMS {
1343    fn default() -> Self {
1344        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1345        unsafe {
1346            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1347            s.assume_init()
1348        }
1349    }
1350}
1351pub type CK_RSA_PKCS_OAEP_PARAMS_PTR = *mut CK_RSA_PKCS_OAEP_PARAMS;
1352#[repr(C)]
1353#[derive(Debug, Default, Copy, Clone)]
1354pub struct CK_RSA_PKCS_PSS_PARAMS {
1355    pub hashAlg: CK_MECHANISM_TYPE,
1356    pub mgf: CK_RSA_PKCS_MGF_TYPE,
1357    pub sLen: CK_ULONG,
1358}
1359#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1360const _: () = {
1361    ["Size of CK_RSA_PKCS_PSS_PARAMS"][::std::mem::size_of::<CK_RSA_PKCS_PSS_PARAMS>() - 24usize];
1362    ["Alignment of CK_RSA_PKCS_PSS_PARAMS"]
1363        [::std::mem::align_of::<CK_RSA_PKCS_PSS_PARAMS>() - 8usize];
1364    ["Offset of field: CK_RSA_PKCS_PSS_PARAMS::hashAlg"]
1365        [::std::mem::offset_of!(CK_RSA_PKCS_PSS_PARAMS, hashAlg) - 0usize];
1366    ["Offset of field: CK_RSA_PKCS_PSS_PARAMS::mgf"]
1367        [::std::mem::offset_of!(CK_RSA_PKCS_PSS_PARAMS, mgf) - 8usize];
1368    ["Offset of field: CK_RSA_PKCS_PSS_PARAMS::sLen"]
1369        [::std::mem::offset_of!(CK_RSA_PKCS_PSS_PARAMS, sLen) - 16usize];
1370};
1371pub type CK_RSA_PKCS_PSS_PARAMS_PTR = *mut CK_RSA_PKCS_PSS_PARAMS;
1372pub type CK_EC_KDF_TYPE = CK_ULONG;
1373pub type CK_EC_KDF_TYPE_PTR = *mut CK_EC_KDF_TYPE;
1374#[repr(C)]
1375#[derive(Debug, Copy, Clone)]
1376pub struct CK_ECDH1_DERIVE_PARAMS {
1377    pub kdf: CK_EC_KDF_TYPE,
1378    pub ulSharedDataLen: CK_ULONG,
1379    pub pSharedData: CK_BYTE_PTR,
1380    pub ulPublicDataLen: CK_ULONG,
1381    pub pPublicData: CK_BYTE_PTR,
1382}
1383#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1384const _: () = {
1385    ["Size of CK_ECDH1_DERIVE_PARAMS"][::std::mem::size_of::<CK_ECDH1_DERIVE_PARAMS>() - 40usize];
1386    ["Alignment of CK_ECDH1_DERIVE_PARAMS"]
1387        [::std::mem::align_of::<CK_ECDH1_DERIVE_PARAMS>() - 8usize];
1388    ["Offset of field: CK_ECDH1_DERIVE_PARAMS::kdf"]
1389        [::std::mem::offset_of!(CK_ECDH1_DERIVE_PARAMS, kdf) - 0usize];
1390    ["Offset of field: CK_ECDH1_DERIVE_PARAMS::ulSharedDataLen"]
1391        [::std::mem::offset_of!(CK_ECDH1_DERIVE_PARAMS, ulSharedDataLen) - 8usize];
1392    ["Offset of field: CK_ECDH1_DERIVE_PARAMS::pSharedData"]
1393        [::std::mem::offset_of!(CK_ECDH1_DERIVE_PARAMS, pSharedData) - 16usize];
1394    ["Offset of field: CK_ECDH1_DERIVE_PARAMS::ulPublicDataLen"]
1395        [::std::mem::offset_of!(CK_ECDH1_DERIVE_PARAMS, ulPublicDataLen) - 24usize];
1396    ["Offset of field: CK_ECDH1_DERIVE_PARAMS::pPublicData"]
1397        [::std::mem::offset_of!(CK_ECDH1_DERIVE_PARAMS, pPublicData) - 32usize];
1398};
1399impl Default for CK_ECDH1_DERIVE_PARAMS {
1400    fn default() -> Self {
1401        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1402        unsafe {
1403            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1404            s.assume_init()
1405        }
1406    }
1407}
1408pub type CK_ECDH1_DERIVE_PARAMS_PTR = *mut CK_ECDH1_DERIVE_PARAMS;
1409#[repr(C)]
1410#[derive(Debug, Copy, Clone)]
1411pub struct CK_ECDH2_DERIVE_PARAMS {
1412    pub kdf: CK_EC_KDF_TYPE,
1413    pub ulSharedDataLen: CK_ULONG,
1414    pub pSharedData: CK_BYTE_PTR,
1415    pub ulPublicDataLen: CK_ULONG,
1416    pub pPublicData: CK_BYTE_PTR,
1417    pub ulPrivateDataLen: CK_ULONG,
1418    pub hPrivateData: CK_OBJECT_HANDLE,
1419    pub ulPublicDataLen2: CK_ULONG,
1420    pub pPublicData2: CK_BYTE_PTR,
1421}
1422#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1423const _: () = {
1424    ["Size of CK_ECDH2_DERIVE_PARAMS"][::std::mem::size_of::<CK_ECDH2_DERIVE_PARAMS>() - 72usize];
1425    ["Alignment of CK_ECDH2_DERIVE_PARAMS"]
1426        [::std::mem::align_of::<CK_ECDH2_DERIVE_PARAMS>() - 8usize];
1427    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::kdf"]
1428        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, kdf) - 0usize];
1429    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::ulSharedDataLen"]
1430        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, ulSharedDataLen) - 8usize];
1431    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::pSharedData"]
1432        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, pSharedData) - 16usize];
1433    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::ulPublicDataLen"]
1434        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, ulPublicDataLen) - 24usize];
1435    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::pPublicData"]
1436        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, pPublicData) - 32usize];
1437    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::ulPrivateDataLen"]
1438        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, ulPrivateDataLen) - 40usize];
1439    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::hPrivateData"]
1440        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, hPrivateData) - 48usize];
1441    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::ulPublicDataLen2"]
1442        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, ulPublicDataLen2) - 56usize];
1443    ["Offset of field: CK_ECDH2_DERIVE_PARAMS::pPublicData2"]
1444        [::std::mem::offset_of!(CK_ECDH2_DERIVE_PARAMS, pPublicData2) - 64usize];
1445};
1446impl Default for CK_ECDH2_DERIVE_PARAMS {
1447    fn default() -> Self {
1448        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1449        unsafe {
1450            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1451            s.assume_init()
1452        }
1453    }
1454}
1455pub type CK_ECDH2_DERIVE_PARAMS_PTR = *mut CK_ECDH2_DERIVE_PARAMS;
1456#[repr(C)]
1457#[derive(Debug, Copy, Clone)]
1458pub struct CK_ECMQV_DERIVE_PARAMS {
1459    pub kdf: CK_EC_KDF_TYPE,
1460    pub ulSharedDataLen: CK_ULONG,
1461    pub pSharedData: CK_BYTE_PTR,
1462    pub ulPublicDataLen: CK_ULONG,
1463    pub pPublicData: CK_BYTE_PTR,
1464    pub ulPrivateDataLen: CK_ULONG,
1465    pub hPrivateData: CK_OBJECT_HANDLE,
1466    pub ulPublicDataLen2: CK_ULONG,
1467    pub pPublicData2: CK_BYTE_PTR,
1468    pub publicKey: CK_OBJECT_HANDLE,
1469}
1470#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1471const _: () = {
1472    ["Size of CK_ECMQV_DERIVE_PARAMS"][::std::mem::size_of::<CK_ECMQV_DERIVE_PARAMS>() - 80usize];
1473    ["Alignment of CK_ECMQV_DERIVE_PARAMS"]
1474        [::std::mem::align_of::<CK_ECMQV_DERIVE_PARAMS>() - 8usize];
1475    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::kdf"]
1476        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, kdf) - 0usize];
1477    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::ulSharedDataLen"]
1478        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, ulSharedDataLen) - 8usize];
1479    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::pSharedData"]
1480        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, pSharedData) - 16usize];
1481    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::ulPublicDataLen"]
1482        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, ulPublicDataLen) - 24usize];
1483    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::pPublicData"]
1484        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, pPublicData) - 32usize];
1485    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::ulPrivateDataLen"]
1486        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, ulPrivateDataLen) - 40usize];
1487    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::hPrivateData"]
1488        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, hPrivateData) - 48usize];
1489    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::ulPublicDataLen2"]
1490        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, ulPublicDataLen2) - 56usize];
1491    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::pPublicData2"]
1492        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, pPublicData2) - 64usize];
1493    ["Offset of field: CK_ECMQV_DERIVE_PARAMS::publicKey"]
1494        [::std::mem::offset_of!(CK_ECMQV_DERIVE_PARAMS, publicKey) - 72usize];
1495};
1496impl Default for CK_ECMQV_DERIVE_PARAMS {
1497    fn default() -> Self {
1498        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1499        unsafe {
1500            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1501            s.assume_init()
1502        }
1503    }
1504}
1505pub type CK_ECMQV_DERIVE_PARAMS_PTR = *mut CK_ECMQV_DERIVE_PARAMS;
1506pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG;
1507pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE;
1508#[repr(C)]
1509#[derive(Debug, Copy, Clone)]
1510pub struct CK_X9_42_DH1_DERIVE_PARAMS {
1511    pub kdf: CK_X9_42_DH_KDF_TYPE,
1512    pub ulOtherInfoLen: CK_ULONG,
1513    pub pOtherInfo: CK_BYTE_PTR,
1514    pub ulPublicDataLen: CK_ULONG,
1515    pub pPublicData: CK_BYTE_PTR,
1516}
1517#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1518const _: () = {
1519    ["Size of CK_X9_42_DH1_DERIVE_PARAMS"]
1520        [::std::mem::size_of::<CK_X9_42_DH1_DERIVE_PARAMS>() - 40usize];
1521    ["Alignment of CK_X9_42_DH1_DERIVE_PARAMS"]
1522        [::std::mem::align_of::<CK_X9_42_DH1_DERIVE_PARAMS>() - 8usize];
1523    ["Offset of field: CK_X9_42_DH1_DERIVE_PARAMS::kdf"]
1524        [::std::mem::offset_of!(CK_X9_42_DH1_DERIVE_PARAMS, kdf) - 0usize];
1525    ["Offset of field: CK_X9_42_DH1_DERIVE_PARAMS::ulOtherInfoLen"]
1526        [::std::mem::offset_of!(CK_X9_42_DH1_DERIVE_PARAMS, ulOtherInfoLen) - 8usize];
1527    ["Offset of field: CK_X9_42_DH1_DERIVE_PARAMS::pOtherInfo"]
1528        [::std::mem::offset_of!(CK_X9_42_DH1_DERIVE_PARAMS, pOtherInfo) - 16usize];
1529    ["Offset of field: CK_X9_42_DH1_DERIVE_PARAMS::ulPublicDataLen"]
1530        [::std::mem::offset_of!(CK_X9_42_DH1_DERIVE_PARAMS, ulPublicDataLen) - 24usize];
1531    ["Offset of field: CK_X9_42_DH1_DERIVE_PARAMS::pPublicData"]
1532        [::std::mem::offset_of!(CK_X9_42_DH1_DERIVE_PARAMS, pPublicData) - 32usize];
1533};
1534impl Default for CK_X9_42_DH1_DERIVE_PARAMS {
1535    fn default() -> Self {
1536        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1537        unsafe {
1538            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1539            s.assume_init()
1540        }
1541    }
1542}
1543pub type CK_X9_42_DH1_DERIVE_PARAMS_PTR = *mut CK_X9_42_DH1_DERIVE_PARAMS;
1544#[repr(C)]
1545#[derive(Debug, Copy, Clone)]
1546pub struct CK_X9_42_DH2_DERIVE_PARAMS {
1547    pub kdf: CK_X9_42_DH_KDF_TYPE,
1548    pub ulOtherInfoLen: CK_ULONG,
1549    pub pOtherInfo: CK_BYTE_PTR,
1550    pub ulPublicDataLen: CK_ULONG,
1551    pub pPublicData: CK_BYTE_PTR,
1552    pub ulPrivateDataLen: CK_ULONG,
1553    pub hPrivateData: CK_OBJECT_HANDLE,
1554    pub ulPublicDataLen2: CK_ULONG,
1555    pub pPublicData2: CK_BYTE_PTR,
1556}
1557#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1558const _: () = {
1559    ["Size of CK_X9_42_DH2_DERIVE_PARAMS"]
1560        [::std::mem::size_of::<CK_X9_42_DH2_DERIVE_PARAMS>() - 72usize];
1561    ["Alignment of CK_X9_42_DH2_DERIVE_PARAMS"]
1562        [::std::mem::align_of::<CK_X9_42_DH2_DERIVE_PARAMS>() - 8usize];
1563    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::kdf"]
1564        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, kdf) - 0usize];
1565    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::ulOtherInfoLen"]
1566        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, ulOtherInfoLen) - 8usize];
1567    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::pOtherInfo"]
1568        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, pOtherInfo) - 16usize];
1569    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::ulPublicDataLen"]
1570        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, ulPublicDataLen) - 24usize];
1571    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::pPublicData"]
1572        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, pPublicData) - 32usize];
1573    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::ulPrivateDataLen"]
1574        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, ulPrivateDataLen) - 40usize];
1575    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::hPrivateData"]
1576        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, hPrivateData) - 48usize];
1577    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::ulPublicDataLen2"]
1578        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, ulPublicDataLen2) - 56usize];
1579    ["Offset of field: CK_X9_42_DH2_DERIVE_PARAMS::pPublicData2"]
1580        [::std::mem::offset_of!(CK_X9_42_DH2_DERIVE_PARAMS, pPublicData2) - 64usize];
1581};
1582impl Default for CK_X9_42_DH2_DERIVE_PARAMS {
1583    fn default() -> Self {
1584        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1585        unsafe {
1586            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1587            s.assume_init()
1588        }
1589    }
1590}
1591pub type CK_X9_42_DH2_DERIVE_PARAMS_PTR = *mut CK_X9_42_DH2_DERIVE_PARAMS;
1592#[repr(C)]
1593#[derive(Debug, Copy, Clone)]
1594pub struct CK_X9_42_MQV_DERIVE_PARAMS {
1595    pub kdf: CK_X9_42_DH_KDF_TYPE,
1596    pub ulOtherInfoLen: CK_ULONG,
1597    pub pOtherInfo: CK_BYTE_PTR,
1598    pub ulPublicDataLen: CK_ULONG,
1599    pub pPublicData: CK_BYTE_PTR,
1600    pub ulPrivateDataLen: CK_ULONG,
1601    pub hPrivateData: CK_OBJECT_HANDLE,
1602    pub ulPublicDataLen2: CK_ULONG,
1603    pub pPublicData2: CK_BYTE_PTR,
1604    pub publicKey: CK_OBJECT_HANDLE,
1605}
1606#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1607const _: () = {
1608    ["Size of CK_X9_42_MQV_DERIVE_PARAMS"]
1609        [::std::mem::size_of::<CK_X9_42_MQV_DERIVE_PARAMS>() - 80usize];
1610    ["Alignment of CK_X9_42_MQV_DERIVE_PARAMS"]
1611        [::std::mem::align_of::<CK_X9_42_MQV_DERIVE_PARAMS>() - 8usize];
1612    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::kdf"]
1613        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, kdf) - 0usize];
1614    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::ulOtherInfoLen"]
1615        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, ulOtherInfoLen) - 8usize];
1616    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::pOtherInfo"]
1617        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, pOtherInfo) - 16usize];
1618    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::ulPublicDataLen"]
1619        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, ulPublicDataLen) - 24usize];
1620    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::pPublicData"]
1621        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, pPublicData) - 32usize];
1622    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::ulPrivateDataLen"]
1623        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, ulPrivateDataLen) - 40usize];
1624    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::hPrivateData"]
1625        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, hPrivateData) - 48usize];
1626    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::ulPublicDataLen2"]
1627        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, ulPublicDataLen2) - 56usize];
1628    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::pPublicData2"]
1629        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, pPublicData2) - 64usize];
1630    ["Offset of field: CK_X9_42_MQV_DERIVE_PARAMS::publicKey"]
1631        [::std::mem::offset_of!(CK_X9_42_MQV_DERIVE_PARAMS, publicKey) - 72usize];
1632};
1633impl Default for CK_X9_42_MQV_DERIVE_PARAMS {
1634    fn default() -> Self {
1635        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1636        unsafe {
1637            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1638            s.assume_init()
1639        }
1640    }
1641}
1642pub type CK_X9_42_MQV_DERIVE_PARAMS_PTR = *mut CK_X9_42_MQV_DERIVE_PARAMS;
1643#[repr(C)]
1644#[derive(Debug, Copy, Clone)]
1645pub struct CK_KEA_DERIVE_PARAMS {
1646    pub isSender: CK_BBOOL,
1647    pub ulRandomLen: CK_ULONG,
1648    pub pRandomA: CK_BYTE_PTR,
1649    pub pRandomB: CK_BYTE_PTR,
1650    pub ulPublicDataLen: CK_ULONG,
1651    pub pPublicData: CK_BYTE_PTR,
1652}
1653#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1654const _: () = {
1655    ["Size of CK_KEA_DERIVE_PARAMS"][::std::mem::size_of::<CK_KEA_DERIVE_PARAMS>() - 48usize];
1656    ["Alignment of CK_KEA_DERIVE_PARAMS"][::std::mem::align_of::<CK_KEA_DERIVE_PARAMS>() - 8usize];
1657    ["Offset of field: CK_KEA_DERIVE_PARAMS::isSender"]
1658        [::std::mem::offset_of!(CK_KEA_DERIVE_PARAMS, isSender) - 0usize];
1659    ["Offset of field: CK_KEA_DERIVE_PARAMS::ulRandomLen"]
1660        [::std::mem::offset_of!(CK_KEA_DERIVE_PARAMS, ulRandomLen) - 8usize];
1661    ["Offset of field: CK_KEA_DERIVE_PARAMS::pRandomA"]
1662        [::std::mem::offset_of!(CK_KEA_DERIVE_PARAMS, pRandomA) - 16usize];
1663    ["Offset of field: CK_KEA_DERIVE_PARAMS::pRandomB"]
1664        [::std::mem::offset_of!(CK_KEA_DERIVE_PARAMS, pRandomB) - 24usize];
1665    ["Offset of field: CK_KEA_DERIVE_PARAMS::ulPublicDataLen"]
1666        [::std::mem::offset_of!(CK_KEA_DERIVE_PARAMS, ulPublicDataLen) - 32usize];
1667    ["Offset of field: CK_KEA_DERIVE_PARAMS::pPublicData"]
1668        [::std::mem::offset_of!(CK_KEA_DERIVE_PARAMS, pPublicData) - 40usize];
1669};
1670impl Default for CK_KEA_DERIVE_PARAMS {
1671    fn default() -> Self {
1672        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1673        unsafe {
1674            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1675            s.assume_init()
1676        }
1677    }
1678}
1679pub type CK_KEA_DERIVE_PARAMS_PTR = *mut CK_KEA_DERIVE_PARAMS;
1680pub type CK_RC2_PARAMS = CK_ULONG;
1681pub type CK_RC2_PARAMS_PTR = *mut CK_RC2_PARAMS;
1682#[repr(C)]
1683#[derive(Debug, Default, Copy, Clone)]
1684pub struct CK_RC2_CBC_PARAMS {
1685    pub ulEffectiveBits: CK_ULONG,
1686    pub iv: [CK_BYTE; 8usize],
1687}
1688#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1689const _: () = {
1690    ["Size of CK_RC2_CBC_PARAMS"][::std::mem::size_of::<CK_RC2_CBC_PARAMS>() - 16usize];
1691    ["Alignment of CK_RC2_CBC_PARAMS"][::std::mem::align_of::<CK_RC2_CBC_PARAMS>() - 8usize];
1692    ["Offset of field: CK_RC2_CBC_PARAMS::ulEffectiveBits"]
1693        [::std::mem::offset_of!(CK_RC2_CBC_PARAMS, ulEffectiveBits) - 0usize];
1694    ["Offset of field: CK_RC2_CBC_PARAMS::iv"]
1695        [::std::mem::offset_of!(CK_RC2_CBC_PARAMS, iv) - 8usize];
1696};
1697pub type CK_RC2_CBC_PARAMS_PTR = *mut CK_RC2_CBC_PARAMS;
1698#[repr(C)]
1699#[derive(Debug, Default, Copy, Clone)]
1700pub struct CK_RC2_MAC_GENERAL_PARAMS {
1701    pub ulEffectiveBits: CK_ULONG,
1702    pub ulMacLength: CK_ULONG,
1703}
1704#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1705const _: () = {
1706    ["Size of CK_RC2_MAC_GENERAL_PARAMS"]
1707        [::std::mem::size_of::<CK_RC2_MAC_GENERAL_PARAMS>() - 16usize];
1708    ["Alignment of CK_RC2_MAC_GENERAL_PARAMS"]
1709        [::std::mem::align_of::<CK_RC2_MAC_GENERAL_PARAMS>() - 8usize];
1710    ["Offset of field: CK_RC2_MAC_GENERAL_PARAMS::ulEffectiveBits"]
1711        [::std::mem::offset_of!(CK_RC2_MAC_GENERAL_PARAMS, ulEffectiveBits) - 0usize];
1712    ["Offset of field: CK_RC2_MAC_GENERAL_PARAMS::ulMacLength"]
1713        [::std::mem::offset_of!(CK_RC2_MAC_GENERAL_PARAMS, ulMacLength) - 8usize];
1714};
1715pub type CK_RC2_MAC_GENERAL_PARAMS_PTR = *mut CK_RC2_MAC_GENERAL_PARAMS;
1716#[repr(C)]
1717#[derive(Debug, Default, Copy, Clone)]
1718pub struct CK_RC5_PARAMS {
1719    pub ulWordsize: CK_ULONG,
1720    pub ulRounds: CK_ULONG,
1721}
1722#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1723const _: () = {
1724    ["Size of CK_RC5_PARAMS"][::std::mem::size_of::<CK_RC5_PARAMS>() - 16usize];
1725    ["Alignment of CK_RC5_PARAMS"][::std::mem::align_of::<CK_RC5_PARAMS>() - 8usize];
1726    ["Offset of field: CK_RC5_PARAMS::ulWordsize"]
1727        [::std::mem::offset_of!(CK_RC5_PARAMS, ulWordsize) - 0usize];
1728    ["Offset of field: CK_RC5_PARAMS::ulRounds"]
1729        [::std::mem::offset_of!(CK_RC5_PARAMS, ulRounds) - 8usize];
1730};
1731pub type CK_RC5_PARAMS_PTR = *mut CK_RC5_PARAMS;
1732#[repr(C)]
1733#[derive(Debug, Copy, Clone)]
1734pub struct CK_RC5_CBC_PARAMS {
1735    pub ulWordsize: CK_ULONG,
1736    pub ulRounds: CK_ULONG,
1737    pub pIv: CK_BYTE_PTR,
1738    pub ulIvLen: CK_ULONG,
1739}
1740#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1741const _: () = {
1742    ["Size of CK_RC5_CBC_PARAMS"][::std::mem::size_of::<CK_RC5_CBC_PARAMS>() - 32usize];
1743    ["Alignment of CK_RC5_CBC_PARAMS"][::std::mem::align_of::<CK_RC5_CBC_PARAMS>() - 8usize];
1744    ["Offset of field: CK_RC5_CBC_PARAMS::ulWordsize"]
1745        [::std::mem::offset_of!(CK_RC5_CBC_PARAMS, ulWordsize) - 0usize];
1746    ["Offset of field: CK_RC5_CBC_PARAMS::ulRounds"]
1747        [::std::mem::offset_of!(CK_RC5_CBC_PARAMS, ulRounds) - 8usize];
1748    ["Offset of field: CK_RC5_CBC_PARAMS::pIv"]
1749        [::std::mem::offset_of!(CK_RC5_CBC_PARAMS, pIv) - 16usize];
1750    ["Offset of field: CK_RC5_CBC_PARAMS::ulIvLen"]
1751        [::std::mem::offset_of!(CK_RC5_CBC_PARAMS, ulIvLen) - 24usize];
1752};
1753impl Default for CK_RC5_CBC_PARAMS {
1754    fn default() -> Self {
1755        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1756        unsafe {
1757            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1758            s.assume_init()
1759        }
1760    }
1761}
1762pub type CK_RC5_CBC_PARAMS_PTR = *mut CK_RC5_CBC_PARAMS;
1763#[repr(C)]
1764#[derive(Debug, Default, Copy, Clone)]
1765pub struct CK_RC5_MAC_GENERAL_PARAMS {
1766    pub ulWordsize: CK_ULONG,
1767    pub ulRounds: CK_ULONG,
1768    pub ulMacLength: CK_ULONG,
1769}
1770#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1771const _: () = {
1772    ["Size of CK_RC5_MAC_GENERAL_PARAMS"]
1773        [::std::mem::size_of::<CK_RC5_MAC_GENERAL_PARAMS>() - 24usize];
1774    ["Alignment of CK_RC5_MAC_GENERAL_PARAMS"]
1775        [::std::mem::align_of::<CK_RC5_MAC_GENERAL_PARAMS>() - 8usize];
1776    ["Offset of field: CK_RC5_MAC_GENERAL_PARAMS::ulWordsize"]
1777        [::std::mem::offset_of!(CK_RC5_MAC_GENERAL_PARAMS, ulWordsize) - 0usize];
1778    ["Offset of field: CK_RC5_MAC_GENERAL_PARAMS::ulRounds"]
1779        [::std::mem::offset_of!(CK_RC5_MAC_GENERAL_PARAMS, ulRounds) - 8usize];
1780    ["Offset of field: CK_RC5_MAC_GENERAL_PARAMS::ulMacLength"]
1781        [::std::mem::offset_of!(CK_RC5_MAC_GENERAL_PARAMS, ulMacLength) - 16usize];
1782};
1783pub type CK_RC5_MAC_GENERAL_PARAMS_PTR = *mut CK_RC5_MAC_GENERAL_PARAMS;
1784pub type CK_MAC_GENERAL_PARAMS = CK_ULONG;
1785pub type CK_MAC_GENERAL_PARAMS_PTR = *mut CK_MAC_GENERAL_PARAMS;
1786#[repr(C)]
1787#[derive(Debug, Copy, Clone)]
1788pub struct CK_DES_CBC_ENCRYPT_DATA_PARAMS {
1789    pub iv: [CK_BYTE; 8usize],
1790    pub pData: CK_BYTE_PTR,
1791    pub length: CK_ULONG,
1792}
1793#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1794const _: () = {
1795    ["Size of CK_DES_CBC_ENCRYPT_DATA_PARAMS"]
1796        [::std::mem::size_of::<CK_DES_CBC_ENCRYPT_DATA_PARAMS>() - 24usize];
1797    ["Alignment of CK_DES_CBC_ENCRYPT_DATA_PARAMS"]
1798        [::std::mem::align_of::<CK_DES_CBC_ENCRYPT_DATA_PARAMS>() - 8usize];
1799    ["Offset of field: CK_DES_CBC_ENCRYPT_DATA_PARAMS::iv"]
1800        [::std::mem::offset_of!(CK_DES_CBC_ENCRYPT_DATA_PARAMS, iv) - 0usize];
1801    ["Offset of field: CK_DES_CBC_ENCRYPT_DATA_PARAMS::pData"]
1802        [::std::mem::offset_of!(CK_DES_CBC_ENCRYPT_DATA_PARAMS, pData) - 8usize];
1803    ["Offset of field: CK_DES_CBC_ENCRYPT_DATA_PARAMS::length"]
1804        [::std::mem::offset_of!(CK_DES_CBC_ENCRYPT_DATA_PARAMS, length) - 16usize];
1805};
1806impl Default for CK_DES_CBC_ENCRYPT_DATA_PARAMS {
1807    fn default() -> Self {
1808        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1809        unsafe {
1810            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1811            s.assume_init()
1812        }
1813    }
1814}
1815pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_DES_CBC_ENCRYPT_DATA_PARAMS;
1816#[repr(C)]
1817#[derive(Debug, Copy, Clone)]
1818pub struct CK_AES_CBC_ENCRYPT_DATA_PARAMS {
1819    pub iv: [CK_BYTE; 16usize],
1820    pub pData: CK_BYTE_PTR,
1821    pub length: CK_ULONG,
1822}
1823#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1824const _: () = {
1825    ["Size of CK_AES_CBC_ENCRYPT_DATA_PARAMS"]
1826        [::std::mem::size_of::<CK_AES_CBC_ENCRYPT_DATA_PARAMS>() - 32usize];
1827    ["Alignment of CK_AES_CBC_ENCRYPT_DATA_PARAMS"]
1828        [::std::mem::align_of::<CK_AES_CBC_ENCRYPT_DATA_PARAMS>() - 8usize];
1829    ["Offset of field: CK_AES_CBC_ENCRYPT_DATA_PARAMS::iv"]
1830        [::std::mem::offset_of!(CK_AES_CBC_ENCRYPT_DATA_PARAMS, iv) - 0usize];
1831    ["Offset of field: CK_AES_CBC_ENCRYPT_DATA_PARAMS::pData"]
1832        [::std::mem::offset_of!(CK_AES_CBC_ENCRYPT_DATA_PARAMS, pData) - 16usize];
1833    ["Offset of field: CK_AES_CBC_ENCRYPT_DATA_PARAMS::length"]
1834        [::std::mem::offset_of!(CK_AES_CBC_ENCRYPT_DATA_PARAMS, length) - 24usize];
1835};
1836impl Default for CK_AES_CBC_ENCRYPT_DATA_PARAMS {
1837    fn default() -> Self {
1838        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1839        unsafe {
1840            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1841            s.assume_init()
1842        }
1843    }
1844}
1845pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_AES_CBC_ENCRYPT_DATA_PARAMS;
1846#[repr(C)]
1847#[derive(Debug, Copy, Clone)]
1848pub struct CK_SKIPJACK_PRIVATE_WRAP_PARAMS {
1849    pub ulPasswordLen: CK_ULONG,
1850    pub pPassword: CK_BYTE_PTR,
1851    pub ulPublicDataLen: CK_ULONG,
1852    pub pPublicData: CK_BYTE_PTR,
1853    pub ulPAndGLen: CK_ULONG,
1854    pub ulQLen: CK_ULONG,
1855    pub ulRandomLen: CK_ULONG,
1856    pub pRandomA: CK_BYTE_PTR,
1857    pub pPrimeP: CK_BYTE_PTR,
1858    pub pBaseG: CK_BYTE_PTR,
1859    pub pSubprimeQ: CK_BYTE_PTR,
1860}
1861#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1862const _: () = {
1863    ["Size of CK_SKIPJACK_PRIVATE_WRAP_PARAMS"]
1864        [::std::mem::size_of::<CK_SKIPJACK_PRIVATE_WRAP_PARAMS>() - 88usize];
1865    ["Alignment of CK_SKIPJACK_PRIVATE_WRAP_PARAMS"]
1866        [::std::mem::align_of::<CK_SKIPJACK_PRIVATE_WRAP_PARAMS>() - 8usize];
1867    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::ulPasswordLen"]
1868        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, ulPasswordLen) - 0usize];
1869    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::pPassword"]
1870        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, pPassword) - 8usize];
1871    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::ulPublicDataLen"]
1872        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, ulPublicDataLen) - 16usize];
1873    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::pPublicData"]
1874        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, pPublicData) - 24usize];
1875    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::ulPAndGLen"]
1876        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, ulPAndGLen) - 32usize];
1877    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::ulQLen"]
1878        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, ulQLen) - 40usize];
1879    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::ulRandomLen"]
1880        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, ulRandomLen) - 48usize];
1881    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::pRandomA"]
1882        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, pRandomA) - 56usize];
1883    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::pPrimeP"]
1884        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, pPrimeP) - 64usize];
1885    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::pBaseG"]
1886        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, pBaseG) - 72usize];
1887    ["Offset of field: CK_SKIPJACK_PRIVATE_WRAP_PARAMS::pSubprimeQ"]
1888        [::std::mem::offset_of!(CK_SKIPJACK_PRIVATE_WRAP_PARAMS, pSubprimeQ) - 80usize];
1889};
1890impl Default for CK_SKIPJACK_PRIVATE_WRAP_PARAMS {
1891    fn default() -> Self {
1892        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1893        unsafe {
1894            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1895            s.assume_init()
1896        }
1897    }
1898}
1899pub type CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR = *mut CK_SKIPJACK_PRIVATE_WRAP_PARAMS;
1900#[repr(C)]
1901#[derive(Debug, Copy, Clone)]
1902pub struct CK_SKIPJACK_RELAYX_PARAMS {
1903    pub ulOldWrappedXLen: CK_ULONG,
1904    pub pOldWrappedX: CK_BYTE_PTR,
1905    pub ulOldPasswordLen: CK_ULONG,
1906    pub pOldPassword: CK_BYTE_PTR,
1907    pub ulOldPublicDataLen: CK_ULONG,
1908    pub pOldPublicData: CK_BYTE_PTR,
1909    pub ulOldRandomLen: CK_ULONG,
1910    pub pOldRandomA: CK_BYTE_PTR,
1911    pub ulNewPasswordLen: CK_ULONG,
1912    pub pNewPassword: CK_BYTE_PTR,
1913    pub ulNewPublicDataLen: CK_ULONG,
1914    pub pNewPublicData: CK_BYTE_PTR,
1915    pub ulNewRandomLen: CK_ULONG,
1916    pub pNewRandomA: CK_BYTE_PTR,
1917}
1918#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1919const _: () = {
1920    ["Size of CK_SKIPJACK_RELAYX_PARAMS"]
1921        [::std::mem::size_of::<CK_SKIPJACK_RELAYX_PARAMS>() - 112usize];
1922    ["Alignment of CK_SKIPJACK_RELAYX_PARAMS"]
1923        [::std::mem::align_of::<CK_SKIPJACK_RELAYX_PARAMS>() - 8usize];
1924    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulOldWrappedXLen"]
1925        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulOldWrappedXLen) - 0usize];
1926    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pOldWrappedX"]
1927        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pOldWrappedX) - 8usize];
1928    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulOldPasswordLen"]
1929        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulOldPasswordLen) - 16usize];
1930    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pOldPassword"]
1931        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pOldPassword) - 24usize];
1932    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulOldPublicDataLen"]
1933        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulOldPublicDataLen) - 32usize];
1934    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pOldPublicData"]
1935        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pOldPublicData) - 40usize];
1936    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulOldRandomLen"]
1937        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulOldRandomLen) - 48usize];
1938    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pOldRandomA"]
1939        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pOldRandomA) - 56usize];
1940    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulNewPasswordLen"]
1941        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulNewPasswordLen) - 64usize];
1942    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pNewPassword"]
1943        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pNewPassword) - 72usize];
1944    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulNewPublicDataLen"]
1945        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulNewPublicDataLen) - 80usize];
1946    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pNewPublicData"]
1947        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pNewPublicData) - 88usize];
1948    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::ulNewRandomLen"]
1949        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, ulNewRandomLen) - 96usize];
1950    ["Offset of field: CK_SKIPJACK_RELAYX_PARAMS::pNewRandomA"]
1951        [::std::mem::offset_of!(CK_SKIPJACK_RELAYX_PARAMS, pNewRandomA) - 104usize];
1952};
1953impl Default for CK_SKIPJACK_RELAYX_PARAMS {
1954    fn default() -> Self {
1955        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1956        unsafe {
1957            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1958            s.assume_init()
1959        }
1960    }
1961}
1962pub type CK_SKIPJACK_RELAYX_PARAMS_PTR = *mut CK_SKIPJACK_RELAYX_PARAMS;
1963#[repr(C)]
1964#[derive(Debug, Copy, Clone)]
1965pub struct CK_PBE_PARAMS {
1966    pub pInitVector: CK_BYTE_PTR,
1967    pub pPassword: CK_UTF8CHAR_PTR,
1968    pub ulPasswordLen: CK_ULONG,
1969    pub pSalt: CK_BYTE_PTR,
1970    pub ulSaltLen: CK_ULONG,
1971    pub ulIteration: CK_ULONG,
1972}
1973#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1974const _: () = {
1975    ["Size of CK_PBE_PARAMS"][::std::mem::size_of::<CK_PBE_PARAMS>() - 48usize];
1976    ["Alignment of CK_PBE_PARAMS"][::std::mem::align_of::<CK_PBE_PARAMS>() - 8usize];
1977    ["Offset of field: CK_PBE_PARAMS::pInitVector"]
1978        [::std::mem::offset_of!(CK_PBE_PARAMS, pInitVector) - 0usize];
1979    ["Offset of field: CK_PBE_PARAMS::pPassword"]
1980        [::std::mem::offset_of!(CK_PBE_PARAMS, pPassword) - 8usize];
1981    ["Offset of field: CK_PBE_PARAMS::ulPasswordLen"]
1982        [::std::mem::offset_of!(CK_PBE_PARAMS, ulPasswordLen) - 16usize];
1983    ["Offset of field: CK_PBE_PARAMS::pSalt"]
1984        [::std::mem::offset_of!(CK_PBE_PARAMS, pSalt) - 24usize];
1985    ["Offset of field: CK_PBE_PARAMS::ulSaltLen"]
1986        [::std::mem::offset_of!(CK_PBE_PARAMS, ulSaltLen) - 32usize];
1987    ["Offset of field: CK_PBE_PARAMS::ulIteration"]
1988        [::std::mem::offset_of!(CK_PBE_PARAMS, ulIteration) - 40usize];
1989};
1990impl Default for CK_PBE_PARAMS {
1991    fn default() -> Self {
1992        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1993        unsafe {
1994            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1995            s.assume_init()
1996        }
1997    }
1998}
1999pub type CK_PBE_PARAMS_PTR = *mut CK_PBE_PARAMS;
2000#[repr(C)]
2001#[derive(Debug, Copy, Clone)]
2002pub struct CK_KEY_WRAP_SET_OAEP_PARAMS {
2003    pub bBC: CK_BYTE,
2004    pub pX: CK_BYTE_PTR,
2005    pub ulXLen: CK_ULONG,
2006}
2007#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2008const _: () = {
2009    ["Size of CK_KEY_WRAP_SET_OAEP_PARAMS"]
2010        [::std::mem::size_of::<CK_KEY_WRAP_SET_OAEP_PARAMS>() - 24usize];
2011    ["Alignment of CK_KEY_WRAP_SET_OAEP_PARAMS"]
2012        [::std::mem::align_of::<CK_KEY_WRAP_SET_OAEP_PARAMS>() - 8usize];
2013    ["Offset of field: CK_KEY_WRAP_SET_OAEP_PARAMS::bBC"]
2014        [::std::mem::offset_of!(CK_KEY_WRAP_SET_OAEP_PARAMS, bBC) - 0usize];
2015    ["Offset of field: CK_KEY_WRAP_SET_OAEP_PARAMS::pX"]
2016        [::std::mem::offset_of!(CK_KEY_WRAP_SET_OAEP_PARAMS, pX) - 8usize];
2017    ["Offset of field: CK_KEY_WRAP_SET_OAEP_PARAMS::ulXLen"]
2018        [::std::mem::offset_of!(CK_KEY_WRAP_SET_OAEP_PARAMS, ulXLen) - 16usize];
2019};
2020impl Default for CK_KEY_WRAP_SET_OAEP_PARAMS {
2021    fn default() -> Self {
2022        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2023        unsafe {
2024            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2025            s.assume_init()
2026        }
2027    }
2028}
2029pub type CK_KEY_WRAP_SET_OAEP_PARAMS_PTR = *mut CK_KEY_WRAP_SET_OAEP_PARAMS;
2030#[repr(C)]
2031#[derive(Debug, Copy, Clone)]
2032pub struct CK_SSL3_RANDOM_DATA {
2033    pub pClientRandom: CK_BYTE_PTR,
2034    pub ulClientRandomLen: CK_ULONG,
2035    pub pServerRandom: CK_BYTE_PTR,
2036    pub ulServerRandomLen: CK_ULONG,
2037}
2038#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2039const _: () = {
2040    ["Size of CK_SSL3_RANDOM_DATA"][::std::mem::size_of::<CK_SSL3_RANDOM_DATA>() - 32usize];
2041    ["Alignment of CK_SSL3_RANDOM_DATA"][::std::mem::align_of::<CK_SSL3_RANDOM_DATA>() - 8usize];
2042    ["Offset of field: CK_SSL3_RANDOM_DATA::pClientRandom"]
2043        [::std::mem::offset_of!(CK_SSL3_RANDOM_DATA, pClientRandom) - 0usize];
2044    ["Offset of field: CK_SSL3_RANDOM_DATA::ulClientRandomLen"]
2045        [::std::mem::offset_of!(CK_SSL3_RANDOM_DATA, ulClientRandomLen) - 8usize];
2046    ["Offset of field: CK_SSL3_RANDOM_DATA::pServerRandom"]
2047        [::std::mem::offset_of!(CK_SSL3_RANDOM_DATA, pServerRandom) - 16usize];
2048    ["Offset of field: CK_SSL3_RANDOM_DATA::ulServerRandomLen"]
2049        [::std::mem::offset_of!(CK_SSL3_RANDOM_DATA, ulServerRandomLen) - 24usize];
2050};
2051impl Default for CK_SSL3_RANDOM_DATA {
2052    fn default() -> Self {
2053        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2054        unsafe {
2055            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2056            s.assume_init()
2057        }
2058    }
2059}
2060#[repr(C)]
2061#[derive(Debug, Copy, Clone)]
2062pub struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS {
2063    pub RandomInfo: CK_SSL3_RANDOM_DATA,
2064    pub pVersion: CK_VERSION_PTR,
2065}
2066#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2067const _: () = {
2068    ["Size of CK_SSL3_MASTER_KEY_DERIVE_PARAMS"]
2069        [::std::mem::size_of::<CK_SSL3_MASTER_KEY_DERIVE_PARAMS>() - 40usize];
2070    ["Alignment of CK_SSL3_MASTER_KEY_DERIVE_PARAMS"]
2071        [::std::mem::align_of::<CK_SSL3_MASTER_KEY_DERIVE_PARAMS>() - 8usize];
2072    ["Offset of field: CK_SSL3_MASTER_KEY_DERIVE_PARAMS::RandomInfo"]
2073        [::std::mem::offset_of!(CK_SSL3_MASTER_KEY_DERIVE_PARAMS, RandomInfo) - 0usize];
2074    ["Offset of field: CK_SSL3_MASTER_KEY_DERIVE_PARAMS::pVersion"]
2075        [::std::mem::offset_of!(CK_SSL3_MASTER_KEY_DERIVE_PARAMS, pVersion) - 32usize];
2076};
2077impl Default for CK_SSL3_MASTER_KEY_DERIVE_PARAMS {
2078    fn default() -> Self {
2079        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2080        unsafe {
2081            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2082            s.assume_init()
2083        }
2084    }
2085}
2086pub type CK_SSL3_MASTER_KEY_DERIVE_PARAMS_PTR = *mut CK_SSL3_MASTER_KEY_DERIVE_PARAMS;
2087#[repr(C)]
2088#[derive(Debug, Copy, Clone)]
2089pub struct CK_SSL3_KEY_MAT_OUT {
2090    pub hClientMacSecret: CK_OBJECT_HANDLE,
2091    pub hServerMacSecret: CK_OBJECT_HANDLE,
2092    pub hClientKey: CK_OBJECT_HANDLE,
2093    pub hServerKey: CK_OBJECT_HANDLE,
2094    pub pIVClient: CK_BYTE_PTR,
2095    pub pIVServer: CK_BYTE_PTR,
2096}
2097#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2098const _: () = {
2099    ["Size of CK_SSL3_KEY_MAT_OUT"][::std::mem::size_of::<CK_SSL3_KEY_MAT_OUT>() - 48usize];
2100    ["Alignment of CK_SSL3_KEY_MAT_OUT"][::std::mem::align_of::<CK_SSL3_KEY_MAT_OUT>() - 8usize];
2101    ["Offset of field: CK_SSL3_KEY_MAT_OUT::hClientMacSecret"]
2102        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_OUT, hClientMacSecret) - 0usize];
2103    ["Offset of field: CK_SSL3_KEY_MAT_OUT::hServerMacSecret"]
2104        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_OUT, hServerMacSecret) - 8usize];
2105    ["Offset of field: CK_SSL3_KEY_MAT_OUT::hClientKey"]
2106        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_OUT, hClientKey) - 16usize];
2107    ["Offset of field: CK_SSL3_KEY_MAT_OUT::hServerKey"]
2108        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_OUT, hServerKey) - 24usize];
2109    ["Offset of field: CK_SSL3_KEY_MAT_OUT::pIVClient"]
2110        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_OUT, pIVClient) - 32usize];
2111    ["Offset of field: CK_SSL3_KEY_MAT_OUT::pIVServer"]
2112        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_OUT, pIVServer) - 40usize];
2113};
2114impl Default for CK_SSL3_KEY_MAT_OUT {
2115    fn default() -> Self {
2116        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2117        unsafe {
2118            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2119            s.assume_init()
2120        }
2121    }
2122}
2123pub type CK_SSL3_KEY_MAT_OUT_PTR = *mut CK_SSL3_KEY_MAT_OUT;
2124#[repr(C)]
2125#[derive(Debug, Copy, Clone)]
2126pub struct CK_SSL3_KEY_MAT_PARAMS {
2127    pub ulMacSizeInBits: CK_ULONG,
2128    pub ulKeySizeInBits: CK_ULONG,
2129    pub ulIVSizeInBits: CK_ULONG,
2130    pub bIsExport: CK_BBOOL,
2131    pub RandomInfo: CK_SSL3_RANDOM_DATA,
2132    pub pReturnedKeyMaterial: CK_SSL3_KEY_MAT_OUT_PTR,
2133}
2134#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2135const _: () = {
2136    ["Size of CK_SSL3_KEY_MAT_PARAMS"][::std::mem::size_of::<CK_SSL3_KEY_MAT_PARAMS>() - 72usize];
2137    ["Alignment of CK_SSL3_KEY_MAT_PARAMS"]
2138        [::std::mem::align_of::<CK_SSL3_KEY_MAT_PARAMS>() - 8usize];
2139    ["Offset of field: CK_SSL3_KEY_MAT_PARAMS::ulMacSizeInBits"]
2140        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_PARAMS, ulMacSizeInBits) - 0usize];
2141    ["Offset of field: CK_SSL3_KEY_MAT_PARAMS::ulKeySizeInBits"]
2142        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_PARAMS, ulKeySizeInBits) - 8usize];
2143    ["Offset of field: CK_SSL3_KEY_MAT_PARAMS::ulIVSizeInBits"]
2144        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_PARAMS, ulIVSizeInBits) - 16usize];
2145    ["Offset of field: CK_SSL3_KEY_MAT_PARAMS::bIsExport"]
2146        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_PARAMS, bIsExport) - 24usize];
2147    ["Offset of field: CK_SSL3_KEY_MAT_PARAMS::RandomInfo"]
2148        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_PARAMS, RandomInfo) - 32usize];
2149    ["Offset of field: CK_SSL3_KEY_MAT_PARAMS::pReturnedKeyMaterial"]
2150        [::std::mem::offset_of!(CK_SSL3_KEY_MAT_PARAMS, pReturnedKeyMaterial) - 64usize];
2151};
2152impl Default for CK_SSL3_KEY_MAT_PARAMS {
2153    fn default() -> Self {
2154        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2155        unsafe {
2156            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2157            s.assume_init()
2158        }
2159    }
2160}
2161pub type CK_SSL3_KEY_MAT_PARAMS_PTR = *mut CK_SSL3_KEY_MAT_PARAMS;
2162#[repr(C)]
2163#[derive(Debug, Copy, Clone)]
2164pub struct CK_TLS_PRF_PARAMS {
2165    pub pSeed: CK_BYTE_PTR,
2166    pub ulSeedLen: CK_ULONG,
2167    pub pLabel: CK_BYTE_PTR,
2168    pub ulLabelLen: CK_ULONG,
2169    pub pOutput: CK_BYTE_PTR,
2170    pub pulOutputLen: CK_ULONG_PTR,
2171}
2172#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2173const _: () = {
2174    ["Size of CK_TLS_PRF_PARAMS"][::std::mem::size_of::<CK_TLS_PRF_PARAMS>() - 48usize];
2175    ["Alignment of CK_TLS_PRF_PARAMS"][::std::mem::align_of::<CK_TLS_PRF_PARAMS>() - 8usize];
2176    ["Offset of field: CK_TLS_PRF_PARAMS::pSeed"]
2177        [::std::mem::offset_of!(CK_TLS_PRF_PARAMS, pSeed) - 0usize];
2178    ["Offset of field: CK_TLS_PRF_PARAMS::ulSeedLen"]
2179        [::std::mem::offset_of!(CK_TLS_PRF_PARAMS, ulSeedLen) - 8usize];
2180    ["Offset of field: CK_TLS_PRF_PARAMS::pLabel"]
2181        [::std::mem::offset_of!(CK_TLS_PRF_PARAMS, pLabel) - 16usize];
2182    ["Offset of field: CK_TLS_PRF_PARAMS::ulLabelLen"]
2183        [::std::mem::offset_of!(CK_TLS_PRF_PARAMS, ulLabelLen) - 24usize];
2184    ["Offset of field: CK_TLS_PRF_PARAMS::pOutput"]
2185        [::std::mem::offset_of!(CK_TLS_PRF_PARAMS, pOutput) - 32usize];
2186    ["Offset of field: CK_TLS_PRF_PARAMS::pulOutputLen"]
2187        [::std::mem::offset_of!(CK_TLS_PRF_PARAMS, pulOutputLen) - 40usize];
2188};
2189impl Default for CK_TLS_PRF_PARAMS {
2190    fn default() -> Self {
2191        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2192        unsafe {
2193            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2194            s.assume_init()
2195        }
2196    }
2197}
2198pub type CK_TLS_PRF_PARAMS_PTR = *mut CK_TLS_PRF_PARAMS;
2199#[repr(C)]
2200#[derive(Debug, Copy, Clone)]
2201pub struct CK_WTLS_RANDOM_DATA {
2202    pub pClientRandom: CK_BYTE_PTR,
2203    pub ulClientRandomLen: CK_ULONG,
2204    pub pServerRandom: CK_BYTE_PTR,
2205    pub ulServerRandomLen: CK_ULONG,
2206}
2207#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2208const _: () = {
2209    ["Size of CK_WTLS_RANDOM_DATA"][::std::mem::size_of::<CK_WTLS_RANDOM_DATA>() - 32usize];
2210    ["Alignment of CK_WTLS_RANDOM_DATA"][::std::mem::align_of::<CK_WTLS_RANDOM_DATA>() - 8usize];
2211    ["Offset of field: CK_WTLS_RANDOM_DATA::pClientRandom"]
2212        [::std::mem::offset_of!(CK_WTLS_RANDOM_DATA, pClientRandom) - 0usize];
2213    ["Offset of field: CK_WTLS_RANDOM_DATA::ulClientRandomLen"]
2214        [::std::mem::offset_of!(CK_WTLS_RANDOM_DATA, ulClientRandomLen) - 8usize];
2215    ["Offset of field: CK_WTLS_RANDOM_DATA::pServerRandom"]
2216        [::std::mem::offset_of!(CK_WTLS_RANDOM_DATA, pServerRandom) - 16usize];
2217    ["Offset of field: CK_WTLS_RANDOM_DATA::ulServerRandomLen"]
2218        [::std::mem::offset_of!(CK_WTLS_RANDOM_DATA, ulServerRandomLen) - 24usize];
2219};
2220impl Default for CK_WTLS_RANDOM_DATA {
2221    fn default() -> Self {
2222        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2223        unsafe {
2224            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2225            s.assume_init()
2226        }
2227    }
2228}
2229pub type CK_WTLS_RANDOM_DATA_PTR = *mut CK_WTLS_RANDOM_DATA;
2230#[repr(C)]
2231#[derive(Debug, Copy, Clone)]
2232pub struct CK_WTLS_MASTER_KEY_DERIVE_PARAMS {
2233    pub DigestMechanism: CK_MECHANISM_TYPE,
2234    pub RandomInfo: CK_WTLS_RANDOM_DATA,
2235    pub pVersion: CK_BYTE_PTR,
2236}
2237#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2238const _: () = {
2239    ["Size of CK_WTLS_MASTER_KEY_DERIVE_PARAMS"]
2240        [::std::mem::size_of::<CK_WTLS_MASTER_KEY_DERIVE_PARAMS>() - 48usize];
2241    ["Alignment of CK_WTLS_MASTER_KEY_DERIVE_PARAMS"]
2242        [::std::mem::align_of::<CK_WTLS_MASTER_KEY_DERIVE_PARAMS>() - 8usize];
2243    ["Offset of field: CK_WTLS_MASTER_KEY_DERIVE_PARAMS::DigestMechanism"]
2244        [::std::mem::offset_of!(CK_WTLS_MASTER_KEY_DERIVE_PARAMS, DigestMechanism) - 0usize];
2245    ["Offset of field: CK_WTLS_MASTER_KEY_DERIVE_PARAMS::RandomInfo"]
2246        [::std::mem::offset_of!(CK_WTLS_MASTER_KEY_DERIVE_PARAMS, RandomInfo) - 8usize];
2247    ["Offset of field: CK_WTLS_MASTER_KEY_DERIVE_PARAMS::pVersion"]
2248        [::std::mem::offset_of!(CK_WTLS_MASTER_KEY_DERIVE_PARAMS, pVersion) - 40usize];
2249};
2250impl Default for CK_WTLS_MASTER_KEY_DERIVE_PARAMS {
2251    fn default() -> Self {
2252        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2253        unsafe {
2254            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2255            s.assume_init()
2256        }
2257    }
2258}
2259pub type CK_WTLS_MASTER_KEY_DERIVE_PARAMS_PTR = *mut CK_WTLS_MASTER_KEY_DERIVE_PARAMS;
2260#[repr(C)]
2261#[derive(Debug, Copy, Clone)]
2262pub struct CK_WTLS_PRF_PARAMS {
2263    pub DigestMechanism: CK_MECHANISM_TYPE,
2264    pub pSeed: CK_BYTE_PTR,
2265    pub ulSeedLen: CK_ULONG,
2266    pub pLabel: CK_BYTE_PTR,
2267    pub ulLabelLen: CK_ULONG,
2268    pub pOutput: CK_BYTE_PTR,
2269    pub pulOutputLen: CK_ULONG_PTR,
2270}
2271#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2272const _: () = {
2273    ["Size of CK_WTLS_PRF_PARAMS"][::std::mem::size_of::<CK_WTLS_PRF_PARAMS>() - 56usize];
2274    ["Alignment of CK_WTLS_PRF_PARAMS"][::std::mem::align_of::<CK_WTLS_PRF_PARAMS>() - 8usize];
2275    ["Offset of field: CK_WTLS_PRF_PARAMS::DigestMechanism"]
2276        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, DigestMechanism) - 0usize];
2277    ["Offset of field: CK_WTLS_PRF_PARAMS::pSeed"]
2278        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, pSeed) - 8usize];
2279    ["Offset of field: CK_WTLS_PRF_PARAMS::ulSeedLen"]
2280        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, ulSeedLen) - 16usize];
2281    ["Offset of field: CK_WTLS_PRF_PARAMS::pLabel"]
2282        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, pLabel) - 24usize];
2283    ["Offset of field: CK_WTLS_PRF_PARAMS::ulLabelLen"]
2284        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, ulLabelLen) - 32usize];
2285    ["Offset of field: CK_WTLS_PRF_PARAMS::pOutput"]
2286        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, pOutput) - 40usize];
2287    ["Offset of field: CK_WTLS_PRF_PARAMS::pulOutputLen"]
2288        [::std::mem::offset_of!(CK_WTLS_PRF_PARAMS, pulOutputLen) - 48usize];
2289};
2290impl Default for CK_WTLS_PRF_PARAMS {
2291    fn default() -> Self {
2292        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2293        unsafe {
2294            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2295            s.assume_init()
2296        }
2297    }
2298}
2299pub type CK_WTLS_PRF_PARAMS_PTR = *mut CK_WTLS_PRF_PARAMS;
2300#[repr(C)]
2301#[derive(Debug, Copy, Clone)]
2302pub struct CK_WTLS_KEY_MAT_OUT {
2303    pub hMacSecret: CK_OBJECT_HANDLE,
2304    pub hKey: CK_OBJECT_HANDLE,
2305    pub pIV: CK_BYTE_PTR,
2306}
2307#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2308const _: () = {
2309    ["Size of CK_WTLS_KEY_MAT_OUT"][::std::mem::size_of::<CK_WTLS_KEY_MAT_OUT>() - 24usize];
2310    ["Alignment of CK_WTLS_KEY_MAT_OUT"][::std::mem::align_of::<CK_WTLS_KEY_MAT_OUT>() - 8usize];
2311    ["Offset of field: CK_WTLS_KEY_MAT_OUT::hMacSecret"]
2312        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_OUT, hMacSecret) - 0usize];
2313    ["Offset of field: CK_WTLS_KEY_MAT_OUT::hKey"]
2314        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_OUT, hKey) - 8usize];
2315    ["Offset of field: CK_WTLS_KEY_MAT_OUT::pIV"]
2316        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_OUT, pIV) - 16usize];
2317};
2318impl Default for CK_WTLS_KEY_MAT_OUT {
2319    fn default() -> Self {
2320        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2321        unsafe {
2322            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2323            s.assume_init()
2324        }
2325    }
2326}
2327pub type CK_WTLS_KEY_MAT_OUT_PTR = *mut CK_WTLS_KEY_MAT_OUT;
2328#[repr(C)]
2329#[derive(Debug, Copy, Clone)]
2330pub struct CK_WTLS_KEY_MAT_PARAMS {
2331    pub DigestMechanism: CK_MECHANISM_TYPE,
2332    pub ulMacSizeInBits: CK_ULONG,
2333    pub ulKeySizeInBits: CK_ULONG,
2334    pub ulIVSizeInBits: CK_ULONG,
2335    pub ulSequenceNumber: CK_ULONG,
2336    pub bIsExport: CK_BBOOL,
2337    pub RandomInfo: CK_WTLS_RANDOM_DATA,
2338    pub pReturnedKeyMaterial: CK_WTLS_KEY_MAT_OUT_PTR,
2339}
2340#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2341const _: () = {
2342    ["Size of CK_WTLS_KEY_MAT_PARAMS"][::std::mem::size_of::<CK_WTLS_KEY_MAT_PARAMS>() - 88usize];
2343    ["Alignment of CK_WTLS_KEY_MAT_PARAMS"]
2344        [::std::mem::align_of::<CK_WTLS_KEY_MAT_PARAMS>() - 8usize];
2345    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::DigestMechanism"]
2346        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, DigestMechanism) - 0usize];
2347    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::ulMacSizeInBits"]
2348        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, ulMacSizeInBits) - 8usize];
2349    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::ulKeySizeInBits"]
2350        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, ulKeySizeInBits) - 16usize];
2351    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::ulIVSizeInBits"]
2352        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, ulIVSizeInBits) - 24usize];
2353    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::ulSequenceNumber"]
2354        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, ulSequenceNumber) - 32usize];
2355    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::bIsExport"]
2356        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, bIsExport) - 40usize];
2357    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::RandomInfo"]
2358        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, RandomInfo) - 48usize];
2359    ["Offset of field: CK_WTLS_KEY_MAT_PARAMS::pReturnedKeyMaterial"]
2360        [::std::mem::offset_of!(CK_WTLS_KEY_MAT_PARAMS, pReturnedKeyMaterial) - 80usize];
2361};
2362impl Default for CK_WTLS_KEY_MAT_PARAMS {
2363    fn default() -> Self {
2364        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2365        unsafe {
2366            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2367            s.assume_init()
2368        }
2369    }
2370}
2371pub type CK_WTLS_KEY_MAT_PARAMS_PTR = *mut CK_WTLS_KEY_MAT_PARAMS;
2372#[repr(C)]
2373#[derive(Debug, Copy, Clone)]
2374pub struct CK_CMS_SIG_PARAMS {
2375    pub certificateHandle: CK_OBJECT_HANDLE,
2376    pub pSigningMechanism: CK_MECHANISM_PTR,
2377    pub pDigestMechanism: CK_MECHANISM_PTR,
2378    pub pContentType: CK_UTF8CHAR_PTR,
2379    pub pRequestedAttributes: CK_BYTE_PTR,
2380    pub ulRequestedAttributesLen: CK_ULONG,
2381    pub pRequiredAttributes: CK_BYTE_PTR,
2382    pub ulRequiredAttributesLen: CK_ULONG,
2383}
2384#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2385const _: () = {
2386    ["Size of CK_CMS_SIG_PARAMS"][::std::mem::size_of::<CK_CMS_SIG_PARAMS>() - 64usize];
2387    ["Alignment of CK_CMS_SIG_PARAMS"][::std::mem::align_of::<CK_CMS_SIG_PARAMS>() - 8usize];
2388    ["Offset of field: CK_CMS_SIG_PARAMS::certificateHandle"]
2389        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, certificateHandle) - 0usize];
2390    ["Offset of field: CK_CMS_SIG_PARAMS::pSigningMechanism"]
2391        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, pSigningMechanism) - 8usize];
2392    ["Offset of field: CK_CMS_SIG_PARAMS::pDigestMechanism"]
2393        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, pDigestMechanism) - 16usize];
2394    ["Offset of field: CK_CMS_SIG_PARAMS::pContentType"]
2395        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, pContentType) - 24usize];
2396    ["Offset of field: CK_CMS_SIG_PARAMS::pRequestedAttributes"]
2397        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, pRequestedAttributes) - 32usize];
2398    ["Offset of field: CK_CMS_SIG_PARAMS::ulRequestedAttributesLen"]
2399        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, ulRequestedAttributesLen) - 40usize];
2400    ["Offset of field: CK_CMS_SIG_PARAMS::pRequiredAttributes"]
2401        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, pRequiredAttributes) - 48usize];
2402    ["Offset of field: CK_CMS_SIG_PARAMS::ulRequiredAttributesLen"]
2403        [::std::mem::offset_of!(CK_CMS_SIG_PARAMS, ulRequiredAttributesLen) - 56usize];
2404};
2405impl Default for CK_CMS_SIG_PARAMS {
2406    fn default() -> Self {
2407        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2408        unsafe {
2409            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2410            s.assume_init()
2411        }
2412    }
2413}
2414pub type CK_CMS_SIG_PARAMS_PTR = *mut CK_CMS_SIG_PARAMS;
2415#[repr(C)]
2416#[derive(Debug, Copy, Clone)]
2417pub struct CK_KEY_DERIVATION_STRING_DATA {
2418    pub pData: CK_BYTE_PTR,
2419    pub ulLen: CK_ULONG,
2420}
2421#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2422const _: () = {
2423    ["Size of CK_KEY_DERIVATION_STRING_DATA"]
2424        [::std::mem::size_of::<CK_KEY_DERIVATION_STRING_DATA>() - 16usize];
2425    ["Alignment of CK_KEY_DERIVATION_STRING_DATA"]
2426        [::std::mem::align_of::<CK_KEY_DERIVATION_STRING_DATA>() - 8usize];
2427    ["Offset of field: CK_KEY_DERIVATION_STRING_DATA::pData"]
2428        [::std::mem::offset_of!(CK_KEY_DERIVATION_STRING_DATA, pData) - 0usize];
2429    ["Offset of field: CK_KEY_DERIVATION_STRING_DATA::ulLen"]
2430        [::std::mem::offset_of!(CK_KEY_DERIVATION_STRING_DATA, ulLen) - 8usize];
2431};
2432impl Default for CK_KEY_DERIVATION_STRING_DATA {
2433    fn default() -> Self {
2434        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2435        unsafe {
2436            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2437            s.assume_init()
2438        }
2439    }
2440}
2441pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut CK_KEY_DERIVATION_STRING_DATA;
2442pub type CK_EXTRACT_PARAMS = CK_ULONG;
2443pub type CK_EXTRACT_PARAMS_PTR = *mut CK_EXTRACT_PARAMS;
2444pub type CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE = CK_ULONG;
2445pub type CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE_PTR =
2446    *mut CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE;
2447pub type CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = CK_ULONG;
2448pub type CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE_PTR = *mut CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE;
2449#[repr(C)]
2450#[derive(Debug, Copy, Clone)]
2451pub struct CK_PKCS5_PBKD2_PARAMS {
2452    pub saltSource: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE,
2453    pub pSaltSourceData: CK_VOID_PTR,
2454    pub ulSaltSourceDataLen: CK_ULONG,
2455    pub iterations: CK_ULONG,
2456    pub prf: CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE,
2457    pub pPrfData: CK_VOID_PTR,
2458    pub ulPrfDataLen: CK_ULONG,
2459    pub pPassword: CK_UTF8CHAR_PTR,
2460    pub ulPasswordLen: CK_ULONG_PTR,
2461}
2462#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2463const _: () = {
2464    ["Size of CK_PKCS5_PBKD2_PARAMS"][::std::mem::size_of::<CK_PKCS5_PBKD2_PARAMS>() - 72usize];
2465    ["Alignment of CK_PKCS5_PBKD2_PARAMS"]
2466        [::std::mem::align_of::<CK_PKCS5_PBKD2_PARAMS>() - 8usize];
2467    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::saltSource"]
2468        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, saltSource) - 0usize];
2469    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::pSaltSourceData"]
2470        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, pSaltSourceData) - 8usize];
2471    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::ulSaltSourceDataLen"]
2472        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, ulSaltSourceDataLen) - 16usize];
2473    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::iterations"]
2474        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, iterations) - 24usize];
2475    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::prf"]
2476        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, prf) - 32usize];
2477    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::pPrfData"]
2478        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, pPrfData) - 40usize];
2479    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::ulPrfDataLen"]
2480        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, ulPrfDataLen) - 48usize];
2481    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::pPassword"]
2482        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, pPassword) - 56usize];
2483    ["Offset of field: CK_PKCS5_PBKD2_PARAMS::ulPasswordLen"]
2484        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS, ulPasswordLen) - 64usize];
2485};
2486impl Default for CK_PKCS5_PBKD2_PARAMS {
2487    fn default() -> Self {
2488        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2489        unsafe {
2490            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2491            s.assume_init()
2492        }
2493    }
2494}
2495pub type CK_PKCS5_PBKD2_PARAMS_PTR = *mut CK_PKCS5_PBKD2_PARAMS;
2496#[repr(C)]
2497#[derive(Debug, Copy, Clone)]
2498pub struct CK_PKCS5_PBKD2_PARAMS2 {
2499    pub saltSource: CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE,
2500    pub pSaltSourceData: CK_VOID_PTR,
2501    pub ulSaltSourceDataLen: CK_ULONG,
2502    pub iterations: CK_ULONG,
2503    pub prf: CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE,
2504    pub pPrfData: CK_VOID_PTR,
2505    pub ulPrfDataLen: CK_ULONG,
2506    pub pPassword: CK_UTF8CHAR_PTR,
2507    pub ulPasswordLen: CK_ULONG,
2508}
2509#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2510const _: () = {
2511    ["Size of CK_PKCS5_PBKD2_PARAMS2"][::std::mem::size_of::<CK_PKCS5_PBKD2_PARAMS2>() - 72usize];
2512    ["Alignment of CK_PKCS5_PBKD2_PARAMS2"]
2513        [::std::mem::align_of::<CK_PKCS5_PBKD2_PARAMS2>() - 8usize];
2514    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::saltSource"]
2515        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, saltSource) - 0usize];
2516    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::pSaltSourceData"]
2517        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, pSaltSourceData) - 8usize];
2518    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::ulSaltSourceDataLen"]
2519        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, ulSaltSourceDataLen) - 16usize];
2520    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::iterations"]
2521        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, iterations) - 24usize];
2522    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::prf"]
2523        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, prf) - 32usize];
2524    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::pPrfData"]
2525        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, pPrfData) - 40usize];
2526    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::ulPrfDataLen"]
2527        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, ulPrfDataLen) - 48usize];
2528    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::pPassword"]
2529        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, pPassword) - 56usize];
2530    ["Offset of field: CK_PKCS5_PBKD2_PARAMS2::ulPasswordLen"]
2531        [::std::mem::offset_of!(CK_PKCS5_PBKD2_PARAMS2, ulPasswordLen) - 64usize];
2532};
2533impl Default for CK_PKCS5_PBKD2_PARAMS2 {
2534    fn default() -> Self {
2535        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2536        unsafe {
2537            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2538            s.assume_init()
2539        }
2540    }
2541}
2542pub type CK_PKCS5_PBKD2_PARAMS2_PTR = *mut CK_PKCS5_PBKD2_PARAMS2;
2543pub type CK_OTP_PARAM_TYPE = CK_ULONG;
2544pub type CK_PARAM_TYPE = CK_OTP_PARAM_TYPE;
2545#[repr(C)]
2546#[derive(Debug, Copy, Clone)]
2547pub struct CK_OTP_PARAM {
2548    pub type_: CK_OTP_PARAM_TYPE,
2549    pub pValue: CK_VOID_PTR,
2550    pub ulValueLen: CK_ULONG,
2551}
2552#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2553const _: () = {
2554    ["Size of CK_OTP_PARAM"][::std::mem::size_of::<CK_OTP_PARAM>() - 24usize];
2555    ["Alignment of CK_OTP_PARAM"][::std::mem::align_of::<CK_OTP_PARAM>() - 8usize];
2556    ["Offset of field: CK_OTP_PARAM::type_"][::std::mem::offset_of!(CK_OTP_PARAM, type_) - 0usize];
2557    ["Offset of field: CK_OTP_PARAM::pValue"]
2558        [::std::mem::offset_of!(CK_OTP_PARAM, pValue) - 8usize];
2559    ["Offset of field: CK_OTP_PARAM::ulValueLen"]
2560        [::std::mem::offset_of!(CK_OTP_PARAM, ulValueLen) - 16usize];
2561};
2562impl Default for CK_OTP_PARAM {
2563    fn default() -> Self {
2564        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2565        unsafe {
2566            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2567            s.assume_init()
2568        }
2569    }
2570}
2571pub type CK_OTP_PARAM_PTR = *mut CK_OTP_PARAM;
2572#[repr(C)]
2573#[derive(Debug, Copy, Clone)]
2574pub struct CK_OTP_PARAMS {
2575    pub pParams: CK_OTP_PARAM_PTR,
2576    pub ulCount: CK_ULONG,
2577}
2578#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2579const _: () = {
2580    ["Size of CK_OTP_PARAMS"][::std::mem::size_of::<CK_OTP_PARAMS>() - 16usize];
2581    ["Alignment of CK_OTP_PARAMS"][::std::mem::align_of::<CK_OTP_PARAMS>() - 8usize];
2582    ["Offset of field: CK_OTP_PARAMS::pParams"]
2583        [::std::mem::offset_of!(CK_OTP_PARAMS, pParams) - 0usize];
2584    ["Offset of field: CK_OTP_PARAMS::ulCount"]
2585        [::std::mem::offset_of!(CK_OTP_PARAMS, ulCount) - 8usize];
2586};
2587impl Default for CK_OTP_PARAMS {
2588    fn default() -> Self {
2589        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2590        unsafe {
2591            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2592            s.assume_init()
2593        }
2594    }
2595}
2596pub type CK_OTP_PARAMS_PTR = *mut CK_OTP_PARAMS;
2597#[repr(C)]
2598#[derive(Debug, Copy, Clone)]
2599pub struct CK_OTP_SIGNATURE_INFO {
2600    pub pParams: CK_OTP_PARAM_PTR,
2601    pub ulCount: CK_ULONG,
2602}
2603#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2604const _: () = {
2605    ["Size of CK_OTP_SIGNATURE_INFO"][::std::mem::size_of::<CK_OTP_SIGNATURE_INFO>() - 16usize];
2606    ["Alignment of CK_OTP_SIGNATURE_INFO"]
2607        [::std::mem::align_of::<CK_OTP_SIGNATURE_INFO>() - 8usize];
2608    ["Offset of field: CK_OTP_SIGNATURE_INFO::pParams"]
2609        [::std::mem::offset_of!(CK_OTP_SIGNATURE_INFO, pParams) - 0usize];
2610    ["Offset of field: CK_OTP_SIGNATURE_INFO::ulCount"]
2611        [::std::mem::offset_of!(CK_OTP_SIGNATURE_INFO, ulCount) - 8usize];
2612};
2613impl Default for CK_OTP_SIGNATURE_INFO {
2614    fn default() -> Self {
2615        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2616        unsafe {
2617            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2618            s.assume_init()
2619        }
2620    }
2621}
2622pub type CK_OTP_SIGNATURE_INFO_PTR = *mut CK_OTP_SIGNATURE_INFO;
2623#[repr(C)]
2624#[derive(Debug, Copy, Clone)]
2625pub struct CK_KIP_PARAMS {
2626    pub pMechanism: CK_MECHANISM_PTR,
2627    pub hKey: CK_OBJECT_HANDLE,
2628    pub pSeed: CK_BYTE_PTR,
2629    pub ulSeedLen: CK_ULONG,
2630}
2631#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2632const _: () = {
2633    ["Size of CK_KIP_PARAMS"][::std::mem::size_of::<CK_KIP_PARAMS>() - 32usize];
2634    ["Alignment of CK_KIP_PARAMS"][::std::mem::align_of::<CK_KIP_PARAMS>() - 8usize];
2635    ["Offset of field: CK_KIP_PARAMS::pMechanism"]
2636        [::std::mem::offset_of!(CK_KIP_PARAMS, pMechanism) - 0usize];
2637    ["Offset of field: CK_KIP_PARAMS::hKey"][::std::mem::offset_of!(CK_KIP_PARAMS, hKey) - 8usize];
2638    ["Offset of field: CK_KIP_PARAMS::pSeed"]
2639        [::std::mem::offset_of!(CK_KIP_PARAMS, pSeed) - 16usize];
2640    ["Offset of field: CK_KIP_PARAMS::ulSeedLen"]
2641        [::std::mem::offset_of!(CK_KIP_PARAMS, ulSeedLen) - 24usize];
2642};
2643impl Default for CK_KIP_PARAMS {
2644    fn default() -> Self {
2645        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2646        unsafe {
2647            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2648            s.assume_init()
2649        }
2650    }
2651}
2652pub type CK_KIP_PARAMS_PTR = *mut CK_KIP_PARAMS;
2653#[repr(C)]
2654#[derive(Debug, Default, Copy, Clone)]
2655pub struct CK_AES_CTR_PARAMS {
2656    pub ulCounterBits: CK_ULONG,
2657    pub cb: [CK_BYTE; 16usize],
2658}
2659#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2660const _: () = {
2661    ["Size of CK_AES_CTR_PARAMS"][::std::mem::size_of::<CK_AES_CTR_PARAMS>() - 24usize];
2662    ["Alignment of CK_AES_CTR_PARAMS"][::std::mem::align_of::<CK_AES_CTR_PARAMS>() - 8usize];
2663    ["Offset of field: CK_AES_CTR_PARAMS::ulCounterBits"]
2664        [::std::mem::offset_of!(CK_AES_CTR_PARAMS, ulCounterBits) - 0usize];
2665    ["Offset of field: CK_AES_CTR_PARAMS::cb"]
2666        [::std::mem::offset_of!(CK_AES_CTR_PARAMS, cb) - 8usize];
2667};
2668pub type CK_AES_CTR_PARAMS_PTR = *mut CK_AES_CTR_PARAMS;
2669#[repr(C)]
2670#[derive(Debug, Copy, Clone)]
2671pub struct CK_GCM_PARAMS {
2672    pub pIv: CK_BYTE_PTR,
2673    pub ulIvLen: CK_ULONG,
2674    pub ulIvBits: CK_ULONG,
2675    pub pAAD: CK_BYTE_PTR,
2676    pub ulAADLen: CK_ULONG,
2677    pub ulTagBits: CK_ULONG,
2678}
2679#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2680const _: () = {
2681    ["Size of CK_GCM_PARAMS"][::std::mem::size_of::<CK_GCM_PARAMS>() - 48usize];
2682    ["Alignment of CK_GCM_PARAMS"][::std::mem::align_of::<CK_GCM_PARAMS>() - 8usize];
2683    ["Offset of field: CK_GCM_PARAMS::pIv"][::std::mem::offset_of!(CK_GCM_PARAMS, pIv) - 0usize];
2684    ["Offset of field: CK_GCM_PARAMS::ulIvLen"]
2685        [::std::mem::offset_of!(CK_GCM_PARAMS, ulIvLen) - 8usize];
2686    ["Offset of field: CK_GCM_PARAMS::ulIvBits"]
2687        [::std::mem::offset_of!(CK_GCM_PARAMS, ulIvBits) - 16usize];
2688    ["Offset of field: CK_GCM_PARAMS::pAAD"][::std::mem::offset_of!(CK_GCM_PARAMS, pAAD) - 24usize];
2689    ["Offset of field: CK_GCM_PARAMS::ulAADLen"]
2690        [::std::mem::offset_of!(CK_GCM_PARAMS, ulAADLen) - 32usize];
2691    ["Offset of field: CK_GCM_PARAMS::ulTagBits"]
2692        [::std::mem::offset_of!(CK_GCM_PARAMS, ulTagBits) - 40usize];
2693};
2694impl Default for CK_GCM_PARAMS {
2695    fn default() -> Self {
2696        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2697        unsafe {
2698            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2699            s.assume_init()
2700        }
2701    }
2702}
2703pub type CK_GCM_PARAMS_PTR = *mut CK_GCM_PARAMS;
2704pub type CK_GENERATOR_FUNCTION = CK_ULONG;
2705#[repr(C)]
2706#[derive(Debug, Copy, Clone)]
2707pub struct CK_GCM_MESSAGE_PARAMS {
2708    pub pIv: CK_BYTE_PTR,
2709    pub ulIvLen: CK_ULONG,
2710    pub ulIvFixedBits: CK_ULONG,
2711    pub ivGenerator: CK_GENERATOR_FUNCTION,
2712    pub pTag: CK_BYTE_PTR,
2713    pub ulTagBits: CK_ULONG,
2714}
2715#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2716const _: () = {
2717    ["Size of CK_GCM_MESSAGE_PARAMS"][::std::mem::size_of::<CK_GCM_MESSAGE_PARAMS>() - 48usize];
2718    ["Alignment of CK_GCM_MESSAGE_PARAMS"]
2719        [::std::mem::align_of::<CK_GCM_MESSAGE_PARAMS>() - 8usize];
2720    ["Offset of field: CK_GCM_MESSAGE_PARAMS::pIv"]
2721        [::std::mem::offset_of!(CK_GCM_MESSAGE_PARAMS, pIv) - 0usize];
2722    ["Offset of field: CK_GCM_MESSAGE_PARAMS::ulIvLen"]
2723        [::std::mem::offset_of!(CK_GCM_MESSAGE_PARAMS, ulIvLen) - 8usize];
2724    ["Offset of field: CK_GCM_MESSAGE_PARAMS::ulIvFixedBits"]
2725        [::std::mem::offset_of!(CK_GCM_MESSAGE_PARAMS, ulIvFixedBits) - 16usize];
2726    ["Offset of field: CK_GCM_MESSAGE_PARAMS::ivGenerator"]
2727        [::std::mem::offset_of!(CK_GCM_MESSAGE_PARAMS, ivGenerator) - 24usize];
2728    ["Offset of field: CK_GCM_MESSAGE_PARAMS::pTag"]
2729        [::std::mem::offset_of!(CK_GCM_MESSAGE_PARAMS, pTag) - 32usize];
2730    ["Offset of field: CK_GCM_MESSAGE_PARAMS::ulTagBits"]
2731        [::std::mem::offset_of!(CK_GCM_MESSAGE_PARAMS, ulTagBits) - 40usize];
2732};
2733impl Default for CK_GCM_MESSAGE_PARAMS {
2734    fn default() -> Self {
2735        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2736        unsafe {
2737            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2738            s.assume_init()
2739        }
2740    }
2741}
2742pub type CK_GCM_MESSAGE_PARAMS_PTR = *mut CK_GCM_MESSAGE_PARAMS;
2743#[repr(C)]
2744#[derive(Debug, Copy, Clone)]
2745pub struct CK_CCM_PARAMS {
2746    pub ulDataLen: CK_ULONG,
2747    pub pNonce: CK_BYTE_PTR,
2748    pub ulNonceLen: CK_ULONG,
2749    pub pAAD: CK_BYTE_PTR,
2750    pub ulAADLen: CK_ULONG,
2751    pub ulMACLen: CK_ULONG,
2752}
2753#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2754const _: () = {
2755    ["Size of CK_CCM_PARAMS"][::std::mem::size_of::<CK_CCM_PARAMS>() - 48usize];
2756    ["Alignment of CK_CCM_PARAMS"][::std::mem::align_of::<CK_CCM_PARAMS>() - 8usize];
2757    ["Offset of field: CK_CCM_PARAMS::ulDataLen"]
2758        [::std::mem::offset_of!(CK_CCM_PARAMS, ulDataLen) - 0usize];
2759    ["Offset of field: CK_CCM_PARAMS::pNonce"]
2760        [::std::mem::offset_of!(CK_CCM_PARAMS, pNonce) - 8usize];
2761    ["Offset of field: CK_CCM_PARAMS::ulNonceLen"]
2762        [::std::mem::offset_of!(CK_CCM_PARAMS, ulNonceLen) - 16usize];
2763    ["Offset of field: CK_CCM_PARAMS::pAAD"][::std::mem::offset_of!(CK_CCM_PARAMS, pAAD) - 24usize];
2764    ["Offset of field: CK_CCM_PARAMS::ulAADLen"]
2765        [::std::mem::offset_of!(CK_CCM_PARAMS, ulAADLen) - 32usize];
2766    ["Offset of field: CK_CCM_PARAMS::ulMACLen"]
2767        [::std::mem::offset_of!(CK_CCM_PARAMS, ulMACLen) - 40usize];
2768};
2769impl Default for CK_CCM_PARAMS {
2770    fn default() -> Self {
2771        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2772        unsafe {
2773            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2774            s.assume_init()
2775        }
2776    }
2777}
2778pub type CK_CCM_PARAMS_PTR = *mut CK_CCM_PARAMS;
2779#[repr(C)]
2780#[derive(Debug, Copy, Clone)]
2781pub struct CK_CCM_MESSAGE_PARAMS {
2782    pub ulDataLen: CK_ULONG,
2783    pub pNonce: CK_BYTE_PTR,
2784    pub ulNonceLen: CK_ULONG,
2785    pub ulNonceFixedBits: CK_ULONG,
2786    pub nonceGenerator: CK_GENERATOR_FUNCTION,
2787    pub pMAC: CK_BYTE_PTR,
2788    pub ulMACLen: CK_ULONG,
2789}
2790#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2791const _: () = {
2792    ["Size of CK_CCM_MESSAGE_PARAMS"][::std::mem::size_of::<CK_CCM_MESSAGE_PARAMS>() - 56usize];
2793    ["Alignment of CK_CCM_MESSAGE_PARAMS"]
2794        [::std::mem::align_of::<CK_CCM_MESSAGE_PARAMS>() - 8usize];
2795    ["Offset of field: CK_CCM_MESSAGE_PARAMS::ulDataLen"]
2796        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, ulDataLen) - 0usize];
2797    ["Offset of field: CK_CCM_MESSAGE_PARAMS::pNonce"]
2798        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, pNonce) - 8usize];
2799    ["Offset of field: CK_CCM_MESSAGE_PARAMS::ulNonceLen"]
2800        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, ulNonceLen) - 16usize];
2801    ["Offset of field: CK_CCM_MESSAGE_PARAMS::ulNonceFixedBits"]
2802        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, ulNonceFixedBits) - 24usize];
2803    ["Offset of field: CK_CCM_MESSAGE_PARAMS::nonceGenerator"]
2804        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, nonceGenerator) - 32usize];
2805    ["Offset of field: CK_CCM_MESSAGE_PARAMS::pMAC"]
2806        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, pMAC) - 40usize];
2807    ["Offset of field: CK_CCM_MESSAGE_PARAMS::ulMACLen"]
2808        [::std::mem::offset_of!(CK_CCM_MESSAGE_PARAMS, ulMACLen) - 48usize];
2809};
2810impl Default for CK_CCM_MESSAGE_PARAMS {
2811    fn default() -> Self {
2812        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2813        unsafe {
2814            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2815            s.assume_init()
2816        }
2817    }
2818}
2819pub type CK_CCM_MESSAGE_PARAMS_PTR = *mut CK_CCM_MESSAGE_PARAMS;
2820#[repr(C)]
2821#[derive(Debug, Copy, Clone)]
2822pub struct CK_AES_GCM_PARAMS {
2823    pub pIv: CK_BYTE_PTR,
2824    pub ulIvLen: CK_ULONG,
2825    pub ulIvBits: CK_ULONG,
2826    pub pAAD: CK_BYTE_PTR,
2827    pub ulAADLen: CK_ULONG,
2828    pub ulTagBits: CK_ULONG,
2829}
2830#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2831const _: () = {
2832    ["Size of CK_AES_GCM_PARAMS"][::std::mem::size_of::<CK_AES_GCM_PARAMS>() - 48usize];
2833    ["Alignment of CK_AES_GCM_PARAMS"][::std::mem::align_of::<CK_AES_GCM_PARAMS>() - 8usize];
2834    ["Offset of field: CK_AES_GCM_PARAMS::pIv"]
2835        [::std::mem::offset_of!(CK_AES_GCM_PARAMS, pIv) - 0usize];
2836    ["Offset of field: CK_AES_GCM_PARAMS::ulIvLen"]
2837        [::std::mem::offset_of!(CK_AES_GCM_PARAMS, ulIvLen) - 8usize];
2838    ["Offset of field: CK_AES_GCM_PARAMS::ulIvBits"]
2839        [::std::mem::offset_of!(CK_AES_GCM_PARAMS, ulIvBits) - 16usize];
2840    ["Offset of field: CK_AES_GCM_PARAMS::pAAD"]
2841        [::std::mem::offset_of!(CK_AES_GCM_PARAMS, pAAD) - 24usize];
2842    ["Offset of field: CK_AES_GCM_PARAMS::ulAADLen"]
2843        [::std::mem::offset_of!(CK_AES_GCM_PARAMS, ulAADLen) - 32usize];
2844    ["Offset of field: CK_AES_GCM_PARAMS::ulTagBits"]
2845        [::std::mem::offset_of!(CK_AES_GCM_PARAMS, ulTagBits) - 40usize];
2846};
2847impl Default for CK_AES_GCM_PARAMS {
2848    fn default() -> Self {
2849        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2850        unsafe {
2851            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2852            s.assume_init()
2853        }
2854    }
2855}
2856pub type CK_AES_GCM_PARAMS_PTR = *mut CK_AES_GCM_PARAMS;
2857#[repr(C)]
2858#[derive(Debug, Copy, Clone)]
2859pub struct CK_AES_CCM_PARAMS {
2860    pub ulDataLen: CK_ULONG,
2861    pub pNonce: CK_BYTE_PTR,
2862    pub ulNonceLen: CK_ULONG,
2863    pub pAAD: CK_BYTE_PTR,
2864    pub ulAADLen: CK_ULONG,
2865    pub ulMACLen: CK_ULONG,
2866}
2867#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2868const _: () = {
2869    ["Size of CK_AES_CCM_PARAMS"][::std::mem::size_of::<CK_AES_CCM_PARAMS>() - 48usize];
2870    ["Alignment of CK_AES_CCM_PARAMS"][::std::mem::align_of::<CK_AES_CCM_PARAMS>() - 8usize];
2871    ["Offset of field: CK_AES_CCM_PARAMS::ulDataLen"]
2872        [::std::mem::offset_of!(CK_AES_CCM_PARAMS, ulDataLen) - 0usize];
2873    ["Offset of field: CK_AES_CCM_PARAMS::pNonce"]
2874        [::std::mem::offset_of!(CK_AES_CCM_PARAMS, pNonce) - 8usize];
2875    ["Offset of field: CK_AES_CCM_PARAMS::ulNonceLen"]
2876        [::std::mem::offset_of!(CK_AES_CCM_PARAMS, ulNonceLen) - 16usize];
2877    ["Offset of field: CK_AES_CCM_PARAMS::pAAD"]
2878        [::std::mem::offset_of!(CK_AES_CCM_PARAMS, pAAD) - 24usize];
2879    ["Offset of field: CK_AES_CCM_PARAMS::ulAADLen"]
2880        [::std::mem::offset_of!(CK_AES_CCM_PARAMS, ulAADLen) - 32usize];
2881    ["Offset of field: CK_AES_CCM_PARAMS::ulMACLen"]
2882        [::std::mem::offset_of!(CK_AES_CCM_PARAMS, ulMACLen) - 40usize];
2883};
2884impl Default for CK_AES_CCM_PARAMS {
2885    fn default() -> Self {
2886        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2887        unsafe {
2888            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2889            s.assume_init()
2890        }
2891    }
2892}
2893pub type CK_AES_CCM_PARAMS_PTR = *mut CK_AES_CCM_PARAMS;
2894#[repr(C)]
2895#[derive(Debug, Default, Copy, Clone)]
2896pub struct CK_CAMELLIA_CTR_PARAMS {
2897    pub ulCounterBits: CK_ULONG,
2898    pub cb: [CK_BYTE; 16usize],
2899}
2900#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2901const _: () = {
2902    ["Size of CK_CAMELLIA_CTR_PARAMS"][::std::mem::size_of::<CK_CAMELLIA_CTR_PARAMS>() - 24usize];
2903    ["Alignment of CK_CAMELLIA_CTR_PARAMS"]
2904        [::std::mem::align_of::<CK_CAMELLIA_CTR_PARAMS>() - 8usize];
2905    ["Offset of field: CK_CAMELLIA_CTR_PARAMS::ulCounterBits"]
2906        [::std::mem::offset_of!(CK_CAMELLIA_CTR_PARAMS, ulCounterBits) - 0usize];
2907    ["Offset of field: CK_CAMELLIA_CTR_PARAMS::cb"]
2908        [::std::mem::offset_of!(CK_CAMELLIA_CTR_PARAMS, cb) - 8usize];
2909};
2910pub type CK_CAMELLIA_CTR_PARAMS_PTR = *mut CK_CAMELLIA_CTR_PARAMS;
2911#[repr(C)]
2912#[derive(Debug, Copy, Clone)]
2913pub struct CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS {
2914    pub iv: [CK_BYTE; 16usize],
2915    pub pData: CK_BYTE_PTR,
2916    pub length: CK_ULONG,
2917}
2918#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2919const _: () = {
2920    ["Size of CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS"]
2921        [::std::mem::size_of::<CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS>() - 32usize];
2922    ["Alignment of CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS"]
2923        [::std::mem::align_of::<CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS>() - 8usize];
2924    ["Offset of field: CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS::iv"]
2925        [::std::mem::offset_of!(CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS, iv) - 0usize];
2926    ["Offset of field: CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS::pData"]
2927        [::std::mem::offset_of!(CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS, pData) - 16usize];
2928    ["Offset of field: CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS::length"]
2929        [::std::mem::offset_of!(CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS, length) - 24usize];
2930};
2931impl Default for CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS {
2932    fn default() -> Self {
2933        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2934        unsafe {
2935            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2936            s.assume_init()
2937        }
2938    }
2939}
2940pub type CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS;
2941#[repr(C)]
2942#[derive(Debug, Copy, Clone)]
2943pub struct CK_ARIA_CBC_ENCRYPT_DATA_PARAMS {
2944    pub iv: [CK_BYTE; 16usize],
2945    pub pData: CK_BYTE_PTR,
2946    pub length: CK_ULONG,
2947}
2948#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2949const _: () = {
2950    ["Size of CK_ARIA_CBC_ENCRYPT_DATA_PARAMS"]
2951        [::std::mem::size_of::<CK_ARIA_CBC_ENCRYPT_DATA_PARAMS>() - 32usize];
2952    ["Alignment of CK_ARIA_CBC_ENCRYPT_DATA_PARAMS"]
2953        [::std::mem::align_of::<CK_ARIA_CBC_ENCRYPT_DATA_PARAMS>() - 8usize];
2954    ["Offset of field: CK_ARIA_CBC_ENCRYPT_DATA_PARAMS::iv"]
2955        [::std::mem::offset_of!(CK_ARIA_CBC_ENCRYPT_DATA_PARAMS, iv) - 0usize];
2956    ["Offset of field: CK_ARIA_CBC_ENCRYPT_DATA_PARAMS::pData"]
2957        [::std::mem::offset_of!(CK_ARIA_CBC_ENCRYPT_DATA_PARAMS, pData) - 16usize];
2958    ["Offset of field: CK_ARIA_CBC_ENCRYPT_DATA_PARAMS::length"]
2959        [::std::mem::offset_of!(CK_ARIA_CBC_ENCRYPT_DATA_PARAMS, length) - 24usize];
2960};
2961impl Default for CK_ARIA_CBC_ENCRYPT_DATA_PARAMS {
2962    fn default() -> Self {
2963        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2964        unsafe {
2965            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2966            s.assume_init()
2967        }
2968    }
2969}
2970pub type CK_ARIA_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_ARIA_CBC_ENCRYPT_DATA_PARAMS;
2971#[repr(C)]
2972#[derive(Debug, Copy, Clone)]
2973pub struct CK_DSA_PARAMETER_GEN_PARAM {
2974    pub hash: CK_MECHANISM_TYPE,
2975    pub pSeed: CK_BYTE_PTR,
2976    pub ulSeedLen: CK_ULONG,
2977    pub ulIndex: CK_ULONG,
2978}
2979#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2980const _: () = {
2981    ["Size of CK_DSA_PARAMETER_GEN_PARAM"]
2982        [::std::mem::size_of::<CK_DSA_PARAMETER_GEN_PARAM>() - 32usize];
2983    ["Alignment of CK_DSA_PARAMETER_GEN_PARAM"]
2984        [::std::mem::align_of::<CK_DSA_PARAMETER_GEN_PARAM>() - 8usize];
2985    ["Offset of field: CK_DSA_PARAMETER_GEN_PARAM::hash"]
2986        [::std::mem::offset_of!(CK_DSA_PARAMETER_GEN_PARAM, hash) - 0usize];
2987    ["Offset of field: CK_DSA_PARAMETER_GEN_PARAM::pSeed"]
2988        [::std::mem::offset_of!(CK_DSA_PARAMETER_GEN_PARAM, pSeed) - 8usize];
2989    ["Offset of field: CK_DSA_PARAMETER_GEN_PARAM::ulSeedLen"]
2990        [::std::mem::offset_of!(CK_DSA_PARAMETER_GEN_PARAM, ulSeedLen) - 16usize];
2991    ["Offset of field: CK_DSA_PARAMETER_GEN_PARAM::ulIndex"]
2992        [::std::mem::offset_of!(CK_DSA_PARAMETER_GEN_PARAM, ulIndex) - 24usize];
2993};
2994impl Default for CK_DSA_PARAMETER_GEN_PARAM {
2995    fn default() -> Self {
2996        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2997        unsafe {
2998            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2999            s.assume_init()
3000        }
3001    }
3002}
3003pub type CK_DSA_PARAMETER_GEN_PARAM_PTR = *mut CK_DSA_PARAMETER_GEN_PARAM;
3004#[repr(C)]
3005#[derive(Debug, Copy, Clone)]
3006pub struct CK_ECDH_AES_KEY_WRAP_PARAMS {
3007    pub ulAESKeyBits: CK_ULONG,
3008    pub kdf: CK_EC_KDF_TYPE,
3009    pub ulSharedDataLen: CK_ULONG,
3010    pub pSharedData: CK_BYTE_PTR,
3011}
3012#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3013const _: () = {
3014    ["Size of CK_ECDH_AES_KEY_WRAP_PARAMS"]
3015        [::std::mem::size_of::<CK_ECDH_AES_KEY_WRAP_PARAMS>() - 32usize];
3016    ["Alignment of CK_ECDH_AES_KEY_WRAP_PARAMS"]
3017        [::std::mem::align_of::<CK_ECDH_AES_KEY_WRAP_PARAMS>() - 8usize];
3018    ["Offset of field: CK_ECDH_AES_KEY_WRAP_PARAMS::ulAESKeyBits"]
3019        [::std::mem::offset_of!(CK_ECDH_AES_KEY_WRAP_PARAMS, ulAESKeyBits) - 0usize];
3020    ["Offset of field: CK_ECDH_AES_KEY_WRAP_PARAMS::kdf"]
3021        [::std::mem::offset_of!(CK_ECDH_AES_KEY_WRAP_PARAMS, kdf) - 8usize];
3022    ["Offset of field: CK_ECDH_AES_KEY_WRAP_PARAMS::ulSharedDataLen"]
3023        [::std::mem::offset_of!(CK_ECDH_AES_KEY_WRAP_PARAMS, ulSharedDataLen) - 16usize];
3024    ["Offset of field: CK_ECDH_AES_KEY_WRAP_PARAMS::pSharedData"]
3025        [::std::mem::offset_of!(CK_ECDH_AES_KEY_WRAP_PARAMS, pSharedData) - 24usize];
3026};
3027impl Default for CK_ECDH_AES_KEY_WRAP_PARAMS {
3028    fn default() -> Self {
3029        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3030        unsafe {
3031            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3032            s.assume_init()
3033        }
3034    }
3035}
3036pub type CK_ECDH_AES_KEY_WRAP_PARAMS_PTR = *mut CK_ECDH_AES_KEY_WRAP_PARAMS;
3037pub type CK_JAVA_MIDP_SECURITY_DOMAIN = CK_ULONG;
3038pub type CK_CERTIFICATE_CATEGORY = CK_ULONG;
3039#[repr(C)]
3040#[derive(Debug, Copy, Clone)]
3041pub struct CK_RSA_AES_KEY_WRAP_PARAMS {
3042    pub ulAESKeyBits: CK_ULONG,
3043    pub pOAEPParams: CK_RSA_PKCS_OAEP_PARAMS_PTR,
3044}
3045#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3046const _: () = {
3047    ["Size of CK_RSA_AES_KEY_WRAP_PARAMS"]
3048        [::std::mem::size_of::<CK_RSA_AES_KEY_WRAP_PARAMS>() - 16usize];
3049    ["Alignment of CK_RSA_AES_KEY_WRAP_PARAMS"]
3050        [::std::mem::align_of::<CK_RSA_AES_KEY_WRAP_PARAMS>() - 8usize];
3051    ["Offset of field: CK_RSA_AES_KEY_WRAP_PARAMS::ulAESKeyBits"]
3052        [::std::mem::offset_of!(CK_RSA_AES_KEY_WRAP_PARAMS, ulAESKeyBits) - 0usize];
3053    ["Offset of field: CK_RSA_AES_KEY_WRAP_PARAMS::pOAEPParams"]
3054        [::std::mem::offset_of!(CK_RSA_AES_KEY_WRAP_PARAMS, pOAEPParams) - 8usize];
3055};
3056impl Default for CK_RSA_AES_KEY_WRAP_PARAMS {
3057    fn default() -> Self {
3058        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3059        unsafe {
3060            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3061            s.assume_init()
3062        }
3063    }
3064}
3065pub type CK_RSA_AES_KEY_WRAP_PARAMS_PTR = *mut CK_RSA_AES_KEY_WRAP_PARAMS;
3066#[repr(C)]
3067#[derive(Debug, Copy, Clone)]
3068pub struct CK_TLS12_MASTER_KEY_DERIVE_PARAMS {
3069    pub RandomInfo: CK_SSL3_RANDOM_DATA,
3070    pub pVersion: CK_VERSION_PTR,
3071    pub prfHashMechanism: CK_MECHANISM_TYPE,
3072}
3073#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3074const _: () = {
3075    ["Size of CK_TLS12_MASTER_KEY_DERIVE_PARAMS"]
3076        [::std::mem::size_of::<CK_TLS12_MASTER_KEY_DERIVE_PARAMS>() - 48usize];
3077    ["Alignment of CK_TLS12_MASTER_KEY_DERIVE_PARAMS"]
3078        [::std::mem::align_of::<CK_TLS12_MASTER_KEY_DERIVE_PARAMS>() - 8usize];
3079    ["Offset of field: CK_TLS12_MASTER_KEY_DERIVE_PARAMS::RandomInfo"]
3080        [::std::mem::offset_of!(CK_TLS12_MASTER_KEY_DERIVE_PARAMS, RandomInfo) - 0usize];
3081    ["Offset of field: CK_TLS12_MASTER_KEY_DERIVE_PARAMS::pVersion"]
3082        [::std::mem::offset_of!(CK_TLS12_MASTER_KEY_DERIVE_PARAMS, pVersion) - 32usize];
3083    ["Offset of field: CK_TLS12_MASTER_KEY_DERIVE_PARAMS::prfHashMechanism"]
3084        [::std::mem::offset_of!(CK_TLS12_MASTER_KEY_DERIVE_PARAMS, prfHashMechanism) - 40usize];
3085};
3086impl Default for CK_TLS12_MASTER_KEY_DERIVE_PARAMS {
3087    fn default() -> Self {
3088        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3089        unsafe {
3090            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3091            s.assume_init()
3092        }
3093    }
3094}
3095pub type CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR = *mut CK_TLS12_MASTER_KEY_DERIVE_PARAMS;
3096#[repr(C)]
3097#[derive(Debug, Copy, Clone)]
3098pub struct CK_TLS12_KEY_MAT_PARAMS {
3099    pub ulMacSizeInBits: CK_ULONG,
3100    pub ulKeySizeInBits: CK_ULONG,
3101    pub ulIVSizeInBits: CK_ULONG,
3102    pub bIsExport: CK_BBOOL,
3103    pub RandomInfo: CK_SSL3_RANDOM_DATA,
3104    pub pReturnedKeyMaterial: CK_SSL3_KEY_MAT_OUT_PTR,
3105    pub prfHashMechanism: CK_MECHANISM_TYPE,
3106}
3107#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3108const _: () = {
3109    ["Size of CK_TLS12_KEY_MAT_PARAMS"][::std::mem::size_of::<CK_TLS12_KEY_MAT_PARAMS>() - 80usize];
3110    ["Alignment of CK_TLS12_KEY_MAT_PARAMS"]
3111        [::std::mem::align_of::<CK_TLS12_KEY_MAT_PARAMS>() - 8usize];
3112    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::ulMacSizeInBits"]
3113        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, ulMacSizeInBits) - 0usize];
3114    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::ulKeySizeInBits"]
3115        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, ulKeySizeInBits) - 8usize];
3116    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::ulIVSizeInBits"]
3117        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, ulIVSizeInBits) - 16usize];
3118    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::bIsExport"]
3119        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, bIsExport) - 24usize];
3120    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::RandomInfo"]
3121        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, RandomInfo) - 32usize];
3122    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::pReturnedKeyMaterial"]
3123        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, pReturnedKeyMaterial) - 64usize];
3124    ["Offset of field: CK_TLS12_KEY_MAT_PARAMS::prfHashMechanism"]
3125        [::std::mem::offset_of!(CK_TLS12_KEY_MAT_PARAMS, prfHashMechanism) - 72usize];
3126};
3127impl Default for CK_TLS12_KEY_MAT_PARAMS {
3128    fn default() -> Self {
3129        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3130        unsafe {
3131            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3132            s.assume_init()
3133        }
3134    }
3135}
3136pub type CK_TLS12_KEY_MAT_PARAMS_PTR = *mut CK_TLS12_KEY_MAT_PARAMS;
3137#[repr(C)]
3138#[derive(Debug, Copy, Clone)]
3139pub struct CK_TLS_KDF_PARAMS {
3140    pub prfMechanism: CK_MECHANISM_TYPE,
3141    pub pLabel: CK_BYTE_PTR,
3142    pub ulLabelLength: CK_ULONG,
3143    pub RandomInfo: CK_SSL3_RANDOM_DATA,
3144    pub pContextData: CK_BYTE_PTR,
3145    pub ulContextDataLength: CK_ULONG,
3146}
3147#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3148const _: () = {
3149    ["Size of CK_TLS_KDF_PARAMS"][::std::mem::size_of::<CK_TLS_KDF_PARAMS>() - 72usize];
3150    ["Alignment of CK_TLS_KDF_PARAMS"][::std::mem::align_of::<CK_TLS_KDF_PARAMS>() - 8usize];
3151    ["Offset of field: CK_TLS_KDF_PARAMS::prfMechanism"]
3152        [::std::mem::offset_of!(CK_TLS_KDF_PARAMS, prfMechanism) - 0usize];
3153    ["Offset of field: CK_TLS_KDF_PARAMS::pLabel"]
3154        [::std::mem::offset_of!(CK_TLS_KDF_PARAMS, pLabel) - 8usize];
3155    ["Offset of field: CK_TLS_KDF_PARAMS::ulLabelLength"]
3156        [::std::mem::offset_of!(CK_TLS_KDF_PARAMS, ulLabelLength) - 16usize];
3157    ["Offset of field: CK_TLS_KDF_PARAMS::RandomInfo"]
3158        [::std::mem::offset_of!(CK_TLS_KDF_PARAMS, RandomInfo) - 24usize];
3159    ["Offset of field: CK_TLS_KDF_PARAMS::pContextData"]
3160        [::std::mem::offset_of!(CK_TLS_KDF_PARAMS, pContextData) - 56usize];
3161    ["Offset of field: CK_TLS_KDF_PARAMS::ulContextDataLength"]
3162        [::std::mem::offset_of!(CK_TLS_KDF_PARAMS, ulContextDataLength) - 64usize];
3163};
3164impl Default for CK_TLS_KDF_PARAMS {
3165    fn default() -> Self {
3166        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3167        unsafe {
3168            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3169            s.assume_init()
3170        }
3171    }
3172}
3173pub type CK_TLS_KDF_PARAMS_PTR = *mut CK_TLS_KDF_PARAMS;
3174#[repr(C)]
3175#[derive(Debug, Default, Copy, Clone)]
3176pub struct CK_TLS_MAC_PARAMS {
3177    pub prfHashMechanism: CK_MECHANISM_TYPE,
3178    pub ulMacLength: CK_ULONG,
3179    pub ulServerOrClient: CK_ULONG,
3180}
3181#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3182const _: () = {
3183    ["Size of CK_TLS_MAC_PARAMS"][::std::mem::size_of::<CK_TLS_MAC_PARAMS>() - 24usize];
3184    ["Alignment of CK_TLS_MAC_PARAMS"][::std::mem::align_of::<CK_TLS_MAC_PARAMS>() - 8usize];
3185    ["Offset of field: CK_TLS_MAC_PARAMS::prfHashMechanism"]
3186        [::std::mem::offset_of!(CK_TLS_MAC_PARAMS, prfHashMechanism) - 0usize];
3187    ["Offset of field: CK_TLS_MAC_PARAMS::ulMacLength"]
3188        [::std::mem::offset_of!(CK_TLS_MAC_PARAMS, ulMacLength) - 8usize];
3189    ["Offset of field: CK_TLS_MAC_PARAMS::ulServerOrClient"]
3190        [::std::mem::offset_of!(CK_TLS_MAC_PARAMS, ulServerOrClient) - 16usize];
3191};
3192pub type CK_TLS_MAC_PARAMS_PTR = *mut CK_TLS_MAC_PARAMS;
3193#[repr(C)]
3194#[derive(Debug, Copy, Clone)]
3195pub struct CK_GOSTR3410_DERIVE_PARAMS {
3196    pub kdf: CK_EC_KDF_TYPE,
3197    pub pPublicData: CK_BYTE_PTR,
3198    pub ulPublicDataLen: CK_ULONG,
3199    pub pUKM: CK_BYTE_PTR,
3200    pub ulUKMLen: CK_ULONG,
3201}
3202#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3203const _: () = {
3204    ["Size of CK_GOSTR3410_DERIVE_PARAMS"]
3205        [::std::mem::size_of::<CK_GOSTR3410_DERIVE_PARAMS>() - 40usize];
3206    ["Alignment of CK_GOSTR3410_DERIVE_PARAMS"]
3207        [::std::mem::align_of::<CK_GOSTR3410_DERIVE_PARAMS>() - 8usize];
3208    ["Offset of field: CK_GOSTR3410_DERIVE_PARAMS::kdf"]
3209        [::std::mem::offset_of!(CK_GOSTR3410_DERIVE_PARAMS, kdf) - 0usize];
3210    ["Offset of field: CK_GOSTR3410_DERIVE_PARAMS::pPublicData"]
3211        [::std::mem::offset_of!(CK_GOSTR3410_DERIVE_PARAMS, pPublicData) - 8usize];
3212    ["Offset of field: CK_GOSTR3410_DERIVE_PARAMS::ulPublicDataLen"]
3213        [::std::mem::offset_of!(CK_GOSTR3410_DERIVE_PARAMS, ulPublicDataLen) - 16usize];
3214    ["Offset of field: CK_GOSTR3410_DERIVE_PARAMS::pUKM"]
3215        [::std::mem::offset_of!(CK_GOSTR3410_DERIVE_PARAMS, pUKM) - 24usize];
3216    ["Offset of field: CK_GOSTR3410_DERIVE_PARAMS::ulUKMLen"]
3217        [::std::mem::offset_of!(CK_GOSTR3410_DERIVE_PARAMS, ulUKMLen) - 32usize];
3218};
3219impl Default for CK_GOSTR3410_DERIVE_PARAMS {
3220    fn default() -> Self {
3221        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3222        unsafe {
3223            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3224            s.assume_init()
3225        }
3226    }
3227}
3228pub type CK_GOSTR3410_DERIVE_PARAMS_PTR = *mut CK_GOSTR3410_DERIVE_PARAMS;
3229#[repr(C)]
3230#[derive(Debug, Copy, Clone)]
3231pub struct CK_GOSTR3410_KEY_WRAP_PARAMS {
3232    pub pWrapOID: CK_BYTE_PTR,
3233    pub ulWrapOIDLen: CK_ULONG,
3234    pub pUKM: CK_BYTE_PTR,
3235    pub ulUKMLen: CK_ULONG,
3236    pub hKey: CK_OBJECT_HANDLE,
3237}
3238#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3239const _: () = {
3240    ["Size of CK_GOSTR3410_KEY_WRAP_PARAMS"]
3241        [::std::mem::size_of::<CK_GOSTR3410_KEY_WRAP_PARAMS>() - 40usize];
3242    ["Alignment of CK_GOSTR3410_KEY_WRAP_PARAMS"]
3243        [::std::mem::align_of::<CK_GOSTR3410_KEY_WRAP_PARAMS>() - 8usize];
3244    ["Offset of field: CK_GOSTR3410_KEY_WRAP_PARAMS::pWrapOID"]
3245        [::std::mem::offset_of!(CK_GOSTR3410_KEY_WRAP_PARAMS, pWrapOID) - 0usize];
3246    ["Offset of field: CK_GOSTR3410_KEY_WRAP_PARAMS::ulWrapOIDLen"]
3247        [::std::mem::offset_of!(CK_GOSTR3410_KEY_WRAP_PARAMS, ulWrapOIDLen) - 8usize];
3248    ["Offset of field: CK_GOSTR3410_KEY_WRAP_PARAMS::pUKM"]
3249        [::std::mem::offset_of!(CK_GOSTR3410_KEY_WRAP_PARAMS, pUKM) - 16usize];
3250    ["Offset of field: CK_GOSTR3410_KEY_WRAP_PARAMS::ulUKMLen"]
3251        [::std::mem::offset_of!(CK_GOSTR3410_KEY_WRAP_PARAMS, ulUKMLen) - 24usize];
3252    ["Offset of field: CK_GOSTR3410_KEY_WRAP_PARAMS::hKey"]
3253        [::std::mem::offset_of!(CK_GOSTR3410_KEY_WRAP_PARAMS, hKey) - 32usize];
3254};
3255impl Default for CK_GOSTR3410_KEY_WRAP_PARAMS {
3256    fn default() -> Self {
3257        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3258        unsafe {
3259            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3260            s.assume_init()
3261        }
3262    }
3263}
3264pub type CK_GOSTR3410_KEY_WRAP_PARAMS_PTR = *mut CK_GOSTR3410_KEY_WRAP_PARAMS;
3265#[repr(C)]
3266#[derive(Debug, Copy, Clone)]
3267pub struct CK_SEED_CBC_ENCRYPT_DATA_PARAMS {
3268    pub iv: [CK_BYTE; 16usize],
3269    pub pData: CK_BYTE_PTR,
3270    pub length: CK_ULONG,
3271}
3272#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3273const _: () = {
3274    ["Size of CK_SEED_CBC_ENCRYPT_DATA_PARAMS"]
3275        [::std::mem::size_of::<CK_SEED_CBC_ENCRYPT_DATA_PARAMS>() - 32usize];
3276    ["Alignment of CK_SEED_CBC_ENCRYPT_DATA_PARAMS"]
3277        [::std::mem::align_of::<CK_SEED_CBC_ENCRYPT_DATA_PARAMS>() - 8usize];
3278    ["Offset of field: CK_SEED_CBC_ENCRYPT_DATA_PARAMS::iv"]
3279        [::std::mem::offset_of!(CK_SEED_CBC_ENCRYPT_DATA_PARAMS, iv) - 0usize];
3280    ["Offset of field: CK_SEED_CBC_ENCRYPT_DATA_PARAMS::pData"]
3281        [::std::mem::offset_of!(CK_SEED_CBC_ENCRYPT_DATA_PARAMS, pData) - 16usize];
3282    ["Offset of field: CK_SEED_CBC_ENCRYPT_DATA_PARAMS::length"]
3283        [::std::mem::offset_of!(CK_SEED_CBC_ENCRYPT_DATA_PARAMS, length) - 24usize];
3284};
3285impl Default for CK_SEED_CBC_ENCRYPT_DATA_PARAMS {
3286    fn default() -> Self {
3287        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3288        unsafe {
3289            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3290            s.assume_init()
3291        }
3292    }
3293}
3294pub type CK_SEED_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut CK_SEED_CBC_ENCRYPT_DATA_PARAMS;
3295pub type CK_PROFILE_ID = CK_ULONG;
3296pub type CK_PROFILE_ID_PTR = *mut CK_PROFILE_ID;
3297pub type CK_PRF_DATA_TYPE = CK_ULONG;
3298pub type CK_SP800_108_PRF_TYPE = CK_MECHANISM_TYPE;
3299#[repr(C)]
3300#[derive(Debug, Copy, Clone)]
3301pub struct CK_PRF_DATA_PARAM {
3302    pub type_: CK_PRF_DATA_TYPE,
3303    pub pValue: CK_VOID_PTR,
3304    pub ulValueLen: CK_ULONG,
3305}
3306#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3307const _: () = {
3308    ["Size of CK_PRF_DATA_PARAM"][::std::mem::size_of::<CK_PRF_DATA_PARAM>() - 24usize];
3309    ["Alignment of CK_PRF_DATA_PARAM"][::std::mem::align_of::<CK_PRF_DATA_PARAM>() - 8usize];
3310    ["Offset of field: CK_PRF_DATA_PARAM::type_"]
3311        [::std::mem::offset_of!(CK_PRF_DATA_PARAM, type_) - 0usize];
3312    ["Offset of field: CK_PRF_DATA_PARAM::pValue"]
3313        [::std::mem::offset_of!(CK_PRF_DATA_PARAM, pValue) - 8usize];
3314    ["Offset of field: CK_PRF_DATA_PARAM::ulValueLen"]
3315        [::std::mem::offset_of!(CK_PRF_DATA_PARAM, ulValueLen) - 16usize];
3316};
3317impl Default for CK_PRF_DATA_PARAM {
3318    fn default() -> Self {
3319        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3320        unsafe {
3321            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3322            s.assume_init()
3323        }
3324    }
3325}
3326pub type CK_PRF_DATA_PARAM_PTR = *mut CK_PRF_DATA_PARAM;
3327#[repr(C)]
3328#[derive(Debug, Default, Copy, Clone)]
3329pub struct CK_SP800_108_COUNTER_FORMAT {
3330    pub bLittleEndian: CK_BBOOL,
3331    pub ulWidthInBits: CK_ULONG,
3332}
3333#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3334const _: () = {
3335    ["Size of CK_SP800_108_COUNTER_FORMAT"]
3336        [::std::mem::size_of::<CK_SP800_108_COUNTER_FORMAT>() - 16usize];
3337    ["Alignment of CK_SP800_108_COUNTER_FORMAT"]
3338        [::std::mem::align_of::<CK_SP800_108_COUNTER_FORMAT>() - 8usize];
3339    ["Offset of field: CK_SP800_108_COUNTER_FORMAT::bLittleEndian"]
3340        [::std::mem::offset_of!(CK_SP800_108_COUNTER_FORMAT, bLittleEndian) - 0usize];
3341    ["Offset of field: CK_SP800_108_COUNTER_FORMAT::ulWidthInBits"]
3342        [::std::mem::offset_of!(CK_SP800_108_COUNTER_FORMAT, ulWidthInBits) - 8usize];
3343};
3344pub type CK_SP800_108_COUNTER_FORMAT_PTR = *mut CK_SP800_108_COUNTER_FORMAT;
3345pub type CK_SP800_108_DKM_LENGTH_METHOD = CK_ULONG;
3346#[repr(C)]
3347#[derive(Debug, Default, Copy, Clone)]
3348pub struct CK_SP800_108_DKM_LENGTH_FORMAT {
3349    pub dkmLengthMethod: CK_SP800_108_DKM_LENGTH_METHOD,
3350    pub bLittleEndian: CK_BBOOL,
3351    pub ulWidthInBits: CK_ULONG,
3352}
3353#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3354const _: () = {
3355    ["Size of CK_SP800_108_DKM_LENGTH_FORMAT"]
3356        [::std::mem::size_of::<CK_SP800_108_DKM_LENGTH_FORMAT>() - 24usize];
3357    ["Alignment of CK_SP800_108_DKM_LENGTH_FORMAT"]
3358        [::std::mem::align_of::<CK_SP800_108_DKM_LENGTH_FORMAT>() - 8usize];
3359    ["Offset of field: CK_SP800_108_DKM_LENGTH_FORMAT::dkmLengthMethod"]
3360        [::std::mem::offset_of!(CK_SP800_108_DKM_LENGTH_FORMAT, dkmLengthMethod) - 0usize];
3361    ["Offset of field: CK_SP800_108_DKM_LENGTH_FORMAT::bLittleEndian"]
3362        [::std::mem::offset_of!(CK_SP800_108_DKM_LENGTH_FORMAT, bLittleEndian) - 8usize];
3363    ["Offset of field: CK_SP800_108_DKM_LENGTH_FORMAT::ulWidthInBits"]
3364        [::std::mem::offset_of!(CK_SP800_108_DKM_LENGTH_FORMAT, ulWidthInBits) - 16usize];
3365};
3366pub type CK_SP800_108_DKM_LENGTH_FORMAT_PTR = *mut CK_SP800_108_DKM_LENGTH_FORMAT;
3367#[repr(C)]
3368#[derive(Debug, Copy, Clone)]
3369pub struct CK_DERIVED_KEY {
3370    pub pTemplate: CK_ATTRIBUTE_PTR,
3371    pub ulAttributeCount: CK_ULONG,
3372    pub phKey: CK_OBJECT_HANDLE_PTR,
3373}
3374#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3375const _: () = {
3376    ["Size of CK_DERIVED_KEY"][::std::mem::size_of::<CK_DERIVED_KEY>() - 24usize];
3377    ["Alignment of CK_DERIVED_KEY"][::std::mem::align_of::<CK_DERIVED_KEY>() - 8usize];
3378    ["Offset of field: CK_DERIVED_KEY::pTemplate"]
3379        [::std::mem::offset_of!(CK_DERIVED_KEY, pTemplate) - 0usize];
3380    ["Offset of field: CK_DERIVED_KEY::ulAttributeCount"]
3381        [::std::mem::offset_of!(CK_DERIVED_KEY, ulAttributeCount) - 8usize];
3382    ["Offset of field: CK_DERIVED_KEY::phKey"]
3383        [::std::mem::offset_of!(CK_DERIVED_KEY, phKey) - 16usize];
3384};
3385impl Default for CK_DERIVED_KEY {
3386    fn default() -> Self {
3387        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3388        unsafe {
3389            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3390            s.assume_init()
3391        }
3392    }
3393}
3394pub type CK_DERIVED_KEY_PTR = *mut CK_DERIVED_KEY;
3395#[repr(C)]
3396#[derive(Debug, Copy, Clone)]
3397pub struct CK_SP800_108_KDF_PARAMS {
3398    pub prfType: CK_SP800_108_PRF_TYPE,
3399    pub ulNumberOfDataParams: CK_ULONG,
3400    pub pDataParams: CK_PRF_DATA_PARAM_PTR,
3401    pub ulAdditionalDerivedKeys: CK_ULONG,
3402    pub pAdditionalDerivedKeys: CK_DERIVED_KEY_PTR,
3403}
3404#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3405const _: () = {
3406    ["Size of CK_SP800_108_KDF_PARAMS"][::std::mem::size_of::<CK_SP800_108_KDF_PARAMS>() - 40usize];
3407    ["Alignment of CK_SP800_108_KDF_PARAMS"]
3408        [::std::mem::align_of::<CK_SP800_108_KDF_PARAMS>() - 8usize];
3409    ["Offset of field: CK_SP800_108_KDF_PARAMS::prfType"]
3410        [::std::mem::offset_of!(CK_SP800_108_KDF_PARAMS, prfType) - 0usize];
3411    ["Offset of field: CK_SP800_108_KDF_PARAMS::ulNumberOfDataParams"]
3412        [::std::mem::offset_of!(CK_SP800_108_KDF_PARAMS, ulNumberOfDataParams) - 8usize];
3413    ["Offset of field: CK_SP800_108_KDF_PARAMS::pDataParams"]
3414        [::std::mem::offset_of!(CK_SP800_108_KDF_PARAMS, pDataParams) - 16usize];
3415    ["Offset of field: CK_SP800_108_KDF_PARAMS::ulAdditionalDerivedKeys"]
3416        [::std::mem::offset_of!(CK_SP800_108_KDF_PARAMS, ulAdditionalDerivedKeys) - 24usize];
3417    ["Offset of field: CK_SP800_108_KDF_PARAMS::pAdditionalDerivedKeys"]
3418        [::std::mem::offset_of!(CK_SP800_108_KDF_PARAMS, pAdditionalDerivedKeys) - 32usize];
3419};
3420impl Default for CK_SP800_108_KDF_PARAMS {
3421    fn default() -> Self {
3422        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3423        unsafe {
3424            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3425            s.assume_init()
3426        }
3427    }
3428}
3429pub type CK_SP800_108_KDF_PARAMS_PTR = *mut CK_SP800_108_KDF_PARAMS;
3430#[repr(C)]
3431#[derive(Debug, Copy, Clone)]
3432pub struct CK_SP800_108_FEEDBACK_KDF_PARAMS {
3433    pub prfType: CK_SP800_108_PRF_TYPE,
3434    pub ulNumberOfDataParams: CK_ULONG,
3435    pub pDataParams: CK_PRF_DATA_PARAM_PTR,
3436    pub ulIVLen: CK_ULONG,
3437    pub pIV: CK_BYTE_PTR,
3438    pub ulAdditionalDerivedKeys: CK_ULONG,
3439    pub pAdditionalDerivedKeys: CK_DERIVED_KEY_PTR,
3440}
3441#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3442const _: () = {
3443    ["Size of CK_SP800_108_FEEDBACK_KDF_PARAMS"]
3444        [::std::mem::size_of::<CK_SP800_108_FEEDBACK_KDF_PARAMS>() - 56usize];
3445    ["Alignment of CK_SP800_108_FEEDBACK_KDF_PARAMS"]
3446        [::std::mem::align_of::<CK_SP800_108_FEEDBACK_KDF_PARAMS>() - 8usize];
3447    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::prfType"]
3448        [::std::mem::offset_of!(CK_SP800_108_FEEDBACK_KDF_PARAMS, prfType) - 0usize];
3449    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::ulNumberOfDataParams"]
3450        [::std::mem::offset_of!(CK_SP800_108_FEEDBACK_KDF_PARAMS, ulNumberOfDataParams) - 8usize];
3451    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::pDataParams"]
3452        [::std::mem::offset_of!(CK_SP800_108_FEEDBACK_KDF_PARAMS, pDataParams) - 16usize];
3453    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::ulIVLen"]
3454        [::std::mem::offset_of!(CK_SP800_108_FEEDBACK_KDF_PARAMS, ulIVLen) - 24usize];
3455    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::pIV"]
3456        [::std::mem::offset_of!(CK_SP800_108_FEEDBACK_KDF_PARAMS, pIV) - 32usize];
3457    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::ulAdditionalDerivedKeys"][::std::mem::offset_of!(
3458        CK_SP800_108_FEEDBACK_KDF_PARAMS,
3459        ulAdditionalDerivedKeys
3460    ) - 40usize];
3461    ["Offset of field: CK_SP800_108_FEEDBACK_KDF_PARAMS::pAdditionalDerivedKeys"][::std::mem::offset_of!(
3462        CK_SP800_108_FEEDBACK_KDF_PARAMS,
3463        pAdditionalDerivedKeys
3464    ) - 48usize];
3465};
3466impl Default for CK_SP800_108_FEEDBACK_KDF_PARAMS {
3467    fn default() -> Self {
3468        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3469        unsafe {
3470            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3471            s.assume_init()
3472        }
3473    }
3474}
3475pub type CK_SP800_108_FEEDBACK_KDF_PARAMS_PTR = *mut CK_SP800_108_FEEDBACK_KDF_PARAMS;
3476#[repr(C)]
3477#[derive(Debug, Copy, Clone)]
3478pub struct CK_EDDSA_PARAMS {
3479    pub phFlag: CK_BBOOL,
3480    pub ulContextDataLen: CK_ULONG,
3481    pub pContextData: CK_BYTE_PTR,
3482}
3483#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3484const _: () = {
3485    ["Size of CK_EDDSA_PARAMS"][::std::mem::size_of::<CK_EDDSA_PARAMS>() - 24usize];
3486    ["Alignment of CK_EDDSA_PARAMS"][::std::mem::align_of::<CK_EDDSA_PARAMS>() - 8usize];
3487    ["Offset of field: CK_EDDSA_PARAMS::phFlag"]
3488        [::std::mem::offset_of!(CK_EDDSA_PARAMS, phFlag) - 0usize];
3489    ["Offset of field: CK_EDDSA_PARAMS::ulContextDataLen"]
3490        [::std::mem::offset_of!(CK_EDDSA_PARAMS, ulContextDataLen) - 8usize];
3491    ["Offset of field: CK_EDDSA_PARAMS::pContextData"]
3492        [::std::mem::offset_of!(CK_EDDSA_PARAMS, pContextData) - 16usize];
3493};
3494impl Default for CK_EDDSA_PARAMS {
3495    fn default() -> Self {
3496        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3497        unsafe {
3498            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3499            s.assume_init()
3500        }
3501    }
3502}
3503pub type CK_EDDSA_PARAMS_PTR = *mut CK_EDDSA_PARAMS;
3504#[repr(C)]
3505#[derive(Debug, Copy, Clone)]
3506pub struct CK_CHACHA20_PARAMS {
3507    pub pBlockCounter: CK_BYTE_PTR,
3508    pub blockCounterBits: CK_ULONG,
3509    pub pNonce: CK_BYTE_PTR,
3510    pub ulNonceBits: CK_ULONG,
3511}
3512#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3513const _: () = {
3514    ["Size of CK_CHACHA20_PARAMS"][::std::mem::size_of::<CK_CHACHA20_PARAMS>() - 32usize];
3515    ["Alignment of CK_CHACHA20_PARAMS"][::std::mem::align_of::<CK_CHACHA20_PARAMS>() - 8usize];
3516    ["Offset of field: CK_CHACHA20_PARAMS::pBlockCounter"]
3517        [::std::mem::offset_of!(CK_CHACHA20_PARAMS, pBlockCounter) - 0usize];
3518    ["Offset of field: CK_CHACHA20_PARAMS::blockCounterBits"]
3519        [::std::mem::offset_of!(CK_CHACHA20_PARAMS, blockCounterBits) - 8usize];
3520    ["Offset of field: CK_CHACHA20_PARAMS::pNonce"]
3521        [::std::mem::offset_of!(CK_CHACHA20_PARAMS, pNonce) - 16usize];
3522    ["Offset of field: CK_CHACHA20_PARAMS::ulNonceBits"]
3523        [::std::mem::offset_of!(CK_CHACHA20_PARAMS, ulNonceBits) - 24usize];
3524};
3525impl Default for CK_CHACHA20_PARAMS {
3526    fn default() -> Self {
3527        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3528        unsafe {
3529            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3530            s.assume_init()
3531        }
3532    }
3533}
3534pub type CK_CHACHA20_PARAMS_PTR = *mut CK_CHACHA20_PARAMS;
3535#[repr(C)]
3536#[derive(Debug, Copy, Clone)]
3537pub struct CK_SALSA20_PARAMS {
3538    pub pBlockCounter: CK_BYTE_PTR,
3539    pub pNonce: CK_BYTE_PTR,
3540    pub ulNonceBits: CK_ULONG,
3541}
3542#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3543const _: () = {
3544    ["Size of CK_SALSA20_PARAMS"][::std::mem::size_of::<CK_SALSA20_PARAMS>() - 24usize];
3545    ["Alignment of CK_SALSA20_PARAMS"][::std::mem::align_of::<CK_SALSA20_PARAMS>() - 8usize];
3546    ["Offset of field: CK_SALSA20_PARAMS::pBlockCounter"]
3547        [::std::mem::offset_of!(CK_SALSA20_PARAMS, pBlockCounter) - 0usize];
3548    ["Offset of field: CK_SALSA20_PARAMS::pNonce"]
3549        [::std::mem::offset_of!(CK_SALSA20_PARAMS, pNonce) - 8usize];
3550    ["Offset of field: CK_SALSA20_PARAMS::ulNonceBits"]
3551        [::std::mem::offset_of!(CK_SALSA20_PARAMS, ulNonceBits) - 16usize];
3552};
3553impl Default for CK_SALSA20_PARAMS {
3554    fn default() -> Self {
3555        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3556        unsafe {
3557            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3558            s.assume_init()
3559        }
3560    }
3561}
3562pub type CK_SALSA20_PARAMS_PTR = *mut CK_SALSA20_PARAMS;
3563#[repr(C)]
3564#[derive(Debug, Copy, Clone)]
3565pub struct CK_SALSA20_CHACHA20_POLY1305_PARAMS {
3566    pub pNonce: CK_BYTE_PTR,
3567    pub ulNonceLen: CK_ULONG,
3568    pub pAAD: CK_BYTE_PTR,
3569    pub ulAADLen: CK_ULONG,
3570}
3571#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3572const _: () = {
3573    ["Size of CK_SALSA20_CHACHA20_POLY1305_PARAMS"]
3574        [::std::mem::size_of::<CK_SALSA20_CHACHA20_POLY1305_PARAMS>() - 32usize];
3575    ["Alignment of CK_SALSA20_CHACHA20_POLY1305_PARAMS"]
3576        [::std::mem::align_of::<CK_SALSA20_CHACHA20_POLY1305_PARAMS>() - 8usize];
3577    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_PARAMS::pNonce"]
3578        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_PARAMS, pNonce) - 0usize];
3579    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_PARAMS::ulNonceLen"]
3580        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_PARAMS, ulNonceLen) - 8usize];
3581    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_PARAMS::pAAD"]
3582        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_PARAMS, pAAD) - 16usize];
3583    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_PARAMS::ulAADLen"]
3584        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_PARAMS, ulAADLen) - 24usize];
3585};
3586impl Default for CK_SALSA20_CHACHA20_POLY1305_PARAMS {
3587    fn default() -> Self {
3588        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3589        unsafe {
3590            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3591            s.assume_init()
3592        }
3593    }
3594}
3595pub type CK_SALSA20_CHACHA20_POLY1305_PARAMS_PTR = *mut CK_SALSA20_CHACHA20_POLY1305_PARAMS;
3596#[repr(C)]
3597#[derive(Debug, Copy, Clone)]
3598pub struct CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS {
3599    pub pNonce: CK_BYTE_PTR,
3600    pub ulNonceLen: CK_ULONG,
3601    pub pTag: CK_BYTE_PTR,
3602}
3603#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3604const _: () = {
3605    ["Size of CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS"]
3606        [::std::mem::size_of::<CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS>() - 24usize];
3607    ["Alignment of CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS"]
3608        [::std::mem::align_of::<CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS>() - 8usize];
3609    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS::pNonce"]
3610        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS, pNonce) - 0usize];
3611    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS::ulNonceLen"]
3612        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS, ulNonceLen) - 8usize];
3613    ["Offset of field: CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS::pTag"]
3614        [::std::mem::offset_of!(CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS, pTag) - 16usize];
3615};
3616impl Default for CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS {
3617    fn default() -> Self {
3618        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3619        unsafe {
3620            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3621            s.assume_init()
3622        }
3623    }
3624}
3625pub type CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS_PTR = *mut CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS;
3626pub type CK_X3DH_KDF_TYPE = CK_ULONG;
3627pub type CK_X3DH_KDF_TYPE_PTR = *mut CK_X3DH_KDF_TYPE;
3628#[repr(C)]
3629#[derive(Debug, Copy, Clone)]
3630pub struct CK_X3DH_INITIATE_PARAMS {
3631    pub kdf: CK_X3DH_KDF_TYPE,
3632    pub pPeer_identity: CK_OBJECT_HANDLE,
3633    pub pPeer_prekey: CK_OBJECT_HANDLE,
3634    pub pPrekey_signature: CK_BYTE_PTR,
3635    pub pOnetime_key: CK_BYTE_PTR,
3636    pub pOwn_identity: CK_OBJECT_HANDLE,
3637    pub pOwn_ephemeral: CK_OBJECT_HANDLE,
3638}
3639#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3640const _: () = {
3641    ["Size of CK_X3DH_INITIATE_PARAMS"][::std::mem::size_of::<CK_X3DH_INITIATE_PARAMS>() - 56usize];
3642    ["Alignment of CK_X3DH_INITIATE_PARAMS"]
3643        [::std::mem::align_of::<CK_X3DH_INITIATE_PARAMS>() - 8usize];
3644    ["Offset of field: CK_X3DH_INITIATE_PARAMS::kdf"]
3645        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, kdf) - 0usize];
3646    ["Offset of field: CK_X3DH_INITIATE_PARAMS::pPeer_identity"]
3647        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, pPeer_identity) - 8usize];
3648    ["Offset of field: CK_X3DH_INITIATE_PARAMS::pPeer_prekey"]
3649        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, pPeer_prekey) - 16usize];
3650    ["Offset of field: CK_X3DH_INITIATE_PARAMS::pPrekey_signature"]
3651        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, pPrekey_signature) - 24usize];
3652    ["Offset of field: CK_X3DH_INITIATE_PARAMS::pOnetime_key"]
3653        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, pOnetime_key) - 32usize];
3654    ["Offset of field: CK_X3DH_INITIATE_PARAMS::pOwn_identity"]
3655        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, pOwn_identity) - 40usize];
3656    ["Offset of field: CK_X3DH_INITIATE_PARAMS::pOwn_ephemeral"]
3657        [::std::mem::offset_of!(CK_X3DH_INITIATE_PARAMS, pOwn_ephemeral) - 48usize];
3658};
3659impl Default for CK_X3DH_INITIATE_PARAMS {
3660    fn default() -> Self {
3661        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3662        unsafe {
3663            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3664            s.assume_init()
3665        }
3666    }
3667}
3668#[repr(C)]
3669#[derive(Debug, Copy, Clone)]
3670pub struct CK_X3DH_RESPOND_PARAMS {
3671    pub kdf: CK_X3DH_KDF_TYPE,
3672    pub pIdentity_id: CK_BYTE_PTR,
3673    pub pPrekey_id: CK_BYTE_PTR,
3674    pub pOnetime_id: CK_BYTE_PTR,
3675    pub pInitiator_identity: CK_OBJECT_HANDLE,
3676    pub pInitiator_ephemeral: CK_BYTE_PTR,
3677}
3678#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3679const _: () = {
3680    ["Size of CK_X3DH_RESPOND_PARAMS"][::std::mem::size_of::<CK_X3DH_RESPOND_PARAMS>() - 48usize];
3681    ["Alignment of CK_X3DH_RESPOND_PARAMS"]
3682        [::std::mem::align_of::<CK_X3DH_RESPOND_PARAMS>() - 8usize];
3683    ["Offset of field: CK_X3DH_RESPOND_PARAMS::kdf"]
3684        [::std::mem::offset_of!(CK_X3DH_RESPOND_PARAMS, kdf) - 0usize];
3685    ["Offset of field: CK_X3DH_RESPOND_PARAMS::pIdentity_id"]
3686        [::std::mem::offset_of!(CK_X3DH_RESPOND_PARAMS, pIdentity_id) - 8usize];
3687    ["Offset of field: CK_X3DH_RESPOND_PARAMS::pPrekey_id"]
3688        [::std::mem::offset_of!(CK_X3DH_RESPOND_PARAMS, pPrekey_id) - 16usize];
3689    ["Offset of field: CK_X3DH_RESPOND_PARAMS::pOnetime_id"]
3690        [::std::mem::offset_of!(CK_X3DH_RESPOND_PARAMS, pOnetime_id) - 24usize];
3691    ["Offset of field: CK_X3DH_RESPOND_PARAMS::pInitiator_identity"]
3692        [::std::mem::offset_of!(CK_X3DH_RESPOND_PARAMS, pInitiator_identity) - 32usize];
3693    ["Offset of field: CK_X3DH_RESPOND_PARAMS::pInitiator_ephemeral"]
3694        [::std::mem::offset_of!(CK_X3DH_RESPOND_PARAMS, pInitiator_ephemeral) - 40usize];
3695};
3696impl Default for CK_X3DH_RESPOND_PARAMS {
3697    fn default() -> Self {
3698        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3699        unsafe {
3700            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3701            s.assume_init()
3702        }
3703    }
3704}
3705pub type CK_X2RATCHET_KDF_TYPE = CK_ULONG;
3706pub type CK_X2RATCHET_KDF_TYPE_PTR = *mut CK_X2RATCHET_KDF_TYPE;
3707#[repr(C)]
3708#[derive(Debug, Copy, Clone)]
3709pub struct CK_X2RATCHET_INITIALIZE_PARAMS {
3710    pub sk: CK_BYTE_PTR,
3711    pub peer_public_prekey: CK_OBJECT_HANDLE,
3712    pub peer_public_identity: CK_OBJECT_HANDLE,
3713    pub own_public_identity: CK_OBJECT_HANDLE,
3714    pub bEncryptedHeader: CK_BBOOL,
3715    pub eCurve: CK_ULONG,
3716    pub aeadMechanism: CK_MECHANISM_TYPE,
3717    pub kdfMechanism: CK_X2RATCHET_KDF_TYPE,
3718}
3719#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3720const _: () = {
3721    ["Size of CK_X2RATCHET_INITIALIZE_PARAMS"]
3722        [::std::mem::size_of::<CK_X2RATCHET_INITIALIZE_PARAMS>() - 64usize];
3723    ["Alignment of CK_X2RATCHET_INITIALIZE_PARAMS"]
3724        [::std::mem::align_of::<CK_X2RATCHET_INITIALIZE_PARAMS>() - 8usize];
3725    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::sk"]
3726        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, sk) - 0usize];
3727    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::peer_public_prekey"]
3728        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, peer_public_prekey) - 8usize];
3729    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::peer_public_identity"]
3730        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, peer_public_identity) - 16usize];
3731    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::own_public_identity"]
3732        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, own_public_identity) - 24usize];
3733    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::bEncryptedHeader"]
3734        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, bEncryptedHeader) - 32usize];
3735    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::eCurve"]
3736        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, eCurve) - 40usize];
3737    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::aeadMechanism"]
3738        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, aeadMechanism) - 48usize];
3739    ["Offset of field: CK_X2RATCHET_INITIALIZE_PARAMS::kdfMechanism"]
3740        [::std::mem::offset_of!(CK_X2RATCHET_INITIALIZE_PARAMS, kdfMechanism) - 56usize];
3741};
3742impl Default for CK_X2RATCHET_INITIALIZE_PARAMS {
3743    fn default() -> Self {
3744        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3745        unsafe {
3746            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3747            s.assume_init()
3748        }
3749    }
3750}
3751pub type CK_X2RATCHET_INITIALIZE_PARAMS_PTR = *mut CK_X2RATCHET_INITIALIZE_PARAMS;
3752#[repr(C)]
3753#[derive(Debug, Copy, Clone)]
3754pub struct CK_X2RATCHET_RESPOND_PARAMS {
3755    pub sk: CK_BYTE_PTR,
3756    pub own_prekey: CK_OBJECT_HANDLE,
3757    pub initiator_identity: CK_OBJECT_HANDLE,
3758    pub own_public_identity: CK_OBJECT_HANDLE,
3759    pub bEncryptedHeader: CK_BBOOL,
3760    pub eCurve: CK_ULONG,
3761    pub aeadMechanism: CK_MECHANISM_TYPE,
3762    pub kdfMechanism: CK_X2RATCHET_KDF_TYPE,
3763}
3764#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3765const _: () = {
3766    ["Size of CK_X2RATCHET_RESPOND_PARAMS"]
3767        [::std::mem::size_of::<CK_X2RATCHET_RESPOND_PARAMS>() - 64usize];
3768    ["Alignment of CK_X2RATCHET_RESPOND_PARAMS"]
3769        [::std::mem::align_of::<CK_X2RATCHET_RESPOND_PARAMS>() - 8usize];
3770    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::sk"]
3771        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, sk) - 0usize];
3772    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::own_prekey"]
3773        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, own_prekey) - 8usize];
3774    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::initiator_identity"]
3775        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, initiator_identity) - 16usize];
3776    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::own_public_identity"]
3777        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, own_public_identity) - 24usize];
3778    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::bEncryptedHeader"]
3779        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, bEncryptedHeader) - 32usize];
3780    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::eCurve"]
3781        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, eCurve) - 40usize];
3782    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::aeadMechanism"]
3783        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, aeadMechanism) - 48usize];
3784    ["Offset of field: CK_X2RATCHET_RESPOND_PARAMS::kdfMechanism"]
3785        [::std::mem::offset_of!(CK_X2RATCHET_RESPOND_PARAMS, kdfMechanism) - 56usize];
3786};
3787impl Default for CK_X2RATCHET_RESPOND_PARAMS {
3788    fn default() -> Self {
3789        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3790        unsafe {
3791            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3792            s.assume_init()
3793        }
3794    }
3795}
3796pub type CK_X2RATCHET_RESPOND_PARAMS_PTR = *mut CK_X2RATCHET_RESPOND_PARAMS;
3797pub type CK_XEDDSA_HASH_TYPE = CK_ULONG;
3798pub type CK_XEDDSA_HASH_TYPE_PTR = *mut CK_XEDDSA_HASH_TYPE;
3799#[repr(C)]
3800#[derive(Debug, Default, Copy, Clone)]
3801pub struct CK_XEDDSA_PARAMS {
3802    pub hash: CK_XEDDSA_HASH_TYPE,
3803}
3804#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3805const _: () = {
3806    ["Size of CK_XEDDSA_PARAMS"][::std::mem::size_of::<CK_XEDDSA_PARAMS>() - 8usize];
3807    ["Alignment of CK_XEDDSA_PARAMS"][::std::mem::align_of::<CK_XEDDSA_PARAMS>() - 8usize];
3808    ["Offset of field: CK_XEDDSA_PARAMS::hash"]
3809        [::std::mem::offset_of!(CK_XEDDSA_PARAMS, hash) - 0usize];
3810};
3811pub type CK_XEDDSA_PARAMS_PTR = *mut CK_XEDDSA_PARAMS;
3812#[repr(C)]
3813#[derive(Debug, Copy, Clone)]
3814pub struct CK_HKDF_PARAMS {
3815    pub bExtract: CK_BBOOL,
3816    pub bExpand: CK_BBOOL,
3817    pub prfHashMechanism: CK_MECHANISM_TYPE,
3818    pub ulSaltType: CK_ULONG,
3819    pub pSalt: CK_BYTE_PTR,
3820    pub ulSaltLen: CK_ULONG,
3821    pub hSaltKey: CK_OBJECT_HANDLE,
3822    pub pInfo: CK_BYTE_PTR,
3823    pub ulInfoLen: CK_ULONG,
3824}
3825#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3826const _: () = {
3827    ["Size of CK_HKDF_PARAMS"][::std::mem::size_of::<CK_HKDF_PARAMS>() - 64usize];
3828    ["Alignment of CK_HKDF_PARAMS"][::std::mem::align_of::<CK_HKDF_PARAMS>() - 8usize];
3829    ["Offset of field: CK_HKDF_PARAMS::bExtract"]
3830        [::std::mem::offset_of!(CK_HKDF_PARAMS, bExtract) - 0usize];
3831    ["Offset of field: CK_HKDF_PARAMS::bExpand"]
3832        [::std::mem::offset_of!(CK_HKDF_PARAMS, bExpand) - 1usize];
3833    ["Offset of field: CK_HKDF_PARAMS::prfHashMechanism"]
3834        [::std::mem::offset_of!(CK_HKDF_PARAMS, prfHashMechanism) - 8usize];
3835    ["Offset of field: CK_HKDF_PARAMS::ulSaltType"]
3836        [::std::mem::offset_of!(CK_HKDF_PARAMS, ulSaltType) - 16usize];
3837    ["Offset of field: CK_HKDF_PARAMS::pSalt"]
3838        [::std::mem::offset_of!(CK_HKDF_PARAMS, pSalt) - 24usize];
3839    ["Offset of field: CK_HKDF_PARAMS::ulSaltLen"]
3840        [::std::mem::offset_of!(CK_HKDF_PARAMS, ulSaltLen) - 32usize];
3841    ["Offset of field: CK_HKDF_PARAMS::hSaltKey"]
3842        [::std::mem::offset_of!(CK_HKDF_PARAMS, hSaltKey) - 40usize];
3843    ["Offset of field: CK_HKDF_PARAMS::pInfo"]
3844        [::std::mem::offset_of!(CK_HKDF_PARAMS, pInfo) - 48usize];
3845    ["Offset of field: CK_HKDF_PARAMS::ulInfoLen"]
3846        [::std::mem::offset_of!(CK_HKDF_PARAMS, ulInfoLen) - 56usize];
3847};
3848impl Default for CK_HKDF_PARAMS {
3849    fn default() -> Self {
3850        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3851        unsafe {
3852            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3853            s.assume_init()
3854        }
3855    }
3856}
3857pub type CK_HKDF_PARAMS_PTR = *mut CK_HKDF_PARAMS;
3858pub type CK_HSS_LEVELS = CK_ULONG;
3859pub type CK_LMS_TYPE = CK_ULONG;
3860pub type CK_LMOTS_TYPE = CK_ULONG;
3861#[repr(C)]
3862#[derive(Debug, Default, Copy, Clone)]
3863pub struct specifiedParams {
3864    pub levels: CK_HSS_LEVELS,
3865    pub lm_type: [CK_LMS_TYPE; 8usize],
3866    pub lm_ots_type: [CK_LMOTS_TYPE; 8usize],
3867}
3868#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3869const _: () = {
3870    ["Size of specifiedParams"][::std::mem::size_of::<specifiedParams>() - 136usize];
3871    ["Alignment of specifiedParams"][::std::mem::align_of::<specifiedParams>() - 8usize];
3872    ["Offset of field: specifiedParams::levels"]
3873        [::std::mem::offset_of!(specifiedParams, levels) - 0usize];
3874    ["Offset of field: specifiedParams::lm_type"]
3875        [::std::mem::offset_of!(specifiedParams, lm_type) - 8usize];
3876    ["Offset of field: specifiedParams::lm_ots_type"]
3877        [::std::mem::offset_of!(specifiedParams, lm_ots_type) - 72usize];
3878};
3879#[repr(C)]
3880#[derive(Debug, Copy, Clone)]
3881pub struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS {
3882    pub prfMechanism: CK_MECHANISM_TYPE,
3883    pub bHasSeedKey: CK_BBOOL,
3884    pub hSeedKey: CK_OBJECT_HANDLE,
3885    pub pSeedData: CK_BYTE_PTR,
3886    pub ulSeedDataLen: CK_ULONG,
3887}
3888#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3889const _: () = {
3890    ["Size of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"]
3891        [::std::mem::size_of::<CK_IKE2_PRF_PLUS_DERIVE_PARAMS>() - 40usize];
3892    ["Alignment of CK_IKE2_PRF_PLUS_DERIVE_PARAMS"]
3893        [::std::mem::align_of::<CK_IKE2_PRF_PLUS_DERIVE_PARAMS>() - 8usize];
3894    ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::prfMechanism"]
3895        [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, prfMechanism) - 0usize];
3896    ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::bHasSeedKey"]
3897        [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, bHasSeedKey) - 8usize];
3898    ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::hSeedKey"]
3899        [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, hSeedKey) - 16usize];
3900    ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::pSeedData"]
3901        [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, pSeedData) - 24usize];
3902    ["Offset of field: CK_IKE2_PRF_PLUS_DERIVE_PARAMS::ulSeedDataLen"]
3903        [::std::mem::offset_of!(CK_IKE2_PRF_PLUS_DERIVE_PARAMS, ulSeedDataLen) - 32usize];
3904};
3905impl Default for CK_IKE2_PRF_PLUS_DERIVE_PARAMS {
3906    fn default() -> Self {
3907        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3908        unsafe {
3909            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3910            s.assume_init()
3911        }
3912    }
3913}
3914pub type CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR = *mut CK_IKE2_PRF_PLUS_DERIVE_PARAMS;
3915#[repr(C)]
3916#[derive(Debug, Copy, Clone)]
3917pub struct CK_IKE_PRF_DERIVE_PARAMS {
3918    pub prfMechanism: CK_MECHANISM_TYPE,
3919    pub bDataAsKey: CK_BBOOL,
3920    pub bRekey: CK_BBOOL,
3921    pub pNi: CK_BYTE_PTR,
3922    pub ulNiLen: CK_ULONG,
3923    pub pNr: CK_BYTE_PTR,
3924    pub ulNrLen: CK_ULONG,
3925    pub hNewKey: CK_OBJECT_HANDLE,
3926}
3927#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3928const _: () = {
3929    ["Size of CK_IKE_PRF_DERIVE_PARAMS"]
3930        [::std::mem::size_of::<CK_IKE_PRF_DERIVE_PARAMS>() - 56usize];
3931    ["Alignment of CK_IKE_PRF_DERIVE_PARAMS"]
3932        [::std::mem::align_of::<CK_IKE_PRF_DERIVE_PARAMS>() - 8usize];
3933    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::prfMechanism"]
3934        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, prfMechanism) - 0usize];
3935    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bDataAsKey"]
3936        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bDataAsKey) - 8usize];
3937    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::bRekey"]
3938        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, bRekey) - 9usize];
3939    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNi"]
3940        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNi) - 16usize];
3941    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNiLen"]
3942        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNiLen) - 24usize];
3943    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::pNr"]
3944        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, pNr) - 32usize];
3945    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::ulNrLen"]
3946        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, ulNrLen) - 40usize];
3947    ["Offset of field: CK_IKE_PRF_DERIVE_PARAMS::hNewKey"]
3948        [::std::mem::offset_of!(CK_IKE_PRF_DERIVE_PARAMS, hNewKey) - 48usize];
3949};
3950impl Default for CK_IKE_PRF_DERIVE_PARAMS {
3951    fn default() -> Self {
3952        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3953        unsafe {
3954            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3955            s.assume_init()
3956        }
3957    }
3958}
3959pub type CK_IKE_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE_PRF_DERIVE_PARAMS;
3960#[repr(C)]
3961#[derive(Debug, Copy, Clone)]
3962pub struct CK_IKE1_PRF_DERIVE_PARAMS {
3963    pub prfMechanism: CK_MECHANISM_TYPE,
3964    pub bHasPrevKey: CK_BBOOL,
3965    pub hKeygxy: CK_OBJECT_HANDLE,
3966    pub hPrevKey: CK_OBJECT_HANDLE,
3967    pub pCKYi: CK_BYTE_PTR,
3968    pub ulCKYiLen: CK_ULONG,
3969    pub pCKYr: CK_BYTE_PTR,
3970    pub ulCKYrLen: CK_ULONG,
3971    pub keyNumber: CK_BYTE,
3972}
3973#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3974const _: () = {
3975    ["Size of CK_IKE1_PRF_DERIVE_PARAMS"]
3976        [::std::mem::size_of::<CK_IKE1_PRF_DERIVE_PARAMS>() - 72usize];
3977    ["Alignment of CK_IKE1_PRF_DERIVE_PARAMS"]
3978        [::std::mem::align_of::<CK_IKE1_PRF_DERIVE_PARAMS>() - 8usize];
3979    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::prfMechanism"]
3980        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, prfMechanism) - 0usize];
3981    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::bHasPrevKey"]
3982        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, bHasPrevKey) - 8usize];
3983    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hKeygxy"]
3984        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hKeygxy) - 16usize];
3985    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::hPrevKey"]
3986        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, hPrevKey) - 24usize];
3987    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYi"]
3988        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYi) - 32usize];
3989    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYiLen"]
3990        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYiLen) - 40usize];
3991    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::pCKYr"]
3992        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, pCKYr) - 48usize];
3993    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::ulCKYrLen"]
3994        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, ulCKYrLen) - 56usize];
3995    ["Offset of field: CK_IKE1_PRF_DERIVE_PARAMS::keyNumber"]
3996        [::std::mem::offset_of!(CK_IKE1_PRF_DERIVE_PARAMS, keyNumber) - 64usize];
3997};
3998impl Default for CK_IKE1_PRF_DERIVE_PARAMS {
3999    fn default() -> Self {
4000        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4001        unsafe {
4002            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4003            s.assume_init()
4004        }
4005    }
4006}
4007pub type CK_IKE1_PRF_DERIVE_PARAMS_PTR = *mut CK_IKE1_PRF_DERIVE_PARAMS;
4008#[repr(C)]
4009#[derive(Debug, Copy, Clone)]
4010pub struct CK_IKE1_EXTENDED_DERIVE_PARAMS {
4011    pub prfMechanism: CK_MECHANISM_TYPE,
4012    pub bHasKeygxy: CK_BBOOL,
4013    pub hKeygxy: CK_OBJECT_HANDLE,
4014    pub pExtraData: CK_BYTE_PTR,
4015    pub ulExtraDataLen: CK_ULONG,
4016}
4017#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4018const _: () = {
4019    ["Size of CK_IKE1_EXTENDED_DERIVE_PARAMS"]
4020        [::std::mem::size_of::<CK_IKE1_EXTENDED_DERIVE_PARAMS>() - 40usize];
4021    ["Alignment of CK_IKE1_EXTENDED_DERIVE_PARAMS"]
4022        [::std::mem::align_of::<CK_IKE1_EXTENDED_DERIVE_PARAMS>() - 8usize];
4023    ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::prfMechanism"]
4024        [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, prfMechanism) - 0usize];
4025    ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::bHasKeygxy"]
4026        [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, bHasKeygxy) - 8usize];
4027    ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::hKeygxy"]
4028        [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, hKeygxy) - 16usize];
4029    ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::pExtraData"]
4030        [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, pExtraData) - 24usize];
4031    ["Offset of field: CK_IKE1_EXTENDED_DERIVE_PARAMS::ulExtraDataLen"]
4032        [::std::mem::offset_of!(CK_IKE1_EXTENDED_DERIVE_PARAMS, ulExtraDataLen) - 32usize];
4033};
4034impl Default for CK_IKE1_EXTENDED_DERIVE_PARAMS {
4035    fn default() -> Self {
4036        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4037        unsafe {
4038            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4039            s.assume_init()
4040        }
4041    }
4042}
4043pub type CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR = *mut CK_IKE1_EXTENDED_DERIVE_PARAMS;
4044unsafe extern "C" {
4045    pub fn C_Initialize(pInitArgs: CK_VOID_PTR) -> CK_RV;
4046}
4047unsafe extern "C" {
4048    pub fn C_Finalize(pReserved: CK_VOID_PTR) -> CK_RV;
4049}
4050unsafe extern "C" {
4051    pub fn C_GetInfo(pInfo: CK_INFO_PTR) -> CK_RV;
4052}
4053unsafe extern "C" {
4054    pub fn C_GetFunctionList(ppFunctionList: CK_FUNCTION_LIST_PTR_PTR) -> CK_RV;
4055}
4056unsafe extern "C" {
4057    pub fn C_GetSlotList(
4058        tokenPresent: CK_BBOOL,
4059        pSlotList: CK_SLOT_ID_PTR,
4060        pulCount: CK_ULONG_PTR,
4061    ) -> CK_RV;
4062}
4063unsafe extern "C" {
4064    pub fn C_GetSlotInfo(slotID: CK_SLOT_ID, pInfo: CK_SLOT_INFO_PTR) -> CK_RV;
4065}
4066unsafe extern "C" {
4067    pub fn C_GetTokenInfo(slotID: CK_SLOT_ID, pInfo: CK_TOKEN_INFO_PTR) -> CK_RV;
4068}
4069unsafe extern "C" {
4070    pub fn C_GetMechanismList(
4071        slotID: CK_SLOT_ID,
4072        pMechanismList: CK_MECHANISM_TYPE_PTR,
4073        pulCount: CK_ULONG_PTR,
4074    ) -> CK_RV;
4075}
4076unsafe extern "C" {
4077    pub fn C_GetMechanismInfo(
4078        slotID: CK_SLOT_ID,
4079        type_: CK_MECHANISM_TYPE,
4080        pInfo: CK_MECHANISM_INFO_PTR,
4081    ) -> CK_RV;
4082}
4083unsafe extern "C" {
4084    pub fn C_InitToken(
4085        slotID: CK_SLOT_ID,
4086        pPin: CK_UTF8CHAR_PTR,
4087        ulPinLen: CK_ULONG,
4088        pLabel: CK_UTF8CHAR_PTR,
4089    ) -> CK_RV;
4090}
4091unsafe extern "C" {
4092    pub fn C_InitPIN(
4093        hSession: CK_SESSION_HANDLE,
4094        pPin: CK_UTF8CHAR_PTR,
4095        ulPinLen: CK_ULONG,
4096    ) -> CK_RV;
4097}
4098unsafe extern "C" {
4099    pub fn C_SetPIN(
4100        hSession: CK_SESSION_HANDLE,
4101        pOldPin: CK_UTF8CHAR_PTR,
4102        ulOldLen: CK_ULONG,
4103        pNewPin: CK_UTF8CHAR_PTR,
4104        ulNewLen: CK_ULONG,
4105    ) -> CK_RV;
4106}
4107unsafe extern "C" {
4108    pub fn C_OpenSession(
4109        slotID: CK_SLOT_ID,
4110        flags: CK_FLAGS,
4111        pApplication: CK_VOID_PTR,
4112        Notify: CK_NOTIFY,
4113        phSession: CK_SESSION_HANDLE_PTR,
4114    ) -> CK_RV;
4115}
4116unsafe extern "C" {
4117    pub fn C_CloseSession(hSession: CK_SESSION_HANDLE) -> CK_RV;
4118}
4119unsafe extern "C" {
4120    pub fn C_CloseAllSessions(slotID: CK_SLOT_ID) -> CK_RV;
4121}
4122unsafe extern "C" {
4123    pub fn C_GetSessionInfo(hSession: CK_SESSION_HANDLE, pInfo: CK_SESSION_INFO_PTR) -> CK_RV;
4124}
4125unsafe extern "C" {
4126    pub fn C_GetOperationState(
4127        hSession: CK_SESSION_HANDLE,
4128        pOperationState: CK_BYTE_PTR,
4129        pulOperationStateLen: CK_ULONG_PTR,
4130    ) -> CK_RV;
4131}
4132unsafe extern "C" {
4133    pub fn C_SetOperationState(
4134        hSession: CK_SESSION_HANDLE,
4135        pOperationState: CK_BYTE_PTR,
4136        ulOperationStateLen: CK_ULONG,
4137        hEncryptionKey: CK_OBJECT_HANDLE,
4138        hAuthenticationKey: CK_OBJECT_HANDLE,
4139    ) -> CK_RV;
4140}
4141unsafe extern "C" {
4142    pub fn C_Login(
4143        hSession: CK_SESSION_HANDLE,
4144        userType: CK_USER_TYPE,
4145        pPin: CK_UTF8CHAR_PTR,
4146        ulPinLen: CK_ULONG,
4147    ) -> CK_RV;
4148}
4149unsafe extern "C" {
4150    pub fn C_Logout(hSession: CK_SESSION_HANDLE) -> CK_RV;
4151}
4152unsafe extern "C" {
4153    pub fn C_CreateObject(
4154        hSession: CK_SESSION_HANDLE,
4155        pTemplate: CK_ATTRIBUTE_PTR,
4156        ulCount: CK_ULONG,
4157        phObject: CK_OBJECT_HANDLE_PTR,
4158    ) -> CK_RV;
4159}
4160unsafe extern "C" {
4161    pub fn C_CopyObject(
4162        hSession: CK_SESSION_HANDLE,
4163        hObject: CK_OBJECT_HANDLE,
4164        pTemplate: CK_ATTRIBUTE_PTR,
4165        ulCount: CK_ULONG,
4166        phNewObject: CK_OBJECT_HANDLE_PTR,
4167    ) -> CK_RV;
4168}
4169unsafe extern "C" {
4170    pub fn C_DestroyObject(hSession: CK_SESSION_HANDLE, hObject: CK_OBJECT_HANDLE) -> CK_RV;
4171}
4172unsafe extern "C" {
4173    pub fn C_GetObjectSize(
4174        hSession: CK_SESSION_HANDLE,
4175        hObject: CK_OBJECT_HANDLE,
4176        pulSize: CK_ULONG_PTR,
4177    ) -> CK_RV;
4178}
4179unsafe extern "C" {
4180    pub fn C_GetAttributeValue(
4181        hSession: CK_SESSION_HANDLE,
4182        hObject: CK_OBJECT_HANDLE,
4183        pTemplate: CK_ATTRIBUTE_PTR,
4184        ulCount: CK_ULONG,
4185    ) -> CK_RV;
4186}
4187unsafe extern "C" {
4188    pub fn C_SetAttributeValue(
4189        hSession: CK_SESSION_HANDLE,
4190        hObject: CK_OBJECT_HANDLE,
4191        pTemplate: CK_ATTRIBUTE_PTR,
4192        ulCount: CK_ULONG,
4193    ) -> CK_RV;
4194}
4195unsafe extern "C" {
4196    pub fn C_FindObjectsInit(
4197        hSession: CK_SESSION_HANDLE,
4198        pTemplate: CK_ATTRIBUTE_PTR,
4199        ulCount: CK_ULONG,
4200    ) -> CK_RV;
4201}
4202unsafe extern "C" {
4203    pub fn C_FindObjects(
4204        hSession: CK_SESSION_HANDLE,
4205        phObject: CK_OBJECT_HANDLE_PTR,
4206        ulMaxObjectCount: CK_ULONG,
4207        pulObjectCount: CK_ULONG_PTR,
4208    ) -> CK_RV;
4209}
4210unsafe extern "C" {
4211    pub fn C_FindObjectsFinal(hSession: CK_SESSION_HANDLE) -> CK_RV;
4212}
4213unsafe extern "C" {
4214    pub fn C_EncryptInit(
4215        hSession: CK_SESSION_HANDLE,
4216        pMechanism: CK_MECHANISM_PTR,
4217        hKey: CK_OBJECT_HANDLE,
4218    ) -> CK_RV;
4219}
4220unsafe extern "C" {
4221    pub fn C_Encrypt(
4222        hSession: CK_SESSION_HANDLE,
4223        pData: CK_BYTE_PTR,
4224        ulDataLen: CK_ULONG,
4225        pEncryptedData: CK_BYTE_PTR,
4226        pulEncryptedDataLen: CK_ULONG_PTR,
4227    ) -> CK_RV;
4228}
4229unsafe extern "C" {
4230    pub fn C_EncryptUpdate(
4231        hSession: CK_SESSION_HANDLE,
4232        pPart: CK_BYTE_PTR,
4233        ulPartLen: CK_ULONG,
4234        pEncryptedPart: CK_BYTE_PTR,
4235        pulEncryptedPartLen: CK_ULONG_PTR,
4236    ) -> CK_RV;
4237}
4238unsafe extern "C" {
4239    pub fn C_EncryptFinal(
4240        hSession: CK_SESSION_HANDLE,
4241        pLastEncryptedPart: CK_BYTE_PTR,
4242        pulLastEncryptedPartLen: CK_ULONG_PTR,
4243    ) -> CK_RV;
4244}
4245unsafe extern "C" {
4246    pub fn C_DecryptInit(
4247        hSession: CK_SESSION_HANDLE,
4248        pMechanism: CK_MECHANISM_PTR,
4249        hKey: CK_OBJECT_HANDLE,
4250    ) -> CK_RV;
4251}
4252unsafe extern "C" {
4253    pub fn C_Decrypt(
4254        hSession: CK_SESSION_HANDLE,
4255        pEncryptedData: CK_BYTE_PTR,
4256        ulEncryptedDataLen: CK_ULONG,
4257        pData: CK_BYTE_PTR,
4258        pulDataLen: CK_ULONG_PTR,
4259    ) -> CK_RV;
4260}
4261unsafe extern "C" {
4262    pub fn C_DecryptUpdate(
4263        hSession: CK_SESSION_HANDLE,
4264        pEncryptedPart: CK_BYTE_PTR,
4265        ulEncryptedPartLen: CK_ULONG,
4266        pPart: CK_BYTE_PTR,
4267        pulPartLen: CK_ULONG_PTR,
4268    ) -> CK_RV;
4269}
4270unsafe extern "C" {
4271    pub fn C_DecryptFinal(
4272        hSession: CK_SESSION_HANDLE,
4273        pLastPart: CK_BYTE_PTR,
4274        pulLastPartLen: CK_ULONG_PTR,
4275    ) -> CK_RV;
4276}
4277unsafe extern "C" {
4278    pub fn C_DigestInit(hSession: CK_SESSION_HANDLE, pMechanism: CK_MECHANISM_PTR) -> CK_RV;
4279}
4280unsafe extern "C" {
4281    pub fn C_Digest(
4282        hSession: CK_SESSION_HANDLE,
4283        pData: CK_BYTE_PTR,
4284        ulDataLen: CK_ULONG,
4285        pDigest: CK_BYTE_PTR,
4286        pulDigestLen: CK_ULONG_PTR,
4287    ) -> CK_RV;
4288}
4289unsafe extern "C" {
4290    pub fn C_DigestUpdate(
4291        hSession: CK_SESSION_HANDLE,
4292        pPart: CK_BYTE_PTR,
4293        ulPartLen: CK_ULONG,
4294    ) -> CK_RV;
4295}
4296unsafe extern "C" {
4297    pub fn C_DigestKey(hSession: CK_SESSION_HANDLE, hKey: CK_OBJECT_HANDLE) -> CK_RV;
4298}
4299unsafe extern "C" {
4300    pub fn C_DigestFinal(
4301        hSession: CK_SESSION_HANDLE,
4302        pDigest: CK_BYTE_PTR,
4303        pulDigestLen: CK_ULONG_PTR,
4304    ) -> CK_RV;
4305}
4306unsafe extern "C" {
4307    pub fn C_SignInit(
4308        hSession: CK_SESSION_HANDLE,
4309        pMechanism: CK_MECHANISM_PTR,
4310        hKey: CK_OBJECT_HANDLE,
4311    ) -> CK_RV;
4312}
4313unsafe extern "C" {
4314    pub fn C_Sign(
4315        hSession: CK_SESSION_HANDLE,
4316        pData: CK_BYTE_PTR,
4317        ulDataLen: CK_ULONG,
4318        pSignature: CK_BYTE_PTR,
4319        pulSignatureLen: CK_ULONG_PTR,
4320    ) -> CK_RV;
4321}
4322unsafe extern "C" {
4323    pub fn C_SignUpdate(
4324        hSession: CK_SESSION_HANDLE,
4325        pPart: CK_BYTE_PTR,
4326        ulPartLen: CK_ULONG,
4327    ) -> CK_RV;
4328}
4329unsafe extern "C" {
4330    pub fn C_SignFinal(
4331        hSession: CK_SESSION_HANDLE,
4332        pSignature: CK_BYTE_PTR,
4333        pulSignatureLen: CK_ULONG_PTR,
4334    ) -> CK_RV;
4335}
4336unsafe extern "C" {
4337    pub fn C_SignRecoverInit(
4338        hSession: CK_SESSION_HANDLE,
4339        pMechanism: CK_MECHANISM_PTR,
4340        hKey: CK_OBJECT_HANDLE,
4341    ) -> CK_RV;
4342}
4343unsafe extern "C" {
4344    pub fn C_SignRecover(
4345        hSession: CK_SESSION_HANDLE,
4346        pData: CK_BYTE_PTR,
4347        ulDataLen: CK_ULONG,
4348        pSignature: CK_BYTE_PTR,
4349        pulSignatureLen: CK_ULONG_PTR,
4350    ) -> CK_RV;
4351}
4352unsafe extern "C" {
4353    pub fn C_VerifyInit(
4354        hSession: CK_SESSION_HANDLE,
4355        pMechanism: CK_MECHANISM_PTR,
4356        hKey: CK_OBJECT_HANDLE,
4357    ) -> CK_RV;
4358}
4359unsafe extern "C" {
4360    pub fn C_Verify(
4361        hSession: CK_SESSION_HANDLE,
4362        pData: CK_BYTE_PTR,
4363        ulDataLen: CK_ULONG,
4364        pSignature: CK_BYTE_PTR,
4365        ulSignatureLen: CK_ULONG,
4366    ) -> CK_RV;
4367}
4368unsafe extern "C" {
4369    pub fn C_VerifyUpdate(
4370        hSession: CK_SESSION_HANDLE,
4371        pPart: CK_BYTE_PTR,
4372        ulPartLen: CK_ULONG,
4373    ) -> CK_RV;
4374}
4375unsafe extern "C" {
4376    pub fn C_VerifyFinal(
4377        hSession: CK_SESSION_HANDLE,
4378        pSignature: CK_BYTE_PTR,
4379        ulSignatureLen: CK_ULONG,
4380    ) -> CK_RV;
4381}
4382unsafe extern "C" {
4383    pub fn C_VerifyRecoverInit(
4384        hSession: CK_SESSION_HANDLE,
4385        pMechanism: CK_MECHANISM_PTR,
4386        hKey: CK_OBJECT_HANDLE,
4387    ) -> CK_RV;
4388}
4389unsafe extern "C" {
4390    pub fn C_VerifyRecover(
4391        hSession: CK_SESSION_HANDLE,
4392        pSignature: CK_BYTE_PTR,
4393        ulSignatureLen: CK_ULONG,
4394        pData: CK_BYTE_PTR,
4395        pulDataLen: CK_ULONG_PTR,
4396    ) -> CK_RV;
4397}
4398unsafe extern "C" {
4399    pub fn C_DigestEncryptUpdate(
4400        hSession: CK_SESSION_HANDLE,
4401        pPart: CK_BYTE_PTR,
4402        ulPartLen: CK_ULONG,
4403        pEncryptedPart: CK_BYTE_PTR,
4404        pulEncryptedPartLen: CK_ULONG_PTR,
4405    ) -> CK_RV;
4406}
4407unsafe extern "C" {
4408    pub fn C_DecryptDigestUpdate(
4409        hSession: CK_SESSION_HANDLE,
4410        pEncryptedPart: CK_BYTE_PTR,
4411        ulEncryptedPartLen: CK_ULONG,
4412        pPart: CK_BYTE_PTR,
4413        pulPartLen: CK_ULONG_PTR,
4414    ) -> CK_RV;
4415}
4416unsafe extern "C" {
4417    pub fn C_SignEncryptUpdate(
4418        hSession: CK_SESSION_HANDLE,
4419        pPart: CK_BYTE_PTR,
4420        ulPartLen: CK_ULONG,
4421        pEncryptedPart: CK_BYTE_PTR,
4422        pulEncryptedPartLen: CK_ULONG_PTR,
4423    ) -> CK_RV;
4424}
4425unsafe extern "C" {
4426    pub fn C_DecryptVerifyUpdate(
4427        hSession: CK_SESSION_HANDLE,
4428        pEncryptedPart: CK_BYTE_PTR,
4429        ulEncryptedPartLen: CK_ULONG,
4430        pPart: CK_BYTE_PTR,
4431        pulPartLen: CK_ULONG_PTR,
4432    ) -> CK_RV;
4433}
4434unsafe extern "C" {
4435    pub fn C_GenerateKey(
4436        hSession: CK_SESSION_HANDLE,
4437        pMechanism: CK_MECHANISM_PTR,
4438        pTemplate: CK_ATTRIBUTE_PTR,
4439        ulCount: CK_ULONG,
4440        phKey: CK_OBJECT_HANDLE_PTR,
4441    ) -> CK_RV;
4442}
4443unsafe extern "C" {
4444    pub fn C_GenerateKeyPair(
4445        hSession: CK_SESSION_HANDLE,
4446        pMechanism: CK_MECHANISM_PTR,
4447        pPublicKeyTemplate: CK_ATTRIBUTE_PTR,
4448        ulPublicKeyAttributeCount: CK_ULONG,
4449        pPrivateKeyTemplate: CK_ATTRIBUTE_PTR,
4450        ulPrivateKeyAttributeCount: CK_ULONG,
4451        phPublicKey: CK_OBJECT_HANDLE_PTR,
4452        phPrivateKey: CK_OBJECT_HANDLE_PTR,
4453    ) -> CK_RV;
4454}
4455unsafe extern "C" {
4456    pub fn C_WrapKey(
4457        hSession: CK_SESSION_HANDLE,
4458        pMechanism: CK_MECHANISM_PTR,
4459        hWrappingKey: CK_OBJECT_HANDLE,
4460        hKey: CK_OBJECT_HANDLE,
4461        pWrappedKey: CK_BYTE_PTR,
4462        pulWrappedKeyLen: CK_ULONG_PTR,
4463    ) -> CK_RV;
4464}
4465unsafe extern "C" {
4466    pub fn C_UnwrapKey(
4467        hSession: CK_SESSION_HANDLE,
4468        pMechanism: CK_MECHANISM_PTR,
4469        hUnwrappingKey: CK_OBJECT_HANDLE,
4470        pWrappedKey: CK_BYTE_PTR,
4471        ulWrappedKeyLen: CK_ULONG,
4472        pTemplate: CK_ATTRIBUTE_PTR,
4473        ulAttributeCount: CK_ULONG,
4474        phKey: CK_OBJECT_HANDLE_PTR,
4475    ) -> CK_RV;
4476}
4477unsafe extern "C" {
4478    pub fn C_DeriveKey(
4479        hSession: CK_SESSION_HANDLE,
4480        pMechanism: CK_MECHANISM_PTR,
4481        hBaseKey: CK_OBJECT_HANDLE,
4482        pTemplate: CK_ATTRIBUTE_PTR,
4483        ulAttributeCount: CK_ULONG,
4484        phKey: CK_OBJECT_HANDLE_PTR,
4485    ) -> CK_RV;
4486}
4487unsafe extern "C" {
4488    pub fn C_SeedRandom(
4489        hSession: CK_SESSION_HANDLE,
4490        pSeed: CK_BYTE_PTR,
4491        ulSeedLen: CK_ULONG,
4492    ) -> CK_RV;
4493}
4494unsafe extern "C" {
4495    pub fn C_GenerateRandom(
4496        hSession: CK_SESSION_HANDLE,
4497        RandomData: CK_BYTE_PTR,
4498        ulRandomLen: CK_ULONG,
4499    ) -> CK_RV;
4500}
4501unsafe extern "C" {
4502    pub fn C_GetFunctionStatus(hSession: CK_SESSION_HANDLE) -> CK_RV;
4503}
4504unsafe extern "C" {
4505    pub fn C_CancelFunction(hSession: CK_SESSION_HANDLE) -> CK_RV;
4506}
4507unsafe extern "C" {
4508    pub fn C_WaitForSlotEvent(
4509        flags: CK_FLAGS,
4510        pSlot: CK_SLOT_ID_PTR,
4511        pRserved: CK_VOID_PTR,
4512    ) -> CK_RV;
4513}
4514unsafe extern "C" {
4515    pub fn C_GetInterfaceList(pInterfacesList: CK_INTERFACE_PTR, pulCount: CK_ULONG_PTR) -> CK_RV;
4516}
4517unsafe extern "C" {
4518    pub fn C_GetInterface(
4519        pInterfaceName: CK_UTF8CHAR_PTR,
4520        pVersion: CK_VERSION_PTR,
4521        ppInterface: CK_INTERFACE_PTR_PTR,
4522        flags: CK_FLAGS,
4523    ) -> CK_RV;
4524}
4525unsafe extern "C" {
4526    pub fn C_LoginUser(
4527        hSession: CK_SESSION_HANDLE,
4528        userType: CK_USER_TYPE,
4529        pPin: CK_UTF8CHAR_PTR,
4530        ulPinLen: CK_ULONG,
4531        pUsername: CK_UTF8CHAR_PTR,
4532        ulUsernameLen: CK_ULONG,
4533    ) -> CK_RV;
4534}
4535unsafe extern "C" {
4536    pub fn C_SessionCancel(hSession: CK_SESSION_HANDLE, flags: CK_FLAGS) -> CK_RV;
4537}
4538unsafe extern "C" {
4539    pub fn C_MessageEncryptInit(
4540        hSession: CK_SESSION_HANDLE,
4541        pMechanism: CK_MECHANISM_PTR,
4542        hKey: CK_OBJECT_HANDLE,
4543    ) -> CK_RV;
4544}
4545unsafe extern "C" {
4546    pub fn C_EncryptMessage(
4547        hSession: CK_SESSION_HANDLE,
4548        pParameter: CK_VOID_PTR,
4549        ulParameterLen: CK_ULONG,
4550        pAssociatedData: CK_BYTE_PTR,
4551        ulAssociatedDataLen: CK_ULONG,
4552        pPlaintext: CK_BYTE_PTR,
4553        ulPlaintextLen: CK_ULONG,
4554        pCiphertext: CK_BYTE_PTR,
4555        pulCiphertextLen: CK_ULONG_PTR,
4556    ) -> CK_RV;
4557}
4558unsafe extern "C" {
4559    pub fn C_EncryptMessageBegin(
4560        hSession: CK_SESSION_HANDLE,
4561        pParameter: CK_VOID_PTR,
4562        ulParameterLen: CK_ULONG,
4563        pAssociatedData: CK_BYTE_PTR,
4564        ulAssociatedDataLen: CK_ULONG,
4565    ) -> CK_RV;
4566}
4567unsafe extern "C" {
4568    pub fn C_EncryptMessageNext(
4569        hSession: CK_SESSION_HANDLE,
4570        pParameter: CK_VOID_PTR,
4571        ulParameterLen: CK_ULONG,
4572        pPlaintextPart: CK_BYTE_PTR,
4573        ulPlaintextPartLen: CK_ULONG,
4574        pCiphertextPart: CK_BYTE_PTR,
4575        pulCiphertextPartLen: CK_ULONG_PTR,
4576        flags: CK_FLAGS,
4577    ) -> CK_RV;
4578}
4579unsafe extern "C" {
4580    pub fn C_MessageEncryptFinal(hSession: CK_SESSION_HANDLE) -> CK_RV;
4581}
4582unsafe extern "C" {
4583    pub fn C_MessageDecryptInit(
4584        hSession: CK_SESSION_HANDLE,
4585        pMechanism: CK_MECHANISM_PTR,
4586        hKey: CK_OBJECT_HANDLE,
4587    ) -> CK_RV;
4588}
4589unsafe extern "C" {
4590    pub fn C_DecryptMessage(
4591        hSession: CK_SESSION_HANDLE,
4592        pParameter: CK_VOID_PTR,
4593        ulParameterLen: CK_ULONG,
4594        pAssociatedData: CK_BYTE_PTR,
4595        ulAssociatedDataLen: CK_ULONG,
4596        pCiphertext: CK_BYTE_PTR,
4597        ulCiphertextLen: CK_ULONG,
4598        pPlaintext: CK_BYTE_PTR,
4599        pulPlaintextLen: CK_ULONG_PTR,
4600    ) -> CK_RV;
4601}
4602unsafe extern "C" {
4603    pub fn C_DecryptMessageBegin(
4604        hSession: CK_SESSION_HANDLE,
4605        pParameter: CK_VOID_PTR,
4606        ulParameterLen: CK_ULONG,
4607        pAssociatedData: CK_BYTE_PTR,
4608        ulAssociatedDataLen: CK_ULONG,
4609    ) -> CK_RV;
4610}
4611unsafe extern "C" {
4612    pub fn C_DecryptMessageNext(
4613        hSession: CK_SESSION_HANDLE,
4614        pParameter: CK_VOID_PTR,
4615        ulParameterLen: CK_ULONG,
4616        pCiphertextPart: CK_BYTE_PTR,
4617        ulCiphertextPartLen: CK_ULONG,
4618        pPlaintextPart: CK_BYTE_PTR,
4619        pulPlaintextPartLen: CK_ULONG_PTR,
4620        flags: CK_FLAGS,
4621    ) -> CK_RV;
4622}
4623unsafe extern "C" {
4624    pub fn C_MessageDecryptFinal(hSession: CK_SESSION_HANDLE) -> CK_RV;
4625}
4626unsafe extern "C" {
4627    pub fn C_MessageSignInit(
4628        hSession: CK_SESSION_HANDLE,
4629        pMechanism: CK_MECHANISM_PTR,
4630        hKey: CK_OBJECT_HANDLE,
4631    ) -> CK_RV;
4632}
4633unsafe extern "C" {
4634    pub fn C_SignMessage(
4635        hSession: CK_SESSION_HANDLE,
4636        pParameter: CK_VOID_PTR,
4637        ulParameterLen: CK_ULONG,
4638        pData: CK_BYTE_PTR,
4639        ulDataLen: CK_ULONG,
4640        pSignature: CK_BYTE_PTR,
4641        pulSignatureLen: CK_ULONG_PTR,
4642    ) -> CK_RV;
4643}
4644unsafe extern "C" {
4645    pub fn C_SignMessageBegin(
4646        hSession: CK_SESSION_HANDLE,
4647        pParameter: CK_VOID_PTR,
4648        ulParameterLen: CK_ULONG,
4649    ) -> CK_RV;
4650}
4651unsafe extern "C" {
4652    pub fn C_SignMessageNext(
4653        hSession: CK_SESSION_HANDLE,
4654        pParameter: CK_VOID_PTR,
4655        ulParameterLen: CK_ULONG,
4656        pData: CK_BYTE_PTR,
4657        ulDataLen: CK_ULONG,
4658        pSignature: CK_BYTE_PTR,
4659        pulSignatureLen: CK_ULONG_PTR,
4660    ) -> CK_RV;
4661}
4662unsafe extern "C" {
4663    pub fn C_MessageSignFinal(hSession: CK_SESSION_HANDLE) -> CK_RV;
4664}
4665unsafe extern "C" {
4666    pub fn C_MessageVerifyInit(
4667        hSession: CK_SESSION_HANDLE,
4668        pMechanism: CK_MECHANISM_PTR,
4669        hKey: CK_OBJECT_HANDLE,
4670    ) -> CK_RV;
4671}
4672unsafe extern "C" {
4673    pub fn C_VerifyMessage(
4674        hSession: CK_SESSION_HANDLE,
4675        pParameter: CK_VOID_PTR,
4676        ulParameterLen: CK_ULONG,
4677        pData: CK_BYTE_PTR,
4678        ulDataLen: CK_ULONG,
4679        pSignature: CK_BYTE_PTR,
4680        ulSignatureLen: CK_ULONG,
4681    ) -> CK_RV;
4682}
4683unsafe extern "C" {
4684    pub fn C_VerifyMessageBegin(
4685        hSession: CK_SESSION_HANDLE,
4686        pParameter: CK_VOID_PTR,
4687        ulParameterLen: CK_ULONG,
4688    ) -> CK_RV;
4689}
4690unsafe extern "C" {
4691    pub fn C_VerifyMessageNext(
4692        hSession: CK_SESSION_HANDLE,
4693        pParameter: CK_VOID_PTR,
4694        ulParameterLen: CK_ULONG,
4695        pData: CK_BYTE_PTR,
4696        ulDataLen: CK_ULONG,
4697        pSignature: CK_BYTE_PTR,
4698        ulSignatureLen: CK_ULONG,
4699    ) -> CK_RV;
4700}
4701unsafe extern "C" {
4702    pub fn C_MessageVerifyFinal(hSession: CK_SESSION_HANDLE) -> CK_RV;
4703}
4704pub type CK_C_Initialize =
4705    ::std::option::Option<unsafe extern "C" fn(pInitArgs: CK_VOID_PTR) -> CK_RV>;
4706pub type CK_C_Finalize =
4707    ::std::option::Option<unsafe extern "C" fn(pReserved: CK_VOID_PTR) -> CK_RV>;
4708pub type CK_C_GetInfo = ::std::option::Option<unsafe extern "C" fn(pInfo: CK_INFO_PTR) -> CK_RV>;
4709pub type CK_C_GetFunctionList =
4710    ::std::option::Option<unsafe extern "C" fn(ppFunctionList: CK_FUNCTION_LIST_PTR_PTR) -> CK_RV>;
4711pub type CK_C_GetSlotList = ::std::option::Option<
4712    unsafe extern "C" fn(
4713        tokenPresent: CK_BBOOL,
4714        pSlotList: CK_SLOT_ID_PTR,
4715        pulCount: CK_ULONG_PTR,
4716    ) -> CK_RV,
4717>;
4718pub type CK_C_GetSlotInfo = ::std::option::Option<
4719    unsafe extern "C" fn(slotID: CK_SLOT_ID, pInfo: CK_SLOT_INFO_PTR) -> CK_RV,
4720>;
4721pub type CK_C_GetTokenInfo = ::std::option::Option<
4722    unsafe extern "C" fn(slotID: CK_SLOT_ID, pInfo: CK_TOKEN_INFO_PTR) -> CK_RV,
4723>;
4724pub type CK_C_GetMechanismList = ::std::option::Option<
4725    unsafe extern "C" fn(
4726        slotID: CK_SLOT_ID,
4727        pMechanismList: CK_MECHANISM_TYPE_PTR,
4728        pulCount: CK_ULONG_PTR,
4729    ) -> CK_RV,
4730>;
4731pub type CK_C_GetMechanismInfo = ::std::option::Option<
4732    unsafe extern "C" fn(
4733        slotID: CK_SLOT_ID,
4734        type_: CK_MECHANISM_TYPE,
4735        pInfo: CK_MECHANISM_INFO_PTR,
4736    ) -> CK_RV,
4737>;
4738pub type CK_C_InitToken = ::std::option::Option<
4739    unsafe extern "C" fn(
4740        slotID: CK_SLOT_ID,
4741        pPin: CK_UTF8CHAR_PTR,
4742        ulPinLen: CK_ULONG,
4743        pLabel: CK_UTF8CHAR_PTR,
4744    ) -> CK_RV,
4745>;
4746pub type CK_C_InitPIN = ::std::option::Option<
4747    unsafe extern "C" fn(
4748        hSession: CK_SESSION_HANDLE,
4749        pPin: CK_UTF8CHAR_PTR,
4750        ulPinLen: CK_ULONG,
4751    ) -> CK_RV,
4752>;
4753pub type CK_C_SetPIN = ::std::option::Option<
4754    unsafe extern "C" fn(
4755        hSession: CK_SESSION_HANDLE,
4756        pOldPin: CK_UTF8CHAR_PTR,
4757        ulOldLen: CK_ULONG,
4758        pNewPin: CK_UTF8CHAR_PTR,
4759        ulNewLen: CK_ULONG,
4760    ) -> CK_RV,
4761>;
4762pub type CK_C_OpenSession = ::std::option::Option<
4763    unsafe extern "C" fn(
4764        slotID: CK_SLOT_ID,
4765        flags: CK_FLAGS,
4766        pApplication: CK_VOID_PTR,
4767        Notify: CK_NOTIFY,
4768        phSession: CK_SESSION_HANDLE_PTR,
4769    ) -> CK_RV,
4770>;
4771pub type CK_C_CloseSession =
4772    ::std::option::Option<unsafe extern "C" fn(hSession: CK_SESSION_HANDLE) -> CK_RV>;
4773pub type CK_C_CloseAllSessions =
4774    ::std::option::Option<unsafe extern "C" fn(slotID: CK_SLOT_ID) -> CK_RV>;
4775pub type CK_C_GetSessionInfo = ::std::option::Option<
4776    unsafe extern "C" fn(hSession: CK_SESSION_HANDLE, pInfo: CK_SESSION_INFO_PTR) -> CK_RV,
4777>;
4778pub type CK_C_GetOperationState = ::std::option::Option<
4779    unsafe extern "C" fn(
4780        hSession: CK_SESSION_HANDLE,
4781        pOperationState: CK_BYTE_PTR,
4782        pulOperationStateLen: CK_ULONG_PTR,
4783    ) -> CK_RV,
4784>;
4785pub type CK_C_SetOperationState = ::std::option::Option<
4786    unsafe extern "C" fn(
4787        hSession: CK_SESSION_HANDLE,
4788        pOperationState: CK_BYTE_PTR,
4789        ulOperationStateLen: CK_ULONG,
4790        hEncryptionKey: CK_OBJECT_HANDLE,
4791        hAuthenticationKey: CK_OBJECT_HANDLE,
4792    ) -> CK_RV,
4793>;
4794pub type CK_C_Login = ::std::option::Option<
4795    unsafe extern "C" fn(
4796        hSession: CK_SESSION_HANDLE,
4797        userType: CK_USER_TYPE,
4798        pPin: CK_UTF8CHAR_PTR,
4799        ulPinLen: CK_ULONG,
4800    ) -> CK_RV,
4801>;
4802pub type CK_C_Logout =
4803    ::std::option::Option<unsafe extern "C" fn(hSession: CK_SESSION_HANDLE) -> CK_RV>;
4804pub type CK_C_CreateObject = ::std::option::Option<
4805    unsafe extern "C" fn(
4806        hSession: CK_SESSION_HANDLE,
4807        pTemplate: CK_ATTRIBUTE_PTR,
4808        ulCount: CK_ULONG,
4809        phObject: CK_OBJECT_HANDLE_PTR,
4810    ) -> CK_RV,
4811>;
4812pub type CK_C_CopyObject = ::std::option::Option<
4813    unsafe extern "C" fn(
4814        hSession: CK_SESSION_HANDLE,
4815        hObject: CK_OBJECT_HANDLE,
4816        pTemplate: CK_ATTRIBUTE_PTR,
4817        ulCount: CK_ULONG,
4818        phNewObject: CK_OBJECT_HANDLE_PTR,
4819    ) -> CK_RV,
4820>;
4821pub type CK_C_DestroyObject = ::std::option::Option<
4822    unsafe extern "C" fn(hSession: CK_SESSION_HANDLE, hObject: CK_OBJECT_HANDLE) -> CK_RV,
4823>;
4824pub type CK_C_GetObjectSize = ::std::option::Option<
4825    unsafe extern "C" fn(
4826        hSession: CK_SESSION_HANDLE,
4827        hObject: CK_OBJECT_HANDLE,
4828        pulSize: CK_ULONG_PTR,
4829    ) -> CK_RV,
4830>;
4831pub type CK_C_GetAttributeValue = ::std::option::Option<
4832    unsafe extern "C" fn(
4833        hSession: CK_SESSION_HANDLE,
4834        hObject: CK_OBJECT_HANDLE,
4835        pTemplate: CK_ATTRIBUTE_PTR,
4836        ulCount: CK_ULONG,
4837    ) -> CK_RV,
4838>;
4839pub type CK_C_SetAttributeValue = ::std::option::Option<
4840    unsafe extern "C" fn(
4841        hSession: CK_SESSION_HANDLE,
4842        hObject: CK_OBJECT_HANDLE,
4843        pTemplate: CK_ATTRIBUTE_PTR,
4844        ulCount: CK_ULONG,
4845    ) -> CK_RV,
4846>;
4847pub type CK_C_FindObjectsInit = ::std::option::Option<
4848    unsafe extern "C" fn(
4849        hSession: CK_SESSION_HANDLE,
4850        pTemplate: CK_ATTRIBUTE_PTR,
4851        ulCount: CK_ULONG,
4852    ) -> CK_RV,
4853>;
4854pub type CK_C_FindObjects = ::std::option::Option<
4855    unsafe extern "C" fn(
4856        hSession: CK_SESSION_HANDLE,
4857        phObject: CK_OBJECT_HANDLE_PTR,
4858        ulMaxObjectCount: CK_ULONG,
4859        pulObjectCount: CK_ULONG_PTR,
4860    ) -> CK_RV,
4861>;
4862pub type CK_C_FindObjectsFinal =
4863    ::std::option::Option<unsafe extern "C" fn(hSession: CK_SESSION_HANDLE) -> CK_RV>;
4864pub type CK_C_EncryptInit = ::std::option::Option<
4865    unsafe extern "C" fn(
4866        hSession: CK_SESSION_HANDLE,
4867        pMechanism: CK_MECHANISM_PTR,
4868        hKey: CK_OBJECT_HANDLE,
4869    ) -> CK_RV,
4870>;
4871pub type CK_C_Encrypt = ::std::option::Option<
4872    unsafe extern "C" fn(
4873        hSession: CK_SESSION_HANDLE,
4874        pData: CK_BYTE_PTR,
4875        ulDataLen: CK_ULONG,
4876        pEncryptedData: CK_BYTE_PTR,
4877        pulEncryptedDataLen: CK_ULONG_PTR,
4878    ) -> CK_RV,
4879>;
4880pub type CK_C_EncryptUpdate = ::std::option::Option<
4881    unsafe extern "C" fn(
4882        hSession: CK_SESSION_HANDLE,
4883        pPart: CK_BYTE_PTR,
4884        ulPartLen: CK_ULONG,
4885        pEncryptedPart: CK_BYTE_PTR,
4886        pulEncryptedPartLen: CK_ULONG_PTR,
4887    ) -> CK_RV,
4888>;
4889pub type CK_C_EncryptFinal = ::std::option::Option<
4890    unsafe extern "C" fn(
4891        hSession: CK_SESSION_HANDLE,
4892        pLastEncryptedPart: CK_BYTE_PTR,
4893        pulLastEncryptedPartLen: CK_ULONG_PTR,
4894    ) -> CK_RV,
4895>;
4896pub type CK_C_DecryptInit = ::std::option::Option<
4897    unsafe extern "C" fn(
4898        hSession: CK_SESSION_HANDLE,
4899        pMechanism: CK_MECHANISM_PTR,
4900        hKey: CK_OBJECT_HANDLE,
4901    ) -> CK_RV,
4902>;
4903pub type CK_C_Decrypt = ::std::option::Option<
4904    unsafe extern "C" fn(
4905        hSession: CK_SESSION_HANDLE,
4906        pEncryptedData: CK_BYTE_PTR,
4907        ulEncryptedDataLen: CK_ULONG,
4908        pData: CK_BYTE_PTR,
4909        pulDataLen: CK_ULONG_PTR,
4910    ) -> CK_RV,
4911>;
4912pub type CK_C_DecryptUpdate = ::std::option::Option<
4913    unsafe extern "C" fn(
4914        hSession: CK_SESSION_HANDLE,
4915        pEncryptedPart: CK_BYTE_PTR,
4916        ulEncryptedPartLen: CK_ULONG,
4917        pPart: CK_BYTE_PTR,
4918        pulPartLen: CK_ULONG_PTR,
4919    ) -> CK_RV,
4920>;
4921pub type CK_C_DecryptFinal = ::std::option::Option<
4922    unsafe extern "C" fn(
4923        hSession: CK_SESSION_HANDLE,
4924        pLastPart: CK_BYTE_PTR,
4925        pulLastPartLen: CK_ULONG_PTR,
4926    ) -> CK_RV,
4927>;
4928pub type CK_C_DigestInit = ::std::option::Option<
4929    unsafe extern "C" fn(hSession: CK_SESSION_HANDLE, pMechanism: CK_MECHANISM_PTR) -> CK_RV,
4930>;
4931pub type CK_C_Digest = ::std::option::Option<
4932    unsafe extern "C" fn(
4933        hSession: CK_SESSION_HANDLE,
4934        pData: CK_BYTE_PTR,
4935        ulDataLen: CK_ULONG,
4936        pDigest: CK_BYTE_PTR,
4937        pulDigestLen: CK_ULONG_PTR,
4938    ) -> CK_RV,
4939>;
4940pub type CK_C_DigestUpdate = ::std::option::Option<
4941    unsafe extern "C" fn(
4942        hSession: CK_SESSION_HANDLE,
4943        pPart: CK_BYTE_PTR,
4944        ulPartLen: CK_ULONG,
4945    ) -> CK_RV,
4946>;
4947pub type CK_C_DigestKey = ::std::option::Option<
4948    unsafe extern "C" fn(hSession: CK_SESSION_HANDLE, hKey: CK_OBJECT_HANDLE) -> CK_RV,
4949>;
4950pub type CK_C_DigestFinal = ::std::option::Option<
4951    unsafe extern "C" fn(
4952        hSession: CK_SESSION_HANDLE,
4953        pDigest: CK_BYTE_PTR,
4954        pulDigestLen: CK_ULONG_PTR,
4955    ) -> CK_RV,
4956>;
4957pub type CK_C_SignInit = ::std::option::Option<
4958    unsafe extern "C" fn(
4959        hSession: CK_SESSION_HANDLE,
4960        pMechanism: CK_MECHANISM_PTR,
4961        hKey: CK_OBJECT_HANDLE,
4962    ) -> CK_RV,
4963>;
4964pub type CK_C_Sign = ::std::option::Option<
4965    unsafe extern "C" fn(
4966        hSession: CK_SESSION_HANDLE,
4967        pData: CK_BYTE_PTR,
4968        ulDataLen: CK_ULONG,
4969        pSignature: CK_BYTE_PTR,
4970        pulSignatureLen: CK_ULONG_PTR,
4971    ) -> CK_RV,
4972>;
4973pub type CK_C_SignUpdate = ::std::option::Option<
4974    unsafe extern "C" fn(
4975        hSession: CK_SESSION_HANDLE,
4976        pPart: CK_BYTE_PTR,
4977        ulPartLen: CK_ULONG,
4978    ) -> CK_RV,
4979>;
4980pub type CK_C_SignFinal = ::std::option::Option<
4981    unsafe extern "C" fn(
4982        hSession: CK_SESSION_HANDLE,
4983        pSignature: CK_BYTE_PTR,
4984        pulSignatureLen: CK_ULONG_PTR,
4985    ) -> CK_RV,
4986>;
4987pub type CK_C_SignRecoverInit = ::std::option::Option<
4988    unsafe extern "C" fn(
4989        hSession: CK_SESSION_HANDLE,
4990        pMechanism: CK_MECHANISM_PTR,
4991        hKey: CK_OBJECT_HANDLE,
4992    ) -> CK_RV,
4993>;
4994pub type CK_C_SignRecover = ::std::option::Option<
4995    unsafe extern "C" fn(
4996        hSession: CK_SESSION_HANDLE,
4997        pData: CK_BYTE_PTR,
4998        ulDataLen: CK_ULONG,
4999        pSignature: CK_BYTE_PTR,
5000        pulSignatureLen: CK_ULONG_PTR,
5001    ) -> CK_RV,
5002>;
5003pub type CK_C_VerifyInit = ::std::option::Option<
5004    unsafe extern "C" fn(
5005        hSession: CK_SESSION_HANDLE,
5006        pMechanism: CK_MECHANISM_PTR,
5007        hKey: CK_OBJECT_HANDLE,
5008    ) -> CK_RV,
5009>;
5010pub type CK_C_Verify = ::std::option::Option<
5011    unsafe extern "C" fn(
5012        hSession: CK_SESSION_HANDLE,
5013        pData: CK_BYTE_PTR,
5014        ulDataLen: CK_ULONG,
5015        pSignature: CK_BYTE_PTR,
5016        ulSignatureLen: CK_ULONG,
5017    ) -> CK_RV,
5018>;
5019pub type CK_C_VerifyUpdate = ::std::option::Option<
5020    unsafe extern "C" fn(
5021        hSession: CK_SESSION_HANDLE,
5022        pPart: CK_BYTE_PTR,
5023        ulPartLen: CK_ULONG,
5024    ) -> CK_RV,
5025>;
5026pub type CK_C_VerifyFinal = ::std::option::Option<
5027    unsafe extern "C" fn(
5028        hSession: CK_SESSION_HANDLE,
5029        pSignature: CK_BYTE_PTR,
5030        ulSignatureLen: CK_ULONG,
5031    ) -> CK_RV,
5032>;
5033pub type CK_C_VerifyRecoverInit = ::std::option::Option<
5034    unsafe extern "C" fn(
5035        hSession: CK_SESSION_HANDLE,
5036        pMechanism: CK_MECHANISM_PTR,
5037        hKey: CK_OBJECT_HANDLE,
5038    ) -> CK_RV,
5039>;
5040pub type CK_C_VerifyRecover = ::std::option::Option<
5041    unsafe extern "C" fn(
5042        hSession: CK_SESSION_HANDLE,
5043        pSignature: CK_BYTE_PTR,
5044        ulSignatureLen: CK_ULONG,
5045        pData: CK_BYTE_PTR,
5046        pulDataLen: CK_ULONG_PTR,
5047    ) -> CK_RV,
5048>;
5049pub type CK_C_DigestEncryptUpdate = ::std::option::Option<
5050    unsafe extern "C" fn(
5051        hSession: CK_SESSION_HANDLE,
5052        pPart: CK_BYTE_PTR,
5053        ulPartLen: CK_ULONG,
5054        pEncryptedPart: CK_BYTE_PTR,
5055        pulEncryptedPartLen: CK_ULONG_PTR,
5056    ) -> CK_RV,
5057>;
5058pub type CK_C_DecryptDigestUpdate = ::std::option::Option<
5059    unsafe extern "C" fn(
5060        hSession: CK_SESSION_HANDLE,
5061        pEncryptedPart: CK_BYTE_PTR,
5062        ulEncryptedPartLen: CK_ULONG,
5063        pPart: CK_BYTE_PTR,
5064        pulPartLen: CK_ULONG_PTR,
5065    ) -> CK_RV,
5066>;
5067pub type CK_C_SignEncryptUpdate = ::std::option::Option<
5068    unsafe extern "C" fn(
5069        hSession: CK_SESSION_HANDLE,
5070        pPart: CK_BYTE_PTR,
5071        ulPartLen: CK_ULONG,
5072        pEncryptedPart: CK_BYTE_PTR,
5073        pulEncryptedPartLen: CK_ULONG_PTR,
5074    ) -> CK_RV,
5075>;
5076pub type CK_C_DecryptVerifyUpdate = ::std::option::Option<
5077    unsafe extern "C" fn(
5078        hSession: CK_SESSION_HANDLE,
5079        pEncryptedPart: CK_BYTE_PTR,
5080        ulEncryptedPartLen: CK_ULONG,
5081        pPart: CK_BYTE_PTR,
5082        pulPartLen: CK_ULONG_PTR,
5083    ) -> CK_RV,
5084>;
5085pub type CK_C_GenerateKey = ::std::option::Option<
5086    unsafe extern "C" fn(
5087        hSession: CK_SESSION_HANDLE,
5088        pMechanism: CK_MECHANISM_PTR,
5089        pTemplate: CK_ATTRIBUTE_PTR,
5090        ulCount: CK_ULONG,
5091        phKey: CK_OBJECT_HANDLE_PTR,
5092    ) -> CK_RV,
5093>;
5094pub type CK_C_GenerateKeyPair = ::std::option::Option<
5095    unsafe extern "C" fn(
5096        hSession: CK_SESSION_HANDLE,
5097        pMechanism: CK_MECHANISM_PTR,
5098        pPublicKeyTemplate: CK_ATTRIBUTE_PTR,
5099        ulPublicKeyAttributeCount: CK_ULONG,
5100        pPrivateKeyTemplate: CK_ATTRIBUTE_PTR,
5101        ulPrivateKeyAttributeCount: CK_ULONG,
5102        phPublicKey: CK_OBJECT_HANDLE_PTR,
5103        phPrivateKey: CK_OBJECT_HANDLE_PTR,
5104    ) -> CK_RV,
5105>;
5106pub type CK_C_WrapKey = ::std::option::Option<
5107    unsafe extern "C" fn(
5108        hSession: CK_SESSION_HANDLE,
5109        pMechanism: CK_MECHANISM_PTR,
5110        hWrappingKey: CK_OBJECT_HANDLE,
5111        hKey: CK_OBJECT_HANDLE,
5112        pWrappedKey: CK_BYTE_PTR,
5113        pulWrappedKeyLen: CK_ULONG_PTR,
5114    ) -> CK_RV,
5115>;
5116pub type CK_C_UnwrapKey = ::std::option::Option<
5117    unsafe extern "C" fn(
5118        hSession: CK_SESSION_HANDLE,
5119        pMechanism: CK_MECHANISM_PTR,
5120        hUnwrappingKey: CK_OBJECT_HANDLE,
5121        pWrappedKey: CK_BYTE_PTR,
5122        ulWrappedKeyLen: CK_ULONG,
5123        pTemplate: CK_ATTRIBUTE_PTR,
5124        ulAttributeCount: CK_ULONG,
5125        phKey: CK_OBJECT_HANDLE_PTR,
5126    ) -> CK_RV,
5127>;
5128pub type CK_C_DeriveKey = ::std::option::Option<
5129    unsafe extern "C" fn(
5130        hSession: CK_SESSION_HANDLE,
5131        pMechanism: CK_MECHANISM_PTR,
5132        hBaseKey: CK_OBJECT_HANDLE,
5133        pTemplate: CK_ATTRIBUTE_PTR,
5134        ulAttributeCount: CK_ULONG,
5135        phKey: CK_OBJECT_HANDLE_PTR,
5136    ) -> CK_RV,
5137>;
5138pub type CK_C_SeedRandom = ::std::option::Option<
5139    unsafe extern "C" fn(
5140        hSession: CK_SESSION_HANDLE,
5141        pSeed: CK_BYTE_PTR,
5142        ulSeedLen: CK_ULONG,
5143    ) -> CK_RV,
5144>;
5145pub type CK_C_GenerateRandom = ::std::option::Option<
5146    unsafe extern "C" fn(
5147        hSession: CK_SESSION_HANDLE,
5148        RandomData: CK_BYTE_PTR,
5149        ulRandomLen: CK_ULONG,
5150    ) -> CK_RV,
5151>;
5152pub type CK_C_GetFunctionStatus =
5153    ::std::option::Option<unsafe extern "C" fn(hSession: CK_SESSION_HANDLE) -> CK_RV>;
5154pub type CK_C_CancelFunction =
5155    ::std::option::Option<unsafe extern "C" fn(hSession: CK_SESSION_HANDLE) -> CK_RV>;
5156pub type CK_C_WaitForSlotEvent = ::std::option::Option<
5157    unsafe extern "C" fn(flags: CK_FLAGS, pSlot: CK_SLOT_ID_PTR, pRserved: CK_VOID_PTR) -> CK_RV,
5158>;
5159pub type CK_C_GetInterfaceList = ::std::option::Option<
5160    unsafe extern "C" fn(pInterfacesList: CK_INTERFACE_PTR, pulCount: CK_ULONG_PTR) -> CK_RV,
5161>;
5162pub type CK_C_GetInterface = ::std::option::Option<
5163    unsafe extern "C" fn(
5164        pInterfaceName: CK_UTF8CHAR_PTR,
5165        pVersion: CK_VERSION_PTR,
5166        ppInterface: CK_INTERFACE_PTR_PTR,
5167        flags: CK_FLAGS,
5168    ) -> CK_RV,
5169>;
5170pub type CK_C_LoginUser = ::std::option::Option<
5171    unsafe extern "C" fn(
5172        hSession: CK_SESSION_HANDLE,
5173        userType: CK_USER_TYPE,
5174        pPin: CK_UTF8CHAR_PTR,
5175        ulPinLen: CK_ULONG,
5176        pUsername: CK_UTF8CHAR_PTR,
5177        ulUsernameLen: CK_ULONG,
5178    ) -> CK_RV,
5179>;
5180pub type CK_C_SessionCancel = ::std::option::Option<
5181    unsafe extern "C" fn(hSession: CK_SESSION_HANDLE, flags: CK_FLAGS) -> CK_RV,
5182>;
5183pub type CK_C_MessageEncryptInit = ::std::option::Option<
5184    unsafe extern "C" fn(
5185        hSession: CK_SESSION_HANDLE,
5186        pMechanism: CK_MECHANISM_PTR,
5187        hKey: CK_OBJECT_HANDLE,
5188    ) -> CK_RV,
5189>;
5190pub type CK_C_EncryptMessage = ::std::option::Option<
5191    unsafe extern "C" fn(
5192        hSession: CK_SESSION_HANDLE,
5193        pParameter: CK_VOID_PTR,
5194        ulParameterLen: CK_ULONG,
5195        pAssociatedData: CK_BYTE_PTR,
5196        ulAssociatedDataLen: CK_ULONG,
5197        pPlaintext: CK_BYTE_PTR,
5198        ulPlaintextLen: CK_ULONG,
5199        pCiphertext: CK_BYTE_PTR,
5200        pulCiphertextLen: CK_ULONG_PTR,
5201    ) -> CK_RV,
5202>;
5203pub type CK_C_EncryptMessageBegin = ::std::option::Option<
5204    unsafe extern "C" fn(
5205        hSession: CK_SESSION_HANDLE,
5206        pParameter: CK_VOID_PTR,
5207        ulParameterLen: CK_ULONG,
5208        pAssociatedData: CK_BYTE_PTR,
5209        ulAssociatedDataLen: CK_ULONG,
5210    ) -> CK_RV,
5211>;
5212pub type CK_C_EncryptMessageNext = ::std::option::Option<
5213    unsafe extern "C" fn(
5214        hSession: CK_SESSION_HANDLE,
5215        pParameter: CK_VOID_PTR,
5216        ulParameterLen: CK_ULONG,
5217        pPlaintextPart: CK_BYTE_PTR,
5218        ulPlaintextPartLen: CK_ULONG,
5219        pCiphertextPart: CK_BYTE_PTR,
5220        pulCiphertextPartLen: CK_ULONG_PTR,
5221        flags: CK_FLAGS,
5222    ) -> CK_RV,
5223>;
5224pub type CK_C_MessageEncryptFinal =
5225    ::std::option::Option<unsafe extern "C" fn(hSession: CK_SESSION_HANDLE) -> CK_RV>;
5226pub type CK_C_MessageDecryptInit = ::std::option::Option<
5227    unsafe extern "C" fn(
5228        hSession: CK_SESSION_HANDLE,
5229        pMechanism: CK_MECHANISM_PTR,
5230        hKey: CK_OBJECT_HANDLE,
5231    ) -> CK_RV,
5232>;
5233pub type CK_C_DecryptMessage = ::std::option::Option<
5234    unsafe extern "C" fn(
5235        hSession: CK_SESSION_HANDLE,
5236        pParameter: CK_VOID_PTR,
5237        ulParameterLen: CK_ULONG,
5238        pAssociatedData: CK_BYTE_PTR,
5239        ulAssociatedDataLen: CK_ULONG,
5240        pCiphertext: CK_BYTE_PTR,
5241        ulCiphertextLen: CK_ULONG,
5242        pPlaintext: CK_BYTE_PTR,
5243        pulPlaintextLen: CK_ULONG_PTR,
5244    ) -> CK_RV,
5245>;
5246pub type CK_C_DecryptMessageBegin = ::std::option::Option<
5247    unsafe extern "C" fn(
5248        hSession: CK_SESSION_HANDLE,
5249        pParameter: CK_VOID_PTR,
5250        ulParameterLen: CK_ULONG,
5251        pAssociatedData: CK_BYTE_PTR,
5252        ulAssociatedDataLen: CK_ULONG,
5253    ) -> CK_RV,
5254>;
5255pub type CK_C_DecryptMessageNext = ::std::option::Option<
5256    unsafe extern "C" fn(
5257        hSession: CK_SESSION_HANDLE,
5258        pParameter: CK_VOID_PTR,
5259        ulParameterLen: CK_ULONG,
5260        pCiphertextPart: CK_BYTE_PTR,
5261        ulCiphertextPartLen: CK_ULONG,
5262        pPlaintextPart: CK_BYTE_PTR,
5263        pulPlaintextPartLen: CK_ULONG_PTR,
5264        flags: CK_FLAGS,
5265    ) -> CK_RV,
5266>;
5267pub type CK_C_MessageDecryptFinal =
5268    ::std::option::Option<unsafe extern "C" fn(hSession: CK_SESSION_HANDLE) -> CK_RV>;
5269pub type CK_C_MessageSignInit = ::std::option::Option<
5270    unsafe extern "C" fn(
5271        hSession: CK_SESSION_HANDLE,
5272        pMechanism: CK_MECHANISM_PTR,
5273        hKey: CK_OBJECT_HANDLE,
5274    ) -> CK_RV,
5275>;
5276pub type CK_C_SignMessage = ::std::option::Option<
5277    unsafe extern "C" fn(
5278        hSession: CK_SESSION_HANDLE,
5279        pParameter: CK_VOID_PTR,
5280        ulParameterLen: CK_ULONG,
5281        pData: CK_BYTE_PTR,
5282        ulDataLen: CK_ULONG,
5283        pSignature: CK_BYTE_PTR,
5284        pulSignatureLen: CK_ULONG_PTR,
5285    ) -> CK_RV,
5286>;
5287pub type CK_C_SignMessageBegin = ::std::option::Option<
5288    unsafe extern "C" fn(
5289        hSession: CK_SESSION_HANDLE,
5290        pParameter: CK_VOID_PTR,
5291        ulParameterLen: CK_ULONG,
5292    ) -> CK_RV,
5293>;
5294pub type CK_C_SignMessageNext = ::std::option::Option<
5295    unsafe extern "C" fn(
5296        hSession: CK_SESSION_HANDLE,
5297        pParameter: CK_VOID_PTR,
5298        ulParameterLen: CK_ULONG,
5299        pData: CK_BYTE_PTR,
5300        ulDataLen: CK_ULONG,
5301        pSignature: CK_BYTE_PTR,
5302        pulSignatureLen: CK_ULONG_PTR,
5303    ) -> CK_RV,
5304>;
5305pub type CK_C_MessageSignFinal =
5306    ::std::option::Option<unsafe extern "C" fn(hSession: CK_SESSION_HANDLE) -> CK_RV>;
5307pub type CK_C_MessageVerifyInit = ::std::option::Option<
5308    unsafe extern "C" fn(
5309        hSession: CK_SESSION_HANDLE,
5310        pMechanism: CK_MECHANISM_PTR,
5311        hKey: CK_OBJECT_HANDLE,
5312    ) -> CK_RV,
5313>;
5314pub type CK_C_VerifyMessage = ::std::option::Option<
5315    unsafe extern "C" fn(
5316        hSession: CK_SESSION_HANDLE,
5317        pParameter: CK_VOID_PTR,
5318        ulParameterLen: CK_ULONG,
5319        pData: CK_BYTE_PTR,
5320        ulDataLen: CK_ULONG,
5321        pSignature: CK_BYTE_PTR,
5322        ulSignatureLen: CK_ULONG,
5323    ) -> CK_RV,
5324>;
5325pub type CK_C_VerifyMessageBegin = ::std::option::Option<
5326    unsafe extern "C" fn(
5327        hSession: CK_SESSION_HANDLE,
5328        pParameter: CK_VOID_PTR,
5329        ulParameterLen: CK_ULONG,
5330    ) -> CK_RV,
5331>;
5332pub type CK_C_VerifyMessageNext = ::std::option::Option<
5333    unsafe extern "C" fn(
5334        hSession: CK_SESSION_HANDLE,
5335        pParameter: CK_VOID_PTR,
5336        ulParameterLen: CK_ULONG,
5337        pData: CK_BYTE_PTR,
5338        ulDataLen: CK_ULONG,
5339        pSignature: CK_BYTE_PTR,
5340        ulSignatureLen: CK_ULONG,
5341    ) -> CK_RV,
5342>;
5343pub type CK_C_MessageVerifyFinal =
5344    ::std::option::Option<unsafe extern "C" fn(hSession: CK_SESSION_HANDLE) -> CK_RV>;
5345#[repr(C)]
5346#[derive(Debug, Default, Copy, Clone)]
5347pub struct CK_FUNCTION_LIST_3_0 {
5348    pub version: CK_VERSION,
5349    pub C_Initialize: CK_C_Initialize,
5350    pub C_Finalize: CK_C_Finalize,
5351    pub C_GetInfo: CK_C_GetInfo,
5352    pub C_GetFunctionList: CK_C_GetFunctionList,
5353    pub C_GetSlotList: CK_C_GetSlotList,
5354    pub C_GetSlotInfo: CK_C_GetSlotInfo,
5355    pub C_GetTokenInfo: CK_C_GetTokenInfo,
5356    pub C_GetMechanismList: CK_C_GetMechanismList,
5357    pub C_GetMechanismInfo: CK_C_GetMechanismInfo,
5358    pub C_InitToken: CK_C_InitToken,
5359    pub C_InitPIN: CK_C_InitPIN,
5360    pub C_SetPIN: CK_C_SetPIN,
5361    pub C_OpenSession: CK_C_OpenSession,
5362    pub C_CloseSession: CK_C_CloseSession,
5363    pub C_CloseAllSessions: CK_C_CloseAllSessions,
5364    pub C_GetSessionInfo: CK_C_GetSessionInfo,
5365    pub C_GetOperationState: CK_C_GetOperationState,
5366    pub C_SetOperationState: CK_C_SetOperationState,
5367    pub C_Login: CK_C_Login,
5368    pub C_Logout: CK_C_Logout,
5369    pub C_CreateObject: CK_C_CreateObject,
5370    pub C_CopyObject: CK_C_CopyObject,
5371    pub C_DestroyObject: CK_C_DestroyObject,
5372    pub C_GetObjectSize: CK_C_GetObjectSize,
5373    pub C_GetAttributeValue: CK_C_GetAttributeValue,
5374    pub C_SetAttributeValue: CK_C_SetAttributeValue,
5375    pub C_FindObjectsInit: CK_C_FindObjectsInit,
5376    pub C_FindObjects: CK_C_FindObjects,
5377    pub C_FindObjectsFinal: CK_C_FindObjectsFinal,
5378    pub C_EncryptInit: CK_C_EncryptInit,
5379    pub C_Encrypt: CK_C_Encrypt,
5380    pub C_EncryptUpdate: CK_C_EncryptUpdate,
5381    pub C_EncryptFinal: CK_C_EncryptFinal,
5382    pub C_DecryptInit: CK_C_DecryptInit,
5383    pub C_Decrypt: CK_C_Decrypt,
5384    pub C_DecryptUpdate: CK_C_DecryptUpdate,
5385    pub C_DecryptFinal: CK_C_DecryptFinal,
5386    pub C_DigestInit: CK_C_DigestInit,
5387    pub C_Digest: CK_C_Digest,
5388    pub C_DigestUpdate: CK_C_DigestUpdate,
5389    pub C_DigestKey: CK_C_DigestKey,
5390    pub C_DigestFinal: CK_C_DigestFinal,
5391    pub C_SignInit: CK_C_SignInit,
5392    pub C_Sign: CK_C_Sign,
5393    pub C_SignUpdate: CK_C_SignUpdate,
5394    pub C_SignFinal: CK_C_SignFinal,
5395    pub C_SignRecoverInit: CK_C_SignRecoverInit,
5396    pub C_SignRecover: CK_C_SignRecover,
5397    pub C_VerifyInit: CK_C_VerifyInit,
5398    pub C_Verify: CK_C_Verify,
5399    pub C_VerifyUpdate: CK_C_VerifyUpdate,
5400    pub C_VerifyFinal: CK_C_VerifyFinal,
5401    pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit,
5402    pub C_VerifyRecover: CK_C_VerifyRecover,
5403    pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate,
5404    pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate,
5405    pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate,
5406    pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate,
5407    pub C_GenerateKey: CK_C_GenerateKey,
5408    pub C_GenerateKeyPair: CK_C_GenerateKeyPair,
5409    pub C_WrapKey: CK_C_WrapKey,
5410    pub C_UnwrapKey: CK_C_UnwrapKey,
5411    pub C_DeriveKey: CK_C_DeriveKey,
5412    pub C_SeedRandom: CK_C_SeedRandom,
5413    pub C_GenerateRandom: CK_C_GenerateRandom,
5414    pub C_GetFunctionStatus: CK_C_GetFunctionStatus,
5415    pub C_CancelFunction: CK_C_CancelFunction,
5416    pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent,
5417    pub C_GetInterfaceList: CK_C_GetInterfaceList,
5418    pub C_GetInterface: CK_C_GetInterface,
5419    pub C_LoginUser: CK_C_LoginUser,
5420    pub C_SessionCancel: CK_C_SessionCancel,
5421    pub C_MessageEncryptInit: CK_C_MessageEncryptInit,
5422    pub C_EncryptMessage: CK_C_EncryptMessage,
5423    pub C_EncryptMessageBegin: CK_C_EncryptMessageBegin,
5424    pub C_EncryptMessageNext: CK_C_EncryptMessageNext,
5425    pub C_MessageEncryptFinal: CK_C_MessageEncryptFinal,
5426    pub C_MessageDecryptInit: CK_C_MessageDecryptInit,
5427    pub C_DecryptMessage: CK_C_DecryptMessage,
5428    pub C_DecryptMessageBegin: CK_C_DecryptMessageBegin,
5429    pub C_DecryptMessageNext: CK_C_DecryptMessageNext,
5430    pub C_MessageDecryptFinal: CK_C_MessageDecryptFinal,
5431    pub C_MessageSignInit: CK_C_MessageSignInit,
5432    pub C_SignMessage: CK_C_SignMessage,
5433    pub C_SignMessageBegin: CK_C_SignMessageBegin,
5434    pub C_SignMessageNext: CK_C_SignMessageNext,
5435    pub C_MessageSignFinal: CK_C_MessageSignFinal,
5436    pub C_MessageVerifyInit: CK_C_MessageVerifyInit,
5437    pub C_VerifyMessage: CK_C_VerifyMessage,
5438    pub C_VerifyMessageBegin: CK_C_VerifyMessageBegin,
5439    pub C_VerifyMessageNext: CK_C_VerifyMessageNext,
5440    pub C_MessageVerifyFinal: CK_C_MessageVerifyFinal,
5441}
5442#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5443const _: () = {
5444    ["Size of CK_FUNCTION_LIST_3_0"][::std::mem::size_of::<CK_FUNCTION_LIST_3_0>() - 744usize];
5445    ["Alignment of CK_FUNCTION_LIST_3_0"][::std::mem::align_of::<CK_FUNCTION_LIST_3_0>() - 8usize];
5446    ["Offset of field: CK_FUNCTION_LIST_3_0::version"]
5447        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, version) - 0usize];
5448    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Initialize"]
5449        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Initialize) - 8usize];
5450    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Finalize"]
5451        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Finalize) - 16usize];
5452    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetInfo"]
5453        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetInfo) - 24usize];
5454    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetFunctionList"]
5455        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetFunctionList) - 32usize];
5456    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetSlotList"]
5457        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetSlotList) - 40usize];
5458    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetSlotInfo"]
5459        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetSlotInfo) - 48usize];
5460    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetTokenInfo"]
5461        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetTokenInfo) - 56usize];
5462    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetMechanismList"]
5463        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetMechanismList) - 64usize];
5464    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetMechanismInfo"]
5465        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetMechanismInfo) - 72usize];
5466    ["Offset of field: CK_FUNCTION_LIST_3_0::C_InitToken"]
5467        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_InitToken) - 80usize];
5468    ["Offset of field: CK_FUNCTION_LIST_3_0::C_InitPIN"]
5469        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_InitPIN) - 88usize];
5470    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SetPIN"]
5471        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SetPIN) - 96usize];
5472    ["Offset of field: CK_FUNCTION_LIST_3_0::C_OpenSession"]
5473        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_OpenSession) - 104usize];
5474    ["Offset of field: CK_FUNCTION_LIST_3_0::C_CloseSession"]
5475        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_CloseSession) - 112usize];
5476    ["Offset of field: CK_FUNCTION_LIST_3_0::C_CloseAllSessions"]
5477        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_CloseAllSessions) - 120usize];
5478    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetSessionInfo"]
5479        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetSessionInfo) - 128usize];
5480    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetOperationState"]
5481        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetOperationState) - 136usize];
5482    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SetOperationState"]
5483        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SetOperationState) - 144usize];
5484    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Login"]
5485        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Login) - 152usize];
5486    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Logout"]
5487        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Logout) - 160usize];
5488    ["Offset of field: CK_FUNCTION_LIST_3_0::C_CreateObject"]
5489        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_CreateObject) - 168usize];
5490    ["Offset of field: CK_FUNCTION_LIST_3_0::C_CopyObject"]
5491        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_CopyObject) - 176usize];
5492    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DestroyObject"]
5493        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DestroyObject) - 184usize];
5494    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetObjectSize"]
5495        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetObjectSize) - 192usize];
5496    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetAttributeValue"]
5497        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetAttributeValue) - 200usize];
5498    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SetAttributeValue"]
5499        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SetAttributeValue) - 208usize];
5500    ["Offset of field: CK_FUNCTION_LIST_3_0::C_FindObjectsInit"]
5501        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_FindObjectsInit) - 216usize];
5502    ["Offset of field: CK_FUNCTION_LIST_3_0::C_FindObjects"]
5503        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_FindObjects) - 224usize];
5504    ["Offset of field: CK_FUNCTION_LIST_3_0::C_FindObjectsFinal"]
5505        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_FindObjectsFinal) - 232usize];
5506    ["Offset of field: CK_FUNCTION_LIST_3_0::C_EncryptInit"]
5507        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_EncryptInit) - 240usize];
5508    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Encrypt"]
5509        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Encrypt) - 248usize];
5510    ["Offset of field: CK_FUNCTION_LIST_3_0::C_EncryptUpdate"]
5511        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_EncryptUpdate) - 256usize];
5512    ["Offset of field: CK_FUNCTION_LIST_3_0::C_EncryptFinal"]
5513        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_EncryptFinal) - 264usize];
5514    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptInit"]
5515        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptInit) - 272usize];
5516    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Decrypt"]
5517        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Decrypt) - 280usize];
5518    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptUpdate"]
5519        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptUpdate) - 288usize];
5520    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptFinal"]
5521        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptFinal) - 296usize];
5522    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DigestInit"]
5523        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DigestInit) - 304usize];
5524    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Digest"]
5525        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Digest) - 312usize];
5526    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DigestUpdate"]
5527        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DigestUpdate) - 320usize];
5528    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DigestKey"]
5529        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DigestKey) - 328usize];
5530    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DigestFinal"]
5531        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DigestFinal) - 336usize];
5532    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignInit"]
5533        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignInit) - 344usize];
5534    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Sign"]
5535        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Sign) - 352usize];
5536    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignUpdate"]
5537        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignUpdate) - 360usize];
5538    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignFinal"]
5539        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignFinal) - 368usize];
5540    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignRecoverInit"]
5541        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignRecoverInit) - 376usize];
5542    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignRecover"]
5543        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignRecover) - 384usize];
5544    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyInit"]
5545        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyInit) - 392usize];
5546    ["Offset of field: CK_FUNCTION_LIST_3_0::C_Verify"]
5547        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_Verify) - 400usize];
5548    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyUpdate"]
5549        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyUpdate) - 408usize];
5550    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyFinal"]
5551        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyFinal) - 416usize];
5552    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyRecoverInit"]
5553        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyRecoverInit) - 424usize];
5554    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyRecover"]
5555        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyRecover) - 432usize];
5556    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DigestEncryptUpdate"]
5557        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DigestEncryptUpdate) - 440usize];
5558    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptDigestUpdate"]
5559        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptDigestUpdate) - 448usize];
5560    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignEncryptUpdate"]
5561        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignEncryptUpdate) - 456usize];
5562    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptVerifyUpdate"]
5563        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptVerifyUpdate) - 464usize];
5564    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GenerateKey"]
5565        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GenerateKey) - 472usize];
5566    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GenerateKeyPair"]
5567        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GenerateKeyPair) - 480usize];
5568    ["Offset of field: CK_FUNCTION_LIST_3_0::C_WrapKey"]
5569        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_WrapKey) - 488usize];
5570    ["Offset of field: CK_FUNCTION_LIST_3_0::C_UnwrapKey"]
5571        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_UnwrapKey) - 496usize];
5572    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DeriveKey"]
5573        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DeriveKey) - 504usize];
5574    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SeedRandom"]
5575        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SeedRandom) - 512usize];
5576    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GenerateRandom"]
5577        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GenerateRandom) - 520usize];
5578    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetFunctionStatus"]
5579        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetFunctionStatus) - 528usize];
5580    ["Offset of field: CK_FUNCTION_LIST_3_0::C_CancelFunction"]
5581        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_CancelFunction) - 536usize];
5582    ["Offset of field: CK_FUNCTION_LIST_3_0::C_WaitForSlotEvent"]
5583        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_WaitForSlotEvent) - 544usize];
5584    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetInterfaceList"]
5585        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetInterfaceList) - 552usize];
5586    ["Offset of field: CK_FUNCTION_LIST_3_0::C_GetInterface"]
5587        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_GetInterface) - 560usize];
5588    ["Offset of field: CK_FUNCTION_LIST_3_0::C_LoginUser"]
5589        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_LoginUser) - 568usize];
5590    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SessionCancel"]
5591        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SessionCancel) - 576usize];
5592    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageEncryptInit"]
5593        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageEncryptInit) - 584usize];
5594    ["Offset of field: CK_FUNCTION_LIST_3_0::C_EncryptMessage"]
5595        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_EncryptMessage) - 592usize];
5596    ["Offset of field: CK_FUNCTION_LIST_3_0::C_EncryptMessageBegin"]
5597        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_EncryptMessageBegin) - 600usize];
5598    ["Offset of field: CK_FUNCTION_LIST_3_0::C_EncryptMessageNext"]
5599        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_EncryptMessageNext) - 608usize];
5600    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageEncryptFinal"]
5601        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageEncryptFinal) - 616usize];
5602    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageDecryptInit"]
5603        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageDecryptInit) - 624usize];
5604    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptMessage"]
5605        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptMessage) - 632usize];
5606    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptMessageBegin"]
5607        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptMessageBegin) - 640usize];
5608    ["Offset of field: CK_FUNCTION_LIST_3_0::C_DecryptMessageNext"]
5609        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_DecryptMessageNext) - 648usize];
5610    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageDecryptFinal"]
5611        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageDecryptFinal) - 656usize];
5612    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageSignInit"]
5613        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageSignInit) - 664usize];
5614    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignMessage"]
5615        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignMessage) - 672usize];
5616    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignMessageBegin"]
5617        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignMessageBegin) - 680usize];
5618    ["Offset of field: CK_FUNCTION_LIST_3_0::C_SignMessageNext"]
5619        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_SignMessageNext) - 688usize];
5620    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageSignFinal"]
5621        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageSignFinal) - 696usize];
5622    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageVerifyInit"]
5623        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageVerifyInit) - 704usize];
5624    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyMessage"]
5625        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyMessage) - 712usize];
5626    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyMessageBegin"]
5627        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyMessageBegin) - 720usize];
5628    ["Offset of field: CK_FUNCTION_LIST_3_0::C_VerifyMessageNext"]
5629        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_VerifyMessageNext) - 728usize];
5630    ["Offset of field: CK_FUNCTION_LIST_3_0::C_MessageVerifyFinal"]
5631        [::std::mem::offset_of!(CK_FUNCTION_LIST_3_0, C_MessageVerifyFinal) - 736usize];
5632};
5633#[repr(C)]
5634#[derive(Debug, Default, Copy, Clone)]
5635pub struct CK_FUNCTION_LIST {
5636    pub version: CK_VERSION,
5637    pub C_Initialize: CK_C_Initialize,
5638    pub C_Finalize: CK_C_Finalize,
5639    pub C_GetInfo: CK_C_GetInfo,
5640    pub C_GetFunctionList: CK_C_GetFunctionList,
5641    pub C_GetSlotList: CK_C_GetSlotList,
5642    pub C_GetSlotInfo: CK_C_GetSlotInfo,
5643    pub C_GetTokenInfo: CK_C_GetTokenInfo,
5644    pub C_GetMechanismList: CK_C_GetMechanismList,
5645    pub C_GetMechanismInfo: CK_C_GetMechanismInfo,
5646    pub C_InitToken: CK_C_InitToken,
5647    pub C_InitPIN: CK_C_InitPIN,
5648    pub C_SetPIN: CK_C_SetPIN,
5649    pub C_OpenSession: CK_C_OpenSession,
5650    pub C_CloseSession: CK_C_CloseSession,
5651    pub C_CloseAllSessions: CK_C_CloseAllSessions,
5652    pub C_GetSessionInfo: CK_C_GetSessionInfo,
5653    pub C_GetOperationState: CK_C_GetOperationState,
5654    pub C_SetOperationState: CK_C_SetOperationState,
5655    pub C_Login: CK_C_Login,
5656    pub C_Logout: CK_C_Logout,
5657    pub C_CreateObject: CK_C_CreateObject,
5658    pub C_CopyObject: CK_C_CopyObject,
5659    pub C_DestroyObject: CK_C_DestroyObject,
5660    pub C_GetObjectSize: CK_C_GetObjectSize,
5661    pub C_GetAttributeValue: CK_C_GetAttributeValue,
5662    pub C_SetAttributeValue: CK_C_SetAttributeValue,
5663    pub C_FindObjectsInit: CK_C_FindObjectsInit,
5664    pub C_FindObjects: CK_C_FindObjects,
5665    pub C_FindObjectsFinal: CK_C_FindObjectsFinal,
5666    pub C_EncryptInit: CK_C_EncryptInit,
5667    pub C_Encrypt: CK_C_Encrypt,
5668    pub C_EncryptUpdate: CK_C_EncryptUpdate,
5669    pub C_EncryptFinal: CK_C_EncryptFinal,
5670    pub C_DecryptInit: CK_C_DecryptInit,
5671    pub C_Decrypt: CK_C_Decrypt,
5672    pub C_DecryptUpdate: CK_C_DecryptUpdate,
5673    pub C_DecryptFinal: CK_C_DecryptFinal,
5674    pub C_DigestInit: CK_C_DigestInit,
5675    pub C_Digest: CK_C_Digest,
5676    pub C_DigestUpdate: CK_C_DigestUpdate,
5677    pub C_DigestKey: CK_C_DigestKey,
5678    pub C_DigestFinal: CK_C_DigestFinal,
5679    pub C_SignInit: CK_C_SignInit,
5680    pub C_Sign: CK_C_Sign,
5681    pub C_SignUpdate: CK_C_SignUpdate,
5682    pub C_SignFinal: CK_C_SignFinal,
5683    pub C_SignRecoverInit: CK_C_SignRecoverInit,
5684    pub C_SignRecover: CK_C_SignRecover,
5685    pub C_VerifyInit: CK_C_VerifyInit,
5686    pub C_Verify: CK_C_Verify,
5687    pub C_VerifyUpdate: CK_C_VerifyUpdate,
5688    pub C_VerifyFinal: CK_C_VerifyFinal,
5689    pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit,
5690    pub C_VerifyRecover: CK_C_VerifyRecover,
5691    pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate,
5692    pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate,
5693    pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate,
5694    pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate,
5695    pub C_GenerateKey: CK_C_GenerateKey,
5696    pub C_GenerateKeyPair: CK_C_GenerateKeyPair,
5697    pub C_WrapKey: CK_C_WrapKey,
5698    pub C_UnwrapKey: CK_C_UnwrapKey,
5699    pub C_DeriveKey: CK_C_DeriveKey,
5700    pub C_SeedRandom: CK_C_SeedRandom,
5701    pub C_GenerateRandom: CK_C_GenerateRandom,
5702    pub C_GetFunctionStatus: CK_C_GetFunctionStatus,
5703    pub C_CancelFunction: CK_C_CancelFunction,
5704    pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent,
5705}
5706#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5707const _: () = {
5708    ["Size of CK_FUNCTION_LIST"][::std::mem::size_of::<CK_FUNCTION_LIST>() - 552usize];
5709    ["Alignment of CK_FUNCTION_LIST"][::std::mem::align_of::<CK_FUNCTION_LIST>() - 8usize];
5710    ["Offset of field: CK_FUNCTION_LIST::version"]
5711        [::std::mem::offset_of!(CK_FUNCTION_LIST, version) - 0usize];
5712    ["Offset of field: CK_FUNCTION_LIST::C_Initialize"]
5713        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Initialize) - 8usize];
5714    ["Offset of field: CK_FUNCTION_LIST::C_Finalize"]
5715        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Finalize) - 16usize];
5716    ["Offset of field: CK_FUNCTION_LIST::C_GetInfo"]
5717        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetInfo) - 24usize];
5718    ["Offset of field: CK_FUNCTION_LIST::C_GetFunctionList"]
5719        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetFunctionList) - 32usize];
5720    ["Offset of field: CK_FUNCTION_LIST::C_GetSlotList"]
5721        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetSlotList) - 40usize];
5722    ["Offset of field: CK_FUNCTION_LIST::C_GetSlotInfo"]
5723        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetSlotInfo) - 48usize];
5724    ["Offset of field: CK_FUNCTION_LIST::C_GetTokenInfo"]
5725        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetTokenInfo) - 56usize];
5726    ["Offset of field: CK_FUNCTION_LIST::C_GetMechanismList"]
5727        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetMechanismList) - 64usize];
5728    ["Offset of field: CK_FUNCTION_LIST::C_GetMechanismInfo"]
5729        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetMechanismInfo) - 72usize];
5730    ["Offset of field: CK_FUNCTION_LIST::C_InitToken"]
5731        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_InitToken) - 80usize];
5732    ["Offset of field: CK_FUNCTION_LIST::C_InitPIN"]
5733        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_InitPIN) - 88usize];
5734    ["Offset of field: CK_FUNCTION_LIST::C_SetPIN"]
5735        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SetPIN) - 96usize];
5736    ["Offset of field: CK_FUNCTION_LIST::C_OpenSession"]
5737        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_OpenSession) - 104usize];
5738    ["Offset of field: CK_FUNCTION_LIST::C_CloseSession"]
5739        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_CloseSession) - 112usize];
5740    ["Offset of field: CK_FUNCTION_LIST::C_CloseAllSessions"]
5741        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_CloseAllSessions) - 120usize];
5742    ["Offset of field: CK_FUNCTION_LIST::C_GetSessionInfo"]
5743        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetSessionInfo) - 128usize];
5744    ["Offset of field: CK_FUNCTION_LIST::C_GetOperationState"]
5745        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetOperationState) - 136usize];
5746    ["Offset of field: CK_FUNCTION_LIST::C_SetOperationState"]
5747        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SetOperationState) - 144usize];
5748    ["Offset of field: CK_FUNCTION_LIST::C_Login"]
5749        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Login) - 152usize];
5750    ["Offset of field: CK_FUNCTION_LIST::C_Logout"]
5751        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Logout) - 160usize];
5752    ["Offset of field: CK_FUNCTION_LIST::C_CreateObject"]
5753        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_CreateObject) - 168usize];
5754    ["Offset of field: CK_FUNCTION_LIST::C_CopyObject"]
5755        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_CopyObject) - 176usize];
5756    ["Offset of field: CK_FUNCTION_LIST::C_DestroyObject"]
5757        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DestroyObject) - 184usize];
5758    ["Offset of field: CK_FUNCTION_LIST::C_GetObjectSize"]
5759        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetObjectSize) - 192usize];
5760    ["Offset of field: CK_FUNCTION_LIST::C_GetAttributeValue"]
5761        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetAttributeValue) - 200usize];
5762    ["Offset of field: CK_FUNCTION_LIST::C_SetAttributeValue"]
5763        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SetAttributeValue) - 208usize];
5764    ["Offset of field: CK_FUNCTION_LIST::C_FindObjectsInit"]
5765        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_FindObjectsInit) - 216usize];
5766    ["Offset of field: CK_FUNCTION_LIST::C_FindObjects"]
5767        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_FindObjects) - 224usize];
5768    ["Offset of field: CK_FUNCTION_LIST::C_FindObjectsFinal"]
5769        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_FindObjectsFinal) - 232usize];
5770    ["Offset of field: CK_FUNCTION_LIST::C_EncryptInit"]
5771        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_EncryptInit) - 240usize];
5772    ["Offset of field: CK_FUNCTION_LIST::C_Encrypt"]
5773        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Encrypt) - 248usize];
5774    ["Offset of field: CK_FUNCTION_LIST::C_EncryptUpdate"]
5775        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_EncryptUpdate) - 256usize];
5776    ["Offset of field: CK_FUNCTION_LIST::C_EncryptFinal"]
5777        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_EncryptFinal) - 264usize];
5778    ["Offset of field: CK_FUNCTION_LIST::C_DecryptInit"]
5779        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DecryptInit) - 272usize];
5780    ["Offset of field: CK_FUNCTION_LIST::C_Decrypt"]
5781        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Decrypt) - 280usize];
5782    ["Offset of field: CK_FUNCTION_LIST::C_DecryptUpdate"]
5783        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DecryptUpdate) - 288usize];
5784    ["Offset of field: CK_FUNCTION_LIST::C_DecryptFinal"]
5785        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DecryptFinal) - 296usize];
5786    ["Offset of field: CK_FUNCTION_LIST::C_DigestInit"]
5787        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DigestInit) - 304usize];
5788    ["Offset of field: CK_FUNCTION_LIST::C_Digest"]
5789        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Digest) - 312usize];
5790    ["Offset of field: CK_FUNCTION_LIST::C_DigestUpdate"]
5791        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DigestUpdate) - 320usize];
5792    ["Offset of field: CK_FUNCTION_LIST::C_DigestKey"]
5793        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DigestKey) - 328usize];
5794    ["Offset of field: CK_FUNCTION_LIST::C_DigestFinal"]
5795        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DigestFinal) - 336usize];
5796    ["Offset of field: CK_FUNCTION_LIST::C_SignInit"]
5797        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SignInit) - 344usize];
5798    ["Offset of field: CK_FUNCTION_LIST::C_Sign"]
5799        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Sign) - 352usize];
5800    ["Offset of field: CK_FUNCTION_LIST::C_SignUpdate"]
5801        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SignUpdate) - 360usize];
5802    ["Offset of field: CK_FUNCTION_LIST::C_SignFinal"]
5803        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SignFinal) - 368usize];
5804    ["Offset of field: CK_FUNCTION_LIST::C_SignRecoverInit"]
5805        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SignRecoverInit) - 376usize];
5806    ["Offset of field: CK_FUNCTION_LIST::C_SignRecover"]
5807        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SignRecover) - 384usize];
5808    ["Offset of field: CK_FUNCTION_LIST::C_VerifyInit"]
5809        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_VerifyInit) - 392usize];
5810    ["Offset of field: CK_FUNCTION_LIST::C_Verify"]
5811        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_Verify) - 400usize];
5812    ["Offset of field: CK_FUNCTION_LIST::C_VerifyUpdate"]
5813        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_VerifyUpdate) - 408usize];
5814    ["Offset of field: CK_FUNCTION_LIST::C_VerifyFinal"]
5815        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_VerifyFinal) - 416usize];
5816    ["Offset of field: CK_FUNCTION_LIST::C_VerifyRecoverInit"]
5817        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_VerifyRecoverInit) - 424usize];
5818    ["Offset of field: CK_FUNCTION_LIST::C_VerifyRecover"]
5819        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_VerifyRecover) - 432usize];
5820    ["Offset of field: CK_FUNCTION_LIST::C_DigestEncryptUpdate"]
5821        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DigestEncryptUpdate) - 440usize];
5822    ["Offset of field: CK_FUNCTION_LIST::C_DecryptDigestUpdate"]
5823        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DecryptDigestUpdate) - 448usize];
5824    ["Offset of field: CK_FUNCTION_LIST::C_SignEncryptUpdate"]
5825        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SignEncryptUpdate) - 456usize];
5826    ["Offset of field: CK_FUNCTION_LIST::C_DecryptVerifyUpdate"]
5827        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DecryptVerifyUpdate) - 464usize];
5828    ["Offset of field: CK_FUNCTION_LIST::C_GenerateKey"]
5829        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GenerateKey) - 472usize];
5830    ["Offset of field: CK_FUNCTION_LIST::C_GenerateKeyPair"]
5831        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GenerateKeyPair) - 480usize];
5832    ["Offset of field: CK_FUNCTION_LIST::C_WrapKey"]
5833        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_WrapKey) - 488usize];
5834    ["Offset of field: CK_FUNCTION_LIST::C_UnwrapKey"]
5835        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_UnwrapKey) - 496usize];
5836    ["Offset of field: CK_FUNCTION_LIST::C_DeriveKey"]
5837        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_DeriveKey) - 504usize];
5838    ["Offset of field: CK_FUNCTION_LIST::C_SeedRandom"]
5839        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_SeedRandom) - 512usize];
5840    ["Offset of field: CK_FUNCTION_LIST::C_GenerateRandom"]
5841        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GenerateRandom) - 520usize];
5842    ["Offset of field: CK_FUNCTION_LIST::C_GetFunctionStatus"]
5843        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_GetFunctionStatus) - 528usize];
5844    ["Offset of field: CK_FUNCTION_LIST::C_CancelFunction"]
5845        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_CancelFunction) - 536usize];
5846    ["Offset of field: CK_FUNCTION_LIST::C_WaitForSlotEvent"]
5847        [::std::mem::offset_of!(CK_FUNCTION_LIST, C_WaitForSlotEvent) - 544usize];
5848};