cryptoki-sys-0.1.7/.cargo_vcs_info.json0000644000000001520000000000100135170ustar { "git": { "sha1": "3e7c089c939f8fdc749c956aee7c1bb967a56b00" }, "path_in_vcs": "cryptoki-sys" }cryptoki-sys-0.1.7/Cargo.toml0000644000000021630000000000100115210ustar # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g., crates.io) dependencies. # # If you are reading this file be aware that the original Cargo.toml # will likely look very different (and much more reasonable). # See Cargo.toml.orig for the original contents. [package] edition = "2018" rust-version = "1.66.0" name = "cryptoki-sys" version = "0.1.7" authors = ["Contributors to the Parsec project"] description = "FFI wrapper around the PKCS #11 API" documentation = "https://docs.rs/crate/cryptoki-sys" readme = "README.md" keywords = [ "pkcs11", "cryptoki", "hsm", ] categories = [ "api-bindings", "external-ffi-bindings", "cryptography", "hardware-support", ] license = "Apache-2.0" repository = "https://github.com/parallaxsecond/rust-cryptoki" [dependencies.libloading] version = "0.7.0" [build-dependencies.bindgen] version = "0.66.1" optional = true [features] generate-bindings = ["bindgen"] cryptoki-sys-0.1.7/Cargo.toml.orig000064400000000000000000000011751046102023000152040ustar 00000000000000[package] name = "cryptoki-sys" version = "0.1.7" authors = ["Contributors to the Parsec project"] edition = '2018' description = "FFI wrapper around the PKCS #11 API" readme = "README.md" keywords = ["pkcs11", "cryptoki", "hsm"] categories = ["api-bindings", "external-ffi-bindings", "cryptography", "hardware-support"] license = "Apache-2.0" repository = "https://github.com/parallaxsecond/rust-cryptoki" documentation = "https://docs.rs/crate/cryptoki-sys" rust-version = "1.66.0" [build-dependencies] bindgen = { version = "0.66.1", optional = true } [dependencies] libloading = "0.7.0" [features] generate-bindings = ["bindgen"] cryptoki-sys-0.1.7/LICENSE000064400000000000000000000261361046102023000133260ustar 00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. cryptoki-sys-0.1.7/README.md000064400000000000000000000021211046102023000135640ustar 00000000000000# Cryptoki Rust Wrapper

Crates.io Code documentation

This is the low-level wrapper crate for PKCS #11 exposing the bindgen types. ## Generating bindings The FFI bindings presented by this crate can be either those committed in the crate under `src/bindings` or generated on the fly from the `pkcs11.h` file at build time. For generating the bindings at build time please enable the `generate-bindings` feature, as it is not enabled by default. NOTE: Only a limited set of bindings are committed and their target triplet is included in the name of the file - if the triplet you require is not available, feel free to raise a Pull Request to add it or to use build-time generation of bindings. All the committed bindings **MUST** be generated from the library version found under the `vendor` submodule. *Copyright 2021 Contributors to the Parsec project.* cryptoki-sys-0.1.7/build.rs000064400000000000000000000103441046102023000137600ustar 00000000000000// Copyright 2021,2023 Contributors to the Parsec project. // SPDX-License-Identifier: Apache-2.0 fn main() { #[cfg(feature = "generate-bindings")] { generate::generate_bindings(); } } // Only on a specific feature #[cfg(feature = "generate-bindings")] mod generate { use bindgen::callbacks; #[derive(Debug)] pub struct CargoCallbacks; impl callbacks::ParseCallbacks for CargoCallbacks { fn int_macro(&self, name: &str, _: i64) -> Option { let prefixes = [ ("CK_", "CK_ULONG"), ("CKA_", "CK_ATTRIBUTE_TYPE"), ("CKC_", "CK_CERTIFICATE_TYPE"), ("CKD_", "CK_EC_KDF_TYPE"), ("CKF_", "CK_FLAGS"), ("CKG_MGF1_", "CK_RSA_PKCS_MGF_TYPE"), ("CKH_", "CK_HW_FEATURE_TYPE"), ("CKK_", "CK_KEY_TYPE"), ("CKM_", "CK_MECHANISM_TYPE"), ("CKN_", "CK_NOTIFICATION"), ("CKO_", "CK_OBJECT_CLASS"), ("CKP_", "CK_PROFILE_ID"), ("CKR_", "CK_RV"), ("CKS_", "CK_STATE"), ("CKU_", "CK_USER_TYPE"), ("CKZ_", "CK_RSA_PKCS_OAEP_SOURCE_TYPE"), ("CRYPTOKI_VERSION_", "CK_BYTE"), ]; if ["CK_TRUE", "CK_FALSE"].contains(&name) { Some(callbacks::IntKind::Custom { name: "CK_BBOOL", is_signed: false, }) } else { let mut result = None; for (prefix, variable) in &prefixes { if name.starts_with(prefix) { result = Some(callbacks::IntKind::Custom { name: variable, is_signed: false, }) } } result } } } pub fn generate_bindings() { let make_generic: bool = std::env::var_os("MAKE_GENERIC_BINDINGS").is_some(); let mut builder = bindgen::Builder::default(); if make_generic { // only WIN32 bindings are "packed". It's easier to "unpack" for other architectures // __declspec is not needed and causes problems const GENERIC_PRELUDE: &str = "#define _WIN32 1\n#define __declspec(x)\n"; builder = builder // layout tests are not generic .layout_tests(false) .header_contents("generic-prelude.h", GENERIC_PRELUDE) } builder = builder .header("pkcs11.h") .dynamic_library_name("Pkcs11") // The PKCS11 library works in a slightly different way to most shared libraries. We have // to call `C_GetFunctionList`, which returns a list of pointers to the _actual_ library // functions. This is the only function we need to create a binding for. .allowlist_function("C_GetFunctionList") // This is needed because no types will be generated if `allowlist_function` is used. // Unsure if this is a bug. .allowlist_type("*") .allowlist_file("pkcs11.h") // See this issue: https://github.com/parallaxsecond/rust-cryptoki/issues/12 .blocklist_type("max_align_t") // Derive the `Debug` trait for the generated structs where possible. .derive_debug(true) // Derive the `Default` trait for the generated structs where possible. .derive_default(true) .parse_callbacks(Box::new(CargoCallbacks)); let bindings = builder.generate().expect("Unable to generate bindings"); let mut data = bindings.to_string(); if make_generic { const PACK_ALWAYS: &str = "#[repr(C, packed)]"; const PACK_WINDOWS: &str = "#[repr(C)]\n#[cfg_attr(windows, repr(packed))]"; data = data.replace(PACK_ALWAYS, PACK_WINDOWS); } // Write the bindings to the $OUT_DIR/pkcs11_bindings.rs file. let out_path = std::path::PathBuf::from(std::env::var("OUT_DIR").unwrap()); std::fs::write(out_path.join("pkcs11_bindings.rs"), data) .expect("Couldn't write bindings!"); } } cryptoki-sys-0.1.7/pkcs11.h000064400000000000000000001556701046102023000136020ustar 00000000000000/* pkcs11.h Copyright 2006, 2007 g10 Code GmbH Copyright 2006 Andreas Jellinghaus Copyright 2017 Red Hat, Inc. This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, to the extent permitted by law; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /* Please submit any changes back to the p11-kit project at https://github.com/p11-glue/p11-kit/, so that they can be picked up by other projects from there as well. */ /* This file is a modified implementation of the PKCS #11 standard by OASIS group. It is mostly a drop-in replacement, with the following change: This header file does not require any macro definitions by the user (like CK_DEFINE_FUNCTION etc). In fact, it defines those macros for you (if useful, some are missing, let me know if you need more). There is an additional API available that does comply better to the GNU coding standard. It can be switched on by defining CRYPTOKI_GNU before including this header file. For this, the following changes are made to the specification: All structure types are changed to a "struct ck_foo" where CK_FOO is the type name in PKCS #11. All non-structure types are changed to ck_foo_t where CK_FOO is the lowercase version of the type name in PKCS #11. The basic types (CK_ULONG et al.) are removed without substitute. All members of structures are modified in the following way: Type indication prefixes are removed, and underscore characters are inserted before words. Then the result is lowercased. Note that function names are still in the original case, as they need for ABI compatibility. CK_FALSE, CK_TRUE and NULL_PTR are removed without substitute. Use . If CRYPTOKI_COMPAT is defined before including this header file, then none of the API changes above take place, and the API is the one defined by the PKCS #11 standard. */ #ifndef PKCS11_H #define PKCS11_H 1 #if defined(__cplusplus) extern "C" { #endif /* The version of cryptoki we implement. The revision is changed with each modification of this file. */ #define CRYPTOKI_VERSION_MAJOR 2 #define CRYPTOKI_VERSION_MINOR 40 #define P11_KIT_CRYPTOKI_VERSION_REVISION 0 /* Compatibility interface is default, unless CRYPTOKI_GNU is given. */ #ifndef CRYPTOKI_GNU #ifndef CRYPTOKI_COMPAT #define CRYPTOKI_COMPAT 1 #endif #endif /* System dependencies. */ #if defined(_WIN32) || defined(CRYPTOKI_FORCE_WIN32) /* There is a matching pop below. */ #pragma pack(push, cryptoki, 1) #ifdef CRYPTOKI_EXPORTS #define CK_SPEC __declspec(dllexport) #else #define CK_SPEC __declspec(dllimport) #endif #else #define CK_SPEC #endif #ifdef CRYPTOKI_COMPAT /* If we are in compatibility mode, switch all exposed names to the PKCS #11 variant. There are corresponding #undefs below. */ #define ck_flags_t CK_FLAGS #define ck_version _CK_VERSION #define ck_info _CK_INFO #define cryptoki_version cryptokiVersion #define manufacturer_id manufacturerID #define library_description libraryDescription #define library_version libraryVersion #define ck_notification_t CK_NOTIFICATION #define ck_slot_id_t CK_SLOT_ID #define ck_slot_info _CK_SLOT_INFO #define slot_description slotDescription #define hardware_version hardwareVersion #define firmware_version firmwareVersion #define ck_token_info _CK_TOKEN_INFO #define serial_number serialNumber #define max_session_count ulMaxSessionCount #define session_count ulSessionCount #define max_rw_session_count ulMaxRwSessionCount #define rw_session_count ulRwSessionCount #define max_pin_len ulMaxPinLen #define min_pin_len ulMinPinLen #define total_public_memory ulTotalPublicMemory #define free_public_memory ulFreePublicMemory #define total_private_memory ulTotalPrivateMemory #define free_private_memory ulFreePrivateMemory #define utc_time utcTime #define ck_session_handle_t CK_SESSION_HANDLE #define ck_user_type_t CK_USER_TYPE #define ck_state_t CK_STATE #define ck_session_info _CK_SESSION_INFO #define slot_id slotID #define device_error ulDeviceError #define ck_object_handle_t CK_OBJECT_HANDLE #define ck_object_class_t CK_OBJECT_CLASS #define ck_hw_feature_type_t CK_HW_FEATURE_TYPE #define ck_key_type_t CK_KEY_TYPE #define ck_certificate_type_t CK_CERTIFICATE_TYPE #define ck_attribute_type_t CK_ATTRIBUTE_TYPE #define ck_attribute _CK_ATTRIBUTE #define value pValue #define value_len ulValueLen #define count ulCount #define ck_date _CK_DATE #define ck_mechanism_type_t CK_MECHANISM_TYPE #define ck_mechanism _CK_MECHANISM #define parameter pParameter #define parameter_len ulParameterLen #define params pParams #define ck_mechanism_info _CK_MECHANISM_INFO #define min_key_size ulMinKeySize #define max_key_size ulMaxKeySize #define ck_param_type CK_PARAM_TYPE #define ck_otp_param CK_OTP_PARAM #define ck_otp_params CK_OTP_PARAMS #define ck_otp_signature_info CK_OTP_SIGNATURE_INFO #define ck_rv_t CK_RV #define ck_notify_t CK_NOTIFY #define ck_function_list _CK_FUNCTION_LIST #define ck_createmutex_t CK_CREATEMUTEX #define ck_destroymutex_t CK_DESTROYMUTEX #define ck_lockmutex_t CK_LOCKMUTEX #define ck_unlockmutex_t CK_UNLOCKMUTEX #define ck_c_initialize_args _CK_C_INITIALIZE_ARGS #define create_mutex CreateMutex #define destroy_mutex DestroyMutex #define lock_mutex LockMutex #define unlock_mutex UnlockMutex #define reserved pReserved #define ck_rsa_pkcs_mgf_type_t CK_RSA_PKCS_MGF_TYPE #define ck_rsa_pkcs_oaep_source_type_t CK_RSA_PKCS_OAEP_SOURCE_TYPE #define hash_alg hashAlg #define s_len sLen #define source_data pSourceData #define source_data_len ulSourceDataLen #define counter_bits ulCounterBits #define iv_ptr pIv #define iv_len ulIvLen #define iv_bits ulIvBits #define aad_ptr pAAD #define aad_len ulAADLen #define tag_bits ulTagBits #define shared_data_len ulSharedDataLen #define shared_data pSharedData #define public_data_len ulPublicDataLen #define public_data pPublicData #define string_data pData #define string_data_len ulLen #define data_params pData #endif /* CRYPTOKI_COMPAT */ typedef unsigned long ck_flags_t; struct ck_version { unsigned char major; unsigned char minor; }; struct ck_info { struct ck_version cryptoki_version; unsigned char manufacturer_id[32]; ck_flags_t flags; unsigned char library_description[32]; struct ck_version library_version; }; typedef unsigned long ck_notification_t; const unsigned long CKN_SURRENDER = 0UL; typedef unsigned long ck_slot_id_t; struct ck_slot_info { unsigned char slot_description[64]; unsigned char manufacturer_id[32]; ck_flags_t flags; struct ck_version hardware_version; struct ck_version firmware_version; }; const unsigned long CKF_TOKEN_PRESENT = 1UL << 0; const unsigned long CKF_REMOVABLE_DEVICE = 1UL << 1; const unsigned long CKF_HW_SLOT = 1UL << 2; const unsigned long CKF_ARRAY_ATTRIBUTE = 1UL << 30; struct ck_token_info { unsigned char label[32]; unsigned char manufacturer_id[32]; unsigned char model[16]; unsigned char serial_number[16]; ck_flags_t flags; unsigned long max_session_count; unsigned long session_count; unsigned long max_rw_session_count; unsigned long rw_session_count; unsigned long max_pin_len; unsigned long min_pin_len; unsigned long total_public_memory; unsigned long free_public_memory; unsigned long total_private_memory; unsigned long free_private_memory; struct ck_version hardware_version; struct ck_version firmware_version; unsigned char utc_time[16]; }; #define CKF_RNG (1UL << 0) #define CKF_WRITE_PROTECTED (1UL << 1) #define CKF_LOGIN_REQUIRED (1UL << 2) #define CKF_USER_PIN_INITIALIZED (1UL << 3) #define CKF_RESTORE_KEY_NOT_NEEDED (1UL << 5) #define CKF_CLOCK_ON_TOKEN (1UL << 6) #define CKF_PROTECTED_AUTHENTICATION_PATH (1UL << 8) #define CKF_DUAL_CRYPTO_OPERATIONS (1UL << 9) #define CKF_TOKEN_INITIALIZED (1UL << 10) #define CKF_SECONDARY_AUTHENTICATION (1UL << 11) #define CKF_USER_PIN_COUNT_LOW (1UL << 16) #define CKF_USER_PIN_FINAL_TRY (1UL << 17) #define CKF_USER_PIN_LOCKED (1UL << 18) #define CKF_USER_PIN_TO_BE_CHANGED (1UL << 19) #define CKF_SO_PIN_COUNT_LOW (1UL << 20) #define CKF_SO_PIN_FINAL_TRY (1UL << 21) #define CKF_SO_PIN_LOCKED (1UL << 22) #define CKF_SO_PIN_TO_BE_CHANGED (1UL << 23) #define CKF_ERROR_STATE (1UL << 24) #define CK_UNAVAILABLE_INFORMATION ((unsigned long)-1L) #define CK_EFFECTIVELY_INFINITE (0UL) typedef unsigned long ck_session_handle_t; #define CK_INVALID_HANDLE (0UL) typedef unsigned long ck_user_type_t; #define CKU_SO (0UL) #define CKU_USER (1UL) #define CKU_CONTEXT_SPECIFIC (2UL) typedef unsigned long ck_state_t; #define CKS_RO_PUBLIC_SESSION (0UL) #define CKS_RO_USER_FUNCTIONS (1UL) #define CKS_RW_PUBLIC_SESSION (2UL) #define CKS_RW_USER_FUNCTIONS (3UL) #define CKS_RW_SO_FUNCTIONS (4UL) struct ck_session_info { ck_slot_id_t slot_id; ck_state_t state; ck_flags_t flags; unsigned long device_error; }; #define CKF_RW_SESSION (1UL << 1) #define CKF_SERIAL_SESSION (1UL << 2) typedef unsigned long ck_object_handle_t; typedef unsigned long ck_object_class_t; #define CKO_DATA (0UL) #define CKO_CERTIFICATE (1UL) #define CKO_PUBLIC_KEY (2UL) #define CKO_PRIVATE_KEY (3UL) #define CKO_SECRET_KEY (4UL) #define CKO_HW_FEATURE (5UL) #define CKO_DOMAIN_PARAMETERS (6UL) #define CKO_MECHANISM (7UL) #define CKO_OTP_KEY (8UL) #define CKO_VENDOR_DEFINED ((unsigned long) (1UL << 31)) typedef unsigned long ck_hw_feature_type_t; #define CKH_MONOTONIC_COUNTER (1UL) #define CKH_CLOCK (2UL) #define CKH_USER_INTERFACE (3UL) #define CKH_VENDOR_DEFINED ((unsigned long) (1UL << 31)) typedef unsigned long ck_key_type_t; #define CKK_RSA (0UL) #define CKK_DSA (1UL) #define CKK_DH (2UL) #define CKK_ECDSA (3UL) #define CKK_EC (3UL) #define CKK_X9_42_DH (4UL) #define CKK_KEA (5UL) #define CKK_GENERIC_SECRET (0x10UL) #define CKK_RC2 (0x11UL) #define CKK_RC4 (0x12UL) #define CKK_DES (0x13UL) #define CKK_DES2 (0x14UL) #define CKK_DES3 (0x15UL) #define CKK_CAST (0x16UL) #define CKK_CAST3 (0x17UL) #define CKK_CAST128 (0x18UL) #define CKK_RC5 (0x19UL) #define CKK_IDEA (0x1aUL) #define CKK_SKIPJACK (0x1bUL) #define CKK_BATON (0x1cUL) #define CKK_JUNIPER (0x1dUL) #define CKK_CDMF (0x1eUL) #define CKK_AES (0x1fUL) #define CKK_BLOWFISH (0x20UL) #define CKK_TWOFISH (0x21UL) #define CKK_SECURID (0x22UL) #define CKK_HOTP (0x23UL) #define CKK_ACTI (0x24UL) #define CKK_CAMELLIA (0x25UL) #define CKK_ARIA (0x26UL) #define CKK_MD5_HMAC (0x27UL) #define CKK_SHA_1_HMAC (0x28UL) #define CKK_RIPEMD128_HMAC (0x29UL) #define CKK_RIPEMD160_HMAC (0x2aUL) #define CKK_SHA256_HMAC (0x2bUL) #define CKK_SHA384_HMAC (0x2cUL) #define CKK_SHA512_HMAC (0x2dUL) #define CKK_SHA224_HMAC (0x2eUL) #define CKK_SEED (0x2fUL) #define CKK_GOSTR3410 (0x30UL) #define CKK_GOSTR3411 (0x31UL) #define CKK_GOST28147 (0x32UL) #define CKK_EC_EDWARDS (0x40UL) #define CKK_VENDOR_DEFINED ((unsigned long) (1UL << 31)) typedef unsigned long ck_certificate_type_t; #define CKC_X_509 (0UL) #define CKC_X_509_ATTR_CERT (1UL) #define CKC_WTLS (2UL) #define CKC_VENDOR_DEFINED ((unsigned long) (1UL << 31)) #define CKC_OPENPGP (CKC_VENDOR_DEFINED|0x504750UL) typedef unsigned long ck_attribute_type_t; #define CKA_CLASS (0UL) #define CKA_TOKEN (1UL) #define CKA_PRIVATE (2UL) #define CKA_LABEL (3UL) #define CKA_APPLICATION (0x10UL) #define CKA_VALUE (0x11UL) #define CKA_OBJECT_ID (0x12UL) #define CKA_CERTIFICATE_TYPE (0x80UL) #define CKA_ISSUER (0x81UL) #define CKA_SERIAL_NUMBER (0x82UL) #define CKA_AC_ISSUER (0x83UL) #define CKA_OWNER (0x84UL) #define CKA_ATTR_TYPES (0x85UL) #define CKA_TRUSTED (0x86UL) #define CKA_CERTIFICATE_CATEGORY (0x87UL) #define CKA_JAVA_MIDP_SECURITY_DOMAIN (0x88UL) #define CKA_URL (0x89UL) #define CKA_HASH_OF_SUBJECT_PUBLIC_KEY (0x8aUL) #define CKA_HASH_OF_ISSUER_PUBLIC_KEY (0x8bUL) #define CKA_NAME_HASH_ALGORITHM (0x8cUL) #define CKA_CHECK_VALUE (0x90UL) #define CKA_KEY_TYPE (0x100UL) #define CKA_SUBJECT (0x101UL) #define CKA_ID (0x102UL) #define CKA_SENSITIVE (0x103UL) #define CKA_ENCRYPT (0x104UL) #define CKA_DECRYPT (0x105UL) #define CKA_WRAP (0x106UL) #define CKA_UNWRAP (0x107UL) #define CKA_SIGN (0x108UL) #define CKA_SIGN_RECOVER (0x109UL) #define CKA_VERIFY (0x10aUL) #define CKA_VERIFY_RECOVER (0x10bUL) #define CKA_DERIVE (0x10cUL) #define CKA_START_DATE (0x110UL) #define CKA_END_DATE (0x111UL) #define CKA_MODULUS (0x120UL) #define CKA_MODULUS_BITS (0x121UL) #define CKA_PUBLIC_EXPONENT (0x122UL) #define CKA_PRIVATE_EXPONENT (0x123UL) #define CKA_PRIME_1 (0x124UL) #define CKA_PRIME_2 (0x125UL) #define CKA_EXPONENT_1 (0x126UL) #define CKA_EXPONENT_2 (0x127UL) #define CKA_COEFFICIENT (0x128UL) #define CKA_PUBLIC_KEY_INFO (0x129UL) #define CKA_PRIME (0x130UL) #define CKA_SUBPRIME (0x131UL) #define CKA_BASE (0x132UL) #define CKA_PRIME_BITS (0x133UL) #define CKA_SUB_PRIME_BITS (0x134UL) #define CKA_VALUE_BITS (0x160UL) #define CKA_VALUE_LEN (0x161UL) #define CKA_EXTRACTABLE (0x162UL) #define CKA_LOCAL (0x163UL) #define CKA_NEVER_EXTRACTABLE (0x164UL) #define CKA_ALWAYS_SENSITIVE (0x165UL) #define CKA_KEY_GEN_MECHANISM (0x166UL) #define CKA_MODIFIABLE (0x170UL) #define CKA_COPYABLE (0x171UL) #define CKA_DESTROYABLE (0x172UL) #define CKA_ECDSA_PARAMS (0x180UL) #define CKA_EC_PARAMS (0x180UL) #define CKA_EC_POINT (0x181UL) #define CKA_SECONDARY_AUTH (0x200UL) #define CKA_AUTH_PIN_FLAGS (0x201UL) #define CKA_ALWAYS_AUTHENTICATE (0x202UL) #define CKA_WRAP_WITH_TRUSTED (0x210UL) #define CKA_OTP_FORMAT (0x220UL) #define CKA_OTP_LENGTH (0x221UL) #define CKA_OTP_TIME_INTERVAL (0x222UL) #define CKA_OTP_USER_FRIENDLY_MODE (0x223UL) #define CKA_OTP_CHALLENGE_REQUIREMENT (0x224UL) #define CKA_OTP_TIME_REQUIREMENT (0x225UL) #define CKA_OTP_COUNTER_REQUIREMENT (0x226UL) #define CKA_OTP_PIN_REQUIREMENT (0x227UL) #define CKA_OTP_USER_IDENTIFIER (0x22AUL) #define CKA_OTP_SERVICE_IDENTIFIER (0x22BUL) #define CKA_OTP_SERVICE_LOGO (0x22CUL) #define CKA_OTP_SERVICE_LOGO_TYPE (0x22DUL) #define CKA_OTP_COUNTER (0x22EUL) #define CKA_OTP_TIME (0x22FUL) #define CKA_GOSTR3410_PARAMS (0x250UL) #define CKA_GOSTR3411_PARAMS (0x251UL) #define CKA_GOST28147_PARAMS (0x252UL) #define CKA_HW_FEATURE_TYPE (0x300UL) #define CKA_RESET_ON_INIT (0x301UL) #define CKA_HAS_RESET (0x302UL) #define CKA_PIXEL_X (0x400UL) #define CKA_PIXEL_Y (0x401UL) #define CKA_RESOLUTION (0x402UL) #define CKA_CHAR_ROWS (0x403UL) #define CKA_CHAR_COLUMNS (0x404UL) #define CKA_COLOR (0x405UL) #define CKA_BITS_PER_PIXEL (0x406UL) #define CKA_CHAR_SETS (0x480UL) #define CKA_ENCODING_METHODS (0x481UL) #define CKA_MIME_TYPES (0x482UL) #define CKA_MECHANISM_TYPE (0x500UL) #define CKA_REQUIRED_CMS_ATTRIBUTES (0x501UL) #define CKA_DEFAULT_CMS_ATTRIBUTES (0x502UL) #define CKA_SUPPORTED_CMS_ATTRIBUTES (0x503UL) #define CKA_WRAP_TEMPLATE (CKF_ARRAY_ATTRIBUTE | 0x211UL) #define CKA_UNWRAP_TEMPLATE (CKF_ARRAY_ATTRIBUTE | 0x212UL) #define CKA_DERIVE_TEMPLATE (CKF_ARRAY_ATTRIBUTE | 0x213UL) #define CKA_ALLOWED_MECHANISMS (CKF_ARRAY_ATTRIBUTE | 0x600UL) #define CKA_VENDOR_DEFINED ((unsigned long) (1UL << 31)) struct ck_attribute { ck_attribute_type_t type; void *value; unsigned long value_len; }; struct ck_date { unsigned char year[4]; unsigned char month[2]; unsigned char day[2]; }; typedef unsigned long ck_mechanism_type_t; #define CKM_RSA_PKCS_KEY_PAIR_GEN (0UL) #define CKM_RSA_PKCS (1UL) #define CKM_RSA_9796 (2UL) #define CKM_RSA_X_509 (3UL) #define CKM_MD2_RSA_PKCS (4UL) #define CKM_MD5_RSA_PKCS (5UL) #define CKM_SHA1_RSA_PKCS (6UL) #define CKM_RIPEMD128_RSA_PKCS (7UL) #define CKM_RIPEMD160_RSA_PKCS (8UL) #define CKM_RSA_PKCS_OAEP (9UL) #define CKM_RSA_X9_31_KEY_PAIR_GEN (0xaUL) #define CKM_RSA_X9_31 (0xbUL) #define CKM_SHA1_RSA_X9_31 (0xcUL) #define CKM_RSA_PKCS_PSS (0xdUL) #define CKM_SHA1_RSA_PKCS_PSS (0xeUL) #define CKM_DSA_KEY_PAIR_GEN (0x10UL) #define CKM_DSA (0x11UL) #define CKM_DSA_SHA1 (0x12UL) #define CKM_DSA_SHA224 (0x13UL) #define CKM_DSA_SHA256 (0x14UL) #define CKM_DSA_SHA384 (0x15UL) #define CKM_DSA_SHA512 (0x16UL) #define CKM_DH_PKCS_KEY_PAIR_GEN (0x20UL) #define CKM_DH_PKCS_DERIVE (0x21UL) #define CKM_X9_42_DH_KEY_PAIR_GEN (0x30UL) #define CKM_X9_42_DH_DERIVE (0x31UL) #define CKM_X9_42_DH_HYBRID_DERIVE (0x32UL) #define CKM_X9_42_MQV_DERIVE (0x33UL) #define CKM_SHA256_RSA_PKCS (0x40UL) #define CKM_SHA384_RSA_PKCS (0x41UL) #define CKM_SHA512_RSA_PKCS (0x42UL) #define CKM_SHA256_RSA_PKCS_PSS (0x43UL) #define CKM_SHA384_RSA_PKCS_PSS (0x44UL) #define CKM_SHA512_RSA_PKCS_PSS (0x45UL) #define CKM_SHA512_224 (0x48UL) #define CKM_SHA512_224_HMAC (0x49UL) #define CKM_SHA512_224_HMAC_GENERAL (0x4aUL) #define CKM_SHA512_224_KEY_DERIVATION (0x4bUL) #define CKM_SHA512_256 (0x4cUL) #define CKM_SHA512_256_HMAC (0x4dUL) #define CKM_SHA512_256_HMAC_GENERAL (0x4eUL) #define CKM_SHA512_256_KEY_DERIVATION (0x4fUL) #define CKM_SHA512_T (0x50UL) #define CKM_SHA512_T_HMAC (0x51UL) #define CKM_SHA512_T_HMAC_GENERAL (0x52UL) #define CKM_SHA512_T_KEY_DERIVATION (0x53UL) #define CKM_RC2_KEY_GEN (0x100UL) #define CKM_RC2_ECB (0x101UL) #define CKM_RC2_CBC (0x102UL) #define CKM_RC2_MAC (0x103UL) #define CKM_RC2_MAC_GENERAL (0x104UL) #define CKM_RC2_CBC_PAD (0x105UL) #define CKM_RC4_KEY_GEN (0x110UL) #define CKM_RC4 (0x111UL) #define CKM_DES_KEY_GEN (0x120UL) #define CKM_DES_ECB (0x121UL) #define CKM_DES_CBC (0x122UL) #define CKM_DES_MAC (0x123UL) #define CKM_DES_MAC_GENERAL (0x124UL) #define CKM_DES_CBC_PAD (0x125UL) #define CKM_DES2_KEY_GEN (0x130UL) #define CKM_DES3_KEY_GEN (0x131UL) #define CKM_DES3_ECB (0x132UL) #define CKM_DES3_CBC (0x133UL) #define CKM_DES3_MAC (0x134UL) #define CKM_DES3_MAC_GENERAL (0x135UL) #define CKM_DES3_CBC_PAD (0x136UL) #define CKM_DES3_CMAC_GENERAL (0x137UL) #define CKM_DES3_CMAC (0x138UL) #define CKM_CDMF_KEY_GEN (0x140UL) #define CKM_CDMF_ECB (0x141UL) #define CKM_CDMF_CBC (0x142UL) #define CKM_CDMF_MAC (0x143UL) #define CKM_CDMF_MAC_GENERAL (0x144UL) #define CKM_CDMF_CBC_PAD (0x145UL) #define CKM_DES_OFB64 (0x150UL) #define CKM_DES_OFB8 (0x151UL) #define CKM_DES_CFB64 (0x152UL) #define CKM_DES_CFB8 (0x153UL) #define CKM_MD2 (0x200UL) #define CKM_MD2_HMAC (0x201UL) #define CKM_MD2_HMAC_GENERAL (0x202UL) #define CKM_MD5 (0x210UL) #define CKM_MD5_HMAC (0x211UL) #define CKM_MD5_HMAC_GENERAL (0x212UL) #define CKM_SHA_1 (0x220UL) #define CKM_SHA_1_HMAC (0x221UL) #define CKM_SHA_1_HMAC_GENERAL (0x222UL) #define CKM_RIPEMD128 (0x230UL) #define CKM_RIPEMD128_HMAC (0x231UL) #define CKM_RIPEMD128_HMAC_GENERAL (0x232UL) #define CKM_RIPEMD160 (0x240UL) #define CKM_RIPEMD160_HMAC (0x241UL) #define CKM_RIPEMD160_HMAC_GENERAL (0x242UL) #define CKM_SHA256 (0x250UL) #define CKM_SHA256_HMAC (0x251UL) #define CKM_SHA256_HMAC_GENERAL (0x252UL) #define CKM_SHA384 (0x260UL) #define CKM_SHA384_HMAC (0x261UL) #define CKM_SHA384_HMAC_GENERAL (0x262UL) #define CKM_SHA512 (0x270UL) #define CKM_SHA512_HMAC (0x271UL) #define CKM_SHA512_HMAC_GENERAL (0x272UL) #define CKM_SECURID_KEY_GEN (0x280UL) #define CKM_SECURID (0x282UL) #define CKM_HOTP_KEY_GEN (0x290UL) #define CKM_HOTP (0x291UL) #define CKM_ACTI (0x2a0UL) #define CKM_ACTI_KEY_GEN (0x2a1UL) #define CKM_CAST_KEY_GEN (0x300UL) #define CKM_CAST_ECB (0x301UL) #define CKM_CAST_CBC (0x302UL) #define CKM_CAST_MAC (0x303UL) #define CKM_CAST_MAC_GENERAL (0x304UL) #define CKM_CAST_CBC_PAD (0x305UL) #define CKM_CAST3_KEY_GEN (0x310UL) #define CKM_CAST3_ECB (0x311UL) #define CKM_CAST3_CBC (0x312UL) #define CKM_CAST3_MAC (0x313UL) #define CKM_CAST3_MAC_GENERAL (0x314UL) #define CKM_CAST3_CBC_PAD (0x315UL) #define CKM_CAST5_KEY_GEN (0x320UL) #define CKM_CAST128_KEY_GEN (0x320UL) #define CKM_CAST5_ECB (0x321UL) #define CKM_CAST128_ECB (0x321UL) #define CKM_CAST5_CBC (0x322UL) #define CKM_CAST128_CBC (0x322UL) #define CKM_CAST5_MAC (0x323UL) #define CKM_CAST128_MAC (0x323UL) #define CKM_CAST5_MAC_GENERAL (0x324UL) #define CKM_CAST128_MAC_GENERAL (0x324UL) #define CKM_CAST5_CBC_PAD (0x325UL) #define CKM_CAST128_CBC_PAD (0x325UL) #define CKM_RC5_KEY_GEN (0x330UL) #define CKM_RC5_ECB (0x331UL) #define CKM_RC5_CBC (0x332UL) #define CKM_RC5_MAC (0x333UL) #define CKM_RC5_MAC_GENERAL (0x334UL) #define CKM_RC5_CBC_PAD (0x335UL) #define CKM_IDEA_KEY_GEN (0x340UL) #define CKM_IDEA_ECB (0x341UL) #define CKM_IDEA_CBC (0x342UL) #define CKM_IDEA_MAC (0x343UL) #define CKM_IDEA_MAC_GENERAL (0x344UL) #define CKM_IDEA_CBC_PAD (0x345UL) #define CKM_GENERIC_SECRET_KEY_GEN (0x350UL) #define CKM_CONCATENATE_BASE_AND_KEY (0x360UL) #define CKM_CONCATENATE_BASE_AND_DATA (0x362UL) #define CKM_CONCATENATE_DATA_AND_BASE (0x363UL) #define CKM_XOR_BASE_AND_DATA (0x364UL) #define CKM_EXTRACT_KEY_FROM_KEY (0x365UL) #define CKM_SSL3_PRE_MASTER_KEY_GEN (0x370UL) #define CKM_SSL3_MASTER_KEY_DERIVE (0x371UL) #define CKM_SSL3_KEY_AND_MAC_DERIVE (0x372UL) #define CKM_SSL3_MASTER_KEY_DERIVE_DH (0x373UL) #define CKM_TLS_PRE_MASTER_KEY_GEN (0x374UL) #define CKM_TLS_MASTER_KEY_DERIVE (0x375UL) #define CKM_TLS_KEY_AND_MAC_DERIVE (0x376UL) #define CKM_TLS_MASTER_KEY_DERIVE_DH (0x377UL) #define CKM_TLS_PRF (0x378UL) #define CKM_SSL3_MD5_MAC (0x380UL) #define CKM_SSL3_SHA1_MAC (0x381UL) #define CKM_MD5_KEY_DERIVATION (0x390UL) #define CKM_MD2_KEY_DERIVATION (0x391UL) #define CKM_SHA1_KEY_DERIVATION (0x392UL) #define CKM_SHA256_KEY_DERIVATION (0x393UL) #define CKM_SHA384_KEY_DERIVATION (0x394UL) #define CKM_SHA512_KEY_DERIVATION (0x395UL) #define CKM_PBE_MD2_DES_CBC (0x3a0UL) #define CKM_PBE_MD5_DES_CBC (0x3a1UL) #define CKM_PBE_MD5_CAST_CBC (0x3a2UL) #define CKM_PBE_MD5_CAST3_CBC (0x3a3UL) #define CKM_PBE_MD5_CAST5_CBC (0x3a4UL) #define CKM_PBE_MD5_CAST128_CBC (0x3a4UL) #define CKM_PBE_SHA1_CAST5_CBC (0x3a5UL) #define CKM_PBE_SHA1_CAST128_CBC (0x3a5UL) #define CKM_PBE_SHA1_RC4_128 (0x3a6UL) #define CKM_PBE_SHA1_RC4_40 (0x3a7UL) #define CKM_PBE_SHA1_DES3_EDE_CBC (0x3a8UL) #define CKM_PBE_SHA1_DES2_EDE_CBC (0x3a9UL) #define CKM_PBE_SHA1_RC2_128_CBC (0x3aaUL) #define CKM_PBE_SHA1_RC2_40_CBC (0x3abUL) #define CKM_PKCS5_PBKD2 (0x3b0UL) #define CKM_PBA_SHA1_WITH_SHA1_HMAC (0x3c0UL) #define CKM_WTLS_PRE_MASTER_KEY_GEN (0x3d0UL) #define CKM_WTLS_MASTER_KEY_DERIVE (0x3d1UL) #define CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC (0x3d2UL) #define CKM_WTLS_PRF (0x3d3UL) #define CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE (0x3d4UL) #define CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE (0x3d5UL) #define CKM_TLS10_MAC_SERVER (0x3d6UL) #define CKM_TLS10_MAC_CLIENT (0x3d7UL) #define CKM_TLS12_MAC (0x3d8UL) #define CKM_TLS12_KDF (0x3d9UL) #define CKM_TLS12_MASTER_KEY_DERIVE (0x3e0UL) #define CKM_TLS12_KEY_AND_MAC_DERIVE (0x3e1UL) #define CKM_TLS12_MASTER_KEY_DERIVE_DH (0x3e2UL) #define CKM_TLS12_KEY_SAFE_DERIVE (0x3e3UL) #define CKM_TLS_MAC (0x3e4UL) #define CKM_TLS_KDF (0x3e5UL) #define CKM_KEY_WRAP_LYNKS (0x400UL) #define CKM_KEY_WRAP_SET_OAEP (0x401UL) #define CKM_CMS_SIG (0x500UL) #define CKM_KIP_DERIVE (0x510UL) #define CKM_KIP_WRAP (0x511UL) #define CKM_KIP_MAC (0x512UL) #define CKM_CAMELLIA_KEY_GEN (0x550UL) #define CKM_CAMELLIA_CTR (0x558UL) #define CKM_ARIA_KEY_GEN (0x560UL) #define CKM_ARIA_ECB (0x561UL) #define CKM_ARIA_CBC (0x562UL) #define CKM_ARIA_MAC (0x563UL) #define CKM_ARIA_MAC_GENERAL (0x564UL) #define CKM_ARIA_CBC_PAD (0x565UL) #define CKM_ARIA_ECB_ENCRYPT_DATA (0x566UL) #define CKM_ARIA_CBC_ENCRYPT_DATA (0x567UL) #define CKM_SEED_KEY_GEN (0x650UL) #define CKM_SEED_ECB (0x651UL) #define CKM_SEED_CBC (0x652UL) #define CKM_SEED_MAC (0x653UL) #define CKM_SEED_MAC_GENERAL (0x654UL) #define CKM_SEED_CBC_PAD (0x655UL) #define CKM_SEED_ECB_ENCRYPT_DATA (0x656UL) #define CKM_SEED_CBC_ENCRYPT_DATA (0x657UL) #define CKM_SKIPJACK_KEY_GEN (0x1000UL) #define CKM_SKIPJACK_ECB64 (0x1001UL) #define CKM_SKIPJACK_CBC64 (0x1002UL) #define CKM_SKIPJACK_OFB64 (0x1003UL) #define CKM_SKIPJACK_CFB64 (0x1004UL) #define CKM_SKIPJACK_CFB32 (0x1005UL) #define CKM_SKIPJACK_CFB16 (0x1006UL) #define CKM_SKIPJACK_CFB8 (0x1007UL) #define CKM_SKIPJACK_WRAP (0x1008UL) #define CKM_SKIPJACK_PRIVATE_WRAP (0x1009UL) #define CKM_SKIPJACK_RELAYX (0x100aUL) #define CKM_KEA_KEY_PAIR_GEN (0x1010UL) #define CKM_KEA_KEY_DERIVE (0x1011UL) #define CKM_FORTEZZA_TIMESTAMP (0x1020UL) #define CKM_BATON_KEY_GEN (0x1030UL) #define CKM_BATON_ECB128 (0x1031UL) #define CKM_BATON_ECB96 (0x1032UL) #define CKM_BATON_CBC128 (0x1033UL) #define CKM_BATON_COUNTER (0x1034UL) #define CKM_BATON_SHUFFLE (0x1035UL) #define CKM_BATON_WRAP (0x1036UL) #define CKM_ECDSA_KEY_PAIR_GEN (0x1040UL) #define CKM_EC_KEY_PAIR_GEN (0x1040UL) #define CKM_ECDSA (0x1041UL) #define CKM_ECDSA_SHA1 (0x1042UL) #define CKM_ECDSA_SHA224 (0x1043UL) #define CKM_ECDSA_SHA256 (0x1044UL) #define CKM_ECDSA_SHA384 (0x1045UL) #define CKM_ECDSA_SHA512 (0x1046UL) #define CKM_ECDH1_DERIVE (0x1050UL) #define CKM_ECDH1_COFACTOR_DERIVE (0x1051UL) #define CKM_ECMQV_DERIVE (0x1052UL) #define CKM_ECDH_AES_KEY_WRAP (0x1053UL) #define CKM_RSA_AES_KEY_WRAP (0x1054UL) #define CKM_JUNIPER_KEY_GEN (0x1060UL) #define CKM_JUNIPER_ECB128 (0x1061UL) #define CKM_JUNIPER_CBC128 (0x1062UL) #define CKM_JUNIPER_COUNTER (0x1063UL) #define CKM_JUNIPER_SHUFFLE (0x1064UL) #define CKM_JUNIPER_WRAP (0x1065UL) #define CKM_FASTHASH (0x1070UL) #define CKM_AES_KEY_GEN (0x1080UL) #define CKM_AES_ECB (0x1081UL) #define CKM_AES_CBC (0x1082UL) #define CKM_AES_MAC (0x1083UL) #define CKM_AES_MAC_GENERAL (0x1084UL) #define CKM_AES_CBC_PAD (0x1085UL) #define CKM_AES_CTR (0x1086UL) #define CKM_AES_GCM (0x1087UL) #define CKM_AES_CCM (0x1088UL) #define CKM_AES_CTS (0x1089UL) #define CKM_AES_CMAC (0x108aUL) #define CKM_AES_CMAC_GENERAL (0x108bUL) #define CKM_AES_XCBC_MAC (0x108cUL) #define CKM_AES_XCBC_MAC_96 (0x108dUL) #define CKM_AES_GMAC (0x108eUL) #define CKM_BLOWFISH_KEY_GEN (0x1090UL) #define CKM_BLOWFISH_CBC (0x1091UL) #define CKM_TWOFISH_KEY_GEN (0x1092UL) #define CKM_TWOFISH_CBC (0x1093UL) #define CKM_BLOWFISH_CBC_PAD (0x1094UL) #define CKM_TWOFISH_CBC_PAD (0x1095UL) #define CKM_DES_ECB_ENCRYPT_DATA (0x1100UL) #define CKM_DES_CBC_ENCRYPT_DATA (0x1101UL) #define CKM_DES3_ECB_ENCRYPT_DATA (0x1102UL) #define CKM_DES3_CBC_ENCRYPT_DATA (0x1103UL) #define CKM_AES_ECB_ENCRYPT_DATA (0x1104UL) #define CKM_AES_CBC_ENCRYPT_DATA (0x1105UL) #define CKM_GOSTR3410_KEY_PAIR_GEN (0x1200UL) #define CKM_GOSTR3410 (0x1201UL) #define CKM_GOSTR3410_WITH_GOSTR3411 (0x1202UL) #define CKM_GOSTR3410_KEY_WRAP (0x1203UL) #define CKM_GOSTR3410_DERIVE (0x1204UL) #define CKM_GOSTR3411 (0x1210UL) #define CKM_GOSTR3411_HMAC (0x1211UL) #define CKM_GOST28147_KEY_GEN (0x1220UL) #define CKM_GOST28147_ECB (0x1221UL) #define CKM_GOST28147 (0x1222UL) #define CKM_GOST28147_MAC (0x1223UL) #define CKM_GOST28147_KEY_WRAP (0x1224UL) #define CKM_DSA_PARAMETER_GEN (0x2000UL) #define CKM_DH_PKCS_PARAMETER_GEN (0x2001UL) #define CKM_X9_42_DH_PARAMETER_GEN (0x2002UL) #define CKM_DSA_PROBABLISTIC_PARAMETER_GEN (0x2003UL) #define CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN (0x2004UL) #define CKM_AES_OFB (0x2104UL) #define CKM_AES_CFB64 (0x2105UL) #define CKM_AES_CFB8 (0x2106UL) #define CKM_AES_CFB128 (0x2107UL) #define CKM_AES_CFB1 (0x2108UL) #define CKM_VENDOR_DEFINED ((unsigned long) (1UL << 31)) /* Amendments */ #define CKM_SHA224 (0x255UL) #define CKM_SHA224_HMAC (0x256UL) #define CKM_SHA224_HMAC_GENERAL (0x257UL) #define CKM_SHA224_RSA_PKCS (0x46UL) #define CKM_SHA224_RSA_PKCS_PSS (0x47UL) #define CKM_SHA224_KEY_DERIVATION (0x396UL) #define CKM_CAMELLIA_KEY_GEN (0x550UL) #define CKM_CAMELLIA_ECB (0x551UL) #define CKM_CAMELLIA_CBC (0x552UL) #define CKM_CAMELLIA_MAC (0x553UL) #define CKM_CAMELLIA_MAC_GENERAL (0x554UL) #define CKM_CAMELLIA_CBC_PAD (0x555UL) #define CKM_CAMELLIA_ECB_ENCRYPT_DATA (0x556UL) #define CKM_CAMELLIA_CBC_ENCRYPT_DATA (0x557UL) #define CKM_AES_KEY_WRAP (0x2109UL) #define CKM_AES_KEY_WRAP_PAD (0x210aUL) #define CKM_RSA_PKCS_TPM_1_1 (0x4001UL) #define CKM_RSA_PKCS_OAEP_TPM_1_1 (0x4002UL) /* From version 3.0 */ #define CKM_EC_EDWARDS_KEY_PAIR_GEN (0x1055UL) #define CKM_EC_MONTGOMERY_KEY_PAIR_GEN (0x1056UL) #define CKM_EDDSA (0x1057UL) /* Attribute and other constants related to OTP */ #define CK_OTP_FORMAT_DECIMAL (0UL) #define CK_OTP_FORMAT_HEXADECIMAL (1UL) #define CK_OTP_FORMAT_ALPHANUMERIC (2UL) #define CK_OTP_FORMAT_BINARY (3UL) #define CK_OTP_PARAM_IGNORED (0UL) #define CK_OTP_PARAM_OPTIONAL (1UL) #define CK_OTP_PARAM_MANDATORY (2UL) #define CK_OTP_VALUE (0UL) #define CK_OTP_PIN (1UL) #define CK_OTP_CHALLENGE (2UL) #define CK_OTP_TIME (3UL) #define CK_OTP_COUNTER (4UL) #define CK_OTP_FLAGS (5UL) #define CK_OTP_OUTPUT_LENGTH (6UL) #define CK_OTP_FORMAT (7UL) /* OTP mechanism flags */ #define CKF_NEXT_OTP (0x01UL) #define CKF_EXCLUDE_TIME (0x02UL) #define CKF_EXCLUDE_COUNTER (0x04UL) #define CKF_EXCLUDE_CHALLENGE (0x08UL) #define CKF_EXCLUDE_PIN (0x10UL) #define CKF_USER_FRIENDLY_OTP (0x20UL) #define CKN_OTP_CHANGED (0x01UL) struct ck_mechanism { ck_mechanism_type_t mechanism; void *parameter; unsigned long parameter_len; }; struct ck_mechanism_info { unsigned long min_key_size; unsigned long max_key_size; ck_flags_t flags; }; typedef unsigned long ck_param_type; typedef struct ck_otp_param { ck_param_type type; void *value; unsigned long value_len; } ck_otp_param; typedef struct ck_otp_params { struct ck_otp_param *params; unsigned long count; } ck_otp_params; typedef struct ck_otp_signature_info { struct ck_otp_param *params; unsigned long count; } ck_otp_signature_info; #define CKG_MGF1_SHA1 0x00000001UL #define CKG_MGF1_SHA224 0x00000005UL #define CKG_MGF1_SHA256 0x00000002UL #define CKG_MGF1_SHA384 0x00000003UL #define CKG_MGF1_SHA512 0x00000004UL typedef unsigned long ck_rsa_pkcs_mgf_type_t; struct ck_rsa_pkcs_pss_params { ck_mechanism_type_t hash_alg; ck_rsa_pkcs_mgf_type_t mgf; unsigned long s_len; }; typedef unsigned long ck_rsa_pkcs_oaep_source_type_t; struct ck_rsa_pkcs_oaep_params { ck_mechanism_type_t hash_alg; ck_rsa_pkcs_mgf_type_t mgf; ck_rsa_pkcs_oaep_source_type_t source; void *source_data; unsigned long source_data_len; }; struct ck_aes_ctr_params { unsigned long counter_bits; unsigned char cb[16]; }; struct ck_gcm_params { unsigned char *iv_ptr; unsigned long iv_len; unsigned long iv_bits; unsigned char *aad_ptr; unsigned long aad_len; unsigned long tag_bits; }; /* The following EC Key Derivation Functions are defined */ #define CKD_NULL (0x01UL) #define CKD_SHA1_KDF (0x02UL) /* The following X9.42 DH key derivation functions are defined */ #define CKD_SHA1_KDF_ASN1 (0x03UL) #define CKD_SHA1_KDF_CONCATENATE (0x04UL) #define CKD_SHA224_KDF (0x05UL) #define CKD_SHA256_KDF (0x06UL) #define CKD_SHA384_KDF (0x07UL) #define CKD_SHA512_KDF (0x08UL) #define CKD_CPDIVERSIFY_KDF (0x09UL) typedef unsigned long ck_ec_kdf_t; struct ck_ecdh1_derive_params { ck_ec_kdf_t kdf; unsigned long shared_data_len; unsigned char *shared_data; unsigned long public_data_len; unsigned char *public_data; }; struct ck_key_derivation_string_data { unsigned char *string_data; unsigned long string_data_len; }; struct ck_des_cbc_encrypt_data_params { unsigned char iv[8]; unsigned char *data_params; unsigned long length; }; struct ck_aes_cbc_encrypt_data_params { unsigned char iv[16]; unsigned char *data_params; unsigned long length; }; #define CKF_HW (1UL << 0) #define CKF_ENCRYPT (1UL << 8) #define CKF_DECRYPT (1UL << 9) #define CKF_DIGEST (1UL << 10) #define CKF_SIGN (1UL << 11) #define CKF_SIGN_RECOVER (1UL << 12) #define CKF_VERIFY (1UL << 13) #define CKF_VERIFY_RECOVER (1UL << 14) #define CKF_GENERATE (1UL << 15) #define CKF_GENERATE_KEY_PAIR (1UL << 16) #define CKF_WRAP (1UL << 17) #define CKF_UNWRAP (1UL << 18) #define CKF_DERIVE (1UL << 19) #define CKF_EXTENSION ((unsigned long) (1UL << 31)) #define CKF_EC_F_P (1UL << 20) #define CKF_EC_F_2M (1UL << 21) #define CKF_EC_ECPARAMETERS (1UL << 22) #define CKF_EC_NAMEDCURVE (1UL << 23) #define CKF_EC_UNCOMPRESS (1UL << 24) #define CKF_EC_COMPRESS (1UL << 25) /* Flags for C_WaitForSlotEvent. */ #define CKF_DONT_BLOCK (1UL) typedef unsigned long ck_rv_t; typedef ck_rv_t (*ck_notify_t) (ck_session_handle_t session, ck_notification_t event, void *application); /* Forward reference. */ struct ck_function_list; #define _CK_DECLARE_FUNCTION(name, args) \ typedef ck_rv_t (*CK_ ## name) args; \ ck_rv_t CK_SPEC name args _CK_DECLARE_FUNCTION (C_Initialize, (void *init_args)); _CK_DECLARE_FUNCTION (C_Finalize, (void *reserved)); _CK_DECLARE_FUNCTION (C_GetInfo, (struct ck_info *info)); _CK_DECLARE_FUNCTION (C_GetFunctionList, (struct ck_function_list **function_list)); _CK_DECLARE_FUNCTION (C_GetSlotList, (unsigned char token_present, ck_slot_id_t *slot_list, unsigned long *count)); _CK_DECLARE_FUNCTION (C_GetSlotInfo, (ck_slot_id_t slot_id, struct ck_slot_info *info)); _CK_DECLARE_FUNCTION (C_GetTokenInfo, (ck_slot_id_t slot_id, struct ck_token_info *info)); _CK_DECLARE_FUNCTION (C_WaitForSlotEvent, (ck_flags_t flags, ck_slot_id_t *slot, void *reserved)); _CK_DECLARE_FUNCTION (C_GetMechanismList, (ck_slot_id_t slot_id, ck_mechanism_type_t *mechanism_list, unsigned long *count)); _CK_DECLARE_FUNCTION (C_GetMechanismInfo, (ck_slot_id_t slot_id, ck_mechanism_type_t type, struct ck_mechanism_info *info)); _CK_DECLARE_FUNCTION (C_InitToken, (ck_slot_id_t slot_id, unsigned char *pin, unsigned long pin_len, unsigned char *label)); _CK_DECLARE_FUNCTION (C_InitPIN, (ck_session_handle_t session, unsigned char *pin, unsigned long pin_len)); _CK_DECLARE_FUNCTION (C_SetPIN, (ck_session_handle_t session, unsigned char *old_pin, unsigned long old_len, unsigned char *new_pin, unsigned long new_len)); _CK_DECLARE_FUNCTION (C_OpenSession, (ck_slot_id_t slot_id, ck_flags_t flags, void *application, ck_notify_t notify, ck_session_handle_t *session)); _CK_DECLARE_FUNCTION (C_CloseSession, (ck_session_handle_t session)); _CK_DECLARE_FUNCTION (C_CloseAllSessions, (ck_slot_id_t slot_id)); _CK_DECLARE_FUNCTION (C_GetSessionInfo, (ck_session_handle_t session, struct ck_session_info *info)); _CK_DECLARE_FUNCTION (C_GetOperationState, (ck_session_handle_t session, unsigned char *operation_state, unsigned long *operation_state_len)); _CK_DECLARE_FUNCTION (C_SetOperationState, (ck_session_handle_t session, unsigned char *operation_state, unsigned long operation_state_len, ck_object_handle_t encryption_key, ck_object_handle_t authentiation_key)); _CK_DECLARE_FUNCTION (C_Login, (ck_session_handle_t session, ck_user_type_t user_type, unsigned char *pin, unsigned long pin_len)); _CK_DECLARE_FUNCTION (C_Logout, (ck_session_handle_t session)); _CK_DECLARE_FUNCTION (C_CreateObject, (ck_session_handle_t session, struct ck_attribute *templ, unsigned long count, ck_object_handle_t *object)); _CK_DECLARE_FUNCTION (C_CopyObject, (ck_session_handle_t session, ck_object_handle_t object, struct ck_attribute *templ, unsigned long count, ck_object_handle_t *new_object)); _CK_DECLARE_FUNCTION (C_DestroyObject, (ck_session_handle_t session, ck_object_handle_t object)); _CK_DECLARE_FUNCTION (C_GetObjectSize, (ck_session_handle_t session, ck_object_handle_t object, unsigned long *size)); _CK_DECLARE_FUNCTION (C_GetAttributeValue, (ck_session_handle_t session, ck_object_handle_t object, struct ck_attribute *templ, unsigned long count)); _CK_DECLARE_FUNCTION (C_SetAttributeValue, (ck_session_handle_t session, ck_object_handle_t object, struct ck_attribute *templ, unsigned long count)); _CK_DECLARE_FUNCTION (C_FindObjectsInit, (ck_session_handle_t session, struct ck_attribute *templ, unsigned long count)); _CK_DECLARE_FUNCTION (C_FindObjects, (ck_session_handle_t session, ck_object_handle_t *object, unsigned long max_object_count, unsigned long *object_count)); _CK_DECLARE_FUNCTION (C_FindObjectsFinal, (ck_session_handle_t session)); _CK_DECLARE_FUNCTION (C_EncryptInit, (ck_session_handle_t session, struct ck_mechanism *mechanism, ck_object_handle_t key)); _CK_DECLARE_FUNCTION (C_Encrypt, (ck_session_handle_t session, unsigned char *data, unsigned long data_len, unsigned char *encrypted_data, unsigned long *encrypted_data_len)); _CK_DECLARE_FUNCTION (C_EncryptUpdate, (ck_session_handle_t session, unsigned char *part, unsigned long part_len, unsigned char *encrypted_part, unsigned long *encrypted_part_len)); _CK_DECLARE_FUNCTION (C_EncryptFinal, (ck_session_handle_t session, unsigned char *last_encrypted_part, unsigned long *last_encrypted_part_len)); _CK_DECLARE_FUNCTION (C_DecryptInit, (ck_session_handle_t session, struct ck_mechanism *mechanism, ck_object_handle_t key)); _CK_DECLARE_FUNCTION (C_Decrypt, (ck_session_handle_t session, unsigned char *encrypted_data, unsigned long encrypted_data_len, unsigned char *data, unsigned long *data_len)); _CK_DECLARE_FUNCTION (C_DecryptUpdate, (ck_session_handle_t session, unsigned char *encrypted_part, unsigned long encrypted_part_len, unsigned char *part, unsigned long *part_len)); _CK_DECLARE_FUNCTION (C_DecryptFinal, (ck_session_handle_t session, unsigned char *last_part, unsigned long *last_part_len)); _CK_DECLARE_FUNCTION (C_DigestInit, (ck_session_handle_t session, struct ck_mechanism *mechanism)); _CK_DECLARE_FUNCTION (C_Digest, (ck_session_handle_t session, unsigned char *data, unsigned long data_len, unsigned char *digest, unsigned long *digest_len)); _CK_DECLARE_FUNCTION (C_DigestUpdate, (ck_session_handle_t session, unsigned char *part, unsigned long part_len)); _CK_DECLARE_FUNCTION (C_DigestKey, (ck_session_handle_t session, ck_object_handle_t key)); _CK_DECLARE_FUNCTION (C_DigestFinal, (ck_session_handle_t session, unsigned char *digest, unsigned long *digest_len)); _CK_DECLARE_FUNCTION (C_SignInit, (ck_session_handle_t session, struct ck_mechanism *mechanism, ck_object_handle_t key)); _CK_DECLARE_FUNCTION (C_Sign, (ck_session_handle_t session, unsigned char *data, unsigned long data_len, unsigned char *signature, unsigned long *signature_len)); _CK_DECLARE_FUNCTION (C_SignUpdate, (ck_session_handle_t session, unsigned char *part, unsigned long part_len)); _CK_DECLARE_FUNCTION (C_SignFinal, (ck_session_handle_t session, unsigned char *signature, unsigned long *signature_len)); _CK_DECLARE_FUNCTION (C_SignRecoverInit, (ck_session_handle_t session, struct ck_mechanism *mechanism, ck_object_handle_t key)); _CK_DECLARE_FUNCTION (C_SignRecover, (ck_session_handle_t session, unsigned char *data, unsigned long data_len, unsigned char *signature, unsigned long *signature_len)); _CK_DECLARE_FUNCTION (C_VerifyInit, (ck_session_handle_t session, struct ck_mechanism *mechanism, ck_object_handle_t key)); _CK_DECLARE_FUNCTION (C_Verify, (ck_session_handle_t session, unsigned char *data, unsigned long data_len, unsigned char *signature, unsigned long signature_len)); _CK_DECLARE_FUNCTION (C_VerifyUpdate, (ck_session_handle_t session, unsigned char *part, unsigned long part_len)); _CK_DECLARE_FUNCTION (C_VerifyFinal, (ck_session_handle_t session, unsigned char *signature, unsigned long signature_len)); _CK_DECLARE_FUNCTION (C_VerifyRecoverInit, (ck_session_handle_t session, struct ck_mechanism *mechanism, ck_object_handle_t key)); _CK_DECLARE_FUNCTION (C_VerifyRecover, (ck_session_handle_t session, unsigned char *signature, unsigned long signature_len, unsigned char *data, unsigned long *data_len)); _CK_DECLARE_FUNCTION (C_DigestEncryptUpdate, (ck_session_handle_t session, unsigned char *part, unsigned long part_len, unsigned char *encrypted_part, unsigned long *encrypted_part_len)); _CK_DECLARE_FUNCTION (C_DecryptDigestUpdate, (ck_session_handle_t session, unsigned char *encrypted_part, unsigned long encrypted_part_len, unsigned char *part, unsigned long *part_len)); _CK_DECLARE_FUNCTION (C_SignEncryptUpdate, (ck_session_handle_t session, unsigned char *part, unsigned long part_len, unsigned char *encrypted_part, unsigned long *encrypted_part_len)); _CK_DECLARE_FUNCTION (C_DecryptVerifyUpdate, (ck_session_handle_t session, unsigned char *encrypted_part, unsigned long encrypted_part_len, unsigned char *part, unsigned long *part_len)); _CK_DECLARE_FUNCTION (C_GenerateKey, (ck_session_handle_t session, struct ck_mechanism *mechanism, struct ck_attribute *templ, unsigned long count, ck_object_handle_t *key)); _CK_DECLARE_FUNCTION (C_GenerateKeyPair, (ck_session_handle_t session, struct ck_mechanism *mechanism, struct ck_attribute *public_key_template, unsigned long public_key_attribute_count, struct ck_attribute *private_key_template, unsigned long private_key_attribute_count, ck_object_handle_t *public_key, ck_object_handle_t *private_key)); _CK_DECLARE_FUNCTION (C_WrapKey, (ck_session_handle_t session, struct ck_mechanism *mechanism, ck_object_handle_t wrapping_key, ck_object_handle_t key, unsigned char *wrapped_key, unsigned long *wrapped_key_len)); _CK_DECLARE_FUNCTION (C_UnwrapKey, (ck_session_handle_t session, struct ck_mechanism *mechanism, ck_object_handle_t unwrapping_key, unsigned char *wrapped_key, unsigned long wrapped_key_len, struct ck_attribute *templ, unsigned long attribute_count, ck_object_handle_t *key)); _CK_DECLARE_FUNCTION (C_DeriveKey, (ck_session_handle_t session, struct ck_mechanism *mechanism, ck_object_handle_t base_key, struct ck_attribute *templ, unsigned long attribute_count, ck_object_handle_t *key)); _CK_DECLARE_FUNCTION (C_SeedRandom, (ck_session_handle_t session, unsigned char *seed, unsigned long seed_len)); _CK_DECLARE_FUNCTION (C_GenerateRandom, (ck_session_handle_t session, unsigned char *random_data, unsigned long random_len)); _CK_DECLARE_FUNCTION (C_GetFunctionStatus, (ck_session_handle_t session)); _CK_DECLARE_FUNCTION (C_CancelFunction, (ck_session_handle_t session)); struct ck_function_list { struct ck_version version; CK_C_Initialize C_Initialize; CK_C_Finalize C_Finalize; CK_C_GetInfo C_GetInfo; CK_C_GetFunctionList C_GetFunctionList; CK_C_GetSlotList C_GetSlotList; CK_C_GetSlotInfo C_GetSlotInfo; CK_C_GetTokenInfo C_GetTokenInfo; CK_C_GetMechanismList C_GetMechanismList; CK_C_GetMechanismInfo C_GetMechanismInfo; CK_C_InitToken C_InitToken; CK_C_InitPIN C_InitPIN; CK_C_SetPIN C_SetPIN; CK_C_OpenSession C_OpenSession; CK_C_CloseSession C_CloseSession; CK_C_CloseAllSessions C_CloseAllSessions; CK_C_GetSessionInfo C_GetSessionInfo; CK_C_GetOperationState C_GetOperationState; CK_C_SetOperationState C_SetOperationState; CK_C_Login C_Login; CK_C_Logout C_Logout; CK_C_CreateObject C_CreateObject; CK_C_CopyObject C_CopyObject; CK_C_DestroyObject C_DestroyObject; CK_C_GetObjectSize C_GetObjectSize; CK_C_GetAttributeValue C_GetAttributeValue; CK_C_SetAttributeValue C_SetAttributeValue; CK_C_FindObjectsInit C_FindObjectsInit; CK_C_FindObjects C_FindObjects; CK_C_FindObjectsFinal C_FindObjectsFinal; CK_C_EncryptInit C_EncryptInit; CK_C_Encrypt C_Encrypt; CK_C_EncryptUpdate C_EncryptUpdate; CK_C_EncryptFinal C_EncryptFinal; CK_C_DecryptInit C_DecryptInit; CK_C_Decrypt C_Decrypt; CK_C_DecryptUpdate C_DecryptUpdate; CK_C_DecryptFinal C_DecryptFinal; CK_C_DigestInit C_DigestInit; CK_C_Digest C_Digest; CK_C_DigestUpdate C_DigestUpdate; CK_C_DigestKey C_DigestKey; CK_C_DigestFinal C_DigestFinal; CK_C_SignInit C_SignInit; CK_C_Sign C_Sign; CK_C_SignUpdate C_SignUpdate; CK_C_SignFinal C_SignFinal; CK_C_SignRecoverInit C_SignRecoverInit; CK_C_SignRecover C_SignRecover; CK_C_VerifyInit C_VerifyInit; CK_C_Verify C_Verify; CK_C_VerifyUpdate C_VerifyUpdate; CK_C_VerifyFinal C_VerifyFinal; CK_C_VerifyRecoverInit C_VerifyRecoverInit; CK_C_VerifyRecover C_VerifyRecover; CK_C_DigestEncryptUpdate C_DigestEncryptUpdate; CK_C_DecryptDigestUpdate C_DecryptDigestUpdate; CK_C_SignEncryptUpdate C_SignEncryptUpdate; CK_C_DecryptVerifyUpdate C_DecryptVerifyUpdate; CK_C_GenerateKey C_GenerateKey; CK_C_GenerateKeyPair C_GenerateKeyPair; CK_C_WrapKey C_WrapKey; CK_C_UnwrapKey C_UnwrapKey; CK_C_DeriveKey C_DeriveKey; CK_C_SeedRandom C_SeedRandom; CK_C_GenerateRandom C_GenerateRandom; CK_C_GetFunctionStatus C_GetFunctionStatus; CK_C_CancelFunction C_CancelFunction; CK_C_WaitForSlotEvent C_WaitForSlotEvent; }; typedef ck_rv_t (*ck_createmutex_t) (void **mutex); typedef ck_rv_t (*ck_destroymutex_t) (void *mutex); typedef ck_rv_t (*ck_lockmutex_t) (void *mutex); typedef ck_rv_t (*ck_unlockmutex_t) (void *mutex); struct ck_c_initialize_args { ck_createmutex_t create_mutex; ck_destroymutex_t destroy_mutex; ck_lockmutex_t lock_mutex; ck_unlockmutex_t unlock_mutex; ck_flags_t flags; void *reserved; }; #define CKF_LIBRARY_CANT_CREATE_OS_THREADS (1UL << 0) #define CKF_OS_LOCKING_OK (1UL << 1) #define CKR_OK (0UL) #define CKR_CANCEL (1UL) #define CKR_HOST_MEMORY (2UL) #define CKR_SLOT_ID_INVALID (3UL) #define CKR_GENERAL_ERROR (5UL) #define CKR_FUNCTION_FAILED (6UL) #define CKR_ARGUMENTS_BAD (7UL) #define CKR_NO_EVENT (8UL) #define CKR_NEED_TO_CREATE_THREADS (9UL) #define CKR_CANT_LOCK (0xaUL) #define CKR_ATTRIBUTE_READ_ONLY (0x10UL) #define CKR_ATTRIBUTE_SENSITIVE (0x11UL) #define CKR_ATTRIBUTE_TYPE_INVALID (0x12UL) #define CKR_ATTRIBUTE_VALUE_INVALID (0x13UL) #define CKR_ACTION_PROHIBITED (0x1BUL) #define CKR_DATA_INVALID (0x20UL) #define CKR_DATA_LEN_RANGE (0x21UL) #define CKR_DEVICE_ERROR (0x30UL) #define CKR_DEVICE_MEMORY (0x31UL) #define CKR_DEVICE_REMOVED (0x32UL) #define CKR_ENCRYPTED_DATA_INVALID (0x40UL) #define CKR_ENCRYPTED_DATA_LEN_RANGE (0x41UL) #define CKR_FUNCTION_CANCELED (0x50UL) #define CKR_FUNCTION_NOT_PARALLEL (0x51UL) #define CKR_FUNCTION_NOT_SUPPORTED (0x54UL) #define CKR_KEY_HANDLE_INVALID (0x60UL) #define CKR_KEY_SIZE_RANGE (0x62UL) #define CKR_KEY_TYPE_INCONSISTENT (0x63UL) #define CKR_KEY_NOT_NEEDED (0x64UL) #define CKR_KEY_CHANGED (0x65UL) #define CKR_KEY_NEEDED (0x66UL) #define CKR_KEY_INDIGESTIBLE (0x67UL) #define CKR_KEY_FUNCTION_NOT_PERMITTED (0x68UL) #define CKR_KEY_NOT_WRAPPABLE (0x69UL) #define CKR_KEY_UNEXTRACTABLE (0x6aUL) #define CKR_MECHANISM_INVALID (0x70UL) #define CKR_MECHANISM_PARAM_INVALID (0x71UL) #define CKR_OBJECT_HANDLE_INVALID (0x82UL) #define CKR_OPERATION_ACTIVE (0x90UL) #define CKR_OPERATION_NOT_INITIALIZED (0x91UL) #define CKR_PIN_INCORRECT (0xa0UL) #define CKR_PIN_INVALID (0xa1UL) #define CKR_PIN_LEN_RANGE (0xa2UL) #define CKR_PIN_EXPIRED (0xa3UL) #define CKR_PIN_LOCKED (0xa4UL) #define CKR_SESSION_CLOSED (0xb0UL) #define CKR_SESSION_COUNT (0xb1UL) #define CKR_SESSION_HANDLE_INVALID (0xb3UL) #define CKR_SESSION_PARALLEL_NOT_SUPPORTED (0xb4UL) #define CKR_SESSION_READ_ONLY (0xb5UL) #define CKR_SESSION_EXISTS (0xb6UL) #define CKR_SESSION_READ_ONLY_EXISTS (0xb7UL) #define CKR_SESSION_READ_WRITE_SO_EXISTS (0xb8UL) #define CKR_SIGNATURE_INVALID (0xc0UL) #define CKR_SIGNATURE_LEN_RANGE (0xc1UL) #define CKR_TEMPLATE_INCOMPLETE (0xd0UL) #define CKR_TEMPLATE_INCONSISTENT (0xd1UL) #define CKR_TOKEN_NOT_PRESENT (0xe0UL) #define CKR_TOKEN_NOT_RECOGNIZED (0xe1UL) #define CKR_TOKEN_WRITE_PROTECTED (0xe2UL) #define CKR_UNWRAPPING_KEY_HANDLE_INVALID (0xf0UL) #define CKR_UNWRAPPING_KEY_SIZE_RANGE (0xf1UL) #define CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT (0xf2UL) #define CKR_USER_ALREADY_LOGGED_IN (0x100UL) #define CKR_USER_NOT_LOGGED_IN (0x101UL) #define CKR_USER_PIN_NOT_INITIALIZED (0x102UL) #define CKR_USER_TYPE_INVALID (0x103UL) #define CKR_USER_ANOTHER_ALREADY_LOGGED_IN (0x104UL) #define CKR_USER_TOO_MANY_TYPES (0x105UL) #define CKR_WRAPPED_KEY_INVALID (0x110UL) #define CKR_WRAPPED_KEY_LEN_RANGE (0x112UL) #define CKR_WRAPPING_KEY_HANDLE_INVALID (0x113UL) #define CKR_WRAPPING_KEY_SIZE_RANGE (0x114UL) #define CKR_WRAPPING_KEY_TYPE_INCONSISTENT (0x115UL) #define CKR_RANDOM_SEED_NOT_SUPPORTED (0x120UL) #define CKR_RANDOM_NO_RNG (0x121UL) #define CKR_DOMAIN_PARAMS_INVALID (0x130UL) #define CKR_BUFFER_TOO_SMALL (0x150UL) #define CKR_SAVED_STATE_INVALID (0x160UL) #define CKR_INFORMATION_SENSITIVE (0x170UL) #define CKR_STATE_UNSAVEABLE (0x180UL) #define CKR_CRYPTOKI_NOT_INITIALIZED (0x190UL) #define CKR_CRYPTOKI_ALREADY_INITIALIZED (0x191UL) #define CKR_MUTEX_BAD (0x1a0UL) #define CKR_MUTEX_NOT_LOCKED (0x1a1UL) #define CKR_NEW_PIN_MODE (0x1b0UL) #define CKR_NEXT_OTP (0x1b1UL) #define CKR_EXCEEDED_MAX_ITERATIONS (0x1c0UL) #define CKR_FIPS_SELF_TEST_FAILED (0x1c1UL) #define CKR_LIBRARY_LOAD_FAILED (0x1c2UL) #define CKR_PIN_TOO_WEAK (0x1c3UL) #define CKR_PUBLIC_KEY_INVALID (0x1c4UL) #define CKR_FUNCTION_REJECTED (0x200UL) #define CKR_VENDOR_DEFINED ((unsigned long) (1UL << 31)) #define CKZ_DATA_SPECIFIED (0x01UL) /* Compatibility layer. */ #ifdef CRYPTOKI_COMPAT #undef CK_DEFINE_FUNCTION #define CK_DEFINE_FUNCTION(retval, name) retval CK_SPEC name /* For NULL. */ #include typedef unsigned char CK_BYTE; typedef unsigned char CK_CHAR; typedef unsigned char CK_UTF8CHAR; typedef unsigned char CK_BBOOL; typedef unsigned long int CK_ULONG; typedef long int CK_LONG; typedef CK_BYTE *CK_BYTE_PTR; typedef CK_CHAR *CK_CHAR_PTR; typedef CK_UTF8CHAR *CK_UTF8CHAR_PTR; typedef CK_ULONG *CK_ULONG_PTR; typedef void *CK_VOID_PTR; typedef void **CK_VOID_PTR_PTR; #define CK_FALSE 0 #define CK_TRUE 1 #ifndef CK_DISABLE_TRUE_FALSE #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endif #endif typedef struct ck_version CK_VERSION; typedef struct ck_version *CK_VERSION_PTR; typedef struct ck_info CK_INFO; typedef struct ck_info *CK_INFO_PTR; typedef ck_slot_id_t *CK_SLOT_ID_PTR; typedef struct ck_slot_info CK_SLOT_INFO; typedef struct ck_slot_info *CK_SLOT_INFO_PTR; typedef struct ck_token_info CK_TOKEN_INFO; typedef struct ck_token_info *CK_TOKEN_INFO_PTR; typedef ck_session_handle_t *CK_SESSION_HANDLE_PTR; typedef struct ck_session_info CK_SESSION_INFO; typedef struct ck_session_info *CK_SESSION_INFO_PTR; typedef ck_object_handle_t *CK_OBJECT_HANDLE_PTR; typedef ck_object_class_t *CK_OBJECT_CLASS_PTR; typedef struct ck_attribute CK_ATTRIBUTE; typedef struct ck_attribute *CK_ATTRIBUTE_PTR; typedef struct ck_date CK_DATE; typedef struct ck_date *CK_DATE_PTR; typedef ck_mechanism_type_t *CK_MECHANISM_TYPE_PTR; typedef struct ck_mechanism CK_MECHANISM; typedef struct ck_mechanism *CK_MECHANISM_PTR; typedef struct ck_mechanism_info CK_MECHANISM_INFO; typedef struct ck_mechanism_info *CK_MECHANISM_INFO_PTR; typedef struct ck_otp_mechanism_info CK_OTP_MECHANISM_INFO; typedef struct ck_otp_mechanism_info *CK_OTP_MECHANISM_INFO_PTR; typedef struct ck_function_list CK_FUNCTION_LIST; typedef struct ck_function_list *CK_FUNCTION_LIST_PTR; typedef struct ck_function_list **CK_FUNCTION_LIST_PTR_PTR; typedef struct ck_c_initialize_args CK_C_INITIALIZE_ARGS; typedef struct ck_c_initialize_args *CK_C_INITIALIZE_ARGS_PTR; typedef struct ck_rsa_pkcs_pss_params CK_RSA_PKCS_PSS_PARAMS; typedef struct ck_rsa_pkcs_pss_params *CK_RSA_PKCS_PSS_PARAMS_PTR; typedef struct ck_rsa_pkcs_oaep_params CK_RSA_PKCS_OAEP_PARAMS; typedef struct ck_rsa_pkcs_oaep_params *CK_RSA_PKCS_OAEP_PARAMS_PTR; typedef struct ck_aes_ctr_params CK_AES_CTR_PARAMS; typedef struct ck_aes_ctr_params *CK_AES_CTR_PARAMS_PTR; typedef struct ck_gcm_params CK_GCM_PARAMS; typedef struct ck_gcm_params *CK_GCM_PARAMS_PTR; typedef struct ck_ecdh1_derive_params CK_ECDH1_DERIVE_PARAMS; typedef struct ck_ecdh1_derive_params *CK_ECDH1_DERIVE_PARAMS_PTR; typedef struct ck_key_derivation_string_data CK_KEY_DERIVATION_STRING_DATA; typedef struct ck_key_derivation_string_data *CK_KEY_DERIVATION_STRING_DATA_PTR; typedef struct ck_des_cbc_encrypt_data_params CK_DES_CBC_ENCRYPT_DATA_PARAMS; typedef struct ck_des_cbc_encrypt_data_params *CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR; typedef struct ck_aes_cbc_encrypt_data_params CK_AES_CBC_ENCRYPT_DATA_PARAMS; typedef struct ck_aes_cbc_encrypt_data_params *CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR; #ifndef NULL_PTR #define NULL_PTR NULL #endif /* Delete the helper macros defined at the top of the file. */ #undef ck_flags_t #undef ck_version #undef ck_info #undef cryptoki_version #undef manufacturer_id #undef library_description #undef library_version #undef ck_notification_t #undef ck_slot_id_t #undef ck_slot_info #undef slot_description #undef hardware_version #undef firmware_version #undef ck_token_info #undef serial_number #undef max_session_count #undef session_count #undef max_rw_session_count #undef rw_session_count #undef max_pin_len #undef min_pin_len #undef total_public_memory #undef free_public_memory #undef total_private_memory #undef free_private_memory #undef utc_time #undef ck_session_handle_t #undef ck_user_type_t #undef ck_state_t #undef ck_session_info #undef slot_id #undef device_error #undef ck_object_handle_t #undef ck_object_class_t #undef ck_hw_feature_type_t #undef ck_key_type_t #undef ck_certificate_type_t #undef ck_attribute_type_t #undef ck_attribute #undef value #undef value_len #undef params #undef count #undef ck_date #undef ck_mechanism_type_t #undef ck_mechanism #undef parameter #undef parameter_len #undef ck_mechanism_info #undef ck_param_type #undef ck_otp_param #undef ck_otp_params #undef ck_otp_signature_info #undef min_key_size #undef max_key_size #undef ck_rv_t #undef ck_notify_t #undef ck_function_list #undef ck_createmutex_t #undef ck_destroymutex_t #undef ck_lockmutex_t #undef ck_unlockmutex_t #undef ck_c_initialize_args #undef create_mutex #undef destroy_mutex #undef lock_mutex #undef unlock_mutex #undef reserved #endif /* CRYPTOKI_COMPAT */ /* System dependencies. */ #if defined(_WIN32) || defined(CRYPTOKI_FORCE_WIN32) #pragma pack(pop, cryptoki) #endif #if defined(__cplusplus) } #endif #endif /* PKCS11_H */ cryptoki-sys-0.1.7/regenerate_bindings.sh000075500000000000000000000020751046102023000166520ustar 00000000000000#!/usr/bin/env bash # Copyright 2022 Contributors to the Parsec project. # SPDX-License-Identifier: Apache-2.0 set -xeuf -o pipefail find ../target/ -name "pkcs11_bindings.rs" -delete MAKE_GENERIC_BINDINGS=1 cargo build --features generate-bindings find ../target/ -name "pkcs11_bindings.rs" | xargs -I '{}' cp '{}' src/bindings/generic.rs targets="aarch64-unknown-linux-gnu arm-unknown-linux-gnueabi x86_64-pc-windows-msvc i686-unknown-linux-gnu powerpc64-unknown-linux-gnu x86_64-unknown-linux-gnu x86_64-apple-darwin aarch64-apple-darwin x86_64-unknown-freebsd" TARGET_INSTALLED= for target in $targets; do # Check if the target is already installed if ! rustup target list | grep -q "$target (installed)"; then rustup target install "$target" TARGET_INSTALLED="$target" fi cargo build --target "$target" --features generate-bindings find ../target/"$target"/ -name "pkcs11_bindings.rs" | xargs -I '{}' cp '{}' src/bindings/"$target".rs if [ "$TARGET_INSTALLED" == "$target" ]; then rustup target remove "$target" fi done cryptoki-sys-0.1.7/src/bindings/aarch64-apple-darwin.rs000064400000000000000000005276021046102023000210700ustar 00000000000000/* automatically generated by rust-bindgen 0.66.1 */ pub const PKCS11_H: u32 = 1; pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 40; pub const P11_KIT_CRYPTOKI_VERSION_REVISION: u32 = 0; pub const CRYPTOKI_COMPAT: u32 = 1; pub const CKF_RNG: CK_FLAGS = 1; pub const CKF_WRITE_PROTECTED: CK_FLAGS = 2; pub const CKF_LOGIN_REQUIRED: CK_FLAGS = 4; pub const CKF_USER_PIN_INITIALIZED: CK_FLAGS = 8; pub const CKF_RESTORE_KEY_NOT_NEEDED: CK_FLAGS = 32; pub const CKF_CLOCK_ON_TOKEN: CK_FLAGS = 64; pub const CKF_PROTECTED_AUTHENTICATION_PATH: CK_FLAGS = 256; pub const CKF_DUAL_CRYPTO_OPERATIONS: CK_FLAGS = 512; pub const CKF_TOKEN_INITIALIZED: CK_FLAGS = 1024; pub const CKF_SECONDARY_AUTHENTICATION: CK_FLAGS = 2048; pub const CKF_USER_PIN_COUNT_LOW: CK_FLAGS = 65536; pub const CKF_USER_PIN_FINAL_TRY: CK_FLAGS = 131072; pub const CKF_USER_PIN_LOCKED: CK_FLAGS = 262144; pub const CKF_USER_PIN_TO_BE_CHANGED: CK_FLAGS = 524288; pub const CKF_SO_PIN_COUNT_LOW: CK_FLAGS = 1048576; pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; pub const CKO_DATA: CK_OBJECT_CLASS = 0; pub const CKO_CERTIFICATE: CK_OBJECT_CLASS = 1; pub const CKO_PUBLIC_KEY: CK_OBJECT_CLASS = 2; pub const CKO_PRIVATE_KEY: CK_OBJECT_CLASS = 3; pub const CKO_SECRET_KEY: CK_OBJECT_CLASS = 4; pub const CKO_HW_FEATURE: CK_OBJECT_CLASS = 5; pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_EC: CK_KEY_TYPE = 3; pub const CKK_X9_42_DH: CK_KEY_TYPE = 4; pub const CKK_KEA: CK_KEY_TYPE = 5; pub const CKK_GENERIC_SECRET: CK_KEY_TYPE = 16; pub const CKK_RC2: CK_KEY_TYPE = 17; pub const CKK_RC4: CK_KEY_TYPE = 18; pub const CKK_DES: CK_KEY_TYPE = 19; pub const CKK_DES2: CK_KEY_TYPE = 20; pub const CKK_DES3: CK_KEY_TYPE = 21; pub const CKK_CAST: CK_KEY_TYPE = 22; pub const CKK_CAST3: CK_KEY_TYPE = 23; pub const CKK_CAST128: CK_KEY_TYPE = 24; pub const CKK_RC5: CK_KEY_TYPE = 25; pub const CKK_IDEA: CK_KEY_TYPE = 26; pub const CKK_SKIPJACK: CK_KEY_TYPE = 27; pub const CKK_BATON: CK_KEY_TYPE = 28; pub const CKK_JUNIPER: CK_KEY_TYPE = 29; pub const CKK_CDMF: CK_KEY_TYPE = 30; pub const CKK_AES: CK_KEY_TYPE = 31; pub const CKK_BLOWFISH: CK_KEY_TYPE = 32; pub const CKK_TWOFISH: CK_KEY_TYPE = 33; pub const CKK_SECURID: CK_KEY_TYPE = 34; pub const CKK_HOTP: CK_KEY_TYPE = 35; pub const CKK_ACTI: CK_KEY_TYPE = 36; pub const CKK_CAMELLIA: CK_KEY_TYPE = 37; pub const CKK_ARIA: CK_KEY_TYPE = 38; pub const CKK_MD5_HMAC: CK_KEY_TYPE = 39; pub const CKK_SHA_1_HMAC: CK_KEY_TYPE = 40; pub const CKK_RIPEMD128_HMAC: CK_KEY_TYPE = 41; pub const CKK_RIPEMD160_HMAC: CK_KEY_TYPE = 42; pub const CKK_SHA256_HMAC: CK_KEY_TYPE = 43; pub const CKK_SHA384_HMAC: CK_KEY_TYPE = 44; pub const CKK_SHA512_HMAC: CK_KEY_TYPE = 45; pub const CKK_SHA224_HMAC: CK_KEY_TYPE = 46; pub const CKK_SEED: CK_KEY_TYPE = 47; pub const CKK_GOSTR3410: CK_KEY_TYPE = 48; pub const CKK_GOSTR3411: CK_KEY_TYPE = 49; pub const CKK_GOST28147: CK_KEY_TYPE = 50; pub const CKK_EC_EDWARDS: CK_KEY_TYPE = 64; pub const CKC_X_509: CK_CERTIFICATE_TYPE = 0; pub const CKC_X_509_ATTR_CERT: CK_CERTIFICATE_TYPE = 1; pub const CKC_WTLS: CK_CERTIFICATE_TYPE = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; pub const CKA_TOKEN: CK_ATTRIBUTE_TYPE = 1; pub const CKA_PRIVATE: CK_ATTRIBUTE_TYPE = 2; pub const CKA_LABEL: CK_ATTRIBUTE_TYPE = 3; pub const CKA_APPLICATION: CK_ATTRIBUTE_TYPE = 16; pub const CKA_VALUE: CK_ATTRIBUTE_TYPE = 17; pub const CKA_OBJECT_ID: CK_ATTRIBUTE_TYPE = 18; pub const CKA_CERTIFICATE_TYPE: CK_ATTRIBUTE_TYPE = 128; pub const CKA_ISSUER: CK_ATTRIBUTE_TYPE = 129; pub const CKA_SERIAL_NUMBER: CK_ATTRIBUTE_TYPE = 130; pub const CKA_AC_ISSUER: CK_ATTRIBUTE_TYPE = 131; pub const CKA_OWNER: CK_ATTRIBUTE_TYPE = 132; pub const CKA_ATTR_TYPES: CK_ATTRIBUTE_TYPE = 133; pub const CKA_TRUSTED: CK_ATTRIBUTE_TYPE = 134; pub const CKA_CERTIFICATE_CATEGORY: CK_ATTRIBUTE_TYPE = 135; pub const CKA_JAVA_MIDP_SECURITY_DOMAIN: CK_ATTRIBUTE_TYPE = 136; pub const CKA_URL: CK_ATTRIBUTE_TYPE = 137; pub const CKA_HASH_OF_SUBJECT_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 138; pub const CKA_HASH_OF_ISSUER_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 139; pub const CKA_NAME_HASH_ALGORITHM: CK_ATTRIBUTE_TYPE = 140; pub const CKA_CHECK_VALUE: CK_ATTRIBUTE_TYPE = 144; pub const CKA_KEY_TYPE: CK_ATTRIBUTE_TYPE = 256; pub const CKA_SUBJECT: CK_ATTRIBUTE_TYPE = 257; pub const CKA_ID: CK_ATTRIBUTE_TYPE = 258; pub const CKA_SENSITIVE: CK_ATTRIBUTE_TYPE = 259; pub const CKA_ENCRYPT: CK_ATTRIBUTE_TYPE = 260; pub const CKA_DECRYPT: CK_ATTRIBUTE_TYPE = 261; pub const CKA_WRAP: CK_ATTRIBUTE_TYPE = 262; pub const CKA_UNWRAP: CK_ATTRIBUTE_TYPE = 263; pub const CKA_SIGN: CK_ATTRIBUTE_TYPE = 264; pub const CKA_SIGN_RECOVER: CK_ATTRIBUTE_TYPE = 265; pub const CKA_VERIFY: CK_ATTRIBUTE_TYPE = 266; pub const CKA_VERIFY_RECOVER: CK_ATTRIBUTE_TYPE = 267; pub const CKA_DERIVE: CK_ATTRIBUTE_TYPE = 268; pub const CKA_START_DATE: CK_ATTRIBUTE_TYPE = 272; pub const CKA_END_DATE: CK_ATTRIBUTE_TYPE = 273; pub const CKA_MODULUS: CK_ATTRIBUTE_TYPE = 288; pub const CKA_MODULUS_BITS: CK_ATTRIBUTE_TYPE = 289; pub const CKA_PUBLIC_EXPONENT: CK_ATTRIBUTE_TYPE = 290; pub const CKA_PRIVATE_EXPONENT: CK_ATTRIBUTE_TYPE = 291; pub const CKA_PRIME_1: CK_ATTRIBUTE_TYPE = 292; pub const CKA_PRIME_2: CK_ATTRIBUTE_TYPE = 293; pub const CKA_EXPONENT_1: CK_ATTRIBUTE_TYPE = 294; pub const CKA_EXPONENT_2: CK_ATTRIBUTE_TYPE = 295; pub const CKA_COEFFICIENT: CK_ATTRIBUTE_TYPE = 296; pub const CKA_PUBLIC_KEY_INFO: CK_ATTRIBUTE_TYPE = 297; pub const CKA_PRIME: CK_ATTRIBUTE_TYPE = 304; pub const CKA_SUBPRIME: CK_ATTRIBUTE_TYPE = 305; pub const CKA_BASE: CK_ATTRIBUTE_TYPE = 306; pub const CKA_PRIME_BITS: CK_ATTRIBUTE_TYPE = 307; pub const CKA_SUB_PRIME_BITS: CK_ATTRIBUTE_TYPE = 308; pub const CKA_VALUE_BITS: CK_ATTRIBUTE_TYPE = 352; pub const CKA_VALUE_LEN: CK_ATTRIBUTE_TYPE = 353; pub const CKA_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 354; pub const CKA_LOCAL: CK_ATTRIBUTE_TYPE = 355; pub const CKA_NEVER_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 356; pub const CKA_ALWAYS_SENSITIVE: CK_ATTRIBUTE_TYPE = 357; pub const CKA_KEY_GEN_MECHANISM: CK_ATTRIBUTE_TYPE = 358; pub const CKA_MODIFIABLE: CK_ATTRIBUTE_TYPE = 368; pub const CKA_COPYABLE: CK_ATTRIBUTE_TYPE = 369; pub const CKA_DESTROYABLE: CK_ATTRIBUTE_TYPE = 370; pub const CKA_ECDSA_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_POINT: CK_ATTRIBUTE_TYPE = 385; pub const CKA_SECONDARY_AUTH: CK_ATTRIBUTE_TYPE = 512; pub const CKA_AUTH_PIN_FLAGS: CK_ATTRIBUTE_TYPE = 513; pub const CKA_ALWAYS_AUTHENTICATE: CK_ATTRIBUTE_TYPE = 514; pub const CKA_WRAP_WITH_TRUSTED: CK_ATTRIBUTE_TYPE = 528; pub const CKA_OTP_FORMAT: CK_ATTRIBUTE_TYPE = 544; pub const CKA_OTP_LENGTH: CK_ATTRIBUTE_TYPE = 545; pub const CKA_OTP_TIME_INTERVAL: CK_ATTRIBUTE_TYPE = 546; pub const CKA_OTP_USER_FRIENDLY_MODE: CK_ATTRIBUTE_TYPE = 547; pub const CKA_OTP_CHALLENGE_REQUIREMENT: CK_ATTRIBUTE_TYPE = 548; pub const CKA_OTP_TIME_REQUIREMENT: CK_ATTRIBUTE_TYPE = 549; pub const CKA_OTP_COUNTER_REQUIREMENT: CK_ATTRIBUTE_TYPE = 550; pub const CKA_OTP_PIN_REQUIREMENT: CK_ATTRIBUTE_TYPE = 551; pub const CKA_OTP_USER_IDENTIFIER: CK_ATTRIBUTE_TYPE = 554; pub const CKA_OTP_SERVICE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 555; pub const CKA_OTP_SERVICE_LOGO: CK_ATTRIBUTE_TYPE = 556; pub const CKA_OTP_SERVICE_LOGO_TYPE: CK_ATTRIBUTE_TYPE = 557; pub const CKA_OTP_COUNTER: CK_ATTRIBUTE_TYPE = 558; pub const CKA_OTP_TIME: CK_ATTRIBUTE_TYPE = 559; pub const CKA_GOSTR3410_PARAMS: CK_ATTRIBUTE_TYPE = 592; pub const CKA_GOSTR3411_PARAMS: CK_ATTRIBUTE_TYPE = 593; pub const CKA_GOST28147_PARAMS: CK_ATTRIBUTE_TYPE = 594; pub const CKA_HW_FEATURE_TYPE: CK_ATTRIBUTE_TYPE = 768; pub const CKA_RESET_ON_INIT: CK_ATTRIBUTE_TYPE = 769; pub const CKA_HAS_RESET: CK_ATTRIBUTE_TYPE = 770; pub const CKA_PIXEL_X: CK_ATTRIBUTE_TYPE = 1024; pub const CKA_PIXEL_Y: CK_ATTRIBUTE_TYPE = 1025; pub const CKA_RESOLUTION: CK_ATTRIBUTE_TYPE = 1026; pub const CKA_CHAR_ROWS: CK_ATTRIBUTE_TYPE = 1027; pub const CKA_CHAR_COLUMNS: CK_ATTRIBUTE_TYPE = 1028; pub const CKA_COLOR: CK_ATTRIBUTE_TYPE = 1029; pub const CKA_BITS_PER_PIXEL: CK_ATTRIBUTE_TYPE = 1030; pub const CKA_CHAR_SETS: CK_ATTRIBUTE_TYPE = 1152; pub const CKA_ENCODING_METHODS: CK_ATTRIBUTE_TYPE = 1153; pub const CKA_MIME_TYPES: CK_ATTRIBUTE_TYPE = 1154; pub const CKA_MECHANISM_TYPE: CK_ATTRIBUTE_TYPE = 1280; pub const CKA_REQUIRED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1281; pub const CKA_DEFAULT_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1282; pub const CKA_SUPPORTED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1283; pub const CKM_RSA_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 0; pub const CKM_RSA_PKCS: CK_MECHANISM_TYPE = 1; pub const CKM_RSA_9796: CK_MECHANISM_TYPE = 2; pub const CKM_RSA_X_509: CK_MECHANISM_TYPE = 3; pub const CKM_MD2_RSA_PKCS: CK_MECHANISM_TYPE = 4; pub const CKM_MD5_RSA_PKCS: CK_MECHANISM_TYPE = 5; pub const CKM_SHA1_RSA_PKCS: CK_MECHANISM_TYPE = 6; pub const CKM_RIPEMD128_RSA_PKCS: CK_MECHANISM_TYPE = 7; pub const CKM_RIPEMD160_RSA_PKCS: CK_MECHANISM_TYPE = 8; pub const CKM_RSA_PKCS_OAEP: CK_MECHANISM_TYPE = 9; pub const CKM_RSA_X9_31_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 10; pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; pub const CKM_SHA256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 67; pub const CKM_SHA384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 68; pub const CKM_SHA512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 69; pub const CKM_SHA512_224: CK_MECHANISM_TYPE = 72; pub const CKM_SHA512_224_HMAC: CK_MECHANISM_TYPE = 73; pub const CKM_SHA512_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 74; pub const CKM_SHA512_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 75; pub const CKM_SHA512_256: CK_MECHANISM_TYPE = 76; pub const CKM_SHA512_256_HMAC: CK_MECHANISM_TYPE = 77; pub const CKM_SHA512_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 78; pub const CKM_SHA512_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 79; pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; pub const CKM_RC2_KEY_GEN: CK_MECHANISM_TYPE = 256; pub const CKM_RC2_ECB: CK_MECHANISM_TYPE = 257; pub const CKM_RC2_CBC: CK_MECHANISM_TYPE = 258; pub const CKM_RC2_MAC: CK_MECHANISM_TYPE = 259; pub const CKM_RC2_MAC_GENERAL: CK_MECHANISM_TYPE = 260; pub const CKM_RC2_CBC_PAD: CK_MECHANISM_TYPE = 261; pub const CKM_RC4_KEY_GEN: CK_MECHANISM_TYPE = 272; pub const CKM_RC4: CK_MECHANISM_TYPE = 273; pub const CKM_DES_KEY_GEN: CK_MECHANISM_TYPE = 288; pub const CKM_DES_ECB: CK_MECHANISM_TYPE = 289; pub const CKM_DES_CBC: CK_MECHANISM_TYPE = 290; pub const CKM_DES_MAC: CK_MECHANISM_TYPE = 291; pub const CKM_DES_MAC_GENERAL: CK_MECHANISM_TYPE = 292; pub const CKM_DES_CBC_PAD: CK_MECHANISM_TYPE = 293; pub const CKM_DES2_KEY_GEN: CK_MECHANISM_TYPE = 304; pub const CKM_DES3_KEY_GEN: CK_MECHANISM_TYPE = 305; pub const CKM_DES3_ECB: CK_MECHANISM_TYPE = 306; pub const CKM_DES3_CBC: CK_MECHANISM_TYPE = 307; pub const CKM_DES3_MAC: CK_MECHANISM_TYPE = 308; pub const CKM_DES3_MAC_GENERAL: CK_MECHANISM_TYPE = 309; pub const CKM_DES3_CBC_PAD: CK_MECHANISM_TYPE = 310; pub const CKM_DES3_CMAC_GENERAL: CK_MECHANISM_TYPE = 311; pub const CKM_DES3_CMAC: CK_MECHANISM_TYPE = 312; pub const CKM_CDMF_KEY_GEN: CK_MECHANISM_TYPE = 320; pub const CKM_CDMF_ECB: CK_MECHANISM_TYPE = 321; pub const CKM_CDMF_CBC: CK_MECHANISM_TYPE = 322; pub const CKM_CDMF_MAC: CK_MECHANISM_TYPE = 323; pub const CKM_CDMF_MAC_GENERAL: CK_MECHANISM_TYPE = 324; pub const CKM_CDMF_CBC_PAD: CK_MECHANISM_TYPE = 325; pub const CKM_DES_OFB64: CK_MECHANISM_TYPE = 336; pub const CKM_DES_OFB8: CK_MECHANISM_TYPE = 337; pub const CKM_DES_CFB64: CK_MECHANISM_TYPE = 338; pub const CKM_DES_CFB8: CK_MECHANISM_TYPE = 339; pub const CKM_MD2: CK_MECHANISM_TYPE = 512; pub const CKM_MD2_HMAC: CK_MECHANISM_TYPE = 513; pub const CKM_MD2_HMAC_GENERAL: CK_MECHANISM_TYPE = 514; pub const CKM_MD5: CK_MECHANISM_TYPE = 528; pub const CKM_MD5_HMAC: CK_MECHANISM_TYPE = 529; pub const CKM_MD5_HMAC_GENERAL: CK_MECHANISM_TYPE = 530; pub const CKM_SHA_1: CK_MECHANISM_TYPE = 544; pub const CKM_SHA_1_HMAC: CK_MECHANISM_TYPE = 545; pub const CKM_SHA_1_HMAC_GENERAL: CK_MECHANISM_TYPE = 546; pub const CKM_RIPEMD128: CK_MECHANISM_TYPE = 560; pub const CKM_RIPEMD128_HMAC: CK_MECHANISM_TYPE = 561; pub const CKM_RIPEMD128_HMAC_GENERAL: CK_MECHANISM_TYPE = 562; pub const CKM_RIPEMD160: CK_MECHANISM_TYPE = 576; pub const CKM_RIPEMD160_HMAC: CK_MECHANISM_TYPE = 577; pub const CKM_RIPEMD160_HMAC_GENERAL: CK_MECHANISM_TYPE = 578; pub const CKM_SHA256: CK_MECHANISM_TYPE = 592; pub const CKM_SHA256_HMAC: CK_MECHANISM_TYPE = 593; pub const CKM_SHA256_HMAC_GENERAL: CK_MECHANISM_TYPE = 594; pub const CKM_SHA384: CK_MECHANISM_TYPE = 608; pub const CKM_SHA384_HMAC: CK_MECHANISM_TYPE = 609; pub const CKM_SHA384_HMAC_GENERAL: CK_MECHANISM_TYPE = 610; pub const CKM_SHA512: CK_MECHANISM_TYPE = 624; pub const CKM_SHA512_HMAC: CK_MECHANISM_TYPE = 625; pub const CKM_SHA512_HMAC_GENERAL: CK_MECHANISM_TYPE = 626; pub const CKM_SECURID_KEY_GEN: CK_MECHANISM_TYPE = 640; pub const CKM_SECURID: CK_MECHANISM_TYPE = 642; pub const CKM_HOTP_KEY_GEN: CK_MECHANISM_TYPE = 656; pub const CKM_HOTP: CK_MECHANISM_TYPE = 657; pub const CKM_ACTI: CK_MECHANISM_TYPE = 672; pub const CKM_ACTI_KEY_GEN: CK_MECHANISM_TYPE = 673; pub const CKM_CAST_KEY_GEN: CK_MECHANISM_TYPE = 768; pub const CKM_CAST_ECB: CK_MECHANISM_TYPE = 769; pub const CKM_CAST_CBC: CK_MECHANISM_TYPE = 770; pub const CKM_CAST_MAC: CK_MECHANISM_TYPE = 771; pub const CKM_CAST_MAC_GENERAL: CK_MECHANISM_TYPE = 772; pub const CKM_CAST_CBC_PAD: CK_MECHANISM_TYPE = 773; pub const CKM_CAST3_KEY_GEN: CK_MECHANISM_TYPE = 784; pub const CKM_CAST3_ECB: CK_MECHANISM_TYPE = 785; pub const CKM_CAST3_CBC: CK_MECHANISM_TYPE = 786; pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST128_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_CAST128_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_RC5_KEY_GEN: CK_MECHANISM_TYPE = 816; pub const CKM_RC5_ECB: CK_MECHANISM_TYPE = 817; pub const CKM_RC5_CBC: CK_MECHANISM_TYPE = 818; pub const CKM_RC5_MAC: CK_MECHANISM_TYPE = 819; pub const CKM_RC5_MAC_GENERAL: CK_MECHANISM_TYPE = 820; pub const CKM_RC5_CBC_PAD: CK_MECHANISM_TYPE = 821; pub const CKM_IDEA_KEY_GEN: CK_MECHANISM_TYPE = 832; pub const CKM_IDEA_ECB: CK_MECHANISM_TYPE = 833; pub const CKM_IDEA_CBC: CK_MECHANISM_TYPE = 834; pub const CKM_IDEA_MAC: CK_MECHANISM_TYPE = 835; pub const CKM_IDEA_MAC_GENERAL: CK_MECHANISM_TYPE = 836; pub const CKM_IDEA_CBC_PAD: CK_MECHANISM_TYPE = 837; pub const CKM_GENERIC_SECRET_KEY_GEN: CK_MECHANISM_TYPE = 848; pub const CKM_CONCATENATE_BASE_AND_KEY: CK_MECHANISM_TYPE = 864; pub const CKM_CONCATENATE_BASE_AND_DATA: CK_MECHANISM_TYPE = 866; pub const CKM_CONCATENATE_DATA_AND_BASE: CK_MECHANISM_TYPE = 867; pub const CKM_XOR_BASE_AND_DATA: CK_MECHANISM_TYPE = 868; pub const CKM_EXTRACT_KEY_FROM_KEY: CK_MECHANISM_TYPE = 869; pub const CKM_SSL3_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 880; pub const CKM_SSL3_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 881; pub const CKM_SSL3_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 882; pub const CKM_SSL3_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 883; pub const CKM_TLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 884; pub const CKM_TLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 885; pub const CKM_TLS_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 886; pub const CKM_TLS_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 887; pub const CKM_TLS_PRF: CK_MECHANISM_TYPE = 888; pub const CKM_SSL3_MD5_MAC: CK_MECHANISM_TYPE = 896; pub const CKM_SSL3_SHA1_MAC: CK_MECHANISM_TYPE = 897; pub const CKM_MD5_KEY_DERIVATION: CK_MECHANISM_TYPE = 912; pub const CKM_MD2_KEY_DERIVATION: CK_MECHANISM_TYPE = 913; pub const CKM_SHA1_KEY_DERIVATION: CK_MECHANISM_TYPE = 914; pub const CKM_SHA256_KEY_DERIVATION: CK_MECHANISM_TYPE = 915; pub const CKM_SHA384_KEY_DERIVATION: CK_MECHANISM_TYPE = 916; pub const CKM_SHA512_KEY_DERIVATION: CK_MECHANISM_TYPE = 917; pub const CKM_PBE_MD2_DES_CBC: CK_MECHANISM_TYPE = 928; pub const CKM_PBE_MD5_DES_CBC: CK_MECHANISM_TYPE = 929; pub const CKM_PBE_MD5_CAST_CBC: CK_MECHANISM_TYPE = 930; pub const CKM_PBE_MD5_CAST3_CBC: CK_MECHANISM_TYPE = 931; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_MD5_CAST128_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_CAST128_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_RC4_128: CK_MECHANISM_TYPE = 934; pub const CKM_PBE_SHA1_RC4_40: CK_MECHANISM_TYPE = 935; pub const CKM_PBE_SHA1_DES3_EDE_CBC: CK_MECHANISM_TYPE = 936; pub const CKM_PBE_SHA1_DES2_EDE_CBC: CK_MECHANISM_TYPE = 937; pub const CKM_PBE_SHA1_RC2_128_CBC: CK_MECHANISM_TYPE = 938; pub const CKM_PBE_SHA1_RC2_40_CBC: CK_MECHANISM_TYPE = 939; pub const CKM_PKCS5_PBKD2: CK_MECHANISM_TYPE = 944; pub const CKM_PBA_SHA1_WITH_SHA1_HMAC: CK_MECHANISM_TYPE = 960; pub const CKM_WTLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 976; pub const CKM_WTLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 977; pub const CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC: CK_MECHANISM_TYPE = 978; pub const CKM_WTLS_PRF: CK_MECHANISM_TYPE = 979; pub const CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 980; pub const CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 981; pub const CKM_TLS10_MAC_SERVER: CK_MECHANISM_TYPE = 982; pub const CKM_TLS10_MAC_CLIENT: CK_MECHANISM_TYPE = 983; pub const CKM_TLS12_MAC: CK_MECHANISM_TYPE = 984; pub const CKM_TLS12_KDF: CK_MECHANISM_TYPE = 985; pub const CKM_TLS12_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 992; pub const CKM_TLS12_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 993; pub const CKM_TLS12_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 994; pub const CKM_TLS12_KEY_SAFE_DERIVE: CK_MECHANISM_TYPE = 995; pub const CKM_TLS_MAC: CK_MECHANISM_TYPE = 996; pub const CKM_TLS_KDF: CK_MECHANISM_TYPE = 997; pub const CKM_KEY_WRAP_LYNKS: CK_MECHANISM_TYPE = 1024; pub const CKM_KEY_WRAP_SET_OAEP: CK_MECHANISM_TYPE = 1025; pub const CKM_CMS_SIG: CK_MECHANISM_TYPE = 1280; pub const CKM_KIP_DERIVE: CK_MECHANISM_TYPE = 1296; pub const CKM_KIP_WRAP: CK_MECHANISM_TYPE = 1297; pub const CKM_KIP_MAC: CK_MECHANISM_TYPE = 1298; pub const CKM_CAMELLIA_KEY_GEN: CK_MECHANISM_TYPE = 1360; pub const CKM_CAMELLIA_CTR: CK_MECHANISM_TYPE = 1368; pub const CKM_ARIA_KEY_GEN: CK_MECHANISM_TYPE = 1376; pub const CKM_ARIA_ECB: CK_MECHANISM_TYPE = 1377; pub const CKM_ARIA_CBC: CK_MECHANISM_TYPE = 1378; pub const CKM_ARIA_MAC: CK_MECHANISM_TYPE = 1379; pub const CKM_ARIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1380; pub const CKM_ARIA_CBC_PAD: CK_MECHANISM_TYPE = 1381; pub const CKM_ARIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1382; pub const CKM_ARIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1383; pub const CKM_SEED_KEY_GEN: CK_MECHANISM_TYPE = 1616; pub const CKM_SEED_ECB: CK_MECHANISM_TYPE = 1617; pub const CKM_SEED_CBC: CK_MECHANISM_TYPE = 1618; pub const CKM_SEED_MAC: CK_MECHANISM_TYPE = 1619; pub const CKM_SEED_MAC_GENERAL: CK_MECHANISM_TYPE = 1620; pub const CKM_SEED_CBC_PAD: CK_MECHANISM_TYPE = 1621; pub const CKM_SEED_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1622; pub const CKM_SEED_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1623; pub const CKM_SKIPJACK_KEY_GEN: CK_MECHANISM_TYPE = 4096; pub const CKM_SKIPJACK_ECB64: CK_MECHANISM_TYPE = 4097; pub const CKM_SKIPJACK_CBC64: CK_MECHANISM_TYPE = 4098; pub const CKM_SKIPJACK_OFB64: CK_MECHANISM_TYPE = 4099; pub const CKM_SKIPJACK_CFB64: CK_MECHANISM_TYPE = 4100; pub const CKM_SKIPJACK_CFB32: CK_MECHANISM_TYPE = 4101; pub const CKM_SKIPJACK_CFB16: CK_MECHANISM_TYPE = 4102; pub const CKM_SKIPJACK_CFB8: CK_MECHANISM_TYPE = 4103; pub const CKM_SKIPJACK_WRAP: CK_MECHANISM_TYPE = 4104; pub const CKM_SKIPJACK_PRIVATE_WRAP: CK_MECHANISM_TYPE = 4105; pub const CKM_SKIPJACK_RELAYX: CK_MECHANISM_TYPE = 4106; pub const CKM_KEA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4112; pub const CKM_KEA_KEY_DERIVE: CK_MECHANISM_TYPE = 4113; pub const CKM_FORTEZZA_TIMESTAMP: CK_MECHANISM_TYPE = 4128; pub const CKM_BATON_KEY_GEN: CK_MECHANISM_TYPE = 4144; pub const CKM_BATON_ECB128: CK_MECHANISM_TYPE = 4145; pub const CKM_BATON_ECB96: CK_MECHANISM_TYPE = 4146; pub const CKM_BATON_CBC128: CK_MECHANISM_TYPE = 4147; pub const CKM_BATON_COUNTER: CK_MECHANISM_TYPE = 4148; pub const CKM_BATON_SHUFFLE: CK_MECHANISM_TYPE = 4149; pub const CKM_BATON_WRAP: CK_MECHANISM_TYPE = 4150; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_EC_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_ECDSA: CK_MECHANISM_TYPE = 4161; pub const CKM_ECDSA_SHA1: CK_MECHANISM_TYPE = 4162; pub const CKM_ECDSA_SHA224: CK_MECHANISM_TYPE = 4163; pub const CKM_ECDSA_SHA256: CK_MECHANISM_TYPE = 4164; pub const CKM_ECDSA_SHA384: CK_MECHANISM_TYPE = 4165; pub const CKM_ECDSA_SHA512: CK_MECHANISM_TYPE = 4166; pub const CKM_ECDH1_DERIVE: CK_MECHANISM_TYPE = 4176; pub const CKM_ECDH1_COFACTOR_DERIVE: CK_MECHANISM_TYPE = 4177; pub const CKM_ECMQV_DERIVE: CK_MECHANISM_TYPE = 4178; pub const CKM_ECDH_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4179; pub const CKM_RSA_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4180; pub const CKM_JUNIPER_KEY_GEN: CK_MECHANISM_TYPE = 4192; pub const CKM_JUNIPER_ECB128: CK_MECHANISM_TYPE = 4193; pub const CKM_JUNIPER_CBC128: CK_MECHANISM_TYPE = 4194; pub const CKM_JUNIPER_COUNTER: CK_MECHANISM_TYPE = 4195; pub const CKM_JUNIPER_SHUFFLE: CK_MECHANISM_TYPE = 4196; pub const CKM_JUNIPER_WRAP: CK_MECHANISM_TYPE = 4197; pub const CKM_FASTHASH: CK_MECHANISM_TYPE = 4208; pub const CKM_AES_KEY_GEN: CK_MECHANISM_TYPE = 4224; pub const CKM_AES_ECB: CK_MECHANISM_TYPE = 4225; pub const CKM_AES_CBC: CK_MECHANISM_TYPE = 4226; pub const CKM_AES_MAC: CK_MECHANISM_TYPE = 4227; pub const CKM_AES_MAC_GENERAL: CK_MECHANISM_TYPE = 4228; pub const CKM_AES_CBC_PAD: CK_MECHANISM_TYPE = 4229; pub const CKM_AES_CTR: CK_MECHANISM_TYPE = 4230; pub const CKM_AES_GCM: CK_MECHANISM_TYPE = 4231; pub const CKM_AES_CCM: CK_MECHANISM_TYPE = 4232; pub const CKM_AES_CTS: CK_MECHANISM_TYPE = 4233; pub const CKM_AES_CMAC: CK_MECHANISM_TYPE = 4234; pub const CKM_AES_CMAC_GENERAL: CK_MECHANISM_TYPE = 4235; pub const CKM_AES_XCBC_MAC: CK_MECHANISM_TYPE = 4236; pub const CKM_AES_XCBC_MAC_96: CK_MECHANISM_TYPE = 4237; pub const CKM_AES_GMAC: CK_MECHANISM_TYPE = 4238; pub const CKM_BLOWFISH_KEY_GEN: CK_MECHANISM_TYPE = 4240; pub const CKM_BLOWFISH_CBC: CK_MECHANISM_TYPE = 4241; pub const CKM_TWOFISH_KEY_GEN: CK_MECHANISM_TYPE = 4242; pub const CKM_TWOFISH_CBC: CK_MECHANISM_TYPE = 4243; pub const CKM_BLOWFISH_CBC_PAD: CK_MECHANISM_TYPE = 4244; pub const CKM_TWOFISH_CBC_PAD: CK_MECHANISM_TYPE = 4245; pub const CKM_DES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4352; pub const CKM_DES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4353; pub const CKM_DES3_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4354; pub const CKM_DES3_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4355; pub const CKM_AES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4356; pub const CKM_AES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4357; pub const CKM_GOSTR3410_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4608; pub const CKM_GOSTR3410: CK_MECHANISM_TYPE = 4609; pub const CKM_GOSTR3410_WITH_GOSTR3411: CK_MECHANISM_TYPE = 4610; pub const CKM_GOSTR3410_KEY_WRAP: CK_MECHANISM_TYPE = 4611; pub const CKM_GOSTR3410_DERIVE: CK_MECHANISM_TYPE = 4612; pub const CKM_GOSTR3411: CK_MECHANISM_TYPE = 4624; pub const CKM_GOSTR3411_HMAC: CK_MECHANISM_TYPE = 4625; pub const CKM_GOST28147_KEY_GEN: CK_MECHANISM_TYPE = 4640; pub const CKM_GOST28147_ECB: CK_MECHANISM_TYPE = 4641; pub const CKM_GOST28147: CK_MECHANISM_TYPE = 4642; pub const CKM_GOST28147_MAC: CK_MECHANISM_TYPE = 4643; pub const CKM_GOST28147_KEY_WRAP: CK_MECHANISM_TYPE = 4644; pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; pub const CKM_AES_CFB64: CK_MECHANISM_TYPE = 8453; pub const CKM_AES_CFB8: CK_MECHANISM_TYPE = 8454; pub const CKM_AES_CFB128: CK_MECHANISM_TYPE = 8455; pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_SHA224: CK_MECHANISM_TYPE = 597; pub const CKM_SHA224_HMAC: CK_MECHANISM_TYPE = 598; pub const CKM_SHA224_HMAC_GENERAL: CK_MECHANISM_TYPE = 599; pub const CKM_SHA224_RSA_PKCS: CK_MECHANISM_TYPE = 70; pub const CKM_SHA224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 71; pub const CKM_SHA224_KEY_DERIVATION: CK_MECHANISM_TYPE = 918; pub const CKM_CAMELLIA_ECB: CK_MECHANISM_TYPE = 1361; pub const CKM_CAMELLIA_CBC: CK_MECHANISM_TYPE = 1362; pub const CKM_CAMELLIA_MAC: CK_MECHANISM_TYPE = 1363; pub const CKM_CAMELLIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1364; pub const CKM_CAMELLIA_CBC_PAD: CK_MECHANISM_TYPE = 1365; pub const CKM_CAMELLIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1366; pub const CKM_CAMELLIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1367; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_EC_EDWARDS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4181; pub const CKM_EC_MONTGOMERY_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4182; pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CK_OTP_FORMAT_DECIMAL: CK_ULONG = 0; pub const CK_OTP_FORMAT_HEXADECIMAL: CK_ULONG = 1; pub const CK_OTP_FORMAT_ALPHANUMERIC: CK_ULONG = 2; pub const CK_OTP_FORMAT_BINARY: CK_ULONG = 3; pub const CK_OTP_PARAM_IGNORED: CK_ULONG = 0; pub const CK_OTP_PARAM_OPTIONAL: CK_ULONG = 1; pub const CK_OTP_PARAM_MANDATORY: CK_ULONG = 2; pub const CK_OTP_VALUE: CK_ULONG = 0; pub const CK_OTP_PIN: CK_ULONG = 1; pub const CK_OTP_CHALLENGE: CK_ULONG = 2; pub const CK_OTP_TIME: CK_ULONG = 3; pub const CK_OTP_COUNTER: CK_ULONG = 4; pub const CK_OTP_FLAGS: CK_ULONG = 5; pub const CK_OTP_OUTPUT_LENGTH: CK_ULONG = 6; pub const CK_OTP_FORMAT: CK_ULONG = 7; pub const CKF_NEXT_OTP: CK_FLAGS = 1; pub const CKF_EXCLUDE_TIME: CK_FLAGS = 2; pub const CKF_EXCLUDE_COUNTER: CK_FLAGS = 4; pub const CKF_EXCLUDE_CHALLENGE: CK_FLAGS = 8; pub const CKF_EXCLUDE_PIN: CK_FLAGS = 16; pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKG_MGF1_SHA1: CK_RSA_PKCS_MGF_TYPE = 1; pub const CKG_MGF1_SHA224: CK_RSA_PKCS_MGF_TYPE = 5; pub const CKG_MGF1_SHA256: CK_RSA_PKCS_MGF_TYPE = 2; pub const CKG_MGF1_SHA384: CK_RSA_PKCS_MGF_TYPE = 3; pub const CKG_MGF1_SHA512: CK_RSA_PKCS_MGF_TYPE = 4; pub const CKD_NULL: CK_EC_KDF_TYPE = 1; pub const CKD_SHA1_KDF: CK_EC_KDF_TYPE = 2; pub const CKD_SHA1_KDF_ASN1: CK_EC_KDF_TYPE = 3; pub const CKD_SHA1_KDF_CONCATENATE: CK_EC_KDF_TYPE = 4; pub const CKD_SHA224_KDF: CK_EC_KDF_TYPE = 5; pub const CKD_SHA256_KDF: CK_EC_KDF_TYPE = 6; pub const CKD_SHA384_KDF: CK_EC_KDF_TYPE = 7; pub const CKD_SHA512_KDF: CK_EC_KDF_TYPE = 8; pub const CKD_CPDIVERSIFY_KDF: CK_EC_KDF_TYPE = 9; pub const CKF_HW: CK_FLAGS = 1; pub const CKF_ENCRYPT: CK_FLAGS = 256; pub const CKF_DECRYPT: CK_FLAGS = 512; pub const CKF_DIGEST: CK_FLAGS = 1024; pub const CKF_SIGN: CK_FLAGS = 2048; pub const CKF_SIGN_RECOVER: CK_FLAGS = 4096; pub const CKF_VERIFY: CK_FLAGS = 8192; pub const CKF_VERIFY_RECOVER: CK_FLAGS = 16384; pub const CKF_GENERATE: CK_FLAGS = 32768; pub const CKF_GENERATE_KEY_PAIR: CK_FLAGS = 65536; pub const CKF_WRAP: CK_FLAGS = 131072; pub const CKF_UNWRAP: CK_FLAGS = 262144; pub const CKF_DERIVE: CK_FLAGS = 524288; pub const CKF_EC_F_P: CK_FLAGS = 1048576; pub const CKF_EC_F_2M: CK_FLAGS = 2097152; pub const CKF_EC_ECPARAMETERS: CK_FLAGS = 4194304; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_LIBRARY_CANT_CREATE_OS_THREADS: CK_FLAGS = 1; pub const CKF_OS_LOCKING_OK: CK_FLAGS = 2; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; pub const CKR_SLOT_ID_INVALID: CK_RV = 3; pub const CKR_GENERAL_ERROR: CK_RV = 5; pub const CKR_FUNCTION_FAILED: CK_RV = 6; pub const CKR_ARGUMENTS_BAD: CK_RV = 7; pub const CKR_NO_EVENT: CK_RV = 8; pub const CKR_NEED_TO_CREATE_THREADS: CK_RV = 9; pub const CKR_CANT_LOCK: CK_RV = 10; pub const CKR_ATTRIBUTE_READ_ONLY: CK_RV = 16; pub const CKR_ATTRIBUTE_SENSITIVE: CK_RV = 17; pub const CKR_ATTRIBUTE_TYPE_INVALID: CK_RV = 18; pub const CKR_ATTRIBUTE_VALUE_INVALID: CK_RV = 19; pub const CKR_ACTION_PROHIBITED: CK_RV = 27; pub const CKR_DATA_INVALID: CK_RV = 32; pub const CKR_DATA_LEN_RANGE: CK_RV = 33; pub const CKR_DEVICE_ERROR: CK_RV = 48; pub const CKR_DEVICE_MEMORY: CK_RV = 49; pub const CKR_DEVICE_REMOVED: CK_RV = 50; pub const CKR_ENCRYPTED_DATA_INVALID: CK_RV = 64; pub const CKR_ENCRYPTED_DATA_LEN_RANGE: CK_RV = 65; pub const CKR_FUNCTION_CANCELED: CK_RV = 80; pub const CKR_FUNCTION_NOT_PARALLEL: CK_RV = 81; pub const CKR_FUNCTION_NOT_SUPPORTED: CK_RV = 84; pub const CKR_KEY_HANDLE_INVALID: CK_RV = 96; pub const CKR_KEY_SIZE_RANGE: CK_RV = 98; pub const CKR_KEY_TYPE_INCONSISTENT: CK_RV = 99; pub const CKR_KEY_NOT_NEEDED: CK_RV = 100; pub const CKR_KEY_CHANGED: CK_RV = 101; pub const CKR_KEY_NEEDED: CK_RV = 102; pub const CKR_KEY_INDIGESTIBLE: CK_RV = 103; pub const CKR_KEY_FUNCTION_NOT_PERMITTED: CK_RV = 104; pub const CKR_KEY_NOT_WRAPPABLE: CK_RV = 105; pub const CKR_KEY_UNEXTRACTABLE: CK_RV = 106; pub const CKR_MECHANISM_INVALID: CK_RV = 112; pub const CKR_MECHANISM_PARAM_INVALID: CK_RV = 113; pub const CKR_OBJECT_HANDLE_INVALID: CK_RV = 130; pub const CKR_OPERATION_ACTIVE: CK_RV = 144; pub const CKR_OPERATION_NOT_INITIALIZED: CK_RV = 145; pub const CKR_PIN_INCORRECT: CK_RV = 160; pub const CKR_PIN_INVALID: CK_RV = 161; pub const CKR_PIN_LEN_RANGE: CK_RV = 162; pub const CKR_PIN_EXPIRED: CK_RV = 163; pub const CKR_PIN_LOCKED: CK_RV = 164; pub const CKR_SESSION_CLOSED: CK_RV = 176; pub const CKR_SESSION_COUNT: CK_RV = 177; pub const CKR_SESSION_HANDLE_INVALID: CK_RV = 179; pub const CKR_SESSION_PARALLEL_NOT_SUPPORTED: CK_RV = 180; pub const CKR_SESSION_READ_ONLY: CK_RV = 181; pub const CKR_SESSION_EXISTS: CK_RV = 182; pub const CKR_SESSION_READ_ONLY_EXISTS: CK_RV = 183; pub const CKR_SESSION_READ_WRITE_SO_EXISTS: CK_RV = 184; pub const CKR_SIGNATURE_INVALID: CK_RV = 192; pub const CKR_SIGNATURE_LEN_RANGE: CK_RV = 193; pub const CKR_TEMPLATE_INCOMPLETE: CK_RV = 208; pub const CKR_TEMPLATE_INCONSISTENT: CK_RV = 209; pub const CKR_TOKEN_NOT_PRESENT: CK_RV = 224; pub const CKR_TOKEN_NOT_RECOGNIZED: CK_RV = 225; pub const CKR_TOKEN_WRITE_PROTECTED: CK_RV = 226; pub const CKR_UNWRAPPING_KEY_HANDLE_INVALID: CK_RV = 240; pub const CKR_UNWRAPPING_KEY_SIZE_RANGE: CK_RV = 241; pub const CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 242; pub const CKR_USER_ALREADY_LOGGED_IN: CK_RV = 256; pub const CKR_USER_NOT_LOGGED_IN: CK_RV = 257; pub const CKR_USER_PIN_NOT_INITIALIZED: CK_RV = 258; pub const CKR_USER_TYPE_INVALID: CK_RV = 259; pub const CKR_USER_ANOTHER_ALREADY_LOGGED_IN: CK_RV = 260; pub const CKR_USER_TOO_MANY_TYPES: CK_RV = 261; pub const CKR_WRAPPED_KEY_INVALID: CK_RV = 272; pub const CKR_WRAPPED_KEY_LEN_RANGE: CK_RV = 274; pub const CKR_WRAPPING_KEY_HANDLE_INVALID: CK_RV = 275; pub const CKR_WRAPPING_KEY_SIZE_RANGE: CK_RV = 276; pub const CKR_WRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 277; pub const CKR_RANDOM_SEED_NOT_SUPPORTED: CK_RV = 288; pub const CKR_RANDOM_NO_RNG: CK_RV = 289; pub const CKR_DOMAIN_PARAMS_INVALID: CK_RV = 304; pub const CKR_BUFFER_TOO_SMALL: CK_RV = 336; pub const CKR_SAVED_STATE_INVALID: CK_RV = 352; pub const CKR_INFORMATION_SENSITIVE: CK_RV = 368; pub const CKR_STATE_UNSAVEABLE: CK_RV = 384; pub const CKR_CRYPTOKI_NOT_INITIALIZED: CK_RV = 400; pub const CKR_CRYPTOKI_ALREADY_INITIALIZED: CK_RV = 401; pub const CKR_MUTEX_BAD: CK_RV = 416; pub const CKR_MUTEX_NOT_LOCKED: CK_RV = 417; pub const CKR_NEW_PIN_MODE: CK_RV = 432; pub const CKR_NEXT_OTP: CK_RV = 433; pub const CKR_EXCEEDED_MAX_ITERATIONS: CK_RV = 448; pub const CKR_FIPS_SELF_TEST_FAILED: CK_RV = 449; pub const CKR_LIBRARY_LOAD_FAILED: CK_RV = 450; pub const CKR_PIN_TOO_WEAK: CK_RV = 451; pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 452; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CK_FALSE: CK_BBOOL = 0; pub const CK_TRUE: CK_BBOOL = 1; pub const FALSE: u32 = 0; pub const TRUE: u32 = 1; pub type CK_FLAGS = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_VERSION { pub major: ::std::os::raw::c_uchar, pub minor: ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout__CK_VERSION() { const UNINIT: ::std::mem::MaybeUninit<_CK_VERSION> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_VERSION>(), 2usize, concat!("Size of: ", stringify!(_CK_VERSION)) ); assert_eq!( ::std::mem::align_of::<_CK_VERSION>(), 1usize, concat!("Alignment of ", stringify!(_CK_VERSION)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).major) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(major) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).minor) as usize - ptr as usize }, 1usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(minor) ) ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_INFO { pub cryptokiVersion: _CK_VERSION, pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub libraryDescription: [::std::os::raw::c_uchar; 32usize], pub libraryVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_INFO>(), 88usize, concat!("Size of: ", stringify!(_CK_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cryptokiVersion) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(cryptokiVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 2usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryDescription) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryVersion) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryVersion) ) ); } pub type CK_NOTIFICATION = ::std::os::raw::c_ulong; pub const CKN_SURRENDER: ::std::os::raw::c_ulong = 0; pub type CK_SLOT_ID = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_SLOT_INFO { pub slotDescription: [::std::os::raw::c_uchar; 64usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_SLOT_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SLOT_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SLOT_INFO>(), 112usize, concat!("Size of: ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SLOT_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotDescription) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(slotDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 106usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(firmwareVersion) ) ); } impl Default for _CK_SLOT_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub const CKF_TOKEN_PRESENT: ::std::os::raw::c_ulong = 1; pub const CKF_REMOVABLE_DEVICE: ::std::os::raw::c_ulong = 2; pub const CKF_HW_SLOT: ::std::os::raw::c_ulong = 4; pub const CKF_ARRAY_ATTRIBUTE: ::std::os::raw::c_ulong = 1073741824; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_TOKEN_INFO { pub label: [::std::os::raw::c_uchar; 32usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub model: [::std::os::raw::c_uchar; 16usize], pub serialNumber: [::std::os::raw::c_uchar; 16usize], pub flags: CK_FLAGS, pub ulMaxSessionCount: ::std::os::raw::c_ulong, pub ulSessionCount: ::std::os::raw::c_ulong, pub ulMaxRwSessionCount: ::std::os::raw::c_ulong, pub ulRwSessionCount: ::std::os::raw::c_ulong, pub ulMaxPinLen: ::std::os::raw::c_ulong, pub ulMinPinLen: ::std::os::raw::c_ulong, pub ulTotalPublicMemory: ::std::os::raw::c_ulong, pub ulFreePublicMemory: ::std::os::raw::c_ulong, pub ulTotalPrivateMemory: ::std::os::raw::c_ulong, pub ulFreePrivateMemory: ::std::os::raw::c_ulong, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, pub utcTime: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout__CK_TOKEN_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_TOKEN_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_TOKEN_INFO>(), 208usize, concat!("Size of: ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_TOKEN_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(label) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).model) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(model) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).serialNumber) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(serialNumber) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxSessionCount) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSessionCount) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxRwSessionCount) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulRwSessionCount) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxPinLen) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinPinLen) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMinPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPublicMemory) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePublicMemory) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPrivateMemory) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePrivateMemory) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 186usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(firmwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).utcTime) as usize - ptr as usize }, 188usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(utcTime) ) ); } pub type CK_SESSION_HANDLE = ::std::os::raw::c_ulong; pub type CK_USER_TYPE = ::std::os::raw::c_ulong; pub type CK_STATE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_SESSION_INFO { pub slotID: CK_SLOT_ID, pub state: CK_STATE, pub flags: CK_FLAGS, pub ulDeviceError: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_SESSION_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SESSION_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SESSION_INFO>(), 32usize, concat!("Size of: ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SESSION_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotID) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(slotID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(state) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulDeviceError) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(ulDeviceError) ) ); } pub type CK_OBJECT_HANDLE = ::std::os::raw::c_ulong; pub type CK_OBJECT_CLASS = ::std::os::raw::c_ulong; pub type CK_HW_FEATURE_TYPE = ::std::os::raw::c_ulong; pub type CK_KEY_TYPE = ::std::os::raw::c_ulong; pub type CK_CERTIFICATE_TYPE = ::std::os::raw::c_ulong; pub type CK_ATTRIBUTE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_ATTRIBUTE { pub type_: CK_ATTRIBUTE_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_ATTRIBUTE() { const UNINIT: ::std::mem::MaybeUninit<_CK_ATTRIBUTE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_ATTRIBUTE>(), 24usize, concat!("Size of: ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( ::std::mem::align_of::<_CK_ATTRIBUTE>(), 8usize, concat!("Alignment of ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(ulValueLen) ) ); } impl Default for _CK_ATTRIBUTE { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_DATE { pub year: [::std::os::raw::c_uchar; 4usize], pub month: [::std::os::raw::c_uchar; 2usize], pub day: [::std::os::raw::c_uchar; 2usize], } #[test] fn bindgen_test_layout__CK_DATE() { const UNINIT: ::std::mem::MaybeUninit<_CK_DATE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_DATE>(), 8usize, concat!("Size of: ", stringify!(_CK_DATE)) ); assert_eq!( ::std::mem::align_of::<_CK_DATE>(), 1usize, concat!("Alignment of ", stringify!(_CK_DATE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).year) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(year) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).month) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(month) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).day) as usize - ptr as usize }, 6usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(day) ) ); } pub type CK_MECHANISM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_MECHANISM { pub mechanism: CK_MECHANISM_TYPE, pub pParameter: *mut ::std::os::raw::c_void, pub ulParameterLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_MECHANISM() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM>(), 24usize, concat!("Size of: ", stringify!(_CK_MECHANISM)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM>(), 8usize, concat!("Alignment of ", stringify!(_CK_MECHANISM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mechanism) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(mechanism) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParameter) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(pParameter) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulParameterLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(ulParameterLen) ) ); } impl Default for _CK_MECHANISM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_MECHANISM_INFO { pub ulMinKeySize: ::std::os::raw::c_ulong, pub ulMaxKeySize: ::std::os::raw::c_ulong, pub flags: CK_FLAGS, } #[test] fn bindgen_test_layout__CK_MECHANISM_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM_INFO>(), 24usize, concat!("Size of: ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinKeySize) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMinKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxKeySize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMaxKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(flags) ) ); } pub type CK_PARAM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAM { pub type_: CK_PARAM_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAM() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(CK_OTP_PARAM)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_PARAM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(ulValueLen) ) ); } impl Default for CK_OTP_PARAM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAMS { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAMS() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_PARAMS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_SIGNATURE_INFO { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_SIGNATURE_INFO() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_SIGNATURE_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RSA_PKCS_MGF_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_rsa_pkcs_pss_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub sLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_pss_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).sLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(sLen) ) ); } pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_rsa_pkcs_oaep_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub source: CK_RSA_PKCS_OAEP_SOURCE_TYPE, pub pSourceData: *mut ::std::os::raw::c_void, pub ulSourceDataLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_oaep_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(source) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSourceData) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(pSourceData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSourceDataLen) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(ulSourceDataLen) ) ); } impl Default for ck_rsa_pkcs_oaep_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_aes_ctr_params { pub ulCounterBits: ::std::os::raw::c_ulong, pub cb: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout_ck_aes_ctr_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_aes_ctr_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_aes_ctr_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCounterBits) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(ulCounterBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cb) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(cb) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_gcm_params { pub pIv: *mut ::std::os::raw::c_uchar, pub ulIvLen: ::std::os::raw::c_ulong, pub ulIvBits: ::std::os::raw::c_ulong, pub pAAD: *mut ::std::os::raw::c_uchar, pub ulAADLen: ::std::os::raw::c_ulong, pub ulTagBits: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_gcm_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 48usize, concat!("Size of: ", stringify!(ck_gcm_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_gcm_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pIv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pIv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvBits) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pAAD) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pAAD) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulAADLen) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulAADLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTagBits) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulTagBits) ) ); } impl Default for ck_gcm_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type ck_ec_kdf_t = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_ecdh1_derive_params { pub kdf: ck_ec_kdf_t, pub ulSharedDataLen: ::std::os::raw::c_ulong, pub pSharedData: *mut ::std::os::raw::c_uchar, pub ulPublicDataLen: ::std::os::raw::c_ulong, pub pPublicData: *mut ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout_ck_ecdh1_derive_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(kdf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSharedDataLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulSharedDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSharedData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pSharedData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulPublicDataLen) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulPublicDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pPublicData) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pPublicData) ) ); } impl Default for ck_ecdh1_derive_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_key_derivation_string_data { pub pData: *mut ::std::os::raw::c_uchar, pub ulLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_key_derivation_string_data() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(ulLen) ) ); } impl Default for ck_key_derivation_string_data { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_des_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 8usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_des_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_des_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_aes_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 16usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_aes_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 32usize, concat!("Size of: ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_aes_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RV = ::std::os::raw::c_ulong; pub type CK_NOTIFY = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, event: CK_NOTIFICATION, application: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_Initialize = ::std::option::Option CK_RV>; pub type CK_C_Finalize = ::std::option::Option CK_RV>; pub type CK_C_GetInfo = ::std::option::Option CK_RV>; pub type CK_C_GetFunctionList = ::std::option::Option< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, >; pub type CK_C_GetSlotList = ::std::option::Option< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetSlotInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, >; pub type CK_C_GetTokenInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, >; pub type CK_C_WaitForSlotEvent = ::std::option::Option< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_GetMechanismList = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetMechanismInfo = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, >; pub type CK_C_InitToken = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, >; pub type CK_C_InitPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_OpenSession = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, >; pub type CK_C_CloseSession = ::std::option::Option CK_RV>; pub type CK_C_CloseAllSessions = ::std::option::Option CK_RV>; pub type CK_C_GetSessionInfo = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, >; pub type CK_C_GetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Login = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_Logout = ::std::option::Option CK_RV>; pub type CK_C_CreateObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_CopyObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DestroyObject = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_GetObjectSize = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjects = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsFinal = ::std::option::Option CK_RV>; pub type CK_C_EncryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Encrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Decrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestInit = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, >; pub type CK_C_Digest = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestKey = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_DigestFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Sign = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SignRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Verify = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_VerifyRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptDigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptVerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_GenerateKeyPair = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_WrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_UnwrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DeriveKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SeedRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetFunctionStatus = ::std::option::Option CK_RV>; pub type CK_C_CancelFunction = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_FUNCTION_LIST { pub version: _CK_VERSION, pub C_Initialize: CK_C_Initialize, pub C_Finalize: CK_C_Finalize, pub C_GetInfo: CK_C_GetInfo, pub C_GetFunctionList: CK_C_GetFunctionList, pub C_GetSlotList: CK_C_GetSlotList, pub C_GetSlotInfo: CK_C_GetSlotInfo, pub C_GetTokenInfo: CK_C_GetTokenInfo, pub C_GetMechanismList: CK_C_GetMechanismList, pub C_GetMechanismInfo: CK_C_GetMechanismInfo, pub C_InitToken: CK_C_InitToken, pub C_InitPIN: CK_C_InitPIN, pub C_SetPIN: CK_C_SetPIN, pub C_OpenSession: CK_C_OpenSession, pub C_CloseSession: CK_C_CloseSession, pub C_CloseAllSessions: CK_C_CloseAllSessions, pub C_GetSessionInfo: CK_C_GetSessionInfo, pub C_GetOperationState: CK_C_GetOperationState, pub C_SetOperationState: CK_C_SetOperationState, pub C_Login: CK_C_Login, pub C_Logout: CK_C_Logout, pub C_CreateObject: CK_C_CreateObject, pub C_CopyObject: CK_C_CopyObject, pub C_DestroyObject: CK_C_DestroyObject, pub C_GetObjectSize: CK_C_GetObjectSize, pub C_GetAttributeValue: CK_C_GetAttributeValue, pub C_SetAttributeValue: CK_C_SetAttributeValue, pub C_FindObjectsInit: CK_C_FindObjectsInit, pub C_FindObjects: CK_C_FindObjects, pub C_FindObjectsFinal: CK_C_FindObjectsFinal, pub C_EncryptInit: CK_C_EncryptInit, pub C_Encrypt: CK_C_Encrypt, pub C_EncryptUpdate: CK_C_EncryptUpdate, pub C_EncryptFinal: CK_C_EncryptFinal, pub C_DecryptInit: CK_C_DecryptInit, pub C_Decrypt: CK_C_Decrypt, pub C_DecryptUpdate: CK_C_DecryptUpdate, pub C_DecryptFinal: CK_C_DecryptFinal, pub C_DigestInit: CK_C_DigestInit, pub C_Digest: CK_C_Digest, pub C_DigestUpdate: CK_C_DigestUpdate, pub C_DigestKey: CK_C_DigestKey, pub C_DigestFinal: CK_C_DigestFinal, pub C_SignInit: CK_C_SignInit, pub C_Sign: CK_C_Sign, pub C_SignUpdate: CK_C_SignUpdate, pub C_SignFinal: CK_C_SignFinal, pub C_SignRecoverInit: CK_C_SignRecoverInit, pub C_SignRecover: CK_C_SignRecover, pub C_VerifyInit: CK_C_VerifyInit, pub C_Verify: CK_C_Verify, pub C_VerifyUpdate: CK_C_VerifyUpdate, pub C_VerifyFinal: CK_C_VerifyFinal, pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, pub C_VerifyRecover: CK_C_VerifyRecover, pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, pub C_GenerateKey: CK_C_GenerateKey, pub C_GenerateKeyPair: CK_C_GenerateKeyPair, pub C_WrapKey: CK_C_WrapKey, pub C_UnwrapKey: CK_C_UnwrapKey, pub C_DeriveKey: CK_C_DeriveKey, pub C_SeedRandom: CK_C_SeedRandom, pub C_GenerateRandom: CK_C_GenerateRandom, pub C_GetFunctionStatus: CK_C_GetFunctionStatus, pub C_CancelFunction: CK_C_CancelFunction, pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, } #[test] fn bindgen_test_layout__CK_FUNCTION_LIST() { const UNINIT: ::std::mem::MaybeUninit<_CK_FUNCTION_LIST> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_FUNCTION_LIST>(), 552usize, concat!("Size of: ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( ::std::mem::align_of::<_CK_FUNCTION_LIST>(), 8usize, concat!("Alignment of ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(version) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Initialize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Initialize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Finalize) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Finalize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetInfo) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionList) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotList) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotInfo) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetTokenInfo) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetTokenInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismList) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismInfo) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitToken) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitToken) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitPIN) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetPIN) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_OpenSession) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_OpenSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseSession) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseAllSessions) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseAllSessions) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSessionInfo) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSessionInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetOperationState) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetOperationState) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Login) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Login) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Logout) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Logout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CreateObject) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CreateObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CopyObject) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CopyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DestroyObject) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DestroyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetObjectSize) as usize - ptr as usize }, 192usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetObjectSize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetAttributeValue) as usize - ptr as usize }, 200usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetAttributeValue) as usize - ptr as usize }, 208usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsInit) as usize - ptr as usize }, 216usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjects) as usize - ptr as usize }, 224usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjects) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsFinal) as usize - ptr as usize }, 232usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptInit) as usize - ptr as usize }, 240usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Encrypt) as usize - ptr as usize }, 248usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Encrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptUpdate) as usize - ptr as usize }, 256usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptFinal) as usize - ptr as usize }, 264usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptInit) as usize - ptr as usize }, 272usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Decrypt) as usize - ptr as usize }, 280usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Decrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptUpdate) as usize - ptr as usize }, 288usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptFinal) as usize - ptr as usize }, 296usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestInit) as usize - ptr as usize }, 304usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Digest) as usize - ptr as usize }, 312usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Digest) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestUpdate) as usize - ptr as usize }, 320usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestKey) as usize - ptr as usize }, 328usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestFinal) as usize - ptr as usize }, 336usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignInit) as usize - ptr as usize }, 344usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Sign) as usize - ptr as usize }, 352usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Sign) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignUpdate) as usize - ptr as usize }, 360usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignFinal) as usize - ptr as usize }, 368usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecoverInit) as usize - ptr as usize }, 376usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecover) as usize - ptr as usize }, 384usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyInit) as usize - ptr as usize }, 392usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Verify) as usize - ptr as usize }, 400usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Verify) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyUpdate) as usize - ptr as usize }, 408usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyFinal) as usize - ptr as usize }, 416usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecoverInit) as usize - ptr as usize }, 424usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecover) as usize - ptr as usize }, 432usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestEncryptUpdate) as usize - ptr as usize }, 440usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptDigestUpdate) as usize - ptr as usize }, 448usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptDigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignEncryptUpdate) as usize - ptr as usize }, 456usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptVerifyUpdate) as usize - ptr as usize }, 464usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptVerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKey) as usize - ptr as usize }, 472usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKeyPair) as usize - ptr as usize }, 480usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKeyPair) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WrapKey) as usize - ptr as usize }, 488usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_UnwrapKey) as usize - ptr as usize }, 496usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_UnwrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DeriveKey) as usize - ptr as usize }, 504usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DeriveKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SeedRandom) as usize - ptr as usize }, 512usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SeedRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateRandom) as usize - ptr as usize }, 520usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionStatus) as usize - ptr as usize }, 528usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionStatus) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CancelFunction) as usize - ptr as usize }, 536usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CancelFunction) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WaitForSlotEvent) as usize - ptr as usize }, 544usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WaitForSlotEvent) ) ); } pub type CK_CREATEMUTEX = ::std::option::Option CK_RV>; pub type CK_DESTROYMUTEX = ::std::option::Option CK_RV>; pub type CK_LOCKMUTEX = ::std::option::Option CK_RV>; pub type CK_UNLOCKMUTEX = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_C_INITIALIZE_ARGS { pub CreateMutex: CK_CREATEMUTEX, pub DestroyMutex: CK_DESTROYMUTEX, pub LockMutex: CK_LOCKMUTEX, pub UnlockMutex: CK_UNLOCKMUTEX, pub flags: CK_FLAGS, pub pReserved: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout__CK_C_INITIALIZE_ARGS() { const UNINIT: ::std::mem::MaybeUninit<_CK_C_INITIALIZE_ARGS> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_C_INITIALIZE_ARGS>(), 48usize, concat!("Size of: ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( ::std::mem::align_of::<_CK_C_INITIALIZE_ARGS>(), 8usize, concat!("Alignment of ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).CreateMutex) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(CreateMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).DestroyMutex) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(DestroyMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).LockMutex) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(LockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).UnlockMutex) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(UnlockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pReserved) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(pReserved) ) ); } impl Default for _CK_C_INITIALIZE_ARGS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_BYTE = ::std::os::raw::c_uchar; pub type CK_CHAR = ::std::os::raw::c_uchar; pub type CK_UTF8CHAR = ::std::os::raw::c_uchar; pub type CK_BBOOL = ::std::os::raw::c_uchar; pub type CK_ULONG = ::std::os::raw::c_ulong; pub type CK_LONG = ::std::os::raw::c_long; pub type CK_BYTE_PTR = *mut CK_BYTE; pub type CK_CHAR_PTR = *mut CK_CHAR; pub type CK_UTF8CHAR_PTR = *mut CK_UTF8CHAR; pub type CK_ULONG_PTR = *mut CK_ULONG; pub type CK_VOID_PTR = *mut ::std::os::raw::c_void; pub type CK_VOID_PTR_PTR = *mut *mut ::std::os::raw::c_void; pub type CK_VERSION = _CK_VERSION; pub type CK_VERSION_PTR = *mut _CK_VERSION; pub type CK_INFO = _CK_INFO; pub type CK_INFO_PTR = *mut _CK_INFO; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SLOT_INFO = _CK_SLOT_INFO; pub type CK_SLOT_INFO_PTR = *mut _CK_SLOT_INFO; pub type CK_TOKEN_INFO = _CK_TOKEN_INFO; pub type CK_TOKEN_INFO_PTR = *mut _CK_TOKEN_INFO; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; pub type CK_SESSION_INFO = _CK_SESSION_INFO; pub type CK_SESSION_INFO_PTR = *mut _CK_SESSION_INFO; pub type CK_OBJECT_HANDLE_PTR = *mut CK_OBJECT_HANDLE; pub type CK_OBJECT_CLASS_PTR = *mut CK_OBJECT_CLASS; pub type CK_ATTRIBUTE = _CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR = *mut _CK_ATTRIBUTE; pub type CK_DATE = _CK_DATE; pub type CK_DATE_PTR = *mut _CK_DATE; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; pub type CK_MECHANISM = _CK_MECHANISM; pub type CK_MECHANISM_PTR = *mut _CK_MECHANISM; pub type CK_MECHANISM_INFO = _CK_MECHANISM_INFO; pub type CK_MECHANISM_INFO_PTR = *mut _CK_MECHANISM_INFO; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_otp_mechanism_info { _unused: [u8; 0], } pub type CK_OTP_MECHANISM_INFO = ck_otp_mechanism_info; pub type CK_OTP_MECHANISM_INFO_PTR = *mut ck_otp_mechanism_info; pub type CK_FUNCTION_LIST = _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR = *mut _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut _CK_FUNCTION_LIST; pub type CK_C_INITIALIZE_ARGS = _CK_C_INITIALIZE_ARGS; pub type CK_C_INITIALIZE_ARGS_PTR = *mut _CK_C_INITIALIZE_ARGS; pub type CK_RSA_PKCS_PSS_PARAMS = ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_PSS_PARAMS_PTR = *mut ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_OAEP_PARAMS = ck_rsa_pkcs_oaep_params; pub type CK_RSA_PKCS_OAEP_PARAMS_PTR = *mut ck_rsa_pkcs_oaep_params; pub type CK_AES_CTR_PARAMS = ck_aes_ctr_params; pub type CK_AES_CTR_PARAMS_PTR = *mut ck_aes_ctr_params; pub type CK_GCM_PARAMS = ck_gcm_params; pub type CK_GCM_PARAMS_PTR = *mut ck_gcm_params; pub type CK_ECDH1_DERIVE_PARAMS = ck_ecdh1_derive_params; pub type CK_ECDH1_DERIVE_PARAMS_PTR = *mut ck_ecdh1_derive_params; pub type CK_KEY_DERIVATION_STRING_DATA = ck_key_derivation_string_data; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut ck_key_derivation_string_data; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS = ck_des_cbc_encrypt_data_params; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_des_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS = ck_aes_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_aes_cbc_encrypt_data_params; extern crate libloading; pub struct Pkcs11 { __library: ::libloading::Library, pub C_Initialize: Result< unsafe extern "C" fn(init_args: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_Finalize: Result< unsafe extern "C" fn(pReserved: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_GetInfo: Result CK_RV, ::libloading::Error>, pub C_GetFunctionList: Result< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, ::libloading::Error, >, pub C_GetSlotList: Result< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetSlotInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetTokenInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, ::libloading::Error, >, pub C_WaitForSlotEvent: Result< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismList: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismInfo: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, ::libloading::Error, >, pub C_InitToken: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, ::libloading::Error, >, pub C_InitPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_OpenSession: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CloseSession: Result CK_RV, ::libloading::Error>, pub C_CloseAllSessions: Result CK_RV, ::libloading::Error>, pub C_GetSessionInfo: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Login: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_Logout: Result CK_RV, ::libloading::Error>, pub C_CreateObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CopyObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DestroyObject: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_GetObjectSize: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjects: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsFinal: Result CK_RV, ::libloading::Error>, pub C_EncryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Encrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Decrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestInit: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, ::libloading::Error, >, pub C_Digest: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestKey: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_DigestFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Sign: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Verify: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptDigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptVerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKeyPair: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_WrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_UnwrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DeriveKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SeedRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetFunctionStatus: Result CK_RV, ::libloading::Error>, pub C_CancelFunction: Result CK_RV, ::libloading::Error>, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result where P: AsRef<::std::ffi::OsStr>, { let library = ::libloading::Library::new(path)?; Self::from_library(library) } pub unsafe fn from_library(library: L) -> Result where L: Into<::libloading::Library>, { let __library = library.into(); let C_Initialize = __library.get(b"C_Initialize\0").map(|sym| *sym); let C_Finalize = __library.get(b"C_Finalize\0").map(|sym| *sym); let C_GetInfo = __library.get(b"C_GetInfo\0").map(|sym| *sym); let C_GetFunctionList = __library.get(b"C_GetFunctionList\0").map(|sym| *sym); let C_GetSlotList = __library.get(b"C_GetSlotList\0").map(|sym| *sym); let C_GetSlotInfo = __library.get(b"C_GetSlotInfo\0").map(|sym| *sym); let C_GetTokenInfo = __library.get(b"C_GetTokenInfo\0").map(|sym| *sym); let C_WaitForSlotEvent = __library.get(b"C_WaitForSlotEvent\0").map(|sym| *sym); let C_GetMechanismList = __library.get(b"C_GetMechanismList\0").map(|sym| *sym); let C_GetMechanismInfo = __library.get(b"C_GetMechanismInfo\0").map(|sym| *sym); let C_InitToken = __library.get(b"C_InitToken\0").map(|sym| *sym); let C_InitPIN = __library.get(b"C_InitPIN\0").map(|sym| *sym); let C_SetPIN = __library.get(b"C_SetPIN\0").map(|sym| *sym); let C_OpenSession = __library.get(b"C_OpenSession\0").map(|sym| *sym); let C_CloseSession = __library.get(b"C_CloseSession\0").map(|sym| *sym); let C_CloseAllSessions = __library.get(b"C_CloseAllSessions\0").map(|sym| *sym); let C_GetSessionInfo = __library.get(b"C_GetSessionInfo\0").map(|sym| *sym); let C_GetOperationState = __library.get(b"C_GetOperationState\0").map(|sym| *sym); let C_SetOperationState = __library.get(b"C_SetOperationState\0").map(|sym| *sym); let C_Login = __library.get(b"C_Login\0").map(|sym| *sym); let C_Logout = __library.get(b"C_Logout\0").map(|sym| *sym); let C_CreateObject = __library.get(b"C_CreateObject\0").map(|sym| *sym); let C_CopyObject = __library.get(b"C_CopyObject\0").map(|sym| *sym); let C_DestroyObject = __library.get(b"C_DestroyObject\0").map(|sym| *sym); let C_GetObjectSize = __library.get(b"C_GetObjectSize\0").map(|sym| *sym); let C_GetAttributeValue = __library.get(b"C_GetAttributeValue\0").map(|sym| *sym); let C_SetAttributeValue = __library.get(b"C_SetAttributeValue\0").map(|sym| *sym); let C_FindObjectsInit = __library.get(b"C_FindObjectsInit\0").map(|sym| *sym); let C_FindObjects = __library.get(b"C_FindObjects\0").map(|sym| *sym); let C_FindObjectsFinal = __library.get(b"C_FindObjectsFinal\0").map(|sym| *sym); let C_EncryptInit = __library.get(b"C_EncryptInit\0").map(|sym| *sym); let C_Encrypt = __library.get(b"C_Encrypt\0").map(|sym| *sym); let C_EncryptUpdate = __library.get(b"C_EncryptUpdate\0").map(|sym| *sym); let C_EncryptFinal = __library.get(b"C_EncryptFinal\0").map(|sym| *sym); let C_DecryptInit = __library.get(b"C_DecryptInit\0").map(|sym| *sym); let C_Decrypt = __library.get(b"C_Decrypt\0").map(|sym| *sym); let C_DecryptUpdate = __library.get(b"C_DecryptUpdate\0").map(|sym| *sym); let C_DecryptFinal = __library.get(b"C_DecryptFinal\0").map(|sym| *sym); let C_DigestInit = __library.get(b"C_DigestInit\0").map(|sym| *sym); let C_Digest = __library.get(b"C_Digest\0").map(|sym| *sym); let C_DigestUpdate = __library.get(b"C_DigestUpdate\0").map(|sym| *sym); let C_DigestKey = __library.get(b"C_DigestKey\0").map(|sym| *sym); let C_DigestFinal = __library.get(b"C_DigestFinal\0").map(|sym| *sym); let C_SignInit = __library.get(b"C_SignInit\0").map(|sym| *sym); let C_Sign = __library.get(b"C_Sign\0").map(|sym| *sym); let C_SignUpdate = __library.get(b"C_SignUpdate\0").map(|sym| *sym); let C_SignFinal = __library.get(b"C_SignFinal\0").map(|sym| *sym); let C_SignRecoverInit = __library.get(b"C_SignRecoverInit\0").map(|sym| *sym); let C_SignRecover = __library.get(b"C_SignRecover\0").map(|sym| *sym); let C_VerifyInit = __library.get(b"C_VerifyInit\0").map(|sym| *sym); let C_Verify = __library.get(b"C_Verify\0").map(|sym| *sym); let C_VerifyUpdate = __library.get(b"C_VerifyUpdate\0").map(|sym| *sym); let C_VerifyFinal = __library.get(b"C_VerifyFinal\0").map(|sym| *sym); let C_VerifyRecoverInit = __library.get(b"C_VerifyRecoverInit\0").map(|sym| *sym); let C_VerifyRecover = __library.get(b"C_VerifyRecover\0").map(|sym| *sym); let C_DigestEncryptUpdate = __library.get(b"C_DigestEncryptUpdate\0").map(|sym| *sym); let C_DecryptDigestUpdate = __library.get(b"C_DecryptDigestUpdate\0").map(|sym| *sym); let C_SignEncryptUpdate = __library.get(b"C_SignEncryptUpdate\0").map(|sym| *sym); let C_DecryptVerifyUpdate = __library.get(b"C_DecryptVerifyUpdate\0").map(|sym| *sym); let C_GenerateKey = __library.get(b"C_GenerateKey\0").map(|sym| *sym); let C_GenerateKeyPair = __library.get(b"C_GenerateKeyPair\0").map(|sym| *sym); let C_WrapKey = __library.get(b"C_WrapKey\0").map(|sym| *sym); let C_UnwrapKey = __library.get(b"C_UnwrapKey\0").map(|sym| *sym); let C_DeriveKey = __library.get(b"C_DeriveKey\0").map(|sym| *sym); let C_SeedRandom = __library.get(b"C_SeedRandom\0").map(|sym| *sym); let C_GenerateRandom = __library.get(b"C_GenerateRandom\0").map(|sym| *sym); let C_GetFunctionStatus = __library.get(b"C_GetFunctionStatus\0").map(|sym| *sym); let C_CancelFunction = __library.get(b"C_CancelFunction\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, C_Finalize, C_GetInfo, C_GetFunctionList, C_GetSlotList, C_GetSlotInfo, C_GetTokenInfo, C_WaitForSlotEvent, C_GetMechanismList, C_GetMechanismInfo, C_InitToken, C_InitPIN, C_SetPIN, C_OpenSession, C_CloseSession, C_CloseAllSessions, C_GetSessionInfo, C_GetOperationState, C_SetOperationState, C_Login, C_Logout, C_CreateObject, C_CopyObject, C_DestroyObject, C_GetObjectSize, C_GetAttributeValue, C_SetAttributeValue, C_FindObjectsInit, C_FindObjects, C_FindObjectsFinal, C_EncryptInit, C_Encrypt, C_EncryptUpdate, C_EncryptFinal, C_DecryptInit, C_Decrypt, C_DecryptUpdate, C_DecryptFinal, C_DigestInit, C_Digest, C_DigestUpdate, C_DigestKey, C_DigestFinal, C_SignInit, C_Sign, C_SignUpdate, C_SignFinal, C_SignRecoverInit, C_SignRecover, C_VerifyInit, C_Verify, C_VerifyUpdate, C_VerifyFinal, C_VerifyRecoverInit, C_VerifyRecover, C_DigestEncryptUpdate, C_DecryptDigestUpdate, C_SignEncryptUpdate, C_DecryptVerifyUpdate, C_GenerateKey, C_GenerateKeyPair, C_WrapKey, C_UnwrapKey, C_DeriveKey, C_SeedRandom, C_GenerateRandom, C_GetFunctionStatus, C_CancelFunction, }) } pub unsafe fn C_Initialize(&self, init_args: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Initialize .as_ref() .expect("Expected function, got error."))(init_args) } pub unsafe fn C_Finalize(&self, pReserved: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Finalize .as_ref() .expect("Expected function, got error."))(pReserved) } pub unsafe fn C_GetInfo(&self, info: *mut _CK_INFO) -> CK_RV { (self .C_GetInfo .as_ref() .expect("Expected function, got error."))(info) } pub unsafe fn C_GetFunctionList(&self, function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV { (self .C_GetFunctionList .as_ref() .expect("Expected function, got error."))(function_list) } pub unsafe fn C_GetSlotList( &self, token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetSlotList .as_ref() .expect("Expected function, got error."))(token_present, slot_list, ulCount) } pub unsafe fn C_GetSlotInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV { (self .C_GetSlotInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_GetTokenInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV { (self .C_GetTokenInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_WaitForSlotEvent( &self, flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV { (self .C_WaitForSlotEvent .as_ref() .expect("Expected function, got error."))(flags, slot, pReserved) } pub unsafe fn C_GetMechanismList( &self, slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetMechanismList .as_ref() .expect("Expected function, got error."))(slotID, mechanism_list, ulCount) } pub unsafe fn C_GetMechanismInfo( &self, slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV { (self .C_GetMechanismInfo .as_ref() .expect("Expected function, got error."))(slotID, type_, info) } pub unsafe fn C_InitToken( &self, slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV { (self .C_InitToken .as_ref() .expect("Expected function, got error."))(slotID, pin, pin_len, label) } pub unsafe fn C_InitPIN( &self, session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_InitPIN .as_ref() .expect("Expected function, got error."))(session, pin, pin_len) } pub unsafe fn C_SetPIN( &self, session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetPIN .as_ref() .expect("Expected function, got error."))( session, old_pin, old_len, new_pin, new_len ) } pub unsafe fn C_OpenSession( &self, slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV { (self .C_OpenSession .as_ref() .expect("Expected function, got error."))( slotID, flags, application, notify, session ) } pub unsafe fn C_CloseSession(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CloseSession .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CloseAllSessions(&self, slotID: CK_SLOT_ID) -> CK_RV { (self .C_CloseAllSessions .as_ref() .expect("Expected function, got error."))(slotID) } pub unsafe fn C_GetSessionInfo( &self, session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO, ) -> CK_RV { (self .C_GetSessionInfo .as_ref() .expect("Expected function, got error."))(session, info) } pub unsafe fn C_GetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len ) } pub unsafe fn C_SetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len, encryption_key, authentiation_key, ) } pub unsafe fn C_Login( &self, session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Login .as_ref() .expect("Expected function, got error."))(session, user_type, pin, pin_len) } pub unsafe fn C_Logout(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_Logout .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CreateObject( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CreateObject .as_ref() .expect("Expected function, got error."))(session, templ, ulCount, object) } pub unsafe fn C_CopyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CopyObject .as_ref() .expect("Expected function, got error."))( session, object, templ, ulCount, new_object ) } pub unsafe fn C_DestroyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DestroyObject .as_ref() .expect("Expected function, got error."))(session, object) } pub unsafe fn C_GetObjectSize( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetObjectSize .as_ref() .expect("Expected function, got error."))(session, object, size) } pub unsafe fn C_GetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_SetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_FindObjectsInit( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjectsInit .as_ref() .expect("Expected function, got error."))(session, templ, ulCount) } pub unsafe fn C_FindObjects( &self, session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjects .as_ref() .expect("Expected function, got error."))( session, object, max_object_count, object_count, ) } pub unsafe fn C_FindObjectsFinal(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_FindObjectsFinal .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_EncryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_EncryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Encrypt( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Encrypt .as_ref() .expect("Expected function, got error."))( session, data, data_len, encrypted_data, encrypted_data_len, ) } pub unsafe fn C_EncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_EncryptFinal( &self, session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptFinal .as_ref() .expect("Expected function, got error."))( session, last_encrypted_part, last_encrypted_part_len, ) } pub unsafe fn C_DecryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DecryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Decrypt( &self, session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Decrypt .as_ref() .expect("Expected function, got error."))( session, encrypted_data, encrypted_data_len, data, data_len, ) } pub unsafe fn C_DecryptUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_DecryptFinal( &self, session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptFinal .as_ref() .expect("Expected function, got error."))(session, last_part, last_part_len) } pub unsafe fn C_DigestInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, ) -> CK_RV { (self .C_DigestInit .as_ref() .expect("Expected function, got error."))(session, mechanism) } pub unsafe fn C_Digest( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Digest .as_ref() .expect("Expected function, got error."))( session, data, data_len, digest, digest_len ) } pub unsafe fn C_DigestUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_DigestKey(&self, session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV { (self .C_DigestKey .as_ref() .expect("Expected function, got error."))(session, key) } pub unsafe fn C_DigestFinal( &self, session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestFinal .as_ref() .expect("Expected function, got error."))(session, digest, digest_len) } pub unsafe fn C_SignInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Sign( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self.C_Sign.as_ref().expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_SignUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_SignFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_SignRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_SignRecover( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignRecover .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Verify( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Verify .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_VerifyFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_VerifyRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_VerifyRecover( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyRecover .as_ref() .expect("Expected function, got error."))( session, signature, signature_len, data, data_len, ) } pub unsafe fn C_DigestEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptDigestUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptDigestUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_SignEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptVerifyUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptVerifyUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_GenerateKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKey .as_ref() .expect("Expected function, got error."))( session, mechanism, templ, ulCount, key ) } pub unsafe fn C_GenerateKeyPair( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKeyPair .as_ref() .expect("Expected function, got error."))( session, mechanism, public_key_template, public_key_attribute_count, private_key_template, private_key_attribute_count, public_key, private_key, ) } pub unsafe fn C_WrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_WrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, wrapping_key, key, wrapped_key, wrapped_key_len, ) } pub unsafe fn C_UnwrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_UnwrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, unwrapping_key, wrapped_key, wrapped_key_len, templ, attribute_count, key, ) } pub unsafe fn C_DeriveKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DeriveKey .as_ref() .expect("Expected function, got error."))( session, mechanism, base_key, templ, attribute_count, key, ) } pub unsafe fn C_SeedRandom( &self, session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SeedRandom .as_ref() .expect("Expected function, got error."))(session, seed, seed_len) } pub unsafe fn C_GenerateRandom( &self, session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GenerateRandom .as_ref() .expect("Expected function, got error."))(session, random_data, random_len) } pub unsafe fn C_GetFunctionStatus(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_GetFunctionStatus .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CancelFunction(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CancelFunction .as_ref() .expect("Expected function, got error."))(session) } } cryptoki-sys-0.1.7/src/bindings/aarch64-unknown-linux-gnu.rs000064400000000000000000005276021046102023000221300ustar 00000000000000/* automatically generated by rust-bindgen 0.66.1 */ pub const PKCS11_H: u32 = 1; pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 40; pub const P11_KIT_CRYPTOKI_VERSION_REVISION: u32 = 0; pub const CRYPTOKI_COMPAT: u32 = 1; pub const CKF_RNG: CK_FLAGS = 1; pub const CKF_WRITE_PROTECTED: CK_FLAGS = 2; pub const CKF_LOGIN_REQUIRED: CK_FLAGS = 4; pub const CKF_USER_PIN_INITIALIZED: CK_FLAGS = 8; pub const CKF_RESTORE_KEY_NOT_NEEDED: CK_FLAGS = 32; pub const CKF_CLOCK_ON_TOKEN: CK_FLAGS = 64; pub const CKF_PROTECTED_AUTHENTICATION_PATH: CK_FLAGS = 256; pub const CKF_DUAL_CRYPTO_OPERATIONS: CK_FLAGS = 512; pub const CKF_TOKEN_INITIALIZED: CK_FLAGS = 1024; pub const CKF_SECONDARY_AUTHENTICATION: CK_FLAGS = 2048; pub const CKF_USER_PIN_COUNT_LOW: CK_FLAGS = 65536; pub const CKF_USER_PIN_FINAL_TRY: CK_FLAGS = 131072; pub const CKF_USER_PIN_LOCKED: CK_FLAGS = 262144; pub const CKF_USER_PIN_TO_BE_CHANGED: CK_FLAGS = 524288; pub const CKF_SO_PIN_COUNT_LOW: CK_FLAGS = 1048576; pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; pub const CKO_DATA: CK_OBJECT_CLASS = 0; pub const CKO_CERTIFICATE: CK_OBJECT_CLASS = 1; pub const CKO_PUBLIC_KEY: CK_OBJECT_CLASS = 2; pub const CKO_PRIVATE_KEY: CK_OBJECT_CLASS = 3; pub const CKO_SECRET_KEY: CK_OBJECT_CLASS = 4; pub const CKO_HW_FEATURE: CK_OBJECT_CLASS = 5; pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_EC: CK_KEY_TYPE = 3; pub const CKK_X9_42_DH: CK_KEY_TYPE = 4; pub const CKK_KEA: CK_KEY_TYPE = 5; pub const CKK_GENERIC_SECRET: CK_KEY_TYPE = 16; pub const CKK_RC2: CK_KEY_TYPE = 17; pub const CKK_RC4: CK_KEY_TYPE = 18; pub const CKK_DES: CK_KEY_TYPE = 19; pub const CKK_DES2: CK_KEY_TYPE = 20; pub const CKK_DES3: CK_KEY_TYPE = 21; pub const CKK_CAST: CK_KEY_TYPE = 22; pub const CKK_CAST3: CK_KEY_TYPE = 23; pub const CKK_CAST128: CK_KEY_TYPE = 24; pub const CKK_RC5: CK_KEY_TYPE = 25; pub const CKK_IDEA: CK_KEY_TYPE = 26; pub const CKK_SKIPJACK: CK_KEY_TYPE = 27; pub const CKK_BATON: CK_KEY_TYPE = 28; pub const CKK_JUNIPER: CK_KEY_TYPE = 29; pub const CKK_CDMF: CK_KEY_TYPE = 30; pub const CKK_AES: CK_KEY_TYPE = 31; pub const CKK_BLOWFISH: CK_KEY_TYPE = 32; pub const CKK_TWOFISH: CK_KEY_TYPE = 33; pub const CKK_SECURID: CK_KEY_TYPE = 34; pub const CKK_HOTP: CK_KEY_TYPE = 35; pub const CKK_ACTI: CK_KEY_TYPE = 36; pub const CKK_CAMELLIA: CK_KEY_TYPE = 37; pub const CKK_ARIA: CK_KEY_TYPE = 38; pub const CKK_MD5_HMAC: CK_KEY_TYPE = 39; pub const CKK_SHA_1_HMAC: CK_KEY_TYPE = 40; pub const CKK_RIPEMD128_HMAC: CK_KEY_TYPE = 41; pub const CKK_RIPEMD160_HMAC: CK_KEY_TYPE = 42; pub const CKK_SHA256_HMAC: CK_KEY_TYPE = 43; pub const CKK_SHA384_HMAC: CK_KEY_TYPE = 44; pub const CKK_SHA512_HMAC: CK_KEY_TYPE = 45; pub const CKK_SHA224_HMAC: CK_KEY_TYPE = 46; pub const CKK_SEED: CK_KEY_TYPE = 47; pub const CKK_GOSTR3410: CK_KEY_TYPE = 48; pub const CKK_GOSTR3411: CK_KEY_TYPE = 49; pub const CKK_GOST28147: CK_KEY_TYPE = 50; pub const CKK_EC_EDWARDS: CK_KEY_TYPE = 64; pub const CKC_X_509: CK_CERTIFICATE_TYPE = 0; pub const CKC_X_509_ATTR_CERT: CK_CERTIFICATE_TYPE = 1; pub const CKC_WTLS: CK_CERTIFICATE_TYPE = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; pub const CKA_TOKEN: CK_ATTRIBUTE_TYPE = 1; pub const CKA_PRIVATE: CK_ATTRIBUTE_TYPE = 2; pub const CKA_LABEL: CK_ATTRIBUTE_TYPE = 3; pub const CKA_APPLICATION: CK_ATTRIBUTE_TYPE = 16; pub const CKA_VALUE: CK_ATTRIBUTE_TYPE = 17; pub const CKA_OBJECT_ID: CK_ATTRIBUTE_TYPE = 18; pub const CKA_CERTIFICATE_TYPE: CK_ATTRIBUTE_TYPE = 128; pub const CKA_ISSUER: CK_ATTRIBUTE_TYPE = 129; pub const CKA_SERIAL_NUMBER: CK_ATTRIBUTE_TYPE = 130; pub const CKA_AC_ISSUER: CK_ATTRIBUTE_TYPE = 131; pub const CKA_OWNER: CK_ATTRIBUTE_TYPE = 132; pub const CKA_ATTR_TYPES: CK_ATTRIBUTE_TYPE = 133; pub const CKA_TRUSTED: CK_ATTRIBUTE_TYPE = 134; pub const CKA_CERTIFICATE_CATEGORY: CK_ATTRIBUTE_TYPE = 135; pub const CKA_JAVA_MIDP_SECURITY_DOMAIN: CK_ATTRIBUTE_TYPE = 136; pub const CKA_URL: CK_ATTRIBUTE_TYPE = 137; pub const CKA_HASH_OF_SUBJECT_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 138; pub const CKA_HASH_OF_ISSUER_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 139; pub const CKA_NAME_HASH_ALGORITHM: CK_ATTRIBUTE_TYPE = 140; pub const CKA_CHECK_VALUE: CK_ATTRIBUTE_TYPE = 144; pub const CKA_KEY_TYPE: CK_ATTRIBUTE_TYPE = 256; pub const CKA_SUBJECT: CK_ATTRIBUTE_TYPE = 257; pub const CKA_ID: CK_ATTRIBUTE_TYPE = 258; pub const CKA_SENSITIVE: CK_ATTRIBUTE_TYPE = 259; pub const CKA_ENCRYPT: CK_ATTRIBUTE_TYPE = 260; pub const CKA_DECRYPT: CK_ATTRIBUTE_TYPE = 261; pub const CKA_WRAP: CK_ATTRIBUTE_TYPE = 262; pub const CKA_UNWRAP: CK_ATTRIBUTE_TYPE = 263; pub const CKA_SIGN: CK_ATTRIBUTE_TYPE = 264; pub const CKA_SIGN_RECOVER: CK_ATTRIBUTE_TYPE = 265; pub const CKA_VERIFY: CK_ATTRIBUTE_TYPE = 266; pub const CKA_VERIFY_RECOVER: CK_ATTRIBUTE_TYPE = 267; pub const CKA_DERIVE: CK_ATTRIBUTE_TYPE = 268; pub const CKA_START_DATE: CK_ATTRIBUTE_TYPE = 272; pub const CKA_END_DATE: CK_ATTRIBUTE_TYPE = 273; pub const CKA_MODULUS: CK_ATTRIBUTE_TYPE = 288; pub const CKA_MODULUS_BITS: CK_ATTRIBUTE_TYPE = 289; pub const CKA_PUBLIC_EXPONENT: CK_ATTRIBUTE_TYPE = 290; pub const CKA_PRIVATE_EXPONENT: CK_ATTRIBUTE_TYPE = 291; pub const CKA_PRIME_1: CK_ATTRIBUTE_TYPE = 292; pub const CKA_PRIME_2: CK_ATTRIBUTE_TYPE = 293; pub const CKA_EXPONENT_1: CK_ATTRIBUTE_TYPE = 294; pub const CKA_EXPONENT_2: CK_ATTRIBUTE_TYPE = 295; pub const CKA_COEFFICIENT: CK_ATTRIBUTE_TYPE = 296; pub const CKA_PUBLIC_KEY_INFO: CK_ATTRIBUTE_TYPE = 297; pub const CKA_PRIME: CK_ATTRIBUTE_TYPE = 304; pub const CKA_SUBPRIME: CK_ATTRIBUTE_TYPE = 305; pub const CKA_BASE: CK_ATTRIBUTE_TYPE = 306; pub const CKA_PRIME_BITS: CK_ATTRIBUTE_TYPE = 307; pub const CKA_SUB_PRIME_BITS: CK_ATTRIBUTE_TYPE = 308; pub const CKA_VALUE_BITS: CK_ATTRIBUTE_TYPE = 352; pub const CKA_VALUE_LEN: CK_ATTRIBUTE_TYPE = 353; pub const CKA_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 354; pub const CKA_LOCAL: CK_ATTRIBUTE_TYPE = 355; pub const CKA_NEVER_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 356; pub const CKA_ALWAYS_SENSITIVE: CK_ATTRIBUTE_TYPE = 357; pub const CKA_KEY_GEN_MECHANISM: CK_ATTRIBUTE_TYPE = 358; pub const CKA_MODIFIABLE: CK_ATTRIBUTE_TYPE = 368; pub const CKA_COPYABLE: CK_ATTRIBUTE_TYPE = 369; pub const CKA_DESTROYABLE: CK_ATTRIBUTE_TYPE = 370; pub const CKA_ECDSA_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_POINT: CK_ATTRIBUTE_TYPE = 385; pub const CKA_SECONDARY_AUTH: CK_ATTRIBUTE_TYPE = 512; pub const CKA_AUTH_PIN_FLAGS: CK_ATTRIBUTE_TYPE = 513; pub const CKA_ALWAYS_AUTHENTICATE: CK_ATTRIBUTE_TYPE = 514; pub const CKA_WRAP_WITH_TRUSTED: CK_ATTRIBUTE_TYPE = 528; pub const CKA_OTP_FORMAT: CK_ATTRIBUTE_TYPE = 544; pub const CKA_OTP_LENGTH: CK_ATTRIBUTE_TYPE = 545; pub const CKA_OTP_TIME_INTERVAL: CK_ATTRIBUTE_TYPE = 546; pub const CKA_OTP_USER_FRIENDLY_MODE: CK_ATTRIBUTE_TYPE = 547; pub const CKA_OTP_CHALLENGE_REQUIREMENT: CK_ATTRIBUTE_TYPE = 548; pub const CKA_OTP_TIME_REQUIREMENT: CK_ATTRIBUTE_TYPE = 549; pub const CKA_OTP_COUNTER_REQUIREMENT: CK_ATTRIBUTE_TYPE = 550; pub const CKA_OTP_PIN_REQUIREMENT: CK_ATTRIBUTE_TYPE = 551; pub const CKA_OTP_USER_IDENTIFIER: CK_ATTRIBUTE_TYPE = 554; pub const CKA_OTP_SERVICE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 555; pub const CKA_OTP_SERVICE_LOGO: CK_ATTRIBUTE_TYPE = 556; pub const CKA_OTP_SERVICE_LOGO_TYPE: CK_ATTRIBUTE_TYPE = 557; pub const CKA_OTP_COUNTER: CK_ATTRIBUTE_TYPE = 558; pub const CKA_OTP_TIME: CK_ATTRIBUTE_TYPE = 559; pub const CKA_GOSTR3410_PARAMS: CK_ATTRIBUTE_TYPE = 592; pub const CKA_GOSTR3411_PARAMS: CK_ATTRIBUTE_TYPE = 593; pub const CKA_GOST28147_PARAMS: CK_ATTRIBUTE_TYPE = 594; pub const CKA_HW_FEATURE_TYPE: CK_ATTRIBUTE_TYPE = 768; pub const CKA_RESET_ON_INIT: CK_ATTRIBUTE_TYPE = 769; pub const CKA_HAS_RESET: CK_ATTRIBUTE_TYPE = 770; pub const CKA_PIXEL_X: CK_ATTRIBUTE_TYPE = 1024; pub const CKA_PIXEL_Y: CK_ATTRIBUTE_TYPE = 1025; pub const CKA_RESOLUTION: CK_ATTRIBUTE_TYPE = 1026; pub const CKA_CHAR_ROWS: CK_ATTRIBUTE_TYPE = 1027; pub const CKA_CHAR_COLUMNS: CK_ATTRIBUTE_TYPE = 1028; pub const CKA_COLOR: CK_ATTRIBUTE_TYPE = 1029; pub const CKA_BITS_PER_PIXEL: CK_ATTRIBUTE_TYPE = 1030; pub const CKA_CHAR_SETS: CK_ATTRIBUTE_TYPE = 1152; pub const CKA_ENCODING_METHODS: CK_ATTRIBUTE_TYPE = 1153; pub const CKA_MIME_TYPES: CK_ATTRIBUTE_TYPE = 1154; pub const CKA_MECHANISM_TYPE: CK_ATTRIBUTE_TYPE = 1280; pub const CKA_REQUIRED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1281; pub const CKA_DEFAULT_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1282; pub const CKA_SUPPORTED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1283; pub const CKM_RSA_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 0; pub const CKM_RSA_PKCS: CK_MECHANISM_TYPE = 1; pub const CKM_RSA_9796: CK_MECHANISM_TYPE = 2; pub const CKM_RSA_X_509: CK_MECHANISM_TYPE = 3; pub const CKM_MD2_RSA_PKCS: CK_MECHANISM_TYPE = 4; pub const CKM_MD5_RSA_PKCS: CK_MECHANISM_TYPE = 5; pub const CKM_SHA1_RSA_PKCS: CK_MECHANISM_TYPE = 6; pub const CKM_RIPEMD128_RSA_PKCS: CK_MECHANISM_TYPE = 7; pub const CKM_RIPEMD160_RSA_PKCS: CK_MECHANISM_TYPE = 8; pub const CKM_RSA_PKCS_OAEP: CK_MECHANISM_TYPE = 9; pub const CKM_RSA_X9_31_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 10; pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; pub const CKM_SHA256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 67; pub const CKM_SHA384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 68; pub const CKM_SHA512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 69; pub const CKM_SHA512_224: CK_MECHANISM_TYPE = 72; pub const CKM_SHA512_224_HMAC: CK_MECHANISM_TYPE = 73; pub const CKM_SHA512_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 74; pub const CKM_SHA512_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 75; pub const CKM_SHA512_256: CK_MECHANISM_TYPE = 76; pub const CKM_SHA512_256_HMAC: CK_MECHANISM_TYPE = 77; pub const CKM_SHA512_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 78; pub const CKM_SHA512_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 79; pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; pub const CKM_RC2_KEY_GEN: CK_MECHANISM_TYPE = 256; pub const CKM_RC2_ECB: CK_MECHANISM_TYPE = 257; pub const CKM_RC2_CBC: CK_MECHANISM_TYPE = 258; pub const CKM_RC2_MAC: CK_MECHANISM_TYPE = 259; pub const CKM_RC2_MAC_GENERAL: CK_MECHANISM_TYPE = 260; pub const CKM_RC2_CBC_PAD: CK_MECHANISM_TYPE = 261; pub const CKM_RC4_KEY_GEN: CK_MECHANISM_TYPE = 272; pub const CKM_RC4: CK_MECHANISM_TYPE = 273; pub const CKM_DES_KEY_GEN: CK_MECHANISM_TYPE = 288; pub const CKM_DES_ECB: CK_MECHANISM_TYPE = 289; pub const CKM_DES_CBC: CK_MECHANISM_TYPE = 290; pub const CKM_DES_MAC: CK_MECHANISM_TYPE = 291; pub const CKM_DES_MAC_GENERAL: CK_MECHANISM_TYPE = 292; pub const CKM_DES_CBC_PAD: CK_MECHANISM_TYPE = 293; pub const CKM_DES2_KEY_GEN: CK_MECHANISM_TYPE = 304; pub const CKM_DES3_KEY_GEN: CK_MECHANISM_TYPE = 305; pub const CKM_DES3_ECB: CK_MECHANISM_TYPE = 306; pub const CKM_DES3_CBC: CK_MECHANISM_TYPE = 307; pub const CKM_DES3_MAC: CK_MECHANISM_TYPE = 308; pub const CKM_DES3_MAC_GENERAL: CK_MECHANISM_TYPE = 309; pub const CKM_DES3_CBC_PAD: CK_MECHANISM_TYPE = 310; pub const CKM_DES3_CMAC_GENERAL: CK_MECHANISM_TYPE = 311; pub const CKM_DES3_CMAC: CK_MECHANISM_TYPE = 312; pub const CKM_CDMF_KEY_GEN: CK_MECHANISM_TYPE = 320; pub const CKM_CDMF_ECB: CK_MECHANISM_TYPE = 321; pub const CKM_CDMF_CBC: CK_MECHANISM_TYPE = 322; pub const CKM_CDMF_MAC: CK_MECHANISM_TYPE = 323; pub const CKM_CDMF_MAC_GENERAL: CK_MECHANISM_TYPE = 324; pub const CKM_CDMF_CBC_PAD: CK_MECHANISM_TYPE = 325; pub const CKM_DES_OFB64: CK_MECHANISM_TYPE = 336; pub const CKM_DES_OFB8: CK_MECHANISM_TYPE = 337; pub const CKM_DES_CFB64: CK_MECHANISM_TYPE = 338; pub const CKM_DES_CFB8: CK_MECHANISM_TYPE = 339; pub const CKM_MD2: CK_MECHANISM_TYPE = 512; pub const CKM_MD2_HMAC: CK_MECHANISM_TYPE = 513; pub const CKM_MD2_HMAC_GENERAL: CK_MECHANISM_TYPE = 514; pub const CKM_MD5: CK_MECHANISM_TYPE = 528; pub const CKM_MD5_HMAC: CK_MECHANISM_TYPE = 529; pub const CKM_MD5_HMAC_GENERAL: CK_MECHANISM_TYPE = 530; pub const CKM_SHA_1: CK_MECHANISM_TYPE = 544; pub const CKM_SHA_1_HMAC: CK_MECHANISM_TYPE = 545; pub const CKM_SHA_1_HMAC_GENERAL: CK_MECHANISM_TYPE = 546; pub const CKM_RIPEMD128: CK_MECHANISM_TYPE = 560; pub const CKM_RIPEMD128_HMAC: CK_MECHANISM_TYPE = 561; pub const CKM_RIPEMD128_HMAC_GENERAL: CK_MECHANISM_TYPE = 562; pub const CKM_RIPEMD160: CK_MECHANISM_TYPE = 576; pub const CKM_RIPEMD160_HMAC: CK_MECHANISM_TYPE = 577; pub const CKM_RIPEMD160_HMAC_GENERAL: CK_MECHANISM_TYPE = 578; pub const CKM_SHA256: CK_MECHANISM_TYPE = 592; pub const CKM_SHA256_HMAC: CK_MECHANISM_TYPE = 593; pub const CKM_SHA256_HMAC_GENERAL: CK_MECHANISM_TYPE = 594; pub const CKM_SHA384: CK_MECHANISM_TYPE = 608; pub const CKM_SHA384_HMAC: CK_MECHANISM_TYPE = 609; pub const CKM_SHA384_HMAC_GENERAL: CK_MECHANISM_TYPE = 610; pub const CKM_SHA512: CK_MECHANISM_TYPE = 624; pub const CKM_SHA512_HMAC: CK_MECHANISM_TYPE = 625; pub const CKM_SHA512_HMAC_GENERAL: CK_MECHANISM_TYPE = 626; pub const CKM_SECURID_KEY_GEN: CK_MECHANISM_TYPE = 640; pub const CKM_SECURID: CK_MECHANISM_TYPE = 642; pub const CKM_HOTP_KEY_GEN: CK_MECHANISM_TYPE = 656; pub const CKM_HOTP: CK_MECHANISM_TYPE = 657; pub const CKM_ACTI: CK_MECHANISM_TYPE = 672; pub const CKM_ACTI_KEY_GEN: CK_MECHANISM_TYPE = 673; pub const CKM_CAST_KEY_GEN: CK_MECHANISM_TYPE = 768; pub const CKM_CAST_ECB: CK_MECHANISM_TYPE = 769; pub const CKM_CAST_CBC: CK_MECHANISM_TYPE = 770; pub const CKM_CAST_MAC: CK_MECHANISM_TYPE = 771; pub const CKM_CAST_MAC_GENERAL: CK_MECHANISM_TYPE = 772; pub const CKM_CAST_CBC_PAD: CK_MECHANISM_TYPE = 773; pub const CKM_CAST3_KEY_GEN: CK_MECHANISM_TYPE = 784; pub const CKM_CAST3_ECB: CK_MECHANISM_TYPE = 785; pub const CKM_CAST3_CBC: CK_MECHANISM_TYPE = 786; pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST128_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_CAST128_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_RC5_KEY_GEN: CK_MECHANISM_TYPE = 816; pub const CKM_RC5_ECB: CK_MECHANISM_TYPE = 817; pub const CKM_RC5_CBC: CK_MECHANISM_TYPE = 818; pub const CKM_RC5_MAC: CK_MECHANISM_TYPE = 819; pub const CKM_RC5_MAC_GENERAL: CK_MECHANISM_TYPE = 820; pub const CKM_RC5_CBC_PAD: CK_MECHANISM_TYPE = 821; pub const CKM_IDEA_KEY_GEN: CK_MECHANISM_TYPE = 832; pub const CKM_IDEA_ECB: CK_MECHANISM_TYPE = 833; pub const CKM_IDEA_CBC: CK_MECHANISM_TYPE = 834; pub const CKM_IDEA_MAC: CK_MECHANISM_TYPE = 835; pub const CKM_IDEA_MAC_GENERAL: CK_MECHANISM_TYPE = 836; pub const CKM_IDEA_CBC_PAD: CK_MECHANISM_TYPE = 837; pub const CKM_GENERIC_SECRET_KEY_GEN: CK_MECHANISM_TYPE = 848; pub const CKM_CONCATENATE_BASE_AND_KEY: CK_MECHANISM_TYPE = 864; pub const CKM_CONCATENATE_BASE_AND_DATA: CK_MECHANISM_TYPE = 866; pub const CKM_CONCATENATE_DATA_AND_BASE: CK_MECHANISM_TYPE = 867; pub const CKM_XOR_BASE_AND_DATA: CK_MECHANISM_TYPE = 868; pub const CKM_EXTRACT_KEY_FROM_KEY: CK_MECHANISM_TYPE = 869; pub const CKM_SSL3_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 880; pub const CKM_SSL3_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 881; pub const CKM_SSL3_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 882; pub const CKM_SSL3_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 883; pub const CKM_TLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 884; pub const CKM_TLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 885; pub const CKM_TLS_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 886; pub const CKM_TLS_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 887; pub const CKM_TLS_PRF: CK_MECHANISM_TYPE = 888; pub const CKM_SSL3_MD5_MAC: CK_MECHANISM_TYPE = 896; pub const CKM_SSL3_SHA1_MAC: CK_MECHANISM_TYPE = 897; pub const CKM_MD5_KEY_DERIVATION: CK_MECHANISM_TYPE = 912; pub const CKM_MD2_KEY_DERIVATION: CK_MECHANISM_TYPE = 913; pub const CKM_SHA1_KEY_DERIVATION: CK_MECHANISM_TYPE = 914; pub const CKM_SHA256_KEY_DERIVATION: CK_MECHANISM_TYPE = 915; pub const CKM_SHA384_KEY_DERIVATION: CK_MECHANISM_TYPE = 916; pub const CKM_SHA512_KEY_DERIVATION: CK_MECHANISM_TYPE = 917; pub const CKM_PBE_MD2_DES_CBC: CK_MECHANISM_TYPE = 928; pub const CKM_PBE_MD5_DES_CBC: CK_MECHANISM_TYPE = 929; pub const CKM_PBE_MD5_CAST_CBC: CK_MECHANISM_TYPE = 930; pub const CKM_PBE_MD5_CAST3_CBC: CK_MECHANISM_TYPE = 931; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_MD5_CAST128_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_CAST128_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_RC4_128: CK_MECHANISM_TYPE = 934; pub const CKM_PBE_SHA1_RC4_40: CK_MECHANISM_TYPE = 935; pub const CKM_PBE_SHA1_DES3_EDE_CBC: CK_MECHANISM_TYPE = 936; pub const CKM_PBE_SHA1_DES2_EDE_CBC: CK_MECHANISM_TYPE = 937; pub const CKM_PBE_SHA1_RC2_128_CBC: CK_MECHANISM_TYPE = 938; pub const CKM_PBE_SHA1_RC2_40_CBC: CK_MECHANISM_TYPE = 939; pub const CKM_PKCS5_PBKD2: CK_MECHANISM_TYPE = 944; pub const CKM_PBA_SHA1_WITH_SHA1_HMAC: CK_MECHANISM_TYPE = 960; pub const CKM_WTLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 976; pub const CKM_WTLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 977; pub const CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC: CK_MECHANISM_TYPE = 978; pub const CKM_WTLS_PRF: CK_MECHANISM_TYPE = 979; pub const CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 980; pub const CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 981; pub const CKM_TLS10_MAC_SERVER: CK_MECHANISM_TYPE = 982; pub const CKM_TLS10_MAC_CLIENT: CK_MECHANISM_TYPE = 983; pub const CKM_TLS12_MAC: CK_MECHANISM_TYPE = 984; pub const CKM_TLS12_KDF: CK_MECHANISM_TYPE = 985; pub const CKM_TLS12_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 992; pub const CKM_TLS12_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 993; pub const CKM_TLS12_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 994; pub const CKM_TLS12_KEY_SAFE_DERIVE: CK_MECHANISM_TYPE = 995; pub const CKM_TLS_MAC: CK_MECHANISM_TYPE = 996; pub const CKM_TLS_KDF: CK_MECHANISM_TYPE = 997; pub const CKM_KEY_WRAP_LYNKS: CK_MECHANISM_TYPE = 1024; pub const CKM_KEY_WRAP_SET_OAEP: CK_MECHANISM_TYPE = 1025; pub const CKM_CMS_SIG: CK_MECHANISM_TYPE = 1280; pub const CKM_KIP_DERIVE: CK_MECHANISM_TYPE = 1296; pub const CKM_KIP_WRAP: CK_MECHANISM_TYPE = 1297; pub const CKM_KIP_MAC: CK_MECHANISM_TYPE = 1298; pub const CKM_CAMELLIA_KEY_GEN: CK_MECHANISM_TYPE = 1360; pub const CKM_CAMELLIA_CTR: CK_MECHANISM_TYPE = 1368; pub const CKM_ARIA_KEY_GEN: CK_MECHANISM_TYPE = 1376; pub const CKM_ARIA_ECB: CK_MECHANISM_TYPE = 1377; pub const CKM_ARIA_CBC: CK_MECHANISM_TYPE = 1378; pub const CKM_ARIA_MAC: CK_MECHANISM_TYPE = 1379; pub const CKM_ARIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1380; pub const CKM_ARIA_CBC_PAD: CK_MECHANISM_TYPE = 1381; pub const CKM_ARIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1382; pub const CKM_ARIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1383; pub const CKM_SEED_KEY_GEN: CK_MECHANISM_TYPE = 1616; pub const CKM_SEED_ECB: CK_MECHANISM_TYPE = 1617; pub const CKM_SEED_CBC: CK_MECHANISM_TYPE = 1618; pub const CKM_SEED_MAC: CK_MECHANISM_TYPE = 1619; pub const CKM_SEED_MAC_GENERAL: CK_MECHANISM_TYPE = 1620; pub const CKM_SEED_CBC_PAD: CK_MECHANISM_TYPE = 1621; pub const CKM_SEED_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1622; pub const CKM_SEED_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1623; pub const CKM_SKIPJACK_KEY_GEN: CK_MECHANISM_TYPE = 4096; pub const CKM_SKIPJACK_ECB64: CK_MECHANISM_TYPE = 4097; pub const CKM_SKIPJACK_CBC64: CK_MECHANISM_TYPE = 4098; pub const CKM_SKIPJACK_OFB64: CK_MECHANISM_TYPE = 4099; pub const CKM_SKIPJACK_CFB64: CK_MECHANISM_TYPE = 4100; pub const CKM_SKIPJACK_CFB32: CK_MECHANISM_TYPE = 4101; pub const CKM_SKIPJACK_CFB16: CK_MECHANISM_TYPE = 4102; pub const CKM_SKIPJACK_CFB8: CK_MECHANISM_TYPE = 4103; pub const CKM_SKIPJACK_WRAP: CK_MECHANISM_TYPE = 4104; pub const CKM_SKIPJACK_PRIVATE_WRAP: CK_MECHANISM_TYPE = 4105; pub const CKM_SKIPJACK_RELAYX: CK_MECHANISM_TYPE = 4106; pub const CKM_KEA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4112; pub const CKM_KEA_KEY_DERIVE: CK_MECHANISM_TYPE = 4113; pub const CKM_FORTEZZA_TIMESTAMP: CK_MECHANISM_TYPE = 4128; pub const CKM_BATON_KEY_GEN: CK_MECHANISM_TYPE = 4144; pub const CKM_BATON_ECB128: CK_MECHANISM_TYPE = 4145; pub const CKM_BATON_ECB96: CK_MECHANISM_TYPE = 4146; pub const CKM_BATON_CBC128: CK_MECHANISM_TYPE = 4147; pub const CKM_BATON_COUNTER: CK_MECHANISM_TYPE = 4148; pub const CKM_BATON_SHUFFLE: CK_MECHANISM_TYPE = 4149; pub const CKM_BATON_WRAP: CK_MECHANISM_TYPE = 4150; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_EC_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_ECDSA: CK_MECHANISM_TYPE = 4161; pub const CKM_ECDSA_SHA1: CK_MECHANISM_TYPE = 4162; pub const CKM_ECDSA_SHA224: CK_MECHANISM_TYPE = 4163; pub const CKM_ECDSA_SHA256: CK_MECHANISM_TYPE = 4164; pub const CKM_ECDSA_SHA384: CK_MECHANISM_TYPE = 4165; pub const CKM_ECDSA_SHA512: CK_MECHANISM_TYPE = 4166; pub const CKM_ECDH1_DERIVE: CK_MECHANISM_TYPE = 4176; pub const CKM_ECDH1_COFACTOR_DERIVE: CK_MECHANISM_TYPE = 4177; pub const CKM_ECMQV_DERIVE: CK_MECHANISM_TYPE = 4178; pub const CKM_ECDH_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4179; pub const CKM_RSA_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4180; pub const CKM_JUNIPER_KEY_GEN: CK_MECHANISM_TYPE = 4192; pub const CKM_JUNIPER_ECB128: CK_MECHANISM_TYPE = 4193; pub const CKM_JUNIPER_CBC128: CK_MECHANISM_TYPE = 4194; pub const CKM_JUNIPER_COUNTER: CK_MECHANISM_TYPE = 4195; pub const CKM_JUNIPER_SHUFFLE: CK_MECHANISM_TYPE = 4196; pub const CKM_JUNIPER_WRAP: CK_MECHANISM_TYPE = 4197; pub const CKM_FASTHASH: CK_MECHANISM_TYPE = 4208; pub const CKM_AES_KEY_GEN: CK_MECHANISM_TYPE = 4224; pub const CKM_AES_ECB: CK_MECHANISM_TYPE = 4225; pub const CKM_AES_CBC: CK_MECHANISM_TYPE = 4226; pub const CKM_AES_MAC: CK_MECHANISM_TYPE = 4227; pub const CKM_AES_MAC_GENERAL: CK_MECHANISM_TYPE = 4228; pub const CKM_AES_CBC_PAD: CK_MECHANISM_TYPE = 4229; pub const CKM_AES_CTR: CK_MECHANISM_TYPE = 4230; pub const CKM_AES_GCM: CK_MECHANISM_TYPE = 4231; pub const CKM_AES_CCM: CK_MECHANISM_TYPE = 4232; pub const CKM_AES_CTS: CK_MECHANISM_TYPE = 4233; pub const CKM_AES_CMAC: CK_MECHANISM_TYPE = 4234; pub const CKM_AES_CMAC_GENERAL: CK_MECHANISM_TYPE = 4235; pub const CKM_AES_XCBC_MAC: CK_MECHANISM_TYPE = 4236; pub const CKM_AES_XCBC_MAC_96: CK_MECHANISM_TYPE = 4237; pub const CKM_AES_GMAC: CK_MECHANISM_TYPE = 4238; pub const CKM_BLOWFISH_KEY_GEN: CK_MECHANISM_TYPE = 4240; pub const CKM_BLOWFISH_CBC: CK_MECHANISM_TYPE = 4241; pub const CKM_TWOFISH_KEY_GEN: CK_MECHANISM_TYPE = 4242; pub const CKM_TWOFISH_CBC: CK_MECHANISM_TYPE = 4243; pub const CKM_BLOWFISH_CBC_PAD: CK_MECHANISM_TYPE = 4244; pub const CKM_TWOFISH_CBC_PAD: CK_MECHANISM_TYPE = 4245; pub const CKM_DES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4352; pub const CKM_DES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4353; pub const CKM_DES3_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4354; pub const CKM_DES3_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4355; pub const CKM_AES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4356; pub const CKM_AES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4357; pub const CKM_GOSTR3410_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4608; pub const CKM_GOSTR3410: CK_MECHANISM_TYPE = 4609; pub const CKM_GOSTR3410_WITH_GOSTR3411: CK_MECHANISM_TYPE = 4610; pub const CKM_GOSTR3410_KEY_WRAP: CK_MECHANISM_TYPE = 4611; pub const CKM_GOSTR3410_DERIVE: CK_MECHANISM_TYPE = 4612; pub const CKM_GOSTR3411: CK_MECHANISM_TYPE = 4624; pub const CKM_GOSTR3411_HMAC: CK_MECHANISM_TYPE = 4625; pub const CKM_GOST28147_KEY_GEN: CK_MECHANISM_TYPE = 4640; pub const CKM_GOST28147_ECB: CK_MECHANISM_TYPE = 4641; pub const CKM_GOST28147: CK_MECHANISM_TYPE = 4642; pub const CKM_GOST28147_MAC: CK_MECHANISM_TYPE = 4643; pub const CKM_GOST28147_KEY_WRAP: CK_MECHANISM_TYPE = 4644; pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; pub const CKM_AES_CFB64: CK_MECHANISM_TYPE = 8453; pub const CKM_AES_CFB8: CK_MECHANISM_TYPE = 8454; pub const CKM_AES_CFB128: CK_MECHANISM_TYPE = 8455; pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_SHA224: CK_MECHANISM_TYPE = 597; pub const CKM_SHA224_HMAC: CK_MECHANISM_TYPE = 598; pub const CKM_SHA224_HMAC_GENERAL: CK_MECHANISM_TYPE = 599; pub const CKM_SHA224_RSA_PKCS: CK_MECHANISM_TYPE = 70; pub const CKM_SHA224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 71; pub const CKM_SHA224_KEY_DERIVATION: CK_MECHANISM_TYPE = 918; pub const CKM_CAMELLIA_ECB: CK_MECHANISM_TYPE = 1361; pub const CKM_CAMELLIA_CBC: CK_MECHANISM_TYPE = 1362; pub const CKM_CAMELLIA_MAC: CK_MECHANISM_TYPE = 1363; pub const CKM_CAMELLIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1364; pub const CKM_CAMELLIA_CBC_PAD: CK_MECHANISM_TYPE = 1365; pub const CKM_CAMELLIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1366; pub const CKM_CAMELLIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1367; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_EC_EDWARDS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4181; pub const CKM_EC_MONTGOMERY_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4182; pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CK_OTP_FORMAT_DECIMAL: CK_ULONG = 0; pub const CK_OTP_FORMAT_HEXADECIMAL: CK_ULONG = 1; pub const CK_OTP_FORMAT_ALPHANUMERIC: CK_ULONG = 2; pub const CK_OTP_FORMAT_BINARY: CK_ULONG = 3; pub const CK_OTP_PARAM_IGNORED: CK_ULONG = 0; pub const CK_OTP_PARAM_OPTIONAL: CK_ULONG = 1; pub const CK_OTP_PARAM_MANDATORY: CK_ULONG = 2; pub const CK_OTP_VALUE: CK_ULONG = 0; pub const CK_OTP_PIN: CK_ULONG = 1; pub const CK_OTP_CHALLENGE: CK_ULONG = 2; pub const CK_OTP_TIME: CK_ULONG = 3; pub const CK_OTP_COUNTER: CK_ULONG = 4; pub const CK_OTP_FLAGS: CK_ULONG = 5; pub const CK_OTP_OUTPUT_LENGTH: CK_ULONG = 6; pub const CK_OTP_FORMAT: CK_ULONG = 7; pub const CKF_NEXT_OTP: CK_FLAGS = 1; pub const CKF_EXCLUDE_TIME: CK_FLAGS = 2; pub const CKF_EXCLUDE_COUNTER: CK_FLAGS = 4; pub const CKF_EXCLUDE_CHALLENGE: CK_FLAGS = 8; pub const CKF_EXCLUDE_PIN: CK_FLAGS = 16; pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKG_MGF1_SHA1: CK_RSA_PKCS_MGF_TYPE = 1; pub const CKG_MGF1_SHA224: CK_RSA_PKCS_MGF_TYPE = 5; pub const CKG_MGF1_SHA256: CK_RSA_PKCS_MGF_TYPE = 2; pub const CKG_MGF1_SHA384: CK_RSA_PKCS_MGF_TYPE = 3; pub const CKG_MGF1_SHA512: CK_RSA_PKCS_MGF_TYPE = 4; pub const CKD_NULL: CK_EC_KDF_TYPE = 1; pub const CKD_SHA1_KDF: CK_EC_KDF_TYPE = 2; pub const CKD_SHA1_KDF_ASN1: CK_EC_KDF_TYPE = 3; pub const CKD_SHA1_KDF_CONCATENATE: CK_EC_KDF_TYPE = 4; pub const CKD_SHA224_KDF: CK_EC_KDF_TYPE = 5; pub const CKD_SHA256_KDF: CK_EC_KDF_TYPE = 6; pub const CKD_SHA384_KDF: CK_EC_KDF_TYPE = 7; pub const CKD_SHA512_KDF: CK_EC_KDF_TYPE = 8; pub const CKD_CPDIVERSIFY_KDF: CK_EC_KDF_TYPE = 9; pub const CKF_HW: CK_FLAGS = 1; pub const CKF_ENCRYPT: CK_FLAGS = 256; pub const CKF_DECRYPT: CK_FLAGS = 512; pub const CKF_DIGEST: CK_FLAGS = 1024; pub const CKF_SIGN: CK_FLAGS = 2048; pub const CKF_SIGN_RECOVER: CK_FLAGS = 4096; pub const CKF_VERIFY: CK_FLAGS = 8192; pub const CKF_VERIFY_RECOVER: CK_FLAGS = 16384; pub const CKF_GENERATE: CK_FLAGS = 32768; pub const CKF_GENERATE_KEY_PAIR: CK_FLAGS = 65536; pub const CKF_WRAP: CK_FLAGS = 131072; pub const CKF_UNWRAP: CK_FLAGS = 262144; pub const CKF_DERIVE: CK_FLAGS = 524288; pub const CKF_EC_F_P: CK_FLAGS = 1048576; pub const CKF_EC_F_2M: CK_FLAGS = 2097152; pub const CKF_EC_ECPARAMETERS: CK_FLAGS = 4194304; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_LIBRARY_CANT_CREATE_OS_THREADS: CK_FLAGS = 1; pub const CKF_OS_LOCKING_OK: CK_FLAGS = 2; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; pub const CKR_SLOT_ID_INVALID: CK_RV = 3; pub const CKR_GENERAL_ERROR: CK_RV = 5; pub const CKR_FUNCTION_FAILED: CK_RV = 6; pub const CKR_ARGUMENTS_BAD: CK_RV = 7; pub const CKR_NO_EVENT: CK_RV = 8; pub const CKR_NEED_TO_CREATE_THREADS: CK_RV = 9; pub const CKR_CANT_LOCK: CK_RV = 10; pub const CKR_ATTRIBUTE_READ_ONLY: CK_RV = 16; pub const CKR_ATTRIBUTE_SENSITIVE: CK_RV = 17; pub const CKR_ATTRIBUTE_TYPE_INVALID: CK_RV = 18; pub const CKR_ATTRIBUTE_VALUE_INVALID: CK_RV = 19; pub const CKR_ACTION_PROHIBITED: CK_RV = 27; pub const CKR_DATA_INVALID: CK_RV = 32; pub const CKR_DATA_LEN_RANGE: CK_RV = 33; pub const CKR_DEVICE_ERROR: CK_RV = 48; pub const CKR_DEVICE_MEMORY: CK_RV = 49; pub const CKR_DEVICE_REMOVED: CK_RV = 50; pub const CKR_ENCRYPTED_DATA_INVALID: CK_RV = 64; pub const CKR_ENCRYPTED_DATA_LEN_RANGE: CK_RV = 65; pub const CKR_FUNCTION_CANCELED: CK_RV = 80; pub const CKR_FUNCTION_NOT_PARALLEL: CK_RV = 81; pub const CKR_FUNCTION_NOT_SUPPORTED: CK_RV = 84; pub const CKR_KEY_HANDLE_INVALID: CK_RV = 96; pub const CKR_KEY_SIZE_RANGE: CK_RV = 98; pub const CKR_KEY_TYPE_INCONSISTENT: CK_RV = 99; pub const CKR_KEY_NOT_NEEDED: CK_RV = 100; pub const CKR_KEY_CHANGED: CK_RV = 101; pub const CKR_KEY_NEEDED: CK_RV = 102; pub const CKR_KEY_INDIGESTIBLE: CK_RV = 103; pub const CKR_KEY_FUNCTION_NOT_PERMITTED: CK_RV = 104; pub const CKR_KEY_NOT_WRAPPABLE: CK_RV = 105; pub const CKR_KEY_UNEXTRACTABLE: CK_RV = 106; pub const CKR_MECHANISM_INVALID: CK_RV = 112; pub const CKR_MECHANISM_PARAM_INVALID: CK_RV = 113; pub const CKR_OBJECT_HANDLE_INVALID: CK_RV = 130; pub const CKR_OPERATION_ACTIVE: CK_RV = 144; pub const CKR_OPERATION_NOT_INITIALIZED: CK_RV = 145; pub const CKR_PIN_INCORRECT: CK_RV = 160; pub const CKR_PIN_INVALID: CK_RV = 161; pub const CKR_PIN_LEN_RANGE: CK_RV = 162; pub const CKR_PIN_EXPIRED: CK_RV = 163; pub const CKR_PIN_LOCKED: CK_RV = 164; pub const CKR_SESSION_CLOSED: CK_RV = 176; pub const CKR_SESSION_COUNT: CK_RV = 177; pub const CKR_SESSION_HANDLE_INVALID: CK_RV = 179; pub const CKR_SESSION_PARALLEL_NOT_SUPPORTED: CK_RV = 180; pub const CKR_SESSION_READ_ONLY: CK_RV = 181; pub const CKR_SESSION_EXISTS: CK_RV = 182; pub const CKR_SESSION_READ_ONLY_EXISTS: CK_RV = 183; pub const CKR_SESSION_READ_WRITE_SO_EXISTS: CK_RV = 184; pub const CKR_SIGNATURE_INVALID: CK_RV = 192; pub const CKR_SIGNATURE_LEN_RANGE: CK_RV = 193; pub const CKR_TEMPLATE_INCOMPLETE: CK_RV = 208; pub const CKR_TEMPLATE_INCONSISTENT: CK_RV = 209; pub const CKR_TOKEN_NOT_PRESENT: CK_RV = 224; pub const CKR_TOKEN_NOT_RECOGNIZED: CK_RV = 225; pub const CKR_TOKEN_WRITE_PROTECTED: CK_RV = 226; pub const CKR_UNWRAPPING_KEY_HANDLE_INVALID: CK_RV = 240; pub const CKR_UNWRAPPING_KEY_SIZE_RANGE: CK_RV = 241; pub const CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 242; pub const CKR_USER_ALREADY_LOGGED_IN: CK_RV = 256; pub const CKR_USER_NOT_LOGGED_IN: CK_RV = 257; pub const CKR_USER_PIN_NOT_INITIALIZED: CK_RV = 258; pub const CKR_USER_TYPE_INVALID: CK_RV = 259; pub const CKR_USER_ANOTHER_ALREADY_LOGGED_IN: CK_RV = 260; pub const CKR_USER_TOO_MANY_TYPES: CK_RV = 261; pub const CKR_WRAPPED_KEY_INVALID: CK_RV = 272; pub const CKR_WRAPPED_KEY_LEN_RANGE: CK_RV = 274; pub const CKR_WRAPPING_KEY_HANDLE_INVALID: CK_RV = 275; pub const CKR_WRAPPING_KEY_SIZE_RANGE: CK_RV = 276; pub const CKR_WRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 277; pub const CKR_RANDOM_SEED_NOT_SUPPORTED: CK_RV = 288; pub const CKR_RANDOM_NO_RNG: CK_RV = 289; pub const CKR_DOMAIN_PARAMS_INVALID: CK_RV = 304; pub const CKR_BUFFER_TOO_SMALL: CK_RV = 336; pub const CKR_SAVED_STATE_INVALID: CK_RV = 352; pub const CKR_INFORMATION_SENSITIVE: CK_RV = 368; pub const CKR_STATE_UNSAVEABLE: CK_RV = 384; pub const CKR_CRYPTOKI_NOT_INITIALIZED: CK_RV = 400; pub const CKR_CRYPTOKI_ALREADY_INITIALIZED: CK_RV = 401; pub const CKR_MUTEX_BAD: CK_RV = 416; pub const CKR_MUTEX_NOT_LOCKED: CK_RV = 417; pub const CKR_NEW_PIN_MODE: CK_RV = 432; pub const CKR_NEXT_OTP: CK_RV = 433; pub const CKR_EXCEEDED_MAX_ITERATIONS: CK_RV = 448; pub const CKR_FIPS_SELF_TEST_FAILED: CK_RV = 449; pub const CKR_LIBRARY_LOAD_FAILED: CK_RV = 450; pub const CKR_PIN_TOO_WEAK: CK_RV = 451; pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 452; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CK_FALSE: CK_BBOOL = 0; pub const CK_TRUE: CK_BBOOL = 1; pub const FALSE: u32 = 0; pub const TRUE: u32 = 1; pub type CK_FLAGS = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_VERSION { pub major: ::std::os::raw::c_uchar, pub minor: ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout__CK_VERSION() { const UNINIT: ::std::mem::MaybeUninit<_CK_VERSION> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_VERSION>(), 2usize, concat!("Size of: ", stringify!(_CK_VERSION)) ); assert_eq!( ::std::mem::align_of::<_CK_VERSION>(), 1usize, concat!("Alignment of ", stringify!(_CK_VERSION)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).major) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(major) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).minor) as usize - ptr as usize }, 1usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(minor) ) ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_INFO { pub cryptokiVersion: _CK_VERSION, pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub libraryDescription: [::std::os::raw::c_uchar; 32usize], pub libraryVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_INFO>(), 88usize, concat!("Size of: ", stringify!(_CK_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cryptokiVersion) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(cryptokiVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 2usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryDescription) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryVersion) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryVersion) ) ); } pub type CK_NOTIFICATION = ::std::os::raw::c_ulong; pub const CKN_SURRENDER: ::std::os::raw::c_ulong = 0; pub type CK_SLOT_ID = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_SLOT_INFO { pub slotDescription: [::std::os::raw::c_uchar; 64usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_SLOT_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SLOT_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SLOT_INFO>(), 112usize, concat!("Size of: ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SLOT_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotDescription) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(slotDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 106usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(firmwareVersion) ) ); } impl Default for _CK_SLOT_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub const CKF_TOKEN_PRESENT: ::std::os::raw::c_ulong = 1; pub const CKF_REMOVABLE_DEVICE: ::std::os::raw::c_ulong = 2; pub const CKF_HW_SLOT: ::std::os::raw::c_ulong = 4; pub const CKF_ARRAY_ATTRIBUTE: ::std::os::raw::c_ulong = 1073741824; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_TOKEN_INFO { pub label: [::std::os::raw::c_uchar; 32usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub model: [::std::os::raw::c_uchar; 16usize], pub serialNumber: [::std::os::raw::c_uchar; 16usize], pub flags: CK_FLAGS, pub ulMaxSessionCount: ::std::os::raw::c_ulong, pub ulSessionCount: ::std::os::raw::c_ulong, pub ulMaxRwSessionCount: ::std::os::raw::c_ulong, pub ulRwSessionCount: ::std::os::raw::c_ulong, pub ulMaxPinLen: ::std::os::raw::c_ulong, pub ulMinPinLen: ::std::os::raw::c_ulong, pub ulTotalPublicMemory: ::std::os::raw::c_ulong, pub ulFreePublicMemory: ::std::os::raw::c_ulong, pub ulTotalPrivateMemory: ::std::os::raw::c_ulong, pub ulFreePrivateMemory: ::std::os::raw::c_ulong, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, pub utcTime: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout__CK_TOKEN_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_TOKEN_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_TOKEN_INFO>(), 208usize, concat!("Size of: ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_TOKEN_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(label) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).model) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(model) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).serialNumber) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(serialNumber) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxSessionCount) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSessionCount) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxRwSessionCount) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulRwSessionCount) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxPinLen) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinPinLen) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMinPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPublicMemory) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePublicMemory) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPrivateMemory) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePrivateMemory) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 186usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(firmwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).utcTime) as usize - ptr as usize }, 188usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(utcTime) ) ); } pub type CK_SESSION_HANDLE = ::std::os::raw::c_ulong; pub type CK_USER_TYPE = ::std::os::raw::c_ulong; pub type CK_STATE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_SESSION_INFO { pub slotID: CK_SLOT_ID, pub state: CK_STATE, pub flags: CK_FLAGS, pub ulDeviceError: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_SESSION_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SESSION_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SESSION_INFO>(), 32usize, concat!("Size of: ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SESSION_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotID) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(slotID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(state) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulDeviceError) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(ulDeviceError) ) ); } pub type CK_OBJECT_HANDLE = ::std::os::raw::c_ulong; pub type CK_OBJECT_CLASS = ::std::os::raw::c_ulong; pub type CK_HW_FEATURE_TYPE = ::std::os::raw::c_ulong; pub type CK_KEY_TYPE = ::std::os::raw::c_ulong; pub type CK_CERTIFICATE_TYPE = ::std::os::raw::c_ulong; pub type CK_ATTRIBUTE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_ATTRIBUTE { pub type_: CK_ATTRIBUTE_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_ATTRIBUTE() { const UNINIT: ::std::mem::MaybeUninit<_CK_ATTRIBUTE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_ATTRIBUTE>(), 24usize, concat!("Size of: ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( ::std::mem::align_of::<_CK_ATTRIBUTE>(), 8usize, concat!("Alignment of ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(ulValueLen) ) ); } impl Default for _CK_ATTRIBUTE { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_DATE { pub year: [::std::os::raw::c_uchar; 4usize], pub month: [::std::os::raw::c_uchar; 2usize], pub day: [::std::os::raw::c_uchar; 2usize], } #[test] fn bindgen_test_layout__CK_DATE() { const UNINIT: ::std::mem::MaybeUninit<_CK_DATE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_DATE>(), 8usize, concat!("Size of: ", stringify!(_CK_DATE)) ); assert_eq!( ::std::mem::align_of::<_CK_DATE>(), 1usize, concat!("Alignment of ", stringify!(_CK_DATE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).year) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(year) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).month) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(month) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).day) as usize - ptr as usize }, 6usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(day) ) ); } pub type CK_MECHANISM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_MECHANISM { pub mechanism: CK_MECHANISM_TYPE, pub pParameter: *mut ::std::os::raw::c_void, pub ulParameterLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_MECHANISM() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM>(), 24usize, concat!("Size of: ", stringify!(_CK_MECHANISM)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM>(), 8usize, concat!("Alignment of ", stringify!(_CK_MECHANISM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mechanism) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(mechanism) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParameter) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(pParameter) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulParameterLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(ulParameterLen) ) ); } impl Default for _CK_MECHANISM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_MECHANISM_INFO { pub ulMinKeySize: ::std::os::raw::c_ulong, pub ulMaxKeySize: ::std::os::raw::c_ulong, pub flags: CK_FLAGS, } #[test] fn bindgen_test_layout__CK_MECHANISM_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM_INFO>(), 24usize, concat!("Size of: ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinKeySize) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMinKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxKeySize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMaxKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(flags) ) ); } pub type CK_PARAM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAM { pub type_: CK_PARAM_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAM() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(CK_OTP_PARAM)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_PARAM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(ulValueLen) ) ); } impl Default for CK_OTP_PARAM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAMS { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAMS() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_PARAMS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_SIGNATURE_INFO { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_SIGNATURE_INFO() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_SIGNATURE_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RSA_PKCS_MGF_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_rsa_pkcs_pss_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub sLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_pss_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).sLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(sLen) ) ); } pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_rsa_pkcs_oaep_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub source: CK_RSA_PKCS_OAEP_SOURCE_TYPE, pub pSourceData: *mut ::std::os::raw::c_void, pub ulSourceDataLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_oaep_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(source) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSourceData) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(pSourceData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSourceDataLen) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(ulSourceDataLen) ) ); } impl Default for ck_rsa_pkcs_oaep_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_aes_ctr_params { pub ulCounterBits: ::std::os::raw::c_ulong, pub cb: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout_ck_aes_ctr_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_aes_ctr_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_aes_ctr_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCounterBits) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(ulCounterBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cb) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(cb) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_gcm_params { pub pIv: *mut ::std::os::raw::c_uchar, pub ulIvLen: ::std::os::raw::c_ulong, pub ulIvBits: ::std::os::raw::c_ulong, pub pAAD: *mut ::std::os::raw::c_uchar, pub ulAADLen: ::std::os::raw::c_ulong, pub ulTagBits: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_gcm_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 48usize, concat!("Size of: ", stringify!(ck_gcm_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_gcm_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pIv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pIv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvBits) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pAAD) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pAAD) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulAADLen) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulAADLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTagBits) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulTagBits) ) ); } impl Default for ck_gcm_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type ck_ec_kdf_t = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_ecdh1_derive_params { pub kdf: ck_ec_kdf_t, pub ulSharedDataLen: ::std::os::raw::c_ulong, pub pSharedData: *mut ::std::os::raw::c_uchar, pub ulPublicDataLen: ::std::os::raw::c_ulong, pub pPublicData: *mut ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout_ck_ecdh1_derive_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(kdf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSharedDataLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulSharedDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSharedData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pSharedData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulPublicDataLen) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulPublicDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pPublicData) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pPublicData) ) ); } impl Default for ck_ecdh1_derive_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_key_derivation_string_data { pub pData: *mut ::std::os::raw::c_uchar, pub ulLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_key_derivation_string_data() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(ulLen) ) ); } impl Default for ck_key_derivation_string_data { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_des_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 8usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_des_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_des_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_aes_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 16usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_aes_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 32usize, concat!("Size of: ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_aes_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RV = ::std::os::raw::c_ulong; pub type CK_NOTIFY = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, event: CK_NOTIFICATION, application: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_Initialize = ::std::option::Option CK_RV>; pub type CK_C_Finalize = ::std::option::Option CK_RV>; pub type CK_C_GetInfo = ::std::option::Option CK_RV>; pub type CK_C_GetFunctionList = ::std::option::Option< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, >; pub type CK_C_GetSlotList = ::std::option::Option< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetSlotInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, >; pub type CK_C_GetTokenInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, >; pub type CK_C_WaitForSlotEvent = ::std::option::Option< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_GetMechanismList = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetMechanismInfo = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, >; pub type CK_C_InitToken = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, >; pub type CK_C_InitPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_OpenSession = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, >; pub type CK_C_CloseSession = ::std::option::Option CK_RV>; pub type CK_C_CloseAllSessions = ::std::option::Option CK_RV>; pub type CK_C_GetSessionInfo = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, >; pub type CK_C_GetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Login = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_Logout = ::std::option::Option CK_RV>; pub type CK_C_CreateObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_CopyObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DestroyObject = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_GetObjectSize = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjects = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsFinal = ::std::option::Option CK_RV>; pub type CK_C_EncryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Encrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Decrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestInit = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, >; pub type CK_C_Digest = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestKey = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_DigestFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Sign = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SignRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Verify = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_VerifyRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptDigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptVerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_GenerateKeyPair = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_WrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_UnwrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DeriveKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SeedRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetFunctionStatus = ::std::option::Option CK_RV>; pub type CK_C_CancelFunction = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_FUNCTION_LIST { pub version: _CK_VERSION, pub C_Initialize: CK_C_Initialize, pub C_Finalize: CK_C_Finalize, pub C_GetInfo: CK_C_GetInfo, pub C_GetFunctionList: CK_C_GetFunctionList, pub C_GetSlotList: CK_C_GetSlotList, pub C_GetSlotInfo: CK_C_GetSlotInfo, pub C_GetTokenInfo: CK_C_GetTokenInfo, pub C_GetMechanismList: CK_C_GetMechanismList, pub C_GetMechanismInfo: CK_C_GetMechanismInfo, pub C_InitToken: CK_C_InitToken, pub C_InitPIN: CK_C_InitPIN, pub C_SetPIN: CK_C_SetPIN, pub C_OpenSession: CK_C_OpenSession, pub C_CloseSession: CK_C_CloseSession, pub C_CloseAllSessions: CK_C_CloseAllSessions, pub C_GetSessionInfo: CK_C_GetSessionInfo, pub C_GetOperationState: CK_C_GetOperationState, pub C_SetOperationState: CK_C_SetOperationState, pub C_Login: CK_C_Login, pub C_Logout: CK_C_Logout, pub C_CreateObject: CK_C_CreateObject, pub C_CopyObject: CK_C_CopyObject, pub C_DestroyObject: CK_C_DestroyObject, pub C_GetObjectSize: CK_C_GetObjectSize, pub C_GetAttributeValue: CK_C_GetAttributeValue, pub C_SetAttributeValue: CK_C_SetAttributeValue, pub C_FindObjectsInit: CK_C_FindObjectsInit, pub C_FindObjects: CK_C_FindObjects, pub C_FindObjectsFinal: CK_C_FindObjectsFinal, pub C_EncryptInit: CK_C_EncryptInit, pub C_Encrypt: CK_C_Encrypt, pub C_EncryptUpdate: CK_C_EncryptUpdate, pub C_EncryptFinal: CK_C_EncryptFinal, pub C_DecryptInit: CK_C_DecryptInit, pub C_Decrypt: CK_C_Decrypt, pub C_DecryptUpdate: CK_C_DecryptUpdate, pub C_DecryptFinal: CK_C_DecryptFinal, pub C_DigestInit: CK_C_DigestInit, pub C_Digest: CK_C_Digest, pub C_DigestUpdate: CK_C_DigestUpdate, pub C_DigestKey: CK_C_DigestKey, pub C_DigestFinal: CK_C_DigestFinal, pub C_SignInit: CK_C_SignInit, pub C_Sign: CK_C_Sign, pub C_SignUpdate: CK_C_SignUpdate, pub C_SignFinal: CK_C_SignFinal, pub C_SignRecoverInit: CK_C_SignRecoverInit, pub C_SignRecover: CK_C_SignRecover, pub C_VerifyInit: CK_C_VerifyInit, pub C_Verify: CK_C_Verify, pub C_VerifyUpdate: CK_C_VerifyUpdate, pub C_VerifyFinal: CK_C_VerifyFinal, pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, pub C_VerifyRecover: CK_C_VerifyRecover, pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, pub C_GenerateKey: CK_C_GenerateKey, pub C_GenerateKeyPair: CK_C_GenerateKeyPair, pub C_WrapKey: CK_C_WrapKey, pub C_UnwrapKey: CK_C_UnwrapKey, pub C_DeriveKey: CK_C_DeriveKey, pub C_SeedRandom: CK_C_SeedRandom, pub C_GenerateRandom: CK_C_GenerateRandom, pub C_GetFunctionStatus: CK_C_GetFunctionStatus, pub C_CancelFunction: CK_C_CancelFunction, pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, } #[test] fn bindgen_test_layout__CK_FUNCTION_LIST() { const UNINIT: ::std::mem::MaybeUninit<_CK_FUNCTION_LIST> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_FUNCTION_LIST>(), 552usize, concat!("Size of: ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( ::std::mem::align_of::<_CK_FUNCTION_LIST>(), 8usize, concat!("Alignment of ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(version) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Initialize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Initialize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Finalize) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Finalize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetInfo) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionList) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotList) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotInfo) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetTokenInfo) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetTokenInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismList) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismInfo) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitToken) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitToken) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitPIN) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetPIN) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_OpenSession) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_OpenSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseSession) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseAllSessions) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseAllSessions) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSessionInfo) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSessionInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetOperationState) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetOperationState) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Login) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Login) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Logout) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Logout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CreateObject) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CreateObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CopyObject) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CopyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DestroyObject) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DestroyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetObjectSize) as usize - ptr as usize }, 192usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetObjectSize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetAttributeValue) as usize - ptr as usize }, 200usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetAttributeValue) as usize - ptr as usize }, 208usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsInit) as usize - ptr as usize }, 216usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjects) as usize - ptr as usize }, 224usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjects) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsFinal) as usize - ptr as usize }, 232usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptInit) as usize - ptr as usize }, 240usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Encrypt) as usize - ptr as usize }, 248usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Encrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptUpdate) as usize - ptr as usize }, 256usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptFinal) as usize - ptr as usize }, 264usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptInit) as usize - ptr as usize }, 272usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Decrypt) as usize - ptr as usize }, 280usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Decrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptUpdate) as usize - ptr as usize }, 288usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptFinal) as usize - ptr as usize }, 296usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestInit) as usize - ptr as usize }, 304usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Digest) as usize - ptr as usize }, 312usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Digest) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestUpdate) as usize - ptr as usize }, 320usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestKey) as usize - ptr as usize }, 328usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestFinal) as usize - ptr as usize }, 336usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignInit) as usize - ptr as usize }, 344usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Sign) as usize - ptr as usize }, 352usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Sign) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignUpdate) as usize - ptr as usize }, 360usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignFinal) as usize - ptr as usize }, 368usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecoverInit) as usize - ptr as usize }, 376usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecover) as usize - ptr as usize }, 384usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyInit) as usize - ptr as usize }, 392usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Verify) as usize - ptr as usize }, 400usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Verify) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyUpdate) as usize - ptr as usize }, 408usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyFinal) as usize - ptr as usize }, 416usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecoverInit) as usize - ptr as usize }, 424usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecover) as usize - ptr as usize }, 432usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestEncryptUpdate) as usize - ptr as usize }, 440usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptDigestUpdate) as usize - ptr as usize }, 448usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptDigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignEncryptUpdate) as usize - ptr as usize }, 456usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptVerifyUpdate) as usize - ptr as usize }, 464usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptVerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKey) as usize - ptr as usize }, 472usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKeyPair) as usize - ptr as usize }, 480usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKeyPair) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WrapKey) as usize - ptr as usize }, 488usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_UnwrapKey) as usize - ptr as usize }, 496usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_UnwrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DeriveKey) as usize - ptr as usize }, 504usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DeriveKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SeedRandom) as usize - ptr as usize }, 512usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SeedRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateRandom) as usize - ptr as usize }, 520usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionStatus) as usize - ptr as usize }, 528usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionStatus) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CancelFunction) as usize - ptr as usize }, 536usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CancelFunction) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WaitForSlotEvent) as usize - ptr as usize }, 544usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WaitForSlotEvent) ) ); } pub type CK_CREATEMUTEX = ::std::option::Option CK_RV>; pub type CK_DESTROYMUTEX = ::std::option::Option CK_RV>; pub type CK_LOCKMUTEX = ::std::option::Option CK_RV>; pub type CK_UNLOCKMUTEX = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_C_INITIALIZE_ARGS { pub CreateMutex: CK_CREATEMUTEX, pub DestroyMutex: CK_DESTROYMUTEX, pub LockMutex: CK_LOCKMUTEX, pub UnlockMutex: CK_UNLOCKMUTEX, pub flags: CK_FLAGS, pub pReserved: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout__CK_C_INITIALIZE_ARGS() { const UNINIT: ::std::mem::MaybeUninit<_CK_C_INITIALIZE_ARGS> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_C_INITIALIZE_ARGS>(), 48usize, concat!("Size of: ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( ::std::mem::align_of::<_CK_C_INITIALIZE_ARGS>(), 8usize, concat!("Alignment of ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).CreateMutex) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(CreateMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).DestroyMutex) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(DestroyMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).LockMutex) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(LockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).UnlockMutex) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(UnlockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pReserved) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(pReserved) ) ); } impl Default for _CK_C_INITIALIZE_ARGS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_BYTE = ::std::os::raw::c_uchar; pub type CK_CHAR = ::std::os::raw::c_uchar; pub type CK_UTF8CHAR = ::std::os::raw::c_uchar; pub type CK_BBOOL = ::std::os::raw::c_uchar; pub type CK_ULONG = ::std::os::raw::c_ulong; pub type CK_LONG = ::std::os::raw::c_long; pub type CK_BYTE_PTR = *mut CK_BYTE; pub type CK_CHAR_PTR = *mut CK_CHAR; pub type CK_UTF8CHAR_PTR = *mut CK_UTF8CHAR; pub type CK_ULONG_PTR = *mut CK_ULONG; pub type CK_VOID_PTR = *mut ::std::os::raw::c_void; pub type CK_VOID_PTR_PTR = *mut *mut ::std::os::raw::c_void; pub type CK_VERSION = _CK_VERSION; pub type CK_VERSION_PTR = *mut _CK_VERSION; pub type CK_INFO = _CK_INFO; pub type CK_INFO_PTR = *mut _CK_INFO; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SLOT_INFO = _CK_SLOT_INFO; pub type CK_SLOT_INFO_PTR = *mut _CK_SLOT_INFO; pub type CK_TOKEN_INFO = _CK_TOKEN_INFO; pub type CK_TOKEN_INFO_PTR = *mut _CK_TOKEN_INFO; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; pub type CK_SESSION_INFO = _CK_SESSION_INFO; pub type CK_SESSION_INFO_PTR = *mut _CK_SESSION_INFO; pub type CK_OBJECT_HANDLE_PTR = *mut CK_OBJECT_HANDLE; pub type CK_OBJECT_CLASS_PTR = *mut CK_OBJECT_CLASS; pub type CK_ATTRIBUTE = _CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR = *mut _CK_ATTRIBUTE; pub type CK_DATE = _CK_DATE; pub type CK_DATE_PTR = *mut _CK_DATE; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; pub type CK_MECHANISM = _CK_MECHANISM; pub type CK_MECHANISM_PTR = *mut _CK_MECHANISM; pub type CK_MECHANISM_INFO = _CK_MECHANISM_INFO; pub type CK_MECHANISM_INFO_PTR = *mut _CK_MECHANISM_INFO; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_otp_mechanism_info { _unused: [u8; 0], } pub type CK_OTP_MECHANISM_INFO = ck_otp_mechanism_info; pub type CK_OTP_MECHANISM_INFO_PTR = *mut ck_otp_mechanism_info; pub type CK_FUNCTION_LIST = _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR = *mut _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut _CK_FUNCTION_LIST; pub type CK_C_INITIALIZE_ARGS = _CK_C_INITIALIZE_ARGS; pub type CK_C_INITIALIZE_ARGS_PTR = *mut _CK_C_INITIALIZE_ARGS; pub type CK_RSA_PKCS_PSS_PARAMS = ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_PSS_PARAMS_PTR = *mut ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_OAEP_PARAMS = ck_rsa_pkcs_oaep_params; pub type CK_RSA_PKCS_OAEP_PARAMS_PTR = *mut ck_rsa_pkcs_oaep_params; pub type CK_AES_CTR_PARAMS = ck_aes_ctr_params; pub type CK_AES_CTR_PARAMS_PTR = *mut ck_aes_ctr_params; pub type CK_GCM_PARAMS = ck_gcm_params; pub type CK_GCM_PARAMS_PTR = *mut ck_gcm_params; pub type CK_ECDH1_DERIVE_PARAMS = ck_ecdh1_derive_params; pub type CK_ECDH1_DERIVE_PARAMS_PTR = *mut ck_ecdh1_derive_params; pub type CK_KEY_DERIVATION_STRING_DATA = ck_key_derivation_string_data; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut ck_key_derivation_string_data; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS = ck_des_cbc_encrypt_data_params; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_des_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS = ck_aes_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_aes_cbc_encrypt_data_params; extern crate libloading; pub struct Pkcs11 { __library: ::libloading::Library, pub C_Initialize: Result< unsafe extern "C" fn(init_args: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_Finalize: Result< unsafe extern "C" fn(pReserved: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_GetInfo: Result CK_RV, ::libloading::Error>, pub C_GetFunctionList: Result< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, ::libloading::Error, >, pub C_GetSlotList: Result< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetSlotInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetTokenInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, ::libloading::Error, >, pub C_WaitForSlotEvent: Result< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismList: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismInfo: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, ::libloading::Error, >, pub C_InitToken: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, ::libloading::Error, >, pub C_InitPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_OpenSession: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CloseSession: Result CK_RV, ::libloading::Error>, pub C_CloseAllSessions: Result CK_RV, ::libloading::Error>, pub C_GetSessionInfo: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Login: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_Logout: Result CK_RV, ::libloading::Error>, pub C_CreateObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CopyObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DestroyObject: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_GetObjectSize: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjects: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsFinal: Result CK_RV, ::libloading::Error>, pub C_EncryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Encrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Decrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestInit: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, ::libloading::Error, >, pub C_Digest: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestKey: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_DigestFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Sign: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Verify: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptDigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptVerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKeyPair: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_WrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_UnwrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DeriveKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SeedRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetFunctionStatus: Result CK_RV, ::libloading::Error>, pub C_CancelFunction: Result CK_RV, ::libloading::Error>, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result where P: AsRef<::std::ffi::OsStr>, { let library = ::libloading::Library::new(path)?; Self::from_library(library) } pub unsafe fn from_library(library: L) -> Result where L: Into<::libloading::Library>, { let __library = library.into(); let C_Initialize = __library.get(b"C_Initialize\0").map(|sym| *sym); let C_Finalize = __library.get(b"C_Finalize\0").map(|sym| *sym); let C_GetInfo = __library.get(b"C_GetInfo\0").map(|sym| *sym); let C_GetFunctionList = __library.get(b"C_GetFunctionList\0").map(|sym| *sym); let C_GetSlotList = __library.get(b"C_GetSlotList\0").map(|sym| *sym); let C_GetSlotInfo = __library.get(b"C_GetSlotInfo\0").map(|sym| *sym); let C_GetTokenInfo = __library.get(b"C_GetTokenInfo\0").map(|sym| *sym); let C_WaitForSlotEvent = __library.get(b"C_WaitForSlotEvent\0").map(|sym| *sym); let C_GetMechanismList = __library.get(b"C_GetMechanismList\0").map(|sym| *sym); let C_GetMechanismInfo = __library.get(b"C_GetMechanismInfo\0").map(|sym| *sym); let C_InitToken = __library.get(b"C_InitToken\0").map(|sym| *sym); let C_InitPIN = __library.get(b"C_InitPIN\0").map(|sym| *sym); let C_SetPIN = __library.get(b"C_SetPIN\0").map(|sym| *sym); let C_OpenSession = __library.get(b"C_OpenSession\0").map(|sym| *sym); let C_CloseSession = __library.get(b"C_CloseSession\0").map(|sym| *sym); let C_CloseAllSessions = __library.get(b"C_CloseAllSessions\0").map(|sym| *sym); let C_GetSessionInfo = __library.get(b"C_GetSessionInfo\0").map(|sym| *sym); let C_GetOperationState = __library.get(b"C_GetOperationState\0").map(|sym| *sym); let C_SetOperationState = __library.get(b"C_SetOperationState\0").map(|sym| *sym); let C_Login = __library.get(b"C_Login\0").map(|sym| *sym); let C_Logout = __library.get(b"C_Logout\0").map(|sym| *sym); let C_CreateObject = __library.get(b"C_CreateObject\0").map(|sym| *sym); let C_CopyObject = __library.get(b"C_CopyObject\0").map(|sym| *sym); let C_DestroyObject = __library.get(b"C_DestroyObject\0").map(|sym| *sym); let C_GetObjectSize = __library.get(b"C_GetObjectSize\0").map(|sym| *sym); let C_GetAttributeValue = __library.get(b"C_GetAttributeValue\0").map(|sym| *sym); let C_SetAttributeValue = __library.get(b"C_SetAttributeValue\0").map(|sym| *sym); let C_FindObjectsInit = __library.get(b"C_FindObjectsInit\0").map(|sym| *sym); let C_FindObjects = __library.get(b"C_FindObjects\0").map(|sym| *sym); let C_FindObjectsFinal = __library.get(b"C_FindObjectsFinal\0").map(|sym| *sym); let C_EncryptInit = __library.get(b"C_EncryptInit\0").map(|sym| *sym); let C_Encrypt = __library.get(b"C_Encrypt\0").map(|sym| *sym); let C_EncryptUpdate = __library.get(b"C_EncryptUpdate\0").map(|sym| *sym); let C_EncryptFinal = __library.get(b"C_EncryptFinal\0").map(|sym| *sym); let C_DecryptInit = __library.get(b"C_DecryptInit\0").map(|sym| *sym); let C_Decrypt = __library.get(b"C_Decrypt\0").map(|sym| *sym); let C_DecryptUpdate = __library.get(b"C_DecryptUpdate\0").map(|sym| *sym); let C_DecryptFinal = __library.get(b"C_DecryptFinal\0").map(|sym| *sym); let C_DigestInit = __library.get(b"C_DigestInit\0").map(|sym| *sym); let C_Digest = __library.get(b"C_Digest\0").map(|sym| *sym); let C_DigestUpdate = __library.get(b"C_DigestUpdate\0").map(|sym| *sym); let C_DigestKey = __library.get(b"C_DigestKey\0").map(|sym| *sym); let C_DigestFinal = __library.get(b"C_DigestFinal\0").map(|sym| *sym); let C_SignInit = __library.get(b"C_SignInit\0").map(|sym| *sym); let C_Sign = __library.get(b"C_Sign\0").map(|sym| *sym); let C_SignUpdate = __library.get(b"C_SignUpdate\0").map(|sym| *sym); let C_SignFinal = __library.get(b"C_SignFinal\0").map(|sym| *sym); let C_SignRecoverInit = __library.get(b"C_SignRecoverInit\0").map(|sym| *sym); let C_SignRecover = __library.get(b"C_SignRecover\0").map(|sym| *sym); let C_VerifyInit = __library.get(b"C_VerifyInit\0").map(|sym| *sym); let C_Verify = __library.get(b"C_Verify\0").map(|sym| *sym); let C_VerifyUpdate = __library.get(b"C_VerifyUpdate\0").map(|sym| *sym); let C_VerifyFinal = __library.get(b"C_VerifyFinal\0").map(|sym| *sym); let C_VerifyRecoverInit = __library.get(b"C_VerifyRecoverInit\0").map(|sym| *sym); let C_VerifyRecover = __library.get(b"C_VerifyRecover\0").map(|sym| *sym); let C_DigestEncryptUpdate = __library.get(b"C_DigestEncryptUpdate\0").map(|sym| *sym); let C_DecryptDigestUpdate = __library.get(b"C_DecryptDigestUpdate\0").map(|sym| *sym); let C_SignEncryptUpdate = __library.get(b"C_SignEncryptUpdate\0").map(|sym| *sym); let C_DecryptVerifyUpdate = __library.get(b"C_DecryptVerifyUpdate\0").map(|sym| *sym); let C_GenerateKey = __library.get(b"C_GenerateKey\0").map(|sym| *sym); let C_GenerateKeyPair = __library.get(b"C_GenerateKeyPair\0").map(|sym| *sym); let C_WrapKey = __library.get(b"C_WrapKey\0").map(|sym| *sym); let C_UnwrapKey = __library.get(b"C_UnwrapKey\0").map(|sym| *sym); let C_DeriveKey = __library.get(b"C_DeriveKey\0").map(|sym| *sym); let C_SeedRandom = __library.get(b"C_SeedRandom\0").map(|sym| *sym); let C_GenerateRandom = __library.get(b"C_GenerateRandom\0").map(|sym| *sym); let C_GetFunctionStatus = __library.get(b"C_GetFunctionStatus\0").map(|sym| *sym); let C_CancelFunction = __library.get(b"C_CancelFunction\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, C_Finalize, C_GetInfo, C_GetFunctionList, C_GetSlotList, C_GetSlotInfo, C_GetTokenInfo, C_WaitForSlotEvent, C_GetMechanismList, C_GetMechanismInfo, C_InitToken, C_InitPIN, C_SetPIN, C_OpenSession, C_CloseSession, C_CloseAllSessions, C_GetSessionInfo, C_GetOperationState, C_SetOperationState, C_Login, C_Logout, C_CreateObject, C_CopyObject, C_DestroyObject, C_GetObjectSize, C_GetAttributeValue, C_SetAttributeValue, C_FindObjectsInit, C_FindObjects, C_FindObjectsFinal, C_EncryptInit, C_Encrypt, C_EncryptUpdate, C_EncryptFinal, C_DecryptInit, C_Decrypt, C_DecryptUpdate, C_DecryptFinal, C_DigestInit, C_Digest, C_DigestUpdate, C_DigestKey, C_DigestFinal, C_SignInit, C_Sign, C_SignUpdate, C_SignFinal, C_SignRecoverInit, C_SignRecover, C_VerifyInit, C_Verify, C_VerifyUpdate, C_VerifyFinal, C_VerifyRecoverInit, C_VerifyRecover, C_DigestEncryptUpdate, C_DecryptDigestUpdate, C_SignEncryptUpdate, C_DecryptVerifyUpdate, C_GenerateKey, C_GenerateKeyPair, C_WrapKey, C_UnwrapKey, C_DeriveKey, C_SeedRandom, C_GenerateRandom, C_GetFunctionStatus, C_CancelFunction, }) } pub unsafe fn C_Initialize(&self, init_args: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Initialize .as_ref() .expect("Expected function, got error."))(init_args) } pub unsafe fn C_Finalize(&self, pReserved: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Finalize .as_ref() .expect("Expected function, got error."))(pReserved) } pub unsafe fn C_GetInfo(&self, info: *mut _CK_INFO) -> CK_RV { (self .C_GetInfo .as_ref() .expect("Expected function, got error."))(info) } pub unsafe fn C_GetFunctionList(&self, function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV { (self .C_GetFunctionList .as_ref() .expect("Expected function, got error."))(function_list) } pub unsafe fn C_GetSlotList( &self, token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetSlotList .as_ref() .expect("Expected function, got error."))(token_present, slot_list, ulCount) } pub unsafe fn C_GetSlotInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV { (self .C_GetSlotInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_GetTokenInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV { (self .C_GetTokenInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_WaitForSlotEvent( &self, flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV { (self .C_WaitForSlotEvent .as_ref() .expect("Expected function, got error."))(flags, slot, pReserved) } pub unsafe fn C_GetMechanismList( &self, slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetMechanismList .as_ref() .expect("Expected function, got error."))(slotID, mechanism_list, ulCount) } pub unsafe fn C_GetMechanismInfo( &self, slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV { (self .C_GetMechanismInfo .as_ref() .expect("Expected function, got error."))(slotID, type_, info) } pub unsafe fn C_InitToken( &self, slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV { (self .C_InitToken .as_ref() .expect("Expected function, got error."))(slotID, pin, pin_len, label) } pub unsafe fn C_InitPIN( &self, session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_InitPIN .as_ref() .expect("Expected function, got error."))(session, pin, pin_len) } pub unsafe fn C_SetPIN( &self, session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetPIN .as_ref() .expect("Expected function, got error."))( session, old_pin, old_len, new_pin, new_len ) } pub unsafe fn C_OpenSession( &self, slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV { (self .C_OpenSession .as_ref() .expect("Expected function, got error."))( slotID, flags, application, notify, session ) } pub unsafe fn C_CloseSession(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CloseSession .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CloseAllSessions(&self, slotID: CK_SLOT_ID) -> CK_RV { (self .C_CloseAllSessions .as_ref() .expect("Expected function, got error."))(slotID) } pub unsafe fn C_GetSessionInfo( &self, session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO, ) -> CK_RV { (self .C_GetSessionInfo .as_ref() .expect("Expected function, got error."))(session, info) } pub unsafe fn C_GetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len ) } pub unsafe fn C_SetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len, encryption_key, authentiation_key, ) } pub unsafe fn C_Login( &self, session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Login .as_ref() .expect("Expected function, got error."))(session, user_type, pin, pin_len) } pub unsafe fn C_Logout(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_Logout .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CreateObject( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CreateObject .as_ref() .expect("Expected function, got error."))(session, templ, ulCount, object) } pub unsafe fn C_CopyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CopyObject .as_ref() .expect("Expected function, got error."))( session, object, templ, ulCount, new_object ) } pub unsafe fn C_DestroyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DestroyObject .as_ref() .expect("Expected function, got error."))(session, object) } pub unsafe fn C_GetObjectSize( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetObjectSize .as_ref() .expect("Expected function, got error."))(session, object, size) } pub unsafe fn C_GetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_SetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_FindObjectsInit( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjectsInit .as_ref() .expect("Expected function, got error."))(session, templ, ulCount) } pub unsafe fn C_FindObjects( &self, session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjects .as_ref() .expect("Expected function, got error."))( session, object, max_object_count, object_count, ) } pub unsafe fn C_FindObjectsFinal(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_FindObjectsFinal .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_EncryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_EncryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Encrypt( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Encrypt .as_ref() .expect("Expected function, got error."))( session, data, data_len, encrypted_data, encrypted_data_len, ) } pub unsafe fn C_EncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_EncryptFinal( &self, session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptFinal .as_ref() .expect("Expected function, got error."))( session, last_encrypted_part, last_encrypted_part_len, ) } pub unsafe fn C_DecryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DecryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Decrypt( &self, session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Decrypt .as_ref() .expect("Expected function, got error."))( session, encrypted_data, encrypted_data_len, data, data_len, ) } pub unsafe fn C_DecryptUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_DecryptFinal( &self, session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptFinal .as_ref() .expect("Expected function, got error."))(session, last_part, last_part_len) } pub unsafe fn C_DigestInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, ) -> CK_RV { (self .C_DigestInit .as_ref() .expect("Expected function, got error."))(session, mechanism) } pub unsafe fn C_Digest( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Digest .as_ref() .expect("Expected function, got error."))( session, data, data_len, digest, digest_len ) } pub unsafe fn C_DigestUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_DigestKey(&self, session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV { (self .C_DigestKey .as_ref() .expect("Expected function, got error."))(session, key) } pub unsafe fn C_DigestFinal( &self, session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestFinal .as_ref() .expect("Expected function, got error."))(session, digest, digest_len) } pub unsafe fn C_SignInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Sign( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self.C_Sign.as_ref().expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_SignUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_SignFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_SignRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_SignRecover( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignRecover .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Verify( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Verify .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_VerifyFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_VerifyRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_VerifyRecover( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyRecover .as_ref() .expect("Expected function, got error."))( session, signature, signature_len, data, data_len, ) } pub unsafe fn C_DigestEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptDigestUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptDigestUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_SignEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptVerifyUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptVerifyUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_GenerateKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKey .as_ref() .expect("Expected function, got error."))( session, mechanism, templ, ulCount, key ) } pub unsafe fn C_GenerateKeyPair( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKeyPair .as_ref() .expect("Expected function, got error."))( session, mechanism, public_key_template, public_key_attribute_count, private_key_template, private_key_attribute_count, public_key, private_key, ) } pub unsafe fn C_WrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_WrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, wrapping_key, key, wrapped_key, wrapped_key_len, ) } pub unsafe fn C_UnwrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_UnwrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, unwrapping_key, wrapped_key, wrapped_key_len, templ, attribute_count, key, ) } pub unsafe fn C_DeriveKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DeriveKey .as_ref() .expect("Expected function, got error."))( session, mechanism, base_key, templ, attribute_count, key, ) } pub unsafe fn C_SeedRandom( &self, session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SeedRandom .as_ref() .expect("Expected function, got error."))(session, seed, seed_len) } pub unsafe fn C_GenerateRandom( &self, session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GenerateRandom .as_ref() .expect("Expected function, got error."))(session, random_data, random_len) } pub unsafe fn C_GetFunctionStatus(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_GetFunctionStatus .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CancelFunction(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CancelFunction .as_ref() .expect("Expected function, got error."))(session) } } cryptoki-sys-0.1.7/src/bindings/arm-unknown-linux-gnueabi.rs000064400000000000000000005275501046102023000223020ustar 00000000000000/* automatically generated by rust-bindgen 0.66.1 */ pub const PKCS11_H: u32 = 1; pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 40; pub const P11_KIT_CRYPTOKI_VERSION_REVISION: u32 = 0; pub const CRYPTOKI_COMPAT: u32 = 1; pub const CKF_RNG: CK_FLAGS = 1; pub const CKF_WRITE_PROTECTED: CK_FLAGS = 2; pub const CKF_LOGIN_REQUIRED: CK_FLAGS = 4; pub const CKF_USER_PIN_INITIALIZED: CK_FLAGS = 8; pub const CKF_RESTORE_KEY_NOT_NEEDED: CK_FLAGS = 32; pub const CKF_CLOCK_ON_TOKEN: CK_FLAGS = 64; pub const CKF_PROTECTED_AUTHENTICATION_PATH: CK_FLAGS = 256; pub const CKF_DUAL_CRYPTO_OPERATIONS: CK_FLAGS = 512; pub const CKF_TOKEN_INITIALIZED: CK_FLAGS = 1024; pub const CKF_SECONDARY_AUTHENTICATION: CK_FLAGS = 2048; pub const CKF_USER_PIN_COUNT_LOW: CK_FLAGS = 65536; pub const CKF_USER_PIN_FINAL_TRY: CK_FLAGS = 131072; pub const CKF_USER_PIN_LOCKED: CK_FLAGS = 262144; pub const CKF_USER_PIN_TO_BE_CHANGED: CK_FLAGS = 524288; pub const CKF_SO_PIN_COUNT_LOW: CK_FLAGS = 1048576; pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; pub const CKO_DATA: CK_OBJECT_CLASS = 0; pub const CKO_CERTIFICATE: CK_OBJECT_CLASS = 1; pub const CKO_PUBLIC_KEY: CK_OBJECT_CLASS = 2; pub const CKO_PRIVATE_KEY: CK_OBJECT_CLASS = 3; pub const CKO_SECRET_KEY: CK_OBJECT_CLASS = 4; pub const CKO_HW_FEATURE: CK_OBJECT_CLASS = 5; pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_EC: CK_KEY_TYPE = 3; pub const CKK_X9_42_DH: CK_KEY_TYPE = 4; pub const CKK_KEA: CK_KEY_TYPE = 5; pub const CKK_GENERIC_SECRET: CK_KEY_TYPE = 16; pub const CKK_RC2: CK_KEY_TYPE = 17; pub const CKK_RC4: CK_KEY_TYPE = 18; pub const CKK_DES: CK_KEY_TYPE = 19; pub const CKK_DES2: CK_KEY_TYPE = 20; pub const CKK_DES3: CK_KEY_TYPE = 21; pub const CKK_CAST: CK_KEY_TYPE = 22; pub const CKK_CAST3: CK_KEY_TYPE = 23; pub const CKK_CAST128: CK_KEY_TYPE = 24; pub const CKK_RC5: CK_KEY_TYPE = 25; pub const CKK_IDEA: CK_KEY_TYPE = 26; pub const CKK_SKIPJACK: CK_KEY_TYPE = 27; pub const CKK_BATON: CK_KEY_TYPE = 28; pub const CKK_JUNIPER: CK_KEY_TYPE = 29; pub const CKK_CDMF: CK_KEY_TYPE = 30; pub const CKK_AES: CK_KEY_TYPE = 31; pub const CKK_BLOWFISH: CK_KEY_TYPE = 32; pub const CKK_TWOFISH: CK_KEY_TYPE = 33; pub const CKK_SECURID: CK_KEY_TYPE = 34; pub const CKK_HOTP: CK_KEY_TYPE = 35; pub const CKK_ACTI: CK_KEY_TYPE = 36; pub const CKK_CAMELLIA: CK_KEY_TYPE = 37; pub const CKK_ARIA: CK_KEY_TYPE = 38; pub const CKK_MD5_HMAC: CK_KEY_TYPE = 39; pub const CKK_SHA_1_HMAC: CK_KEY_TYPE = 40; pub const CKK_RIPEMD128_HMAC: CK_KEY_TYPE = 41; pub const CKK_RIPEMD160_HMAC: CK_KEY_TYPE = 42; pub const CKK_SHA256_HMAC: CK_KEY_TYPE = 43; pub const CKK_SHA384_HMAC: CK_KEY_TYPE = 44; pub const CKK_SHA512_HMAC: CK_KEY_TYPE = 45; pub const CKK_SHA224_HMAC: CK_KEY_TYPE = 46; pub const CKK_SEED: CK_KEY_TYPE = 47; pub const CKK_GOSTR3410: CK_KEY_TYPE = 48; pub const CKK_GOSTR3411: CK_KEY_TYPE = 49; pub const CKK_GOST28147: CK_KEY_TYPE = 50; pub const CKK_EC_EDWARDS: CK_KEY_TYPE = 64; pub const CKC_X_509: CK_CERTIFICATE_TYPE = 0; pub const CKC_X_509_ATTR_CERT: CK_CERTIFICATE_TYPE = 1; pub const CKC_WTLS: CK_CERTIFICATE_TYPE = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; pub const CKA_TOKEN: CK_ATTRIBUTE_TYPE = 1; pub const CKA_PRIVATE: CK_ATTRIBUTE_TYPE = 2; pub const CKA_LABEL: CK_ATTRIBUTE_TYPE = 3; pub const CKA_APPLICATION: CK_ATTRIBUTE_TYPE = 16; pub const CKA_VALUE: CK_ATTRIBUTE_TYPE = 17; pub const CKA_OBJECT_ID: CK_ATTRIBUTE_TYPE = 18; pub const CKA_CERTIFICATE_TYPE: CK_ATTRIBUTE_TYPE = 128; pub const CKA_ISSUER: CK_ATTRIBUTE_TYPE = 129; pub const CKA_SERIAL_NUMBER: CK_ATTRIBUTE_TYPE = 130; pub const CKA_AC_ISSUER: CK_ATTRIBUTE_TYPE = 131; pub const CKA_OWNER: CK_ATTRIBUTE_TYPE = 132; pub const CKA_ATTR_TYPES: CK_ATTRIBUTE_TYPE = 133; pub const CKA_TRUSTED: CK_ATTRIBUTE_TYPE = 134; pub const CKA_CERTIFICATE_CATEGORY: CK_ATTRIBUTE_TYPE = 135; pub const CKA_JAVA_MIDP_SECURITY_DOMAIN: CK_ATTRIBUTE_TYPE = 136; pub const CKA_URL: CK_ATTRIBUTE_TYPE = 137; pub const CKA_HASH_OF_SUBJECT_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 138; pub const CKA_HASH_OF_ISSUER_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 139; pub const CKA_NAME_HASH_ALGORITHM: CK_ATTRIBUTE_TYPE = 140; pub const CKA_CHECK_VALUE: CK_ATTRIBUTE_TYPE = 144; pub const CKA_KEY_TYPE: CK_ATTRIBUTE_TYPE = 256; pub const CKA_SUBJECT: CK_ATTRIBUTE_TYPE = 257; pub const CKA_ID: CK_ATTRIBUTE_TYPE = 258; pub const CKA_SENSITIVE: CK_ATTRIBUTE_TYPE = 259; pub const CKA_ENCRYPT: CK_ATTRIBUTE_TYPE = 260; pub const CKA_DECRYPT: CK_ATTRIBUTE_TYPE = 261; pub const CKA_WRAP: CK_ATTRIBUTE_TYPE = 262; pub const CKA_UNWRAP: CK_ATTRIBUTE_TYPE = 263; pub const CKA_SIGN: CK_ATTRIBUTE_TYPE = 264; pub const CKA_SIGN_RECOVER: CK_ATTRIBUTE_TYPE = 265; pub const CKA_VERIFY: CK_ATTRIBUTE_TYPE = 266; pub const CKA_VERIFY_RECOVER: CK_ATTRIBUTE_TYPE = 267; pub const CKA_DERIVE: CK_ATTRIBUTE_TYPE = 268; pub const CKA_START_DATE: CK_ATTRIBUTE_TYPE = 272; pub const CKA_END_DATE: CK_ATTRIBUTE_TYPE = 273; pub const CKA_MODULUS: CK_ATTRIBUTE_TYPE = 288; pub const CKA_MODULUS_BITS: CK_ATTRIBUTE_TYPE = 289; pub const CKA_PUBLIC_EXPONENT: CK_ATTRIBUTE_TYPE = 290; pub const CKA_PRIVATE_EXPONENT: CK_ATTRIBUTE_TYPE = 291; pub const CKA_PRIME_1: CK_ATTRIBUTE_TYPE = 292; pub const CKA_PRIME_2: CK_ATTRIBUTE_TYPE = 293; pub const CKA_EXPONENT_1: CK_ATTRIBUTE_TYPE = 294; pub const CKA_EXPONENT_2: CK_ATTRIBUTE_TYPE = 295; pub const CKA_COEFFICIENT: CK_ATTRIBUTE_TYPE = 296; pub const CKA_PUBLIC_KEY_INFO: CK_ATTRIBUTE_TYPE = 297; pub const CKA_PRIME: CK_ATTRIBUTE_TYPE = 304; pub const CKA_SUBPRIME: CK_ATTRIBUTE_TYPE = 305; pub const CKA_BASE: CK_ATTRIBUTE_TYPE = 306; pub const CKA_PRIME_BITS: CK_ATTRIBUTE_TYPE = 307; pub const CKA_SUB_PRIME_BITS: CK_ATTRIBUTE_TYPE = 308; pub const CKA_VALUE_BITS: CK_ATTRIBUTE_TYPE = 352; pub const CKA_VALUE_LEN: CK_ATTRIBUTE_TYPE = 353; pub const CKA_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 354; pub const CKA_LOCAL: CK_ATTRIBUTE_TYPE = 355; pub const CKA_NEVER_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 356; pub const CKA_ALWAYS_SENSITIVE: CK_ATTRIBUTE_TYPE = 357; pub const CKA_KEY_GEN_MECHANISM: CK_ATTRIBUTE_TYPE = 358; pub const CKA_MODIFIABLE: CK_ATTRIBUTE_TYPE = 368; pub const CKA_COPYABLE: CK_ATTRIBUTE_TYPE = 369; pub const CKA_DESTROYABLE: CK_ATTRIBUTE_TYPE = 370; pub const CKA_ECDSA_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_POINT: CK_ATTRIBUTE_TYPE = 385; pub const CKA_SECONDARY_AUTH: CK_ATTRIBUTE_TYPE = 512; pub const CKA_AUTH_PIN_FLAGS: CK_ATTRIBUTE_TYPE = 513; pub const CKA_ALWAYS_AUTHENTICATE: CK_ATTRIBUTE_TYPE = 514; pub const CKA_WRAP_WITH_TRUSTED: CK_ATTRIBUTE_TYPE = 528; pub const CKA_OTP_FORMAT: CK_ATTRIBUTE_TYPE = 544; pub const CKA_OTP_LENGTH: CK_ATTRIBUTE_TYPE = 545; pub const CKA_OTP_TIME_INTERVAL: CK_ATTRIBUTE_TYPE = 546; pub const CKA_OTP_USER_FRIENDLY_MODE: CK_ATTRIBUTE_TYPE = 547; pub const CKA_OTP_CHALLENGE_REQUIREMENT: CK_ATTRIBUTE_TYPE = 548; pub const CKA_OTP_TIME_REQUIREMENT: CK_ATTRIBUTE_TYPE = 549; pub const CKA_OTP_COUNTER_REQUIREMENT: CK_ATTRIBUTE_TYPE = 550; pub const CKA_OTP_PIN_REQUIREMENT: CK_ATTRIBUTE_TYPE = 551; pub const CKA_OTP_USER_IDENTIFIER: CK_ATTRIBUTE_TYPE = 554; pub const CKA_OTP_SERVICE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 555; pub const CKA_OTP_SERVICE_LOGO: CK_ATTRIBUTE_TYPE = 556; pub const CKA_OTP_SERVICE_LOGO_TYPE: CK_ATTRIBUTE_TYPE = 557; pub const CKA_OTP_COUNTER: CK_ATTRIBUTE_TYPE = 558; pub const CKA_OTP_TIME: CK_ATTRIBUTE_TYPE = 559; pub const CKA_GOSTR3410_PARAMS: CK_ATTRIBUTE_TYPE = 592; pub const CKA_GOSTR3411_PARAMS: CK_ATTRIBUTE_TYPE = 593; pub const CKA_GOST28147_PARAMS: CK_ATTRIBUTE_TYPE = 594; pub const CKA_HW_FEATURE_TYPE: CK_ATTRIBUTE_TYPE = 768; pub const CKA_RESET_ON_INIT: CK_ATTRIBUTE_TYPE = 769; pub const CKA_HAS_RESET: CK_ATTRIBUTE_TYPE = 770; pub const CKA_PIXEL_X: CK_ATTRIBUTE_TYPE = 1024; pub const CKA_PIXEL_Y: CK_ATTRIBUTE_TYPE = 1025; pub const CKA_RESOLUTION: CK_ATTRIBUTE_TYPE = 1026; pub const CKA_CHAR_ROWS: CK_ATTRIBUTE_TYPE = 1027; pub const CKA_CHAR_COLUMNS: CK_ATTRIBUTE_TYPE = 1028; pub const CKA_COLOR: CK_ATTRIBUTE_TYPE = 1029; pub const CKA_BITS_PER_PIXEL: CK_ATTRIBUTE_TYPE = 1030; pub const CKA_CHAR_SETS: CK_ATTRIBUTE_TYPE = 1152; pub const CKA_ENCODING_METHODS: CK_ATTRIBUTE_TYPE = 1153; pub const CKA_MIME_TYPES: CK_ATTRIBUTE_TYPE = 1154; pub const CKA_MECHANISM_TYPE: CK_ATTRIBUTE_TYPE = 1280; pub const CKA_REQUIRED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1281; pub const CKA_DEFAULT_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1282; pub const CKA_SUPPORTED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1283; pub const CKM_RSA_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 0; pub const CKM_RSA_PKCS: CK_MECHANISM_TYPE = 1; pub const CKM_RSA_9796: CK_MECHANISM_TYPE = 2; pub const CKM_RSA_X_509: CK_MECHANISM_TYPE = 3; pub const CKM_MD2_RSA_PKCS: CK_MECHANISM_TYPE = 4; pub const CKM_MD5_RSA_PKCS: CK_MECHANISM_TYPE = 5; pub const CKM_SHA1_RSA_PKCS: CK_MECHANISM_TYPE = 6; pub const CKM_RIPEMD128_RSA_PKCS: CK_MECHANISM_TYPE = 7; pub const CKM_RIPEMD160_RSA_PKCS: CK_MECHANISM_TYPE = 8; pub const CKM_RSA_PKCS_OAEP: CK_MECHANISM_TYPE = 9; pub const CKM_RSA_X9_31_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 10; pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; pub const CKM_SHA256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 67; pub const CKM_SHA384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 68; pub const CKM_SHA512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 69; pub const CKM_SHA512_224: CK_MECHANISM_TYPE = 72; pub const CKM_SHA512_224_HMAC: CK_MECHANISM_TYPE = 73; pub const CKM_SHA512_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 74; pub const CKM_SHA512_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 75; pub const CKM_SHA512_256: CK_MECHANISM_TYPE = 76; pub const CKM_SHA512_256_HMAC: CK_MECHANISM_TYPE = 77; pub const CKM_SHA512_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 78; pub const CKM_SHA512_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 79; pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; pub const CKM_RC2_KEY_GEN: CK_MECHANISM_TYPE = 256; pub const CKM_RC2_ECB: CK_MECHANISM_TYPE = 257; pub const CKM_RC2_CBC: CK_MECHANISM_TYPE = 258; pub const CKM_RC2_MAC: CK_MECHANISM_TYPE = 259; pub const CKM_RC2_MAC_GENERAL: CK_MECHANISM_TYPE = 260; pub const CKM_RC2_CBC_PAD: CK_MECHANISM_TYPE = 261; pub const CKM_RC4_KEY_GEN: CK_MECHANISM_TYPE = 272; pub const CKM_RC4: CK_MECHANISM_TYPE = 273; pub const CKM_DES_KEY_GEN: CK_MECHANISM_TYPE = 288; pub const CKM_DES_ECB: CK_MECHANISM_TYPE = 289; pub const CKM_DES_CBC: CK_MECHANISM_TYPE = 290; pub const CKM_DES_MAC: CK_MECHANISM_TYPE = 291; pub const CKM_DES_MAC_GENERAL: CK_MECHANISM_TYPE = 292; pub const CKM_DES_CBC_PAD: CK_MECHANISM_TYPE = 293; pub const CKM_DES2_KEY_GEN: CK_MECHANISM_TYPE = 304; pub const CKM_DES3_KEY_GEN: CK_MECHANISM_TYPE = 305; pub const CKM_DES3_ECB: CK_MECHANISM_TYPE = 306; pub const CKM_DES3_CBC: CK_MECHANISM_TYPE = 307; pub const CKM_DES3_MAC: CK_MECHANISM_TYPE = 308; pub const CKM_DES3_MAC_GENERAL: CK_MECHANISM_TYPE = 309; pub const CKM_DES3_CBC_PAD: CK_MECHANISM_TYPE = 310; pub const CKM_DES3_CMAC_GENERAL: CK_MECHANISM_TYPE = 311; pub const CKM_DES3_CMAC: CK_MECHANISM_TYPE = 312; pub const CKM_CDMF_KEY_GEN: CK_MECHANISM_TYPE = 320; pub const CKM_CDMF_ECB: CK_MECHANISM_TYPE = 321; pub const CKM_CDMF_CBC: CK_MECHANISM_TYPE = 322; pub const CKM_CDMF_MAC: CK_MECHANISM_TYPE = 323; pub const CKM_CDMF_MAC_GENERAL: CK_MECHANISM_TYPE = 324; pub const CKM_CDMF_CBC_PAD: CK_MECHANISM_TYPE = 325; pub const CKM_DES_OFB64: CK_MECHANISM_TYPE = 336; pub const CKM_DES_OFB8: CK_MECHANISM_TYPE = 337; pub const CKM_DES_CFB64: CK_MECHANISM_TYPE = 338; pub const CKM_DES_CFB8: CK_MECHANISM_TYPE = 339; pub const CKM_MD2: CK_MECHANISM_TYPE = 512; pub const CKM_MD2_HMAC: CK_MECHANISM_TYPE = 513; pub const CKM_MD2_HMAC_GENERAL: CK_MECHANISM_TYPE = 514; pub const CKM_MD5: CK_MECHANISM_TYPE = 528; pub const CKM_MD5_HMAC: CK_MECHANISM_TYPE = 529; pub const CKM_MD5_HMAC_GENERAL: CK_MECHANISM_TYPE = 530; pub const CKM_SHA_1: CK_MECHANISM_TYPE = 544; pub const CKM_SHA_1_HMAC: CK_MECHANISM_TYPE = 545; pub const CKM_SHA_1_HMAC_GENERAL: CK_MECHANISM_TYPE = 546; pub const CKM_RIPEMD128: CK_MECHANISM_TYPE = 560; pub const CKM_RIPEMD128_HMAC: CK_MECHANISM_TYPE = 561; pub const CKM_RIPEMD128_HMAC_GENERAL: CK_MECHANISM_TYPE = 562; pub const CKM_RIPEMD160: CK_MECHANISM_TYPE = 576; pub const CKM_RIPEMD160_HMAC: CK_MECHANISM_TYPE = 577; pub const CKM_RIPEMD160_HMAC_GENERAL: CK_MECHANISM_TYPE = 578; pub const CKM_SHA256: CK_MECHANISM_TYPE = 592; pub const CKM_SHA256_HMAC: CK_MECHANISM_TYPE = 593; pub const CKM_SHA256_HMAC_GENERAL: CK_MECHANISM_TYPE = 594; pub const CKM_SHA384: CK_MECHANISM_TYPE = 608; pub const CKM_SHA384_HMAC: CK_MECHANISM_TYPE = 609; pub const CKM_SHA384_HMAC_GENERAL: CK_MECHANISM_TYPE = 610; pub const CKM_SHA512: CK_MECHANISM_TYPE = 624; pub const CKM_SHA512_HMAC: CK_MECHANISM_TYPE = 625; pub const CKM_SHA512_HMAC_GENERAL: CK_MECHANISM_TYPE = 626; pub const CKM_SECURID_KEY_GEN: CK_MECHANISM_TYPE = 640; pub const CKM_SECURID: CK_MECHANISM_TYPE = 642; pub const CKM_HOTP_KEY_GEN: CK_MECHANISM_TYPE = 656; pub const CKM_HOTP: CK_MECHANISM_TYPE = 657; pub const CKM_ACTI: CK_MECHANISM_TYPE = 672; pub const CKM_ACTI_KEY_GEN: CK_MECHANISM_TYPE = 673; pub const CKM_CAST_KEY_GEN: CK_MECHANISM_TYPE = 768; pub const CKM_CAST_ECB: CK_MECHANISM_TYPE = 769; pub const CKM_CAST_CBC: CK_MECHANISM_TYPE = 770; pub const CKM_CAST_MAC: CK_MECHANISM_TYPE = 771; pub const CKM_CAST_MAC_GENERAL: CK_MECHANISM_TYPE = 772; pub const CKM_CAST_CBC_PAD: CK_MECHANISM_TYPE = 773; pub const CKM_CAST3_KEY_GEN: CK_MECHANISM_TYPE = 784; pub const CKM_CAST3_ECB: CK_MECHANISM_TYPE = 785; pub const CKM_CAST3_CBC: CK_MECHANISM_TYPE = 786; pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST128_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_CAST128_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_RC5_KEY_GEN: CK_MECHANISM_TYPE = 816; pub const CKM_RC5_ECB: CK_MECHANISM_TYPE = 817; pub const CKM_RC5_CBC: CK_MECHANISM_TYPE = 818; pub const CKM_RC5_MAC: CK_MECHANISM_TYPE = 819; pub const CKM_RC5_MAC_GENERAL: CK_MECHANISM_TYPE = 820; pub const CKM_RC5_CBC_PAD: CK_MECHANISM_TYPE = 821; pub const CKM_IDEA_KEY_GEN: CK_MECHANISM_TYPE = 832; pub const CKM_IDEA_ECB: CK_MECHANISM_TYPE = 833; pub const CKM_IDEA_CBC: CK_MECHANISM_TYPE = 834; pub const CKM_IDEA_MAC: CK_MECHANISM_TYPE = 835; pub const CKM_IDEA_MAC_GENERAL: CK_MECHANISM_TYPE = 836; pub const CKM_IDEA_CBC_PAD: CK_MECHANISM_TYPE = 837; pub const CKM_GENERIC_SECRET_KEY_GEN: CK_MECHANISM_TYPE = 848; pub const CKM_CONCATENATE_BASE_AND_KEY: CK_MECHANISM_TYPE = 864; pub const CKM_CONCATENATE_BASE_AND_DATA: CK_MECHANISM_TYPE = 866; pub const CKM_CONCATENATE_DATA_AND_BASE: CK_MECHANISM_TYPE = 867; pub const CKM_XOR_BASE_AND_DATA: CK_MECHANISM_TYPE = 868; pub const CKM_EXTRACT_KEY_FROM_KEY: CK_MECHANISM_TYPE = 869; pub const CKM_SSL3_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 880; pub const CKM_SSL3_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 881; pub const CKM_SSL3_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 882; pub const CKM_SSL3_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 883; pub const CKM_TLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 884; pub const CKM_TLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 885; pub const CKM_TLS_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 886; pub const CKM_TLS_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 887; pub const CKM_TLS_PRF: CK_MECHANISM_TYPE = 888; pub const CKM_SSL3_MD5_MAC: CK_MECHANISM_TYPE = 896; pub const CKM_SSL3_SHA1_MAC: CK_MECHANISM_TYPE = 897; pub const CKM_MD5_KEY_DERIVATION: CK_MECHANISM_TYPE = 912; pub const CKM_MD2_KEY_DERIVATION: CK_MECHANISM_TYPE = 913; pub const CKM_SHA1_KEY_DERIVATION: CK_MECHANISM_TYPE = 914; pub const CKM_SHA256_KEY_DERIVATION: CK_MECHANISM_TYPE = 915; pub const CKM_SHA384_KEY_DERIVATION: CK_MECHANISM_TYPE = 916; pub const CKM_SHA512_KEY_DERIVATION: CK_MECHANISM_TYPE = 917; pub const CKM_PBE_MD2_DES_CBC: CK_MECHANISM_TYPE = 928; pub const CKM_PBE_MD5_DES_CBC: CK_MECHANISM_TYPE = 929; pub const CKM_PBE_MD5_CAST_CBC: CK_MECHANISM_TYPE = 930; pub const CKM_PBE_MD5_CAST3_CBC: CK_MECHANISM_TYPE = 931; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_MD5_CAST128_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_CAST128_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_RC4_128: CK_MECHANISM_TYPE = 934; pub const CKM_PBE_SHA1_RC4_40: CK_MECHANISM_TYPE = 935; pub const CKM_PBE_SHA1_DES3_EDE_CBC: CK_MECHANISM_TYPE = 936; pub const CKM_PBE_SHA1_DES2_EDE_CBC: CK_MECHANISM_TYPE = 937; pub const CKM_PBE_SHA1_RC2_128_CBC: CK_MECHANISM_TYPE = 938; pub const CKM_PBE_SHA1_RC2_40_CBC: CK_MECHANISM_TYPE = 939; pub const CKM_PKCS5_PBKD2: CK_MECHANISM_TYPE = 944; pub const CKM_PBA_SHA1_WITH_SHA1_HMAC: CK_MECHANISM_TYPE = 960; pub const CKM_WTLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 976; pub const CKM_WTLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 977; pub const CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC: CK_MECHANISM_TYPE = 978; pub const CKM_WTLS_PRF: CK_MECHANISM_TYPE = 979; pub const CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 980; pub const CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 981; pub const CKM_TLS10_MAC_SERVER: CK_MECHANISM_TYPE = 982; pub const CKM_TLS10_MAC_CLIENT: CK_MECHANISM_TYPE = 983; pub const CKM_TLS12_MAC: CK_MECHANISM_TYPE = 984; pub const CKM_TLS12_KDF: CK_MECHANISM_TYPE = 985; pub const CKM_TLS12_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 992; pub const CKM_TLS12_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 993; pub const CKM_TLS12_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 994; pub const CKM_TLS12_KEY_SAFE_DERIVE: CK_MECHANISM_TYPE = 995; pub const CKM_TLS_MAC: CK_MECHANISM_TYPE = 996; pub const CKM_TLS_KDF: CK_MECHANISM_TYPE = 997; pub const CKM_KEY_WRAP_LYNKS: CK_MECHANISM_TYPE = 1024; pub const CKM_KEY_WRAP_SET_OAEP: CK_MECHANISM_TYPE = 1025; pub const CKM_CMS_SIG: CK_MECHANISM_TYPE = 1280; pub const CKM_KIP_DERIVE: CK_MECHANISM_TYPE = 1296; pub const CKM_KIP_WRAP: CK_MECHANISM_TYPE = 1297; pub const CKM_KIP_MAC: CK_MECHANISM_TYPE = 1298; pub const CKM_CAMELLIA_KEY_GEN: CK_MECHANISM_TYPE = 1360; pub const CKM_CAMELLIA_CTR: CK_MECHANISM_TYPE = 1368; pub const CKM_ARIA_KEY_GEN: CK_MECHANISM_TYPE = 1376; pub const CKM_ARIA_ECB: CK_MECHANISM_TYPE = 1377; pub const CKM_ARIA_CBC: CK_MECHANISM_TYPE = 1378; pub const CKM_ARIA_MAC: CK_MECHANISM_TYPE = 1379; pub const CKM_ARIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1380; pub const CKM_ARIA_CBC_PAD: CK_MECHANISM_TYPE = 1381; pub const CKM_ARIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1382; pub const CKM_ARIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1383; pub const CKM_SEED_KEY_GEN: CK_MECHANISM_TYPE = 1616; pub const CKM_SEED_ECB: CK_MECHANISM_TYPE = 1617; pub const CKM_SEED_CBC: CK_MECHANISM_TYPE = 1618; pub const CKM_SEED_MAC: CK_MECHANISM_TYPE = 1619; pub const CKM_SEED_MAC_GENERAL: CK_MECHANISM_TYPE = 1620; pub const CKM_SEED_CBC_PAD: CK_MECHANISM_TYPE = 1621; pub const CKM_SEED_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1622; pub const CKM_SEED_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1623; pub const CKM_SKIPJACK_KEY_GEN: CK_MECHANISM_TYPE = 4096; pub const CKM_SKIPJACK_ECB64: CK_MECHANISM_TYPE = 4097; pub const CKM_SKIPJACK_CBC64: CK_MECHANISM_TYPE = 4098; pub const CKM_SKIPJACK_OFB64: CK_MECHANISM_TYPE = 4099; pub const CKM_SKIPJACK_CFB64: CK_MECHANISM_TYPE = 4100; pub const CKM_SKIPJACK_CFB32: CK_MECHANISM_TYPE = 4101; pub const CKM_SKIPJACK_CFB16: CK_MECHANISM_TYPE = 4102; pub const CKM_SKIPJACK_CFB8: CK_MECHANISM_TYPE = 4103; pub const CKM_SKIPJACK_WRAP: CK_MECHANISM_TYPE = 4104; pub const CKM_SKIPJACK_PRIVATE_WRAP: CK_MECHANISM_TYPE = 4105; pub const CKM_SKIPJACK_RELAYX: CK_MECHANISM_TYPE = 4106; pub const CKM_KEA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4112; pub const CKM_KEA_KEY_DERIVE: CK_MECHANISM_TYPE = 4113; pub const CKM_FORTEZZA_TIMESTAMP: CK_MECHANISM_TYPE = 4128; pub const CKM_BATON_KEY_GEN: CK_MECHANISM_TYPE = 4144; pub const CKM_BATON_ECB128: CK_MECHANISM_TYPE = 4145; pub const CKM_BATON_ECB96: CK_MECHANISM_TYPE = 4146; pub const CKM_BATON_CBC128: CK_MECHANISM_TYPE = 4147; pub const CKM_BATON_COUNTER: CK_MECHANISM_TYPE = 4148; pub const CKM_BATON_SHUFFLE: CK_MECHANISM_TYPE = 4149; pub const CKM_BATON_WRAP: CK_MECHANISM_TYPE = 4150; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_EC_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_ECDSA: CK_MECHANISM_TYPE = 4161; pub const CKM_ECDSA_SHA1: CK_MECHANISM_TYPE = 4162; pub const CKM_ECDSA_SHA224: CK_MECHANISM_TYPE = 4163; pub const CKM_ECDSA_SHA256: CK_MECHANISM_TYPE = 4164; pub const CKM_ECDSA_SHA384: CK_MECHANISM_TYPE = 4165; pub const CKM_ECDSA_SHA512: CK_MECHANISM_TYPE = 4166; pub const CKM_ECDH1_DERIVE: CK_MECHANISM_TYPE = 4176; pub const CKM_ECDH1_COFACTOR_DERIVE: CK_MECHANISM_TYPE = 4177; pub const CKM_ECMQV_DERIVE: CK_MECHANISM_TYPE = 4178; pub const CKM_ECDH_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4179; pub const CKM_RSA_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4180; pub const CKM_JUNIPER_KEY_GEN: CK_MECHANISM_TYPE = 4192; pub const CKM_JUNIPER_ECB128: CK_MECHANISM_TYPE = 4193; pub const CKM_JUNIPER_CBC128: CK_MECHANISM_TYPE = 4194; pub const CKM_JUNIPER_COUNTER: CK_MECHANISM_TYPE = 4195; pub const CKM_JUNIPER_SHUFFLE: CK_MECHANISM_TYPE = 4196; pub const CKM_JUNIPER_WRAP: CK_MECHANISM_TYPE = 4197; pub const CKM_FASTHASH: CK_MECHANISM_TYPE = 4208; pub const CKM_AES_KEY_GEN: CK_MECHANISM_TYPE = 4224; pub const CKM_AES_ECB: CK_MECHANISM_TYPE = 4225; pub const CKM_AES_CBC: CK_MECHANISM_TYPE = 4226; pub const CKM_AES_MAC: CK_MECHANISM_TYPE = 4227; pub const CKM_AES_MAC_GENERAL: CK_MECHANISM_TYPE = 4228; pub const CKM_AES_CBC_PAD: CK_MECHANISM_TYPE = 4229; pub const CKM_AES_CTR: CK_MECHANISM_TYPE = 4230; pub const CKM_AES_GCM: CK_MECHANISM_TYPE = 4231; pub const CKM_AES_CCM: CK_MECHANISM_TYPE = 4232; pub const CKM_AES_CTS: CK_MECHANISM_TYPE = 4233; pub const CKM_AES_CMAC: CK_MECHANISM_TYPE = 4234; pub const CKM_AES_CMAC_GENERAL: CK_MECHANISM_TYPE = 4235; pub const CKM_AES_XCBC_MAC: CK_MECHANISM_TYPE = 4236; pub const CKM_AES_XCBC_MAC_96: CK_MECHANISM_TYPE = 4237; pub const CKM_AES_GMAC: CK_MECHANISM_TYPE = 4238; pub const CKM_BLOWFISH_KEY_GEN: CK_MECHANISM_TYPE = 4240; pub const CKM_BLOWFISH_CBC: CK_MECHANISM_TYPE = 4241; pub const CKM_TWOFISH_KEY_GEN: CK_MECHANISM_TYPE = 4242; pub const CKM_TWOFISH_CBC: CK_MECHANISM_TYPE = 4243; pub const CKM_BLOWFISH_CBC_PAD: CK_MECHANISM_TYPE = 4244; pub const CKM_TWOFISH_CBC_PAD: CK_MECHANISM_TYPE = 4245; pub const CKM_DES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4352; pub const CKM_DES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4353; pub const CKM_DES3_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4354; pub const CKM_DES3_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4355; pub const CKM_AES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4356; pub const CKM_AES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4357; pub const CKM_GOSTR3410_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4608; pub const CKM_GOSTR3410: CK_MECHANISM_TYPE = 4609; pub const CKM_GOSTR3410_WITH_GOSTR3411: CK_MECHANISM_TYPE = 4610; pub const CKM_GOSTR3410_KEY_WRAP: CK_MECHANISM_TYPE = 4611; pub const CKM_GOSTR3410_DERIVE: CK_MECHANISM_TYPE = 4612; pub const CKM_GOSTR3411: CK_MECHANISM_TYPE = 4624; pub const CKM_GOSTR3411_HMAC: CK_MECHANISM_TYPE = 4625; pub const CKM_GOST28147_KEY_GEN: CK_MECHANISM_TYPE = 4640; pub const CKM_GOST28147_ECB: CK_MECHANISM_TYPE = 4641; pub const CKM_GOST28147: CK_MECHANISM_TYPE = 4642; pub const CKM_GOST28147_MAC: CK_MECHANISM_TYPE = 4643; pub const CKM_GOST28147_KEY_WRAP: CK_MECHANISM_TYPE = 4644; pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; pub const CKM_AES_CFB64: CK_MECHANISM_TYPE = 8453; pub const CKM_AES_CFB8: CK_MECHANISM_TYPE = 8454; pub const CKM_AES_CFB128: CK_MECHANISM_TYPE = 8455; pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_SHA224: CK_MECHANISM_TYPE = 597; pub const CKM_SHA224_HMAC: CK_MECHANISM_TYPE = 598; pub const CKM_SHA224_HMAC_GENERAL: CK_MECHANISM_TYPE = 599; pub const CKM_SHA224_RSA_PKCS: CK_MECHANISM_TYPE = 70; pub const CKM_SHA224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 71; pub const CKM_SHA224_KEY_DERIVATION: CK_MECHANISM_TYPE = 918; pub const CKM_CAMELLIA_ECB: CK_MECHANISM_TYPE = 1361; pub const CKM_CAMELLIA_CBC: CK_MECHANISM_TYPE = 1362; pub const CKM_CAMELLIA_MAC: CK_MECHANISM_TYPE = 1363; pub const CKM_CAMELLIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1364; pub const CKM_CAMELLIA_CBC_PAD: CK_MECHANISM_TYPE = 1365; pub const CKM_CAMELLIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1366; pub const CKM_CAMELLIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1367; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_EC_EDWARDS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4181; pub const CKM_EC_MONTGOMERY_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4182; pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CK_OTP_FORMAT_DECIMAL: CK_ULONG = 0; pub const CK_OTP_FORMAT_HEXADECIMAL: CK_ULONG = 1; pub const CK_OTP_FORMAT_ALPHANUMERIC: CK_ULONG = 2; pub const CK_OTP_FORMAT_BINARY: CK_ULONG = 3; pub const CK_OTP_PARAM_IGNORED: CK_ULONG = 0; pub const CK_OTP_PARAM_OPTIONAL: CK_ULONG = 1; pub const CK_OTP_PARAM_MANDATORY: CK_ULONG = 2; pub const CK_OTP_VALUE: CK_ULONG = 0; pub const CK_OTP_PIN: CK_ULONG = 1; pub const CK_OTP_CHALLENGE: CK_ULONG = 2; pub const CK_OTP_TIME: CK_ULONG = 3; pub const CK_OTP_COUNTER: CK_ULONG = 4; pub const CK_OTP_FLAGS: CK_ULONG = 5; pub const CK_OTP_OUTPUT_LENGTH: CK_ULONG = 6; pub const CK_OTP_FORMAT: CK_ULONG = 7; pub const CKF_NEXT_OTP: CK_FLAGS = 1; pub const CKF_EXCLUDE_TIME: CK_FLAGS = 2; pub const CKF_EXCLUDE_COUNTER: CK_FLAGS = 4; pub const CKF_EXCLUDE_CHALLENGE: CK_FLAGS = 8; pub const CKF_EXCLUDE_PIN: CK_FLAGS = 16; pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKG_MGF1_SHA1: CK_RSA_PKCS_MGF_TYPE = 1; pub const CKG_MGF1_SHA224: CK_RSA_PKCS_MGF_TYPE = 5; pub const CKG_MGF1_SHA256: CK_RSA_PKCS_MGF_TYPE = 2; pub const CKG_MGF1_SHA384: CK_RSA_PKCS_MGF_TYPE = 3; pub const CKG_MGF1_SHA512: CK_RSA_PKCS_MGF_TYPE = 4; pub const CKD_NULL: CK_EC_KDF_TYPE = 1; pub const CKD_SHA1_KDF: CK_EC_KDF_TYPE = 2; pub const CKD_SHA1_KDF_ASN1: CK_EC_KDF_TYPE = 3; pub const CKD_SHA1_KDF_CONCATENATE: CK_EC_KDF_TYPE = 4; pub const CKD_SHA224_KDF: CK_EC_KDF_TYPE = 5; pub const CKD_SHA256_KDF: CK_EC_KDF_TYPE = 6; pub const CKD_SHA384_KDF: CK_EC_KDF_TYPE = 7; pub const CKD_SHA512_KDF: CK_EC_KDF_TYPE = 8; pub const CKD_CPDIVERSIFY_KDF: CK_EC_KDF_TYPE = 9; pub const CKF_HW: CK_FLAGS = 1; pub const CKF_ENCRYPT: CK_FLAGS = 256; pub const CKF_DECRYPT: CK_FLAGS = 512; pub const CKF_DIGEST: CK_FLAGS = 1024; pub const CKF_SIGN: CK_FLAGS = 2048; pub const CKF_SIGN_RECOVER: CK_FLAGS = 4096; pub const CKF_VERIFY: CK_FLAGS = 8192; pub const CKF_VERIFY_RECOVER: CK_FLAGS = 16384; pub const CKF_GENERATE: CK_FLAGS = 32768; pub const CKF_GENERATE_KEY_PAIR: CK_FLAGS = 65536; pub const CKF_WRAP: CK_FLAGS = 131072; pub const CKF_UNWRAP: CK_FLAGS = 262144; pub const CKF_DERIVE: CK_FLAGS = 524288; pub const CKF_EC_F_P: CK_FLAGS = 1048576; pub const CKF_EC_F_2M: CK_FLAGS = 2097152; pub const CKF_EC_ECPARAMETERS: CK_FLAGS = 4194304; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_LIBRARY_CANT_CREATE_OS_THREADS: CK_FLAGS = 1; pub const CKF_OS_LOCKING_OK: CK_FLAGS = 2; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; pub const CKR_SLOT_ID_INVALID: CK_RV = 3; pub const CKR_GENERAL_ERROR: CK_RV = 5; pub const CKR_FUNCTION_FAILED: CK_RV = 6; pub const CKR_ARGUMENTS_BAD: CK_RV = 7; pub const CKR_NO_EVENT: CK_RV = 8; pub const CKR_NEED_TO_CREATE_THREADS: CK_RV = 9; pub const CKR_CANT_LOCK: CK_RV = 10; pub const CKR_ATTRIBUTE_READ_ONLY: CK_RV = 16; pub const CKR_ATTRIBUTE_SENSITIVE: CK_RV = 17; pub const CKR_ATTRIBUTE_TYPE_INVALID: CK_RV = 18; pub const CKR_ATTRIBUTE_VALUE_INVALID: CK_RV = 19; pub const CKR_ACTION_PROHIBITED: CK_RV = 27; pub const CKR_DATA_INVALID: CK_RV = 32; pub const CKR_DATA_LEN_RANGE: CK_RV = 33; pub const CKR_DEVICE_ERROR: CK_RV = 48; pub const CKR_DEVICE_MEMORY: CK_RV = 49; pub const CKR_DEVICE_REMOVED: CK_RV = 50; pub const CKR_ENCRYPTED_DATA_INVALID: CK_RV = 64; pub const CKR_ENCRYPTED_DATA_LEN_RANGE: CK_RV = 65; pub const CKR_FUNCTION_CANCELED: CK_RV = 80; pub const CKR_FUNCTION_NOT_PARALLEL: CK_RV = 81; pub const CKR_FUNCTION_NOT_SUPPORTED: CK_RV = 84; pub const CKR_KEY_HANDLE_INVALID: CK_RV = 96; pub const CKR_KEY_SIZE_RANGE: CK_RV = 98; pub const CKR_KEY_TYPE_INCONSISTENT: CK_RV = 99; pub const CKR_KEY_NOT_NEEDED: CK_RV = 100; pub const CKR_KEY_CHANGED: CK_RV = 101; pub const CKR_KEY_NEEDED: CK_RV = 102; pub const CKR_KEY_INDIGESTIBLE: CK_RV = 103; pub const CKR_KEY_FUNCTION_NOT_PERMITTED: CK_RV = 104; pub const CKR_KEY_NOT_WRAPPABLE: CK_RV = 105; pub const CKR_KEY_UNEXTRACTABLE: CK_RV = 106; pub const CKR_MECHANISM_INVALID: CK_RV = 112; pub const CKR_MECHANISM_PARAM_INVALID: CK_RV = 113; pub const CKR_OBJECT_HANDLE_INVALID: CK_RV = 130; pub const CKR_OPERATION_ACTIVE: CK_RV = 144; pub const CKR_OPERATION_NOT_INITIALIZED: CK_RV = 145; pub const CKR_PIN_INCORRECT: CK_RV = 160; pub const CKR_PIN_INVALID: CK_RV = 161; pub const CKR_PIN_LEN_RANGE: CK_RV = 162; pub const CKR_PIN_EXPIRED: CK_RV = 163; pub const CKR_PIN_LOCKED: CK_RV = 164; pub const CKR_SESSION_CLOSED: CK_RV = 176; pub const CKR_SESSION_COUNT: CK_RV = 177; pub const CKR_SESSION_HANDLE_INVALID: CK_RV = 179; pub const CKR_SESSION_PARALLEL_NOT_SUPPORTED: CK_RV = 180; pub const CKR_SESSION_READ_ONLY: CK_RV = 181; pub const CKR_SESSION_EXISTS: CK_RV = 182; pub const CKR_SESSION_READ_ONLY_EXISTS: CK_RV = 183; pub const CKR_SESSION_READ_WRITE_SO_EXISTS: CK_RV = 184; pub const CKR_SIGNATURE_INVALID: CK_RV = 192; pub const CKR_SIGNATURE_LEN_RANGE: CK_RV = 193; pub const CKR_TEMPLATE_INCOMPLETE: CK_RV = 208; pub const CKR_TEMPLATE_INCONSISTENT: CK_RV = 209; pub const CKR_TOKEN_NOT_PRESENT: CK_RV = 224; pub const CKR_TOKEN_NOT_RECOGNIZED: CK_RV = 225; pub const CKR_TOKEN_WRITE_PROTECTED: CK_RV = 226; pub const CKR_UNWRAPPING_KEY_HANDLE_INVALID: CK_RV = 240; pub const CKR_UNWRAPPING_KEY_SIZE_RANGE: CK_RV = 241; pub const CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 242; pub const CKR_USER_ALREADY_LOGGED_IN: CK_RV = 256; pub const CKR_USER_NOT_LOGGED_IN: CK_RV = 257; pub const CKR_USER_PIN_NOT_INITIALIZED: CK_RV = 258; pub const CKR_USER_TYPE_INVALID: CK_RV = 259; pub const CKR_USER_ANOTHER_ALREADY_LOGGED_IN: CK_RV = 260; pub const CKR_USER_TOO_MANY_TYPES: CK_RV = 261; pub const CKR_WRAPPED_KEY_INVALID: CK_RV = 272; pub const CKR_WRAPPED_KEY_LEN_RANGE: CK_RV = 274; pub const CKR_WRAPPING_KEY_HANDLE_INVALID: CK_RV = 275; pub const CKR_WRAPPING_KEY_SIZE_RANGE: CK_RV = 276; pub const CKR_WRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 277; pub const CKR_RANDOM_SEED_NOT_SUPPORTED: CK_RV = 288; pub const CKR_RANDOM_NO_RNG: CK_RV = 289; pub const CKR_DOMAIN_PARAMS_INVALID: CK_RV = 304; pub const CKR_BUFFER_TOO_SMALL: CK_RV = 336; pub const CKR_SAVED_STATE_INVALID: CK_RV = 352; pub const CKR_INFORMATION_SENSITIVE: CK_RV = 368; pub const CKR_STATE_UNSAVEABLE: CK_RV = 384; pub const CKR_CRYPTOKI_NOT_INITIALIZED: CK_RV = 400; pub const CKR_CRYPTOKI_ALREADY_INITIALIZED: CK_RV = 401; pub const CKR_MUTEX_BAD: CK_RV = 416; pub const CKR_MUTEX_NOT_LOCKED: CK_RV = 417; pub const CKR_NEW_PIN_MODE: CK_RV = 432; pub const CKR_NEXT_OTP: CK_RV = 433; pub const CKR_EXCEEDED_MAX_ITERATIONS: CK_RV = 448; pub const CKR_FIPS_SELF_TEST_FAILED: CK_RV = 449; pub const CKR_LIBRARY_LOAD_FAILED: CK_RV = 450; pub const CKR_PIN_TOO_WEAK: CK_RV = 451; pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 452; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CK_FALSE: CK_BBOOL = 0; pub const CK_TRUE: CK_BBOOL = 1; pub const FALSE: u32 = 0; pub const TRUE: u32 = 1; pub type CK_FLAGS = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_VERSION { pub major: ::std::os::raw::c_uchar, pub minor: ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout__CK_VERSION() { const UNINIT: ::std::mem::MaybeUninit<_CK_VERSION> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_VERSION>(), 2usize, concat!("Size of: ", stringify!(_CK_VERSION)) ); assert_eq!( ::std::mem::align_of::<_CK_VERSION>(), 1usize, concat!("Alignment of ", stringify!(_CK_VERSION)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).major) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(major) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).minor) as usize - ptr as usize }, 1usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(minor) ) ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_INFO { pub cryptokiVersion: _CK_VERSION, pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub libraryDescription: [::std::os::raw::c_uchar; 32usize], pub libraryVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_INFO>(), 76usize, concat!("Size of: ", stringify!(_CK_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_INFO>(), 4usize, concat!("Alignment of ", stringify!(_CK_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cryptokiVersion) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(cryptokiVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 2usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 36usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryDescription) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryVersion) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryVersion) ) ); } pub type CK_NOTIFICATION = ::std::os::raw::c_ulong; pub const CKN_SURRENDER: ::std::os::raw::c_ulong = 0; pub type CK_SLOT_ID = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_SLOT_INFO { pub slotDescription: [::std::os::raw::c_uchar; 64usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_SLOT_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SLOT_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SLOT_INFO>(), 104usize, concat!("Size of: ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SLOT_INFO>(), 4usize, concat!("Alignment of ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotDescription) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(slotDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 100usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 102usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(firmwareVersion) ) ); } impl Default for _CK_SLOT_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub const CKF_TOKEN_PRESENT: ::std::os::raw::c_ulong = 1; pub const CKF_REMOVABLE_DEVICE: ::std::os::raw::c_ulong = 2; pub const CKF_HW_SLOT: ::std::os::raw::c_ulong = 4; pub const CKF_ARRAY_ATTRIBUTE: ::std::os::raw::c_ulong = 1073741824; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_TOKEN_INFO { pub label: [::std::os::raw::c_uchar; 32usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub model: [::std::os::raw::c_uchar; 16usize], pub serialNumber: [::std::os::raw::c_uchar; 16usize], pub flags: CK_FLAGS, pub ulMaxSessionCount: ::std::os::raw::c_ulong, pub ulSessionCount: ::std::os::raw::c_ulong, pub ulMaxRwSessionCount: ::std::os::raw::c_ulong, pub ulRwSessionCount: ::std::os::raw::c_ulong, pub ulMaxPinLen: ::std::os::raw::c_ulong, pub ulMinPinLen: ::std::os::raw::c_ulong, pub ulTotalPublicMemory: ::std::os::raw::c_ulong, pub ulFreePublicMemory: ::std::os::raw::c_ulong, pub ulTotalPrivateMemory: ::std::os::raw::c_ulong, pub ulFreePrivateMemory: ::std::os::raw::c_ulong, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, pub utcTime: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout__CK_TOKEN_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_TOKEN_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_TOKEN_INFO>(), 160usize, concat!("Size of: ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_TOKEN_INFO>(), 4usize, concat!("Alignment of ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(label) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).model) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(model) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).serialNumber) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(serialNumber) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxSessionCount) as usize - ptr as usize }, 100usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSessionCount) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxRwSessionCount) as usize - ptr as usize }, 108usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulRwSessionCount) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxPinLen) as usize - ptr as usize }, 116usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinPinLen) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMinPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPublicMemory) as usize - ptr as usize }, 124usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePublicMemory) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPrivateMemory) as usize - ptr as usize }, 132usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePrivateMemory) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 140usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 142usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(firmwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).utcTime) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(utcTime) ) ); } pub type CK_SESSION_HANDLE = ::std::os::raw::c_ulong; pub type CK_USER_TYPE = ::std::os::raw::c_ulong; pub type CK_STATE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_SESSION_INFO { pub slotID: CK_SLOT_ID, pub state: CK_STATE, pub flags: CK_FLAGS, pub ulDeviceError: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_SESSION_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SESSION_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SESSION_INFO>(), 16usize, concat!("Size of: ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SESSION_INFO>(), 4usize, concat!("Alignment of ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotID) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(slotID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(state) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulDeviceError) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(ulDeviceError) ) ); } pub type CK_OBJECT_HANDLE = ::std::os::raw::c_ulong; pub type CK_OBJECT_CLASS = ::std::os::raw::c_ulong; pub type CK_HW_FEATURE_TYPE = ::std::os::raw::c_ulong; pub type CK_KEY_TYPE = ::std::os::raw::c_ulong; pub type CK_CERTIFICATE_TYPE = ::std::os::raw::c_ulong; pub type CK_ATTRIBUTE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_ATTRIBUTE { pub type_: CK_ATTRIBUTE_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_ATTRIBUTE() { const UNINIT: ::std::mem::MaybeUninit<_CK_ATTRIBUTE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_ATTRIBUTE>(), 12usize, concat!("Size of: ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( ::std::mem::align_of::<_CK_ATTRIBUTE>(), 4usize, concat!("Alignment of ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(ulValueLen) ) ); } impl Default for _CK_ATTRIBUTE { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_DATE { pub year: [::std::os::raw::c_uchar; 4usize], pub month: [::std::os::raw::c_uchar; 2usize], pub day: [::std::os::raw::c_uchar; 2usize], } #[test] fn bindgen_test_layout__CK_DATE() { const UNINIT: ::std::mem::MaybeUninit<_CK_DATE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_DATE>(), 8usize, concat!("Size of: ", stringify!(_CK_DATE)) ); assert_eq!( ::std::mem::align_of::<_CK_DATE>(), 1usize, concat!("Alignment of ", stringify!(_CK_DATE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).year) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(year) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).month) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(month) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).day) as usize - ptr as usize }, 6usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(day) ) ); } pub type CK_MECHANISM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_MECHANISM { pub mechanism: CK_MECHANISM_TYPE, pub pParameter: *mut ::std::os::raw::c_void, pub ulParameterLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_MECHANISM() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM>(), 12usize, concat!("Size of: ", stringify!(_CK_MECHANISM)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM>(), 4usize, concat!("Alignment of ", stringify!(_CK_MECHANISM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mechanism) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(mechanism) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParameter) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(pParameter) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulParameterLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(ulParameterLen) ) ); } impl Default for _CK_MECHANISM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_MECHANISM_INFO { pub ulMinKeySize: ::std::os::raw::c_ulong, pub ulMaxKeySize: ::std::os::raw::c_ulong, pub flags: CK_FLAGS, } #[test] fn bindgen_test_layout__CK_MECHANISM_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM_INFO>(), 12usize, concat!("Size of: ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM_INFO>(), 4usize, concat!("Alignment of ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinKeySize) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMinKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxKeySize) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMaxKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(flags) ) ); } pub type CK_PARAM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAM { pub type_: CK_PARAM_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAM() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 12usize, concat!("Size of: ", stringify!(CK_OTP_PARAM)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(CK_OTP_PARAM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(ulValueLen) ) ); } impl Default for CK_OTP_PARAM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAMS { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAMS() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, concat!("Size of: ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_PARAMS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_SIGNATURE_INFO { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_SIGNATURE_INFO() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, concat!("Size of: ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_SIGNATURE_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RSA_PKCS_MGF_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_rsa_pkcs_pss_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub sLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_pss_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 12usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).sLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(sLen) ) ); } pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_rsa_pkcs_oaep_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub source: CK_RSA_PKCS_OAEP_SOURCE_TYPE, pub pSourceData: *mut ::std::os::raw::c_void, pub ulSourceDataLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_oaep_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 20usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(source) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSourceData) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(pSourceData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSourceDataLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(ulSourceDataLen) ) ); } impl Default for ck_rsa_pkcs_oaep_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_aes_ctr_params { pub ulCounterBits: ::std::os::raw::c_ulong, pub cb: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout_ck_aes_ctr_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 20usize, concat!("Size of: ", stringify!(ck_aes_ctr_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_aes_ctr_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCounterBits) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(ulCounterBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cb) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(cb) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_gcm_params { pub pIv: *mut ::std::os::raw::c_uchar, pub ulIvLen: ::std::os::raw::c_ulong, pub ulIvBits: ::std::os::raw::c_ulong, pub pAAD: *mut ::std::os::raw::c_uchar, pub ulAADLen: ::std::os::raw::c_ulong, pub ulTagBits: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_gcm_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_gcm_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_gcm_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pIv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pIv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvLen) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvBits) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pAAD) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pAAD) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulAADLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulAADLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTagBits) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulTagBits) ) ); } impl Default for ck_gcm_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type ck_ec_kdf_t = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_ecdh1_derive_params { pub kdf: ck_ec_kdf_t, pub ulSharedDataLen: ::std::os::raw::c_ulong, pub pSharedData: *mut ::std::os::raw::c_uchar, pub ulPublicDataLen: ::std::os::raw::c_ulong, pub pPublicData: *mut ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout_ck_ecdh1_derive_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 20usize, concat!("Size of: ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(kdf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSharedDataLen) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulSharedDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSharedData) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pSharedData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulPublicDataLen) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulPublicDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pPublicData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pPublicData) ) ); } impl Default for ck_ecdh1_derive_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_key_derivation_string_data { pub pData: *mut ::std::os::raw::c_uchar, pub ulLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_key_derivation_string_data() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, concat!("Size of: ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulLen) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(ulLen) ) ); } impl Default for ck_key_derivation_string_data { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_des_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 8usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_des_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_des_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_aes_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 16usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_aes_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_aes_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RV = ::std::os::raw::c_ulong; pub type CK_NOTIFY = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, event: CK_NOTIFICATION, application: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_Initialize = ::std::option::Option CK_RV>; pub type CK_C_Finalize = ::std::option::Option CK_RV>; pub type CK_C_GetInfo = ::std::option::Option CK_RV>; pub type CK_C_GetFunctionList = ::std::option::Option< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, >; pub type CK_C_GetSlotList = ::std::option::Option< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetSlotInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, >; pub type CK_C_GetTokenInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, >; pub type CK_C_WaitForSlotEvent = ::std::option::Option< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_GetMechanismList = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetMechanismInfo = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, >; pub type CK_C_InitToken = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, >; pub type CK_C_InitPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_OpenSession = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, >; pub type CK_C_CloseSession = ::std::option::Option CK_RV>; pub type CK_C_CloseAllSessions = ::std::option::Option CK_RV>; pub type CK_C_GetSessionInfo = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, >; pub type CK_C_GetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Login = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_Logout = ::std::option::Option CK_RV>; pub type CK_C_CreateObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_CopyObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DestroyObject = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_GetObjectSize = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjects = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsFinal = ::std::option::Option CK_RV>; pub type CK_C_EncryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Encrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Decrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestInit = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, >; pub type CK_C_Digest = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestKey = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_DigestFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Sign = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SignRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Verify = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_VerifyRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptDigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptVerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_GenerateKeyPair = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_WrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_UnwrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DeriveKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SeedRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetFunctionStatus = ::std::option::Option CK_RV>; pub type CK_C_CancelFunction = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_FUNCTION_LIST { pub version: _CK_VERSION, pub C_Initialize: CK_C_Initialize, pub C_Finalize: CK_C_Finalize, pub C_GetInfo: CK_C_GetInfo, pub C_GetFunctionList: CK_C_GetFunctionList, pub C_GetSlotList: CK_C_GetSlotList, pub C_GetSlotInfo: CK_C_GetSlotInfo, pub C_GetTokenInfo: CK_C_GetTokenInfo, pub C_GetMechanismList: CK_C_GetMechanismList, pub C_GetMechanismInfo: CK_C_GetMechanismInfo, pub C_InitToken: CK_C_InitToken, pub C_InitPIN: CK_C_InitPIN, pub C_SetPIN: CK_C_SetPIN, pub C_OpenSession: CK_C_OpenSession, pub C_CloseSession: CK_C_CloseSession, pub C_CloseAllSessions: CK_C_CloseAllSessions, pub C_GetSessionInfo: CK_C_GetSessionInfo, pub C_GetOperationState: CK_C_GetOperationState, pub C_SetOperationState: CK_C_SetOperationState, pub C_Login: CK_C_Login, pub C_Logout: CK_C_Logout, pub C_CreateObject: CK_C_CreateObject, pub C_CopyObject: CK_C_CopyObject, pub C_DestroyObject: CK_C_DestroyObject, pub C_GetObjectSize: CK_C_GetObjectSize, pub C_GetAttributeValue: CK_C_GetAttributeValue, pub C_SetAttributeValue: CK_C_SetAttributeValue, pub C_FindObjectsInit: CK_C_FindObjectsInit, pub C_FindObjects: CK_C_FindObjects, pub C_FindObjectsFinal: CK_C_FindObjectsFinal, pub C_EncryptInit: CK_C_EncryptInit, pub C_Encrypt: CK_C_Encrypt, pub C_EncryptUpdate: CK_C_EncryptUpdate, pub C_EncryptFinal: CK_C_EncryptFinal, pub C_DecryptInit: CK_C_DecryptInit, pub C_Decrypt: CK_C_Decrypt, pub C_DecryptUpdate: CK_C_DecryptUpdate, pub C_DecryptFinal: CK_C_DecryptFinal, pub C_DigestInit: CK_C_DigestInit, pub C_Digest: CK_C_Digest, pub C_DigestUpdate: CK_C_DigestUpdate, pub C_DigestKey: CK_C_DigestKey, pub C_DigestFinal: CK_C_DigestFinal, pub C_SignInit: CK_C_SignInit, pub C_Sign: CK_C_Sign, pub C_SignUpdate: CK_C_SignUpdate, pub C_SignFinal: CK_C_SignFinal, pub C_SignRecoverInit: CK_C_SignRecoverInit, pub C_SignRecover: CK_C_SignRecover, pub C_VerifyInit: CK_C_VerifyInit, pub C_Verify: CK_C_Verify, pub C_VerifyUpdate: CK_C_VerifyUpdate, pub C_VerifyFinal: CK_C_VerifyFinal, pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, pub C_VerifyRecover: CK_C_VerifyRecover, pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, pub C_GenerateKey: CK_C_GenerateKey, pub C_GenerateKeyPair: CK_C_GenerateKeyPair, pub C_WrapKey: CK_C_WrapKey, pub C_UnwrapKey: CK_C_UnwrapKey, pub C_DeriveKey: CK_C_DeriveKey, pub C_SeedRandom: CK_C_SeedRandom, pub C_GenerateRandom: CK_C_GenerateRandom, pub C_GetFunctionStatus: CK_C_GetFunctionStatus, pub C_CancelFunction: CK_C_CancelFunction, pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, } #[test] fn bindgen_test_layout__CK_FUNCTION_LIST() { const UNINIT: ::std::mem::MaybeUninit<_CK_FUNCTION_LIST> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_FUNCTION_LIST>(), 276usize, concat!("Size of: ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( ::std::mem::align_of::<_CK_FUNCTION_LIST>(), 4usize, concat!("Alignment of ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(version) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Initialize) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Initialize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Finalize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Finalize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetInfo) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionList) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotList) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotInfo) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetTokenInfo) as usize - ptr as usize }, 28usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetTokenInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismList) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismInfo) as usize - ptr as usize }, 36usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitToken) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitToken) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitPIN) as usize - ptr as usize }, 44usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetPIN) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_OpenSession) as usize - ptr as usize }, 52usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_OpenSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseSession) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseAllSessions) as usize - ptr as usize }, 60usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseAllSessions) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSessionInfo) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSessionInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetOperationState) as usize - ptr as usize }, 68usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetOperationState) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Login) as usize - ptr as usize }, 76usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Login) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Logout) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Logout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CreateObject) as usize - ptr as usize }, 84usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CreateObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CopyObject) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CopyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DestroyObject) as usize - ptr as usize }, 92usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DestroyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetObjectSize) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetObjectSize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetAttributeValue) as usize - ptr as usize }, 100usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetAttributeValue) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsInit) as usize - ptr as usize }, 108usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjects) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjects) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsFinal) as usize - ptr as usize }, 116usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptInit) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Encrypt) as usize - ptr as usize }, 124usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Encrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptUpdate) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptFinal) as usize - ptr as usize }, 132usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptInit) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Decrypt) as usize - ptr as usize }, 140usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Decrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptUpdate) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptFinal) as usize - ptr as usize }, 148usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestInit) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Digest) as usize - ptr as usize }, 156usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Digest) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestUpdate) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestKey) as usize - ptr as usize }, 164usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestFinal) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignInit) as usize - ptr as usize }, 172usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Sign) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Sign) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignUpdate) as usize - ptr as usize }, 180usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignFinal) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecoverInit) as usize - ptr as usize }, 188usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecover) as usize - ptr as usize }, 192usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyInit) as usize - ptr as usize }, 196usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Verify) as usize - ptr as usize }, 200usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Verify) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyUpdate) as usize - ptr as usize }, 204usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyFinal) as usize - ptr as usize }, 208usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecoverInit) as usize - ptr as usize }, 212usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecover) as usize - ptr as usize }, 216usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestEncryptUpdate) as usize - ptr as usize }, 220usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptDigestUpdate) as usize - ptr as usize }, 224usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptDigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignEncryptUpdate) as usize - ptr as usize }, 228usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptVerifyUpdate) as usize - ptr as usize }, 232usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptVerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKey) as usize - ptr as usize }, 236usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKeyPair) as usize - ptr as usize }, 240usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKeyPair) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WrapKey) as usize - ptr as usize }, 244usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_UnwrapKey) as usize - ptr as usize }, 248usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_UnwrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DeriveKey) as usize - ptr as usize }, 252usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DeriveKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SeedRandom) as usize - ptr as usize }, 256usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SeedRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateRandom) as usize - ptr as usize }, 260usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionStatus) as usize - ptr as usize }, 264usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionStatus) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CancelFunction) as usize - ptr as usize }, 268usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CancelFunction) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WaitForSlotEvent) as usize - ptr as usize }, 272usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WaitForSlotEvent) ) ); } pub type CK_CREATEMUTEX = ::std::option::Option CK_RV>; pub type CK_DESTROYMUTEX = ::std::option::Option CK_RV>; pub type CK_LOCKMUTEX = ::std::option::Option CK_RV>; pub type CK_UNLOCKMUTEX = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_C_INITIALIZE_ARGS { pub CreateMutex: CK_CREATEMUTEX, pub DestroyMutex: CK_DESTROYMUTEX, pub LockMutex: CK_LOCKMUTEX, pub UnlockMutex: CK_UNLOCKMUTEX, pub flags: CK_FLAGS, pub pReserved: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout__CK_C_INITIALIZE_ARGS() { const UNINIT: ::std::mem::MaybeUninit<_CK_C_INITIALIZE_ARGS> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_C_INITIALIZE_ARGS>(), 24usize, concat!("Size of: ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( ::std::mem::align_of::<_CK_C_INITIALIZE_ARGS>(), 4usize, concat!("Alignment of ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).CreateMutex) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(CreateMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).DestroyMutex) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(DestroyMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).LockMutex) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(LockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).UnlockMutex) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(UnlockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pReserved) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(pReserved) ) ); } impl Default for _CK_C_INITIALIZE_ARGS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_BYTE = ::std::os::raw::c_uchar; pub type CK_CHAR = ::std::os::raw::c_uchar; pub type CK_UTF8CHAR = ::std::os::raw::c_uchar; pub type CK_BBOOL = ::std::os::raw::c_uchar; pub type CK_ULONG = ::std::os::raw::c_ulong; pub type CK_LONG = ::std::os::raw::c_long; pub type CK_BYTE_PTR = *mut CK_BYTE; pub type CK_CHAR_PTR = *mut CK_CHAR; pub type CK_UTF8CHAR_PTR = *mut CK_UTF8CHAR; pub type CK_ULONG_PTR = *mut CK_ULONG; pub type CK_VOID_PTR = *mut ::std::os::raw::c_void; pub type CK_VOID_PTR_PTR = *mut *mut ::std::os::raw::c_void; pub type CK_VERSION = _CK_VERSION; pub type CK_VERSION_PTR = *mut _CK_VERSION; pub type CK_INFO = _CK_INFO; pub type CK_INFO_PTR = *mut _CK_INFO; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SLOT_INFO = _CK_SLOT_INFO; pub type CK_SLOT_INFO_PTR = *mut _CK_SLOT_INFO; pub type CK_TOKEN_INFO = _CK_TOKEN_INFO; pub type CK_TOKEN_INFO_PTR = *mut _CK_TOKEN_INFO; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; pub type CK_SESSION_INFO = _CK_SESSION_INFO; pub type CK_SESSION_INFO_PTR = *mut _CK_SESSION_INFO; pub type CK_OBJECT_HANDLE_PTR = *mut CK_OBJECT_HANDLE; pub type CK_OBJECT_CLASS_PTR = *mut CK_OBJECT_CLASS; pub type CK_ATTRIBUTE = _CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR = *mut _CK_ATTRIBUTE; pub type CK_DATE = _CK_DATE; pub type CK_DATE_PTR = *mut _CK_DATE; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; pub type CK_MECHANISM = _CK_MECHANISM; pub type CK_MECHANISM_PTR = *mut _CK_MECHANISM; pub type CK_MECHANISM_INFO = _CK_MECHANISM_INFO; pub type CK_MECHANISM_INFO_PTR = *mut _CK_MECHANISM_INFO; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_otp_mechanism_info { _unused: [u8; 0], } pub type CK_OTP_MECHANISM_INFO = ck_otp_mechanism_info; pub type CK_OTP_MECHANISM_INFO_PTR = *mut ck_otp_mechanism_info; pub type CK_FUNCTION_LIST = _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR = *mut _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut _CK_FUNCTION_LIST; pub type CK_C_INITIALIZE_ARGS = _CK_C_INITIALIZE_ARGS; pub type CK_C_INITIALIZE_ARGS_PTR = *mut _CK_C_INITIALIZE_ARGS; pub type CK_RSA_PKCS_PSS_PARAMS = ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_PSS_PARAMS_PTR = *mut ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_OAEP_PARAMS = ck_rsa_pkcs_oaep_params; pub type CK_RSA_PKCS_OAEP_PARAMS_PTR = *mut ck_rsa_pkcs_oaep_params; pub type CK_AES_CTR_PARAMS = ck_aes_ctr_params; pub type CK_AES_CTR_PARAMS_PTR = *mut ck_aes_ctr_params; pub type CK_GCM_PARAMS = ck_gcm_params; pub type CK_GCM_PARAMS_PTR = *mut ck_gcm_params; pub type CK_ECDH1_DERIVE_PARAMS = ck_ecdh1_derive_params; pub type CK_ECDH1_DERIVE_PARAMS_PTR = *mut ck_ecdh1_derive_params; pub type CK_KEY_DERIVATION_STRING_DATA = ck_key_derivation_string_data; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut ck_key_derivation_string_data; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS = ck_des_cbc_encrypt_data_params; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_des_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS = ck_aes_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_aes_cbc_encrypt_data_params; extern crate libloading; pub struct Pkcs11 { __library: ::libloading::Library, pub C_Initialize: Result< unsafe extern "C" fn(init_args: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_Finalize: Result< unsafe extern "C" fn(pReserved: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_GetInfo: Result CK_RV, ::libloading::Error>, pub C_GetFunctionList: Result< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, ::libloading::Error, >, pub C_GetSlotList: Result< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetSlotInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetTokenInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, ::libloading::Error, >, pub C_WaitForSlotEvent: Result< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismList: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismInfo: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, ::libloading::Error, >, pub C_InitToken: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, ::libloading::Error, >, pub C_InitPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_OpenSession: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CloseSession: Result CK_RV, ::libloading::Error>, pub C_CloseAllSessions: Result CK_RV, ::libloading::Error>, pub C_GetSessionInfo: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Login: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_Logout: Result CK_RV, ::libloading::Error>, pub C_CreateObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CopyObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DestroyObject: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_GetObjectSize: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjects: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsFinal: Result CK_RV, ::libloading::Error>, pub C_EncryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Encrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Decrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestInit: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, ::libloading::Error, >, pub C_Digest: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestKey: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_DigestFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Sign: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Verify: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptDigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptVerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKeyPair: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_WrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_UnwrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DeriveKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SeedRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetFunctionStatus: Result CK_RV, ::libloading::Error>, pub C_CancelFunction: Result CK_RV, ::libloading::Error>, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result where P: AsRef<::std::ffi::OsStr>, { let library = ::libloading::Library::new(path)?; Self::from_library(library) } pub unsafe fn from_library(library: L) -> Result where L: Into<::libloading::Library>, { let __library = library.into(); let C_Initialize = __library.get(b"C_Initialize\0").map(|sym| *sym); let C_Finalize = __library.get(b"C_Finalize\0").map(|sym| *sym); let C_GetInfo = __library.get(b"C_GetInfo\0").map(|sym| *sym); let C_GetFunctionList = __library.get(b"C_GetFunctionList\0").map(|sym| *sym); let C_GetSlotList = __library.get(b"C_GetSlotList\0").map(|sym| *sym); let C_GetSlotInfo = __library.get(b"C_GetSlotInfo\0").map(|sym| *sym); let C_GetTokenInfo = __library.get(b"C_GetTokenInfo\0").map(|sym| *sym); let C_WaitForSlotEvent = __library.get(b"C_WaitForSlotEvent\0").map(|sym| *sym); let C_GetMechanismList = __library.get(b"C_GetMechanismList\0").map(|sym| *sym); let C_GetMechanismInfo = __library.get(b"C_GetMechanismInfo\0").map(|sym| *sym); let C_InitToken = __library.get(b"C_InitToken\0").map(|sym| *sym); let C_InitPIN = __library.get(b"C_InitPIN\0").map(|sym| *sym); let C_SetPIN = __library.get(b"C_SetPIN\0").map(|sym| *sym); let C_OpenSession = __library.get(b"C_OpenSession\0").map(|sym| *sym); let C_CloseSession = __library.get(b"C_CloseSession\0").map(|sym| *sym); let C_CloseAllSessions = __library.get(b"C_CloseAllSessions\0").map(|sym| *sym); let C_GetSessionInfo = __library.get(b"C_GetSessionInfo\0").map(|sym| *sym); let C_GetOperationState = __library.get(b"C_GetOperationState\0").map(|sym| *sym); let C_SetOperationState = __library.get(b"C_SetOperationState\0").map(|sym| *sym); let C_Login = __library.get(b"C_Login\0").map(|sym| *sym); let C_Logout = __library.get(b"C_Logout\0").map(|sym| *sym); let C_CreateObject = __library.get(b"C_CreateObject\0").map(|sym| *sym); let C_CopyObject = __library.get(b"C_CopyObject\0").map(|sym| *sym); let C_DestroyObject = __library.get(b"C_DestroyObject\0").map(|sym| *sym); let C_GetObjectSize = __library.get(b"C_GetObjectSize\0").map(|sym| *sym); let C_GetAttributeValue = __library.get(b"C_GetAttributeValue\0").map(|sym| *sym); let C_SetAttributeValue = __library.get(b"C_SetAttributeValue\0").map(|sym| *sym); let C_FindObjectsInit = __library.get(b"C_FindObjectsInit\0").map(|sym| *sym); let C_FindObjects = __library.get(b"C_FindObjects\0").map(|sym| *sym); let C_FindObjectsFinal = __library.get(b"C_FindObjectsFinal\0").map(|sym| *sym); let C_EncryptInit = __library.get(b"C_EncryptInit\0").map(|sym| *sym); let C_Encrypt = __library.get(b"C_Encrypt\0").map(|sym| *sym); let C_EncryptUpdate = __library.get(b"C_EncryptUpdate\0").map(|sym| *sym); let C_EncryptFinal = __library.get(b"C_EncryptFinal\0").map(|sym| *sym); let C_DecryptInit = __library.get(b"C_DecryptInit\0").map(|sym| *sym); let C_Decrypt = __library.get(b"C_Decrypt\0").map(|sym| *sym); let C_DecryptUpdate = __library.get(b"C_DecryptUpdate\0").map(|sym| *sym); let C_DecryptFinal = __library.get(b"C_DecryptFinal\0").map(|sym| *sym); let C_DigestInit = __library.get(b"C_DigestInit\0").map(|sym| *sym); let C_Digest = __library.get(b"C_Digest\0").map(|sym| *sym); let C_DigestUpdate = __library.get(b"C_DigestUpdate\0").map(|sym| *sym); let C_DigestKey = __library.get(b"C_DigestKey\0").map(|sym| *sym); let C_DigestFinal = __library.get(b"C_DigestFinal\0").map(|sym| *sym); let C_SignInit = __library.get(b"C_SignInit\0").map(|sym| *sym); let C_Sign = __library.get(b"C_Sign\0").map(|sym| *sym); let C_SignUpdate = __library.get(b"C_SignUpdate\0").map(|sym| *sym); let C_SignFinal = __library.get(b"C_SignFinal\0").map(|sym| *sym); let C_SignRecoverInit = __library.get(b"C_SignRecoverInit\0").map(|sym| *sym); let C_SignRecover = __library.get(b"C_SignRecover\0").map(|sym| *sym); let C_VerifyInit = __library.get(b"C_VerifyInit\0").map(|sym| *sym); let C_Verify = __library.get(b"C_Verify\0").map(|sym| *sym); let C_VerifyUpdate = __library.get(b"C_VerifyUpdate\0").map(|sym| *sym); let C_VerifyFinal = __library.get(b"C_VerifyFinal\0").map(|sym| *sym); let C_VerifyRecoverInit = __library.get(b"C_VerifyRecoverInit\0").map(|sym| *sym); let C_VerifyRecover = __library.get(b"C_VerifyRecover\0").map(|sym| *sym); let C_DigestEncryptUpdate = __library.get(b"C_DigestEncryptUpdate\0").map(|sym| *sym); let C_DecryptDigestUpdate = __library.get(b"C_DecryptDigestUpdate\0").map(|sym| *sym); let C_SignEncryptUpdate = __library.get(b"C_SignEncryptUpdate\0").map(|sym| *sym); let C_DecryptVerifyUpdate = __library.get(b"C_DecryptVerifyUpdate\0").map(|sym| *sym); let C_GenerateKey = __library.get(b"C_GenerateKey\0").map(|sym| *sym); let C_GenerateKeyPair = __library.get(b"C_GenerateKeyPair\0").map(|sym| *sym); let C_WrapKey = __library.get(b"C_WrapKey\0").map(|sym| *sym); let C_UnwrapKey = __library.get(b"C_UnwrapKey\0").map(|sym| *sym); let C_DeriveKey = __library.get(b"C_DeriveKey\0").map(|sym| *sym); let C_SeedRandom = __library.get(b"C_SeedRandom\0").map(|sym| *sym); let C_GenerateRandom = __library.get(b"C_GenerateRandom\0").map(|sym| *sym); let C_GetFunctionStatus = __library.get(b"C_GetFunctionStatus\0").map(|sym| *sym); let C_CancelFunction = __library.get(b"C_CancelFunction\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, C_Finalize, C_GetInfo, C_GetFunctionList, C_GetSlotList, C_GetSlotInfo, C_GetTokenInfo, C_WaitForSlotEvent, C_GetMechanismList, C_GetMechanismInfo, C_InitToken, C_InitPIN, C_SetPIN, C_OpenSession, C_CloseSession, C_CloseAllSessions, C_GetSessionInfo, C_GetOperationState, C_SetOperationState, C_Login, C_Logout, C_CreateObject, C_CopyObject, C_DestroyObject, C_GetObjectSize, C_GetAttributeValue, C_SetAttributeValue, C_FindObjectsInit, C_FindObjects, C_FindObjectsFinal, C_EncryptInit, C_Encrypt, C_EncryptUpdate, C_EncryptFinal, C_DecryptInit, C_Decrypt, C_DecryptUpdate, C_DecryptFinal, C_DigestInit, C_Digest, C_DigestUpdate, C_DigestKey, C_DigestFinal, C_SignInit, C_Sign, C_SignUpdate, C_SignFinal, C_SignRecoverInit, C_SignRecover, C_VerifyInit, C_Verify, C_VerifyUpdate, C_VerifyFinal, C_VerifyRecoverInit, C_VerifyRecover, C_DigestEncryptUpdate, C_DecryptDigestUpdate, C_SignEncryptUpdate, C_DecryptVerifyUpdate, C_GenerateKey, C_GenerateKeyPair, C_WrapKey, C_UnwrapKey, C_DeriveKey, C_SeedRandom, C_GenerateRandom, C_GetFunctionStatus, C_CancelFunction, }) } pub unsafe fn C_Initialize(&self, init_args: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Initialize .as_ref() .expect("Expected function, got error."))(init_args) } pub unsafe fn C_Finalize(&self, pReserved: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Finalize .as_ref() .expect("Expected function, got error."))(pReserved) } pub unsafe fn C_GetInfo(&self, info: *mut _CK_INFO) -> CK_RV { (self .C_GetInfo .as_ref() .expect("Expected function, got error."))(info) } pub unsafe fn C_GetFunctionList(&self, function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV { (self .C_GetFunctionList .as_ref() .expect("Expected function, got error."))(function_list) } pub unsafe fn C_GetSlotList( &self, token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetSlotList .as_ref() .expect("Expected function, got error."))(token_present, slot_list, ulCount) } pub unsafe fn C_GetSlotInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV { (self .C_GetSlotInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_GetTokenInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV { (self .C_GetTokenInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_WaitForSlotEvent( &self, flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV { (self .C_WaitForSlotEvent .as_ref() .expect("Expected function, got error."))(flags, slot, pReserved) } pub unsafe fn C_GetMechanismList( &self, slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetMechanismList .as_ref() .expect("Expected function, got error."))(slotID, mechanism_list, ulCount) } pub unsafe fn C_GetMechanismInfo( &self, slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV { (self .C_GetMechanismInfo .as_ref() .expect("Expected function, got error."))(slotID, type_, info) } pub unsafe fn C_InitToken( &self, slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV { (self .C_InitToken .as_ref() .expect("Expected function, got error."))(slotID, pin, pin_len, label) } pub unsafe fn C_InitPIN( &self, session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_InitPIN .as_ref() .expect("Expected function, got error."))(session, pin, pin_len) } pub unsafe fn C_SetPIN( &self, session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetPIN .as_ref() .expect("Expected function, got error."))( session, old_pin, old_len, new_pin, new_len ) } pub unsafe fn C_OpenSession( &self, slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV { (self .C_OpenSession .as_ref() .expect("Expected function, got error."))( slotID, flags, application, notify, session ) } pub unsafe fn C_CloseSession(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CloseSession .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CloseAllSessions(&self, slotID: CK_SLOT_ID) -> CK_RV { (self .C_CloseAllSessions .as_ref() .expect("Expected function, got error."))(slotID) } pub unsafe fn C_GetSessionInfo( &self, session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO, ) -> CK_RV { (self .C_GetSessionInfo .as_ref() .expect("Expected function, got error."))(session, info) } pub unsafe fn C_GetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len ) } pub unsafe fn C_SetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len, encryption_key, authentiation_key, ) } pub unsafe fn C_Login( &self, session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Login .as_ref() .expect("Expected function, got error."))(session, user_type, pin, pin_len) } pub unsafe fn C_Logout(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_Logout .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CreateObject( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CreateObject .as_ref() .expect("Expected function, got error."))(session, templ, ulCount, object) } pub unsafe fn C_CopyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CopyObject .as_ref() .expect("Expected function, got error."))( session, object, templ, ulCount, new_object ) } pub unsafe fn C_DestroyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DestroyObject .as_ref() .expect("Expected function, got error."))(session, object) } pub unsafe fn C_GetObjectSize( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetObjectSize .as_ref() .expect("Expected function, got error."))(session, object, size) } pub unsafe fn C_GetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_SetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_FindObjectsInit( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjectsInit .as_ref() .expect("Expected function, got error."))(session, templ, ulCount) } pub unsafe fn C_FindObjects( &self, session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjects .as_ref() .expect("Expected function, got error."))( session, object, max_object_count, object_count, ) } pub unsafe fn C_FindObjectsFinal(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_FindObjectsFinal .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_EncryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_EncryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Encrypt( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Encrypt .as_ref() .expect("Expected function, got error."))( session, data, data_len, encrypted_data, encrypted_data_len, ) } pub unsafe fn C_EncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_EncryptFinal( &self, session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptFinal .as_ref() .expect("Expected function, got error."))( session, last_encrypted_part, last_encrypted_part_len, ) } pub unsafe fn C_DecryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DecryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Decrypt( &self, session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Decrypt .as_ref() .expect("Expected function, got error."))( session, encrypted_data, encrypted_data_len, data, data_len, ) } pub unsafe fn C_DecryptUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_DecryptFinal( &self, session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptFinal .as_ref() .expect("Expected function, got error."))(session, last_part, last_part_len) } pub unsafe fn C_DigestInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, ) -> CK_RV { (self .C_DigestInit .as_ref() .expect("Expected function, got error."))(session, mechanism) } pub unsafe fn C_Digest( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Digest .as_ref() .expect("Expected function, got error."))( session, data, data_len, digest, digest_len ) } pub unsafe fn C_DigestUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_DigestKey(&self, session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV { (self .C_DigestKey .as_ref() .expect("Expected function, got error."))(session, key) } pub unsafe fn C_DigestFinal( &self, session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestFinal .as_ref() .expect("Expected function, got error."))(session, digest, digest_len) } pub unsafe fn C_SignInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Sign( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self.C_Sign.as_ref().expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_SignUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_SignFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_SignRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_SignRecover( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignRecover .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Verify( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Verify .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_VerifyFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_VerifyRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_VerifyRecover( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyRecover .as_ref() .expect("Expected function, got error."))( session, signature, signature_len, data, data_len, ) } pub unsafe fn C_DigestEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptDigestUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptDigestUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_SignEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptVerifyUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptVerifyUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_GenerateKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKey .as_ref() .expect("Expected function, got error."))( session, mechanism, templ, ulCount, key ) } pub unsafe fn C_GenerateKeyPair( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKeyPair .as_ref() .expect("Expected function, got error."))( session, mechanism, public_key_template, public_key_attribute_count, private_key_template, private_key_attribute_count, public_key, private_key, ) } pub unsafe fn C_WrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_WrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, wrapping_key, key, wrapped_key, wrapped_key_len, ) } pub unsafe fn C_UnwrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_UnwrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, unwrapping_key, wrapped_key, wrapped_key_len, templ, attribute_count, key, ) } pub unsafe fn C_DeriveKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DeriveKey .as_ref() .expect("Expected function, got error."))( session, mechanism, base_key, templ, attribute_count, key, ) } pub unsafe fn C_SeedRandom( &self, session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SeedRandom .as_ref() .expect("Expected function, got error."))(session, seed, seed_len) } pub unsafe fn C_GenerateRandom( &self, session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GenerateRandom .as_ref() .expect("Expected function, got error."))(session, random_data, random_len) } pub unsafe fn C_GetFunctionStatus(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_GetFunctionStatus .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CancelFunction(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CancelFunction .as_ref() .expect("Expected function, got error."))(session) } } cryptoki-sys-0.1.7/src/bindings/generic.rs000064400000000000000000003550761046102023000166770ustar 00000000000000/* automatically generated by rust-bindgen 0.66.1 */ pub const PKCS11_H: u32 = 1; pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 40; pub const P11_KIT_CRYPTOKI_VERSION_REVISION: u32 = 0; pub const CRYPTOKI_COMPAT: u32 = 1; pub const CKF_RNG: CK_FLAGS = 1; pub const CKF_WRITE_PROTECTED: CK_FLAGS = 2; pub const CKF_LOGIN_REQUIRED: CK_FLAGS = 4; pub const CKF_USER_PIN_INITIALIZED: CK_FLAGS = 8; pub const CKF_RESTORE_KEY_NOT_NEEDED: CK_FLAGS = 32; pub const CKF_CLOCK_ON_TOKEN: CK_FLAGS = 64; pub const CKF_PROTECTED_AUTHENTICATION_PATH: CK_FLAGS = 256; pub const CKF_DUAL_CRYPTO_OPERATIONS: CK_FLAGS = 512; pub const CKF_TOKEN_INITIALIZED: CK_FLAGS = 1024; pub const CKF_SECONDARY_AUTHENTICATION: CK_FLAGS = 2048; pub const CKF_USER_PIN_COUNT_LOW: CK_FLAGS = 65536; pub const CKF_USER_PIN_FINAL_TRY: CK_FLAGS = 131072; pub const CKF_USER_PIN_LOCKED: CK_FLAGS = 262144; pub const CKF_USER_PIN_TO_BE_CHANGED: CK_FLAGS = 524288; pub const CKF_SO_PIN_COUNT_LOW: CK_FLAGS = 1048576; pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; pub const CKO_DATA: CK_OBJECT_CLASS = 0; pub const CKO_CERTIFICATE: CK_OBJECT_CLASS = 1; pub const CKO_PUBLIC_KEY: CK_OBJECT_CLASS = 2; pub const CKO_PRIVATE_KEY: CK_OBJECT_CLASS = 3; pub const CKO_SECRET_KEY: CK_OBJECT_CLASS = 4; pub const CKO_HW_FEATURE: CK_OBJECT_CLASS = 5; pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_EC: CK_KEY_TYPE = 3; pub const CKK_X9_42_DH: CK_KEY_TYPE = 4; pub const CKK_KEA: CK_KEY_TYPE = 5; pub const CKK_GENERIC_SECRET: CK_KEY_TYPE = 16; pub const CKK_RC2: CK_KEY_TYPE = 17; pub const CKK_RC4: CK_KEY_TYPE = 18; pub const CKK_DES: CK_KEY_TYPE = 19; pub const CKK_DES2: CK_KEY_TYPE = 20; pub const CKK_DES3: CK_KEY_TYPE = 21; pub const CKK_CAST: CK_KEY_TYPE = 22; pub const CKK_CAST3: CK_KEY_TYPE = 23; pub const CKK_CAST128: CK_KEY_TYPE = 24; pub const CKK_RC5: CK_KEY_TYPE = 25; pub const CKK_IDEA: CK_KEY_TYPE = 26; pub const CKK_SKIPJACK: CK_KEY_TYPE = 27; pub const CKK_BATON: CK_KEY_TYPE = 28; pub const CKK_JUNIPER: CK_KEY_TYPE = 29; pub const CKK_CDMF: CK_KEY_TYPE = 30; pub const CKK_AES: CK_KEY_TYPE = 31; pub const CKK_BLOWFISH: CK_KEY_TYPE = 32; pub const CKK_TWOFISH: CK_KEY_TYPE = 33; pub const CKK_SECURID: CK_KEY_TYPE = 34; pub const CKK_HOTP: CK_KEY_TYPE = 35; pub const CKK_ACTI: CK_KEY_TYPE = 36; pub const CKK_CAMELLIA: CK_KEY_TYPE = 37; pub const CKK_ARIA: CK_KEY_TYPE = 38; pub const CKK_MD5_HMAC: CK_KEY_TYPE = 39; pub const CKK_SHA_1_HMAC: CK_KEY_TYPE = 40; pub const CKK_RIPEMD128_HMAC: CK_KEY_TYPE = 41; pub const CKK_RIPEMD160_HMAC: CK_KEY_TYPE = 42; pub const CKK_SHA256_HMAC: CK_KEY_TYPE = 43; pub const CKK_SHA384_HMAC: CK_KEY_TYPE = 44; pub const CKK_SHA512_HMAC: CK_KEY_TYPE = 45; pub const CKK_SHA224_HMAC: CK_KEY_TYPE = 46; pub const CKK_SEED: CK_KEY_TYPE = 47; pub const CKK_GOSTR3410: CK_KEY_TYPE = 48; pub const CKK_GOSTR3411: CK_KEY_TYPE = 49; pub const CKK_GOST28147: CK_KEY_TYPE = 50; pub const CKK_EC_EDWARDS: CK_KEY_TYPE = 64; pub const CKC_X_509: CK_CERTIFICATE_TYPE = 0; pub const CKC_X_509_ATTR_CERT: CK_CERTIFICATE_TYPE = 1; pub const CKC_WTLS: CK_CERTIFICATE_TYPE = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; pub const CKA_TOKEN: CK_ATTRIBUTE_TYPE = 1; pub const CKA_PRIVATE: CK_ATTRIBUTE_TYPE = 2; pub const CKA_LABEL: CK_ATTRIBUTE_TYPE = 3; pub const CKA_APPLICATION: CK_ATTRIBUTE_TYPE = 16; pub const CKA_VALUE: CK_ATTRIBUTE_TYPE = 17; pub const CKA_OBJECT_ID: CK_ATTRIBUTE_TYPE = 18; pub const CKA_CERTIFICATE_TYPE: CK_ATTRIBUTE_TYPE = 128; pub const CKA_ISSUER: CK_ATTRIBUTE_TYPE = 129; pub const CKA_SERIAL_NUMBER: CK_ATTRIBUTE_TYPE = 130; pub const CKA_AC_ISSUER: CK_ATTRIBUTE_TYPE = 131; pub const CKA_OWNER: CK_ATTRIBUTE_TYPE = 132; pub const CKA_ATTR_TYPES: CK_ATTRIBUTE_TYPE = 133; pub const CKA_TRUSTED: CK_ATTRIBUTE_TYPE = 134; pub const CKA_CERTIFICATE_CATEGORY: CK_ATTRIBUTE_TYPE = 135; pub const CKA_JAVA_MIDP_SECURITY_DOMAIN: CK_ATTRIBUTE_TYPE = 136; pub const CKA_URL: CK_ATTRIBUTE_TYPE = 137; pub const CKA_HASH_OF_SUBJECT_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 138; pub const CKA_HASH_OF_ISSUER_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 139; pub const CKA_NAME_HASH_ALGORITHM: CK_ATTRIBUTE_TYPE = 140; pub const CKA_CHECK_VALUE: CK_ATTRIBUTE_TYPE = 144; pub const CKA_KEY_TYPE: CK_ATTRIBUTE_TYPE = 256; pub const CKA_SUBJECT: CK_ATTRIBUTE_TYPE = 257; pub const CKA_ID: CK_ATTRIBUTE_TYPE = 258; pub const CKA_SENSITIVE: CK_ATTRIBUTE_TYPE = 259; pub const CKA_ENCRYPT: CK_ATTRIBUTE_TYPE = 260; pub const CKA_DECRYPT: CK_ATTRIBUTE_TYPE = 261; pub const CKA_WRAP: CK_ATTRIBUTE_TYPE = 262; pub const CKA_UNWRAP: CK_ATTRIBUTE_TYPE = 263; pub const CKA_SIGN: CK_ATTRIBUTE_TYPE = 264; pub const CKA_SIGN_RECOVER: CK_ATTRIBUTE_TYPE = 265; pub const CKA_VERIFY: CK_ATTRIBUTE_TYPE = 266; pub const CKA_VERIFY_RECOVER: CK_ATTRIBUTE_TYPE = 267; pub const CKA_DERIVE: CK_ATTRIBUTE_TYPE = 268; pub const CKA_START_DATE: CK_ATTRIBUTE_TYPE = 272; pub const CKA_END_DATE: CK_ATTRIBUTE_TYPE = 273; pub const CKA_MODULUS: CK_ATTRIBUTE_TYPE = 288; pub const CKA_MODULUS_BITS: CK_ATTRIBUTE_TYPE = 289; pub const CKA_PUBLIC_EXPONENT: CK_ATTRIBUTE_TYPE = 290; pub const CKA_PRIVATE_EXPONENT: CK_ATTRIBUTE_TYPE = 291; pub const CKA_PRIME_1: CK_ATTRIBUTE_TYPE = 292; pub const CKA_PRIME_2: CK_ATTRIBUTE_TYPE = 293; pub const CKA_EXPONENT_1: CK_ATTRIBUTE_TYPE = 294; pub const CKA_EXPONENT_2: CK_ATTRIBUTE_TYPE = 295; pub const CKA_COEFFICIENT: CK_ATTRIBUTE_TYPE = 296; pub const CKA_PUBLIC_KEY_INFO: CK_ATTRIBUTE_TYPE = 297; pub const CKA_PRIME: CK_ATTRIBUTE_TYPE = 304; pub const CKA_SUBPRIME: CK_ATTRIBUTE_TYPE = 305; pub const CKA_BASE: CK_ATTRIBUTE_TYPE = 306; pub const CKA_PRIME_BITS: CK_ATTRIBUTE_TYPE = 307; pub const CKA_SUB_PRIME_BITS: CK_ATTRIBUTE_TYPE = 308; pub const CKA_VALUE_BITS: CK_ATTRIBUTE_TYPE = 352; pub const CKA_VALUE_LEN: CK_ATTRIBUTE_TYPE = 353; pub const CKA_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 354; pub const CKA_LOCAL: CK_ATTRIBUTE_TYPE = 355; pub const CKA_NEVER_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 356; pub const CKA_ALWAYS_SENSITIVE: CK_ATTRIBUTE_TYPE = 357; pub const CKA_KEY_GEN_MECHANISM: CK_ATTRIBUTE_TYPE = 358; pub const CKA_MODIFIABLE: CK_ATTRIBUTE_TYPE = 368; pub const CKA_COPYABLE: CK_ATTRIBUTE_TYPE = 369; pub const CKA_DESTROYABLE: CK_ATTRIBUTE_TYPE = 370; pub const CKA_ECDSA_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_POINT: CK_ATTRIBUTE_TYPE = 385; pub const CKA_SECONDARY_AUTH: CK_ATTRIBUTE_TYPE = 512; pub const CKA_AUTH_PIN_FLAGS: CK_ATTRIBUTE_TYPE = 513; pub const CKA_ALWAYS_AUTHENTICATE: CK_ATTRIBUTE_TYPE = 514; pub const CKA_WRAP_WITH_TRUSTED: CK_ATTRIBUTE_TYPE = 528; pub const CKA_OTP_FORMAT: CK_ATTRIBUTE_TYPE = 544; pub const CKA_OTP_LENGTH: CK_ATTRIBUTE_TYPE = 545; pub const CKA_OTP_TIME_INTERVAL: CK_ATTRIBUTE_TYPE = 546; pub const CKA_OTP_USER_FRIENDLY_MODE: CK_ATTRIBUTE_TYPE = 547; pub const CKA_OTP_CHALLENGE_REQUIREMENT: CK_ATTRIBUTE_TYPE = 548; pub const CKA_OTP_TIME_REQUIREMENT: CK_ATTRIBUTE_TYPE = 549; pub const CKA_OTP_COUNTER_REQUIREMENT: CK_ATTRIBUTE_TYPE = 550; pub const CKA_OTP_PIN_REQUIREMENT: CK_ATTRIBUTE_TYPE = 551; pub const CKA_OTP_USER_IDENTIFIER: CK_ATTRIBUTE_TYPE = 554; pub const CKA_OTP_SERVICE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 555; pub const CKA_OTP_SERVICE_LOGO: CK_ATTRIBUTE_TYPE = 556; pub const CKA_OTP_SERVICE_LOGO_TYPE: CK_ATTRIBUTE_TYPE = 557; pub const CKA_OTP_COUNTER: CK_ATTRIBUTE_TYPE = 558; pub const CKA_OTP_TIME: CK_ATTRIBUTE_TYPE = 559; pub const CKA_GOSTR3410_PARAMS: CK_ATTRIBUTE_TYPE = 592; pub const CKA_GOSTR3411_PARAMS: CK_ATTRIBUTE_TYPE = 593; pub const CKA_GOST28147_PARAMS: CK_ATTRIBUTE_TYPE = 594; pub const CKA_HW_FEATURE_TYPE: CK_ATTRIBUTE_TYPE = 768; pub const CKA_RESET_ON_INIT: CK_ATTRIBUTE_TYPE = 769; pub const CKA_HAS_RESET: CK_ATTRIBUTE_TYPE = 770; pub const CKA_PIXEL_X: CK_ATTRIBUTE_TYPE = 1024; pub const CKA_PIXEL_Y: CK_ATTRIBUTE_TYPE = 1025; pub const CKA_RESOLUTION: CK_ATTRIBUTE_TYPE = 1026; pub const CKA_CHAR_ROWS: CK_ATTRIBUTE_TYPE = 1027; pub const CKA_CHAR_COLUMNS: CK_ATTRIBUTE_TYPE = 1028; pub const CKA_COLOR: CK_ATTRIBUTE_TYPE = 1029; pub const CKA_BITS_PER_PIXEL: CK_ATTRIBUTE_TYPE = 1030; pub const CKA_CHAR_SETS: CK_ATTRIBUTE_TYPE = 1152; pub const CKA_ENCODING_METHODS: CK_ATTRIBUTE_TYPE = 1153; pub const CKA_MIME_TYPES: CK_ATTRIBUTE_TYPE = 1154; pub const CKA_MECHANISM_TYPE: CK_ATTRIBUTE_TYPE = 1280; pub const CKA_REQUIRED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1281; pub const CKA_DEFAULT_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1282; pub const CKA_SUPPORTED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1283; pub const CKM_RSA_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 0; pub const CKM_RSA_PKCS: CK_MECHANISM_TYPE = 1; pub const CKM_RSA_9796: CK_MECHANISM_TYPE = 2; pub const CKM_RSA_X_509: CK_MECHANISM_TYPE = 3; pub const CKM_MD2_RSA_PKCS: CK_MECHANISM_TYPE = 4; pub const CKM_MD5_RSA_PKCS: CK_MECHANISM_TYPE = 5; pub const CKM_SHA1_RSA_PKCS: CK_MECHANISM_TYPE = 6; pub const CKM_RIPEMD128_RSA_PKCS: CK_MECHANISM_TYPE = 7; pub const CKM_RIPEMD160_RSA_PKCS: CK_MECHANISM_TYPE = 8; pub const CKM_RSA_PKCS_OAEP: CK_MECHANISM_TYPE = 9; pub const CKM_RSA_X9_31_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 10; pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; pub const CKM_SHA256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 67; pub const CKM_SHA384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 68; pub const CKM_SHA512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 69; pub const CKM_SHA512_224: CK_MECHANISM_TYPE = 72; pub const CKM_SHA512_224_HMAC: CK_MECHANISM_TYPE = 73; pub const CKM_SHA512_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 74; pub const CKM_SHA512_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 75; pub const CKM_SHA512_256: CK_MECHANISM_TYPE = 76; pub const CKM_SHA512_256_HMAC: CK_MECHANISM_TYPE = 77; pub const CKM_SHA512_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 78; pub const CKM_SHA512_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 79; pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; pub const CKM_RC2_KEY_GEN: CK_MECHANISM_TYPE = 256; pub const CKM_RC2_ECB: CK_MECHANISM_TYPE = 257; pub const CKM_RC2_CBC: CK_MECHANISM_TYPE = 258; pub const CKM_RC2_MAC: CK_MECHANISM_TYPE = 259; pub const CKM_RC2_MAC_GENERAL: CK_MECHANISM_TYPE = 260; pub const CKM_RC2_CBC_PAD: CK_MECHANISM_TYPE = 261; pub const CKM_RC4_KEY_GEN: CK_MECHANISM_TYPE = 272; pub const CKM_RC4: CK_MECHANISM_TYPE = 273; pub const CKM_DES_KEY_GEN: CK_MECHANISM_TYPE = 288; pub const CKM_DES_ECB: CK_MECHANISM_TYPE = 289; pub const CKM_DES_CBC: CK_MECHANISM_TYPE = 290; pub const CKM_DES_MAC: CK_MECHANISM_TYPE = 291; pub const CKM_DES_MAC_GENERAL: CK_MECHANISM_TYPE = 292; pub const CKM_DES_CBC_PAD: CK_MECHANISM_TYPE = 293; pub const CKM_DES2_KEY_GEN: CK_MECHANISM_TYPE = 304; pub const CKM_DES3_KEY_GEN: CK_MECHANISM_TYPE = 305; pub const CKM_DES3_ECB: CK_MECHANISM_TYPE = 306; pub const CKM_DES3_CBC: CK_MECHANISM_TYPE = 307; pub const CKM_DES3_MAC: CK_MECHANISM_TYPE = 308; pub const CKM_DES3_MAC_GENERAL: CK_MECHANISM_TYPE = 309; pub const CKM_DES3_CBC_PAD: CK_MECHANISM_TYPE = 310; pub const CKM_DES3_CMAC_GENERAL: CK_MECHANISM_TYPE = 311; pub const CKM_DES3_CMAC: CK_MECHANISM_TYPE = 312; pub const CKM_CDMF_KEY_GEN: CK_MECHANISM_TYPE = 320; pub const CKM_CDMF_ECB: CK_MECHANISM_TYPE = 321; pub const CKM_CDMF_CBC: CK_MECHANISM_TYPE = 322; pub const CKM_CDMF_MAC: CK_MECHANISM_TYPE = 323; pub const CKM_CDMF_MAC_GENERAL: CK_MECHANISM_TYPE = 324; pub const CKM_CDMF_CBC_PAD: CK_MECHANISM_TYPE = 325; pub const CKM_DES_OFB64: CK_MECHANISM_TYPE = 336; pub const CKM_DES_OFB8: CK_MECHANISM_TYPE = 337; pub const CKM_DES_CFB64: CK_MECHANISM_TYPE = 338; pub const CKM_DES_CFB8: CK_MECHANISM_TYPE = 339; pub const CKM_MD2: CK_MECHANISM_TYPE = 512; pub const CKM_MD2_HMAC: CK_MECHANISM_TYPE = 513; pub const CKM_MD2_HMAC_GENERAL: CK_MECHANISM_TYPE = 514; pub const CKM_MD5: CK_MECHANISM_TYPE = 528; pub const CKM_MD5_HMAC: CK_MECHANISM_TYPE = 529; pub const CKM_MD5_HMAC_GENERAL: CK_MECHANISM_TYPE = 530; pub const CKM_SHA_1: CK_MECHANISM_TYPE = 544; pub const CKM_SHA_1_HMAC: CK_MECHANISM_TYPE = 545; pub const CKM_SHA_1_HMAC_GENERAL: CK_MECHANISM_TYPE = 546; pub const CKM_RIPEMD128: CK_MECHANISM_TYPE = 560; pub const CKM_RIPEMD128_HMAC: CK_MECHANISM_TYPE = 561; pub const CKM_RIPEMD128_HMAC_GENERAL: CK_MECHANISM_TYPE = 562; pub const CKM_RIPEMD160: CK_MECHANISM_TYPE = 576; pub const CKM_RIPEMD160_HMAC: CK_MECHANISM_TYPE = 577; pub const CKM_RIPEMD160_HMAC_GENERAL: CK_MECHANISM_TYPE = 578; pub const CKM_SHA256: CK_MECHANISM_TYPE = 592; pub const CKM_SHA256_HMAC: CK_MECHANISM_TYPE = 593; pub const CKM_SHA256_HMAC_GENERAL: CK_MECHANISM_TYPE = 594; pub const CKM_SHA384: CK_MECHANISM_TYPE = 608; pub const CKM_SHA384_HMAC: CK_MECHANISM_TYPE = 609; pub const CKM_SHA384_HMAC_GENERAL: CK_MECHANISM_TYPE = 610; pub const CKM_SHA512: CK_MECHANISM_TYPE = 624; pub const CKM_SHA512_HMAC: CK_MECHANISM_TYPE = 625; pub const CKM_SHA512_HMAC_GENERAL: CK_MECHANISM_TYPE = 626; pub const CKM_SECURID_KEY_GEN: CK_MECHANISM_TYPE = 640; pub const CKM_SECURID: CK_MECHANISM_TYPE = 642; pub const CKM_HOTP_KEY_GEN: CK_MECHANISM_TYPE = 656; pub const CKM_HOTP: CK_MECHANISM_TYPE = 657; pub const CKM_ACTI: CK_MECHANISM_TYPE = 672; pub const CKM_ACTI_KEY_GEN: CK_MECHANISM_TYPE = 673; pub const CKM_CAST_KEY_GEN: CK_MECHANISM_TYPE = 768; pub const CKM_CAST_ECB: CK_MECHANISM_TYPE = 769; pub const CKM_CAST_CBC: CK_MECHANISM_TYPE = 770; pub const CKM_CAST_MAC: CK_MECHANISM_TYPE = 771; pub const CKM_CAST_MAC_GENERAL: CK_MECHANISM_TYPE = 772; pub const CKM_CAST_CBC_PAD: CK_MECHANISM_TYPE = 773; pub const CKM_CAST3_KEY_GEN: CK_MECHANISM_TYPE = 784; pub const CKM_CAST3_ECB: CK_MECHANISM_TYPE = 785; pub const CKM_CAST3_CBC: CK_MECHANISM_TYPE = 786; pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST128_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_CAST128_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_RC5_KEY_GEN: CK_MECHANISM_TYPE = 816; pub const CKM_RC5_ECB: CK_MECHANISM_TYPE = 817; pub const CKM_RC5_CBC: CK_MECHANISM_TYPE = 818; pub const CKM_RC5_MAC: CK_MECHANISM_TYPE = 819; pub const CKM_RC5_MAC_GENERAL: CK_MECHANISM_TYPE = 820; pub const CKM_RC5_CBC_PAD: CK_MECHANISM_TYPE = 821; pub const CKM_IDEA_KEY_GEN: CK_MECHANISM_TYPE = 832; pub const CKM_IDEA_ECB: CK_MECHANISM_TYPE = 833; pub const CKM_IDEA_CBC: CK_MECHANISM_TYPE = 834; pub const CKM_IDEA_MAC: CK_MECHANISM_TYPE = 835; pub const CKM_IDEA_MAC_GENERAL: CK_MECHANISM_TYPE = 836; pub const CKM_IDEA_CBC_PAD: CK_MECHANISM_TYPE = 837; pub const CKM_GENERIC_SECRET_KEY_GEN: CK_MECHANISM_TYPE = 848; pub const CKM_CONCATENATE_BASE_AND_KEY: CK_MECHANISM_TYPE = 864; pub const CKM_CONCATENATE_BASE_AND_DATA: CK_MECHANISM_TYPE = 866; pub const CKM_CONCATENATE_DATA_AND_BASE: CK_MECHANISM_TYPE = 867; pub const CKM_XOR_BASE_AND_DATA: CK_MECHANISM_TYPE = 868; pub const CKM_EXTRACT_KEY_FROM_KEY: CK_MECHANISM_TYPE = 869; pub const CKM_SSL3_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 880; pub const CKM_SSL3_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 881; pub const CKM_SSL3_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 882; pub const CKM_SSL3_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 883; pub const CKM_TLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 884; pub const CKM_TLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 885; pub const CKM_TLS_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 886; pub const CKM_TLS_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 887; pub const CKM_TLS_PRF: CK_MECHANISM_TYPE = 888; pub const CKM_SSL3_MD5_MAC: CK_MECHANISM_TYPE = 896; pub const CKM_SSL3_SHA1_MAC: CK_MECHANISM_TYPE = 897; pub const CKM_MD5_KEY_DERIVATION: CK_MECHANISM_TYPE = 912; pub const CKM_MD2_KEY_DERIVATION: CK_MECHANISM_TYPE = 913; pub const CKM_SHA1_KEY_DERIVATION: CK_MECHANISM_TYPE = 914; pub const CKM_SHA256_KEY_DERIVATION: CK_MECHANISM_TYPE = 915; pub const CKM_SHA384_KEY_DERIVATION: CK_MECHANISM_TYPE = 916; pub const CKM_SHA512_KEY_DERIVATION: CK_MECHANISM_TYPE = 917; pub const CKM_PBE_MD2_DES_CBC: CK_MECHANISM_TYPE = 928; pub const CKM_PBE_MD5_DES_CBC: CK_MECHANISM_TYPE = 929; pub const CKM_PBE_MD5_CAST_CBC: CK_MECHANISM_TYPE = 930; pub const CKM_PBE_MD5_CAST3_CBC: CK_MECHANISM_TYPE = 931; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_MD5_CAST128_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_CAST128_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_RC4_128: CK_MECHANISM_TYPE = 934; pub const CKM_PBE_SHA1_RC4_40: CK_MECHANISM_TYPE = 935; pub const CKM_PBE_SHA1_DES3_EDE_CBC: CK_MECHANISM_TYPE = 936; pub const CKM_PBE_SHA1_DES2_EDE_CBC: CK_MECHANISM_TYPE = 937; pub const CKM_PBE_SHA1_RC2_128_CBC: CK_MECHANISM_TYPE = 938; pub const CKM_PBE_SHA1_RC2_40_CBC: CK_MECHANISM_TYPE = 939; pub const CKM_PKCS5_PBKD2: CK_MECHANISM_TYPE = 944; pub const CKM_PBA_SHA1_WITH_SHA1_HMAC: CK_MECHANISM_TYPE = 960; pub const CKM_WTLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 976; pub const CKM_WTLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 977; pub const CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC: CK_MECHANISM_TYPE = 978; pub const CKM_WTLS_PRF: CK_MECHANISM_TYPE = 979; pub const CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 980; pub const CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 981; pub const CKM_TLS10_MAC_SERVER: CK_MECHANISM_TYPE = 982; pub const CKM_TLS10_MAC_CLIENT: CK_MECHANISM_TYPE = 983; pub const CKM_TLS12_MAC: CK_MECHANISM_TYPE = 984; pub const CKM_TLS12_KDF: CK_MECHANISM_TYPE = 985; pub const CKM_TLS12_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 992; pub const CKM_TLS12_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 993; pub const CKM_TLS12_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 994; pub const CKM_TLS12_KEY_SAFE_DERIVE: CK_MECHANISM_TYPE = 995; pub const CKM_TLS_MAC: CK_MECHANISM_TYPE = 996; pub const CKM_TLS_KDF: CK_MECHANISM_TYPE = 997; pub const CKM_KEY_WRAP_LYNKS: CK_MECHANISM_TYPE = 1024; pub const CKM_KEY_WRAP_SET_OAEP: CK_MECHANISM_TYPE = 1025; pub const CKM_CMS_SIG: CK_MECHANISM_TYPE = 1280; pub const CKM_KIP_DERIVE: CK_MECHANISM_TYPE = 1296; pub const CKM_KIP_WRAP: CK_MECHANISM_TYPE = 1297; pub const CKM_KIP_MAC: CK_MECHANISM_TYPE = 1298; pub const CKM_CAMELLIA_KEY_GEN: CK_MECHANISM_TYPE = 1360; pub const CKM_CAMELLIA_CTR: CK_MECHANISM_TYPE = 1368; pub const CKM_ARIA_KEY_GEN: CK_MECHANISM_TYPE = 1376; pub const CKM_ARIA_ECB: CK_MECHANISM_TYPE = 1377; pub const CKM_ARIA_CBC: CK_MECHANISM_TYPE = 1378; pub const CKM_ARIA_MAC: CK_MECHANISM_TYPE = 1379; pub const CKM_ARIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1380; pub const CKM_ARIA_CBC_PAD: CK_MECHANISM_TYPE = 1381; pub const CKM_ARIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1382; pub const CKM_ARIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1383; pub const CKM_SEED_KEY_GEN: CK_MECHANISM_TYPE = 1616; pub const CKM_SEED_ECB: CK_MECHANISM_TYPE = 1617; pub const CKM_SEED_CBC: CK_MECHANISM_TYPE = 1618; pub const CKM_SEED_MAC: CK_MECHANISM_TYPE = 1619; pub const CKM_SEED_MAC_GENERAL: CK_MECHANISM_TYPE = 1620; pub const CKM_SEED_CBC_PAD: CK_MECHANISM_TYPE = 1621; pub const CKM_SEED_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1622; pub const CKM_SEED_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1623; pub const CKM_SKIPJACK_KEY_GEN: CK_MECHANISM_TYPE = 4096; pub const CKM_SKIPJACK_ECB64: CK_MECHANISM_TYPE = 4097; pub const CKM_SKIPJACK_CBC64: CK_MECHANISM_TYPE = 4098; pub const CKM_SKIPJACK_OFB64: CK_MECHANISM_TYPE = 4099; pub const CKM_SKIPJACK_CFB64: CK_MECHANISM_TYPE = 4100; pub const CKM_SKIPJACK_CFB32: CK_MECHANISM_TYPE = 4101; pub const CKM_SKIPJACK_CFB16: CK_MECHANISM_TYPE = 4102; pub const CKM_SKIPJACK_CFB8: CK_MECHANISM_TYPE = 4103; pub const CKM_SKIPJACK_WRAP: CK_MECHANISM_TYPE = 4104; pub const CKM_SKIPJACK_PRIVATE_WRAP: CK_MECHANISM_TYPE = 4105; pub const CKM_SKIPJACK_RELAYX: CK_MECHANISM_TYPE = 4106; pub const CKM_KEA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4112; pub const CKM_KEA_KEY_DERIVE: CK_MECHANISM_TYPE = 4113; pub const CKM_FORTEZZA_TIMESTAMP: CK_MECHANISM_TYPE = 4128; pub const CKM_BATON_KEY_GEN: CK_MECHANISM_TYPE = 4144; pub const CKM_BATON_ECB128: CK_MECHANISM_TYPE = 4145; pub const CKM_BATON_ECB96: CK_MECHANISM_TYPE = 4146; pub const CKM_BATON_CBC128: CK_MECHANISM_TYPE = 4147; pub const CKM_BATON_COUNTER: CK_MECHANISM_TYPE = 4148; pub const CKM_BATON_SHUFFLE: CK_MECHANISM_TYPE = 4149; pub const CKM_BATON_WRAP: CK_MECHANISM_TYPE = 4150; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_EC_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_ECDSA: CK_MECHANISM_TYPE = 4161; pub const CKM_ECDSA_SHA1: CK_MECHANISM_TYPE = 4162; pub const CKM_ECDSA_SHA224: CK_MECHANISM_TYPE = 4163; pub const CKM_ECDSA_SHA256: CK_MECHANISM_TYPE = 4164; pub const CKM_ECDSA_SHA384: CK_MECHANISM_TYPE = 4165; pub const CKM_ECDSA_SHA512: CK_MECHANISM_TYPE = 4166; pub const CKM_ECDH1_DERIVE: CK_MECHANISM_TYPE = 4176; pub const CKM_ECDH1_COFACTOR_DERIVE: CK_MECHANISM_TYPE = 4177; pub const CKM_ECMQV_DERIVE: CK_MECHANISM_TYPE = 4178; pub const CKM_ECDH_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4179; pub const CKM_RSA_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4180; pub const CKM_JUNIPER_KEY_GEN: CK_MECHANISM_TYPE = 4192; pub const CKM_JUNIPER_ECB128: CK_MECHANISM_TYPE = 4193; pub const CKM_JUNIPER_CBC128: CK_MECHANISM_TYPE = 4194; pub const CKM_JUNIPER_COUNTER: CK_MECHANISM_TYPE = 4195; pub const CKM_JUNIPER_SHUFFLE: CK_MECHANISM_TYPE = 4196; pub const CKM_JUNIPER_WRAP: CK_MECHANISM_TYPE = 4197; pub const CKM_FASTHASH: CK_MECHANISM_TYPE = 4208; pub const CKM_AES_KEY_GEN: CK_MECHANISM_TYPE = 4224; pub const CKM_AES_ECB: CK_MECHANISM_TYPE = 4225; pub const CKM_AES_CBC: CK_MECHANISM_TYPE = 4226; pub const CKM_AES_MAC: CK_MECHANISM_TYPE = 4227; pub const CKM_AES_MAC_GENERAL: CK_MECHANISM_TYPE = 4228; pub const CKM_AES_CBC_PAD: CK_MECHANISM_TYPE = 4229; pub const CKM_AES_CTR: CK_MECHANISM_TYPE = 4230; pub const CKM_AES_GCM: CK_MECHANISM_TYPE = 4231; pub const CKM_AES_CCM: CK_MECHANISM_TYPE = 4232; pub const CKM_AES_CTS: CK_MECHANISM_TYPE = 4233; pub const CKM_AES_CMAC: CK_MECHANISM_TYPE = 4234; pub const CKM_AES_CMAC_GENERAL: CK_MECHANISM_TYPE = 4235; pub const CKM_AES_XCBC_MAC: CK_MECHANISM_TYPE = 4236; pub const CKM_AES_XCBC_MAC_96: CK_MECHANISM_TYPE = 4237; pub const CKM_AES_GMAC: CK_MECHANISM_TYPE = 4238; pub const CKM_BLOWFISH_KEY_GEN: CK_MECHANISM_TYPE = 4240; pub const CKM_BLOWFISH_CBC: CK_MECHANISM_TYPE = 4241; pub const CKM_TWOFISH_KEY_GEN: CK_MECHANISM_TYPE = 4242; pub const CKM_TWOFISH_CBC: CK_MECHANISM_TYPE = 4243; pub const CKM_BLOWFISH_CBC_PAD: CK_MECHANISM_TYPE = 4244; pub const CKM_TWOFISH_CBC_PAD: CK_MECHANISM_TYPE = 4245; pub const CKM_DES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4352; pub const CKM_DES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4353; pub const CKM_DES3_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4354; pub const CKM_DES3_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4355; pub const CKM_AES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4356; pub const CKM_AES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4357; pub const CKM_GOSTR3410_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4608; pub const CKM_GOSTR3410: CK_MECHANISM_TYPE = 4609; pub const CKM_GOSTR3410_WITH_GOSTR3411: CK_MECHANISM_TYPE = 4610; pub const CKM_GOSTR3410_KEY_WRAP: CK_MECHANISM_TYPE = 4611; pub const CKM_GOSTR3410_DERIVE: CK_MECHANISM_TYPE = 4612; pub const CKM_GOSTR3411: CK_MECHANISM_TYPE = 4624; pub const CKM_GOSTR3411_HMAC: CK_MECHANISM_TYPE = 4625; pub const CKM_GOST28147_KEY_GEN: CK_MECHANISM_TYPE = 4640; pub const CKM_GOST28147_ECB: CK_MECHANISM_TYPE = 4641; pub const CKM_GOST28147: CK_MECHANISM_TYPE = 4642; pub const CKM_GOST28147_MAC: CK_MECHANISM_TYPE = 4643; pub const CKM_GOST28147_KEY_WRAP: CK_MECHANISM_TYPE = 4644; pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; pub const CKM_AES_CFB64: CK_MECHANISM_TYPE = 8453; pub const CKM_AES_CFB8: CK_MECHANISM_TYPE = 8454; pub const CKM_AES_CFB128: CK_MECHANISM_TYPE = 8455; pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_SHA224: CK_MECHANISM_TYPE = 597; pub const CKM_SHA224_HMAC: CK_MECHANISM_TYPE = 598; pub const CKM_SHA224_HMAC_GENERAL: CK_MECHANISM_TYPE = 599; pub const CKM_SHA224_RSA_PKCS: CK_MECHANISM_TYPE = 70; pub const CKM_SHA224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 71; pub const CKM_SHA224_KEY_DERIVATION: CK_MECHANISM_TYPE = 918; pub const CKM_CAMELLIA_ECB: CK_MECHANISM_TYPE = 1361; pub const CKM_CAMELLIA_CBC: CK_MECHANISM_TYPE = 1362; pub const CKM_CAMELLIA_MAC: CK_MECHANISM_TYPE = 1363; pub const CKM_CAMELLIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1364; pub const CKM_CAMELLIA_CBC_PAD: CK_MECHANISM_TYPE = 1365; pub const CKM_CAMELLIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1366; pub const CKM_CAMELLIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1367; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_EC_EDWARDS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4181; pub const CKM_EC_MONTGOMERY_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4182; pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CK_OTP_FORMAT_DECIMAL: CK_ULONG = 0; pub const CK_OTP_FORMAT_HEXADECIMAL: CK_ULONG = 1; pub const CK_OTP_FORMAT_ALPHANUMERIC: CK_ULONG = 2; pub const CK_OTP_FORMAT_BINARY: CK_ULONG = 3; pub const CK_OTP_PARAM_IGNORED: CK_ULONG = 0; pub const CK_OTP_PARAM_OPTIONAL: CK_ULONG = 1; pub const CK_OTP_PARAM_MANDATORY: CK_ULONG = 2; pub const CK_OTP_VALUE: CK_ULONG = 0; pub const CK_OTP_PIN: CK_ULONG = 1; pub const CK_OTP_CHALLENGE: CK_ULONG = 2; pub const CK_OTP_TIME: CK_ULONG = 3; pub const CK_OTP_COUNTER: CK_ULONG = 4; pub const CK_OTP_FLAGS: CK_ULONG = 5; pub const CK_OTP_OUTPUT_LENGTH: CK_ULONG = 6; pub const CK_OTP_FORMAT: CK_ULONG = 7; pub const CKF_NEXT_OTP: CK_FLAGS = 1; pub const CKF_EXCLUDE_TIME: CK_FLAGS = 2; pub const CKF_EXCLUDE_COUNTER: CK_FLAGS = 4; pub const CKF_EXCLUDE_CHALLENGE: CK_FLAGS = 8; pub const CKF_EXCLUDE_PIN: CK_FLAGS = 16; pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKG_MGF1_SHA1: CK_RSA_PKCS_MGF_TYPE = 1; pub const CKG_MGF1_SHA224: CK_RSA_PKCS_MGF_TYPE = 5; pub const CKG_MGF1_SHA256: CK_RSA_PKCS_MGF_TYPE = 2; pub const CKG_MGF1_SHA384: CK_RSA_PKCS_MGF_TYPE = 3; pub const CKG_MGF1_SHA512: CK_RSA_PKCS_MGF_TYPE = 4; pub const CKD_NULL: CK_EC_KDF_TYPE = 1; pub const CKD_SHA1_KDF: CK_EC_KDF_TYPE = 2; pub const CKD_SHA1_KDF_ASN1: CK_EC_KDF_TYPE = 3; pub const CKD_SHA1_KDF_CONCATENATE: CK_EC_KDF_TYPE = 4; pub const CKD_SHA224_KDF: CK_EC_KDF_TYPE = 5; pub const CKD_SHA256_KDF: CK_EC_KDF_TYPE = 6; pub const CKD_SHA384_KDF: CK_EC_KDF_TYPE = 7; pub const CKD_SHA512_KDF: CK_EC_KDF_TYPE = 8; pub const CKD_CPDIVERSIFY_KDF: CK_EC_KDF_TYPE = 9; pub const CKF_HW: CK_FLAGS = 1; pub const CKF_ENCRYPT: CK_FLAGS = 256; pub const CKF_DECRYPT: CK_FLAGS = 512; pub const CKF_DIGEST: CK_FLAGS = 1024; pub const CKF_SIGN: CK_FLAGS = 2048; pub const CKF_SIGN_RECOVER: CK_FLAGS = 4096; pub const CKF_VERIFY: CK_FLAGS = 8192; pub const CKF_VERIFY_RECOVER: CK_FLAGS = 16384; pub const CKF_GENERATE: CK_FLAGS = 32768; pub const CKF_GENERATE_KEY_PAIR: CK_FLAGS = 65536; pub const CKF_WRAP: CK_FLAGS = 131072; pub const CKF_UNWRAP: CK_FLAGS = 262144; pub const CKF_DERIVE: CK_FLAGS = 524288; pub const CKF_EC_F_P: CK_FLAGS = 1048576; pub const CKF_EC_F_2M: CK_FLAGS = 2097152; pub const CKF_EC_ECPARAMETERS: CK_FLAGS = 4194304; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_LIBRARY_CANT_CREATE_OS_THREADS: CK_FLAGS = 1; pub const CKF_OS_LOCKING_OK: CK_FLAGS = 2; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; pub const CKR_SLOT_ID_INVALID: CK_RV = 3; pub const CKR_GENERAL_ERROR: CK_RV = 5; pub const CKR_FUNCTION_FAILED: CK_RV = 6; pub const CKR_ARGUMENTS_BAD: CK_RV = 7; pub const CKR_NO_EVENT: CK_RV = 8; pub const CKR_NEED_TO_CREATE_THREADS: CK_RV = 9; pub const CKR_CANT_LOCK: CK_RV = 10; pub const CKR_ATTRIBUTE_READ_ONLY: CK_RV = 16; pub const CKR_ATTRIBUTE_SENSITIVE: CK_RV = 17; pub const CKR_ATTRIBUTE_TYPE_INVALID: CK_RV = 18; pub const CKR_ATTRIBUTE_VALUE_INVALID: CK_RV = 19; pub const CKR_ACTION_PROHIBITED: CK_RV = 27; pub const CKR_DATA_INVALID: CK_RV = 32; pub const CKR_DATA_LEN_RANGE: CK_RV = 33; pub const CKR_DEVICE_ERROR: CK_RV = 48; pub const CKR_DEVICE_MEMORY: CK_RV = 49; pub const CKR_DEVICE_REMOVED: CK_RV = 50; pub const CKR_ENCRYPTED_DATA_INVALID: CK_RV = 64; pub const CKR_ENCRYPTED_DATA_LEN_RANGE: CK_RV = 65; pub const CKR_FUNCTION_CANCELED: CK_RV = 80; pub const CKR_FUNCTION_NOT_PARALLEL: CK_RV = 81; pub const CKR_FUNCTION_NOT_SUPPORTED: CK_RV = 84; pub const CKR_KEY_HANDLE_INVALID: CK_RV = 96; pub const CKR_KEY_SIZE_RANGE: CK_RV = 98; pub const CKR_KEY_TYPE_INCONSISTENT: CK_RV = 99; pub const CKR_KEY_NOT_NEEDED: CK_RV = 100; pub const CKR_KEY_CHANGED: CK_RV = 101; pub const CKR_KEY_NEEDED: CK_RV = 102; pub const CKR_KEY_INDIGESTIBLE: CK_RV = 103; pub const CKR_KEY_FUNCTION_NOT_PERMITTED: CK_RV = 104; pub const CKR_KEY_NOT_WRAPPABLE: CK_RV = 105; pub const CKR_KEY_UNEXTRACTABLE: CK_RV = 106; pub const CKR_MECHANISM_INVALID: CK_RV = 112; pub const CKR_MECHANISM_PARAM_INVALID: CK_RV = 113; pub const CKR_OBJECT_HANDLE_INVALID: CK_RV = 130; pub const CKR_OPERATION_ACTIVE: CK_RV = 144; pub const CKR_OPERATION_NOT_INITIALIZED: CK_RV = 145; pub const CKR_PIN_INCORRECT: CK_RV = 160; pub const CKR_PIN_INVALID: CK_RV = 161; pub const CKR_PIN_LEN_RANGE: CK_RV = 162; pub const CKR_PIN_EXPIRED: CK_RV = 163; pub const CKR_PIN_LOCKED: CK_RV = 164; pub const CKR_SESSION_CLOSED: CK_RV = 176; pub const CKR_SESSION_COUNT: CK_RV = 177; pub const CKR_SESSION_HANDLE_INVALID: CK_RV = 179; pub const CKR_SESSION_PARALLEL_NOT_SUPPORTED: CK_RV = 180; pub const CKR_SESSION_READ_ONLY: CK_RV = 181; pub const CKR_SESSION_EXISTS: CK_RV = 182; pub const CKR_SESSION_READ_ONLY_EXISTS: CK_RV = 183; pub const CKR_SESSION_READ_WRITE_SO_EXISTS: CK_RV = 184; pub const CKR_SIGNATURE_INVALID: CK_RV = 192; pub const CKR_SIGNATURE_LEN_RANGE: CK_RV = 193; pub const CKR_TEMPLATE_INCOMPLETE: CK_RV = 208; pub const CKR_TEMPLATE_INCONSISTENT: CK_RV = 209; pub const CKR_TOKEN_NOT_PRESENT: CK_RV = 224; pub const CKR_TOKEN_NOT_RECOGNIZED: CK_RV = 225; pub const CKR_TOKEN_WRITE_PROTECTED: CK_RV = 226; pub const CKR_UNWRAPPING_KEY_HANDLE_INVALID: CK_RV = 240; pub const CKR_UNWRAPPING_KEY_SIZE_RANGE: CK_RV = 241; pub const CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 242; pub const CKR_USER_ALREADY_LOGGED_IN: CK_RV = 256; pub const CKR_USER_NOT_LOGGED_IN: CK_RV = 257; pub const CKR_USER_PIN_NOT_INITIALIZED: CK_RV = 258; pub const CKR_USER_TYPE_INVALID: CK_RV = 259; pub const CKR_USER_ANOTHER_ALREADY_LOGGED_IN: CK_RV = 260; pub const CKR_USER_TOO_MANY_TYPES: CK_RV = 261; pub const CKR_WRAPPED_KEY_INVALID: CK_RV = 272; pub const CKR_WRAPPED_KEY_LEN_RANGE: CK_RV = 274; pub const CKR_WRAPPING_KEY_HANDLE_INVALID: CK_RV = 275; pub const CKR_WRAPPING_KEY_SIZE_RANGE: CK_RV = 276; pub const CKR_WRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 277; pub const CKR_RANDOM_SEED_NOT_SUPPORTED: CK_RV = 288; pub const CKR_RANDOM_NO_RNG: CK_RV = 289; pub const CKR_DOMAIN_PARAMS_INVALID: CK_RV = 304; pub const CKR_BUFFER_TOO_SMALL: CK_RV = 336; pub const CKR_SAVED_STATE_INVALID: CK_RV = 352; pub const CKR_INFORMATION_SENSITIVE: CK_RV = 368; pub const CKR_STATE_UNSAVEABLE: CK_RV = 384; pub const CKR_CRYPTOKI_NOT_INITIALIZED: CK_RV = 400; pub const CKR_CRYPTOKI_ALREADY_INITIALIZED: CK_RV = 401; pub const CKR_MUTEX_BAD: CK_RV = 416; pub const CKR_MUTEX_NOT_LOCKED: CK_RV = 417; pub const CKR_NEW_PIN_MODE: CK_RV = 432; pub const CKR_NEXT_OTP: CK_RV = 433; pub const CKR_EXCEEDED_MAX_ITERATIONS: CK_RV = 448; pub const CKR_FIPS_SELF_TEST_FAILED: CK_RV = 449; pub const CKR_LIBRARY_LOAD_FAILED: CK_RV = 450; pub const CKR_PIN_TOO_WEAK: CK_RV = 451; pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 452; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CK_FALSE: CK_BBOOL = 0; pub const CK_TRUE: CK_BBOOL = 1; pub const FALSE: u32 = 0; pub const TRUE: u32 = 1; pub type CK_FLAGS = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_VERSION { pub major: ::std::os::raw::c_uchar, pub minor: ::std::os::raw::c_uchar, } #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_INFO { pub cryptokiVersion: _CK_VERSION, pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub libraryDescription: [::std::os::raw::c_uchar; 32usize], pub libraryVersion: _CK_VERSION, } pub type CK_NOTIFICATION = ::std::os::raw::c_ulong; pub const CKN_SURRENDER: ::std::os::raw::c_ulong = 0; pub type CK_SLOT_ID = ::std::os::raw::c_ulong; #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct _CK_SLOT_INFO { pub slotDescription: [::std::os::raw::c_uchar; 64usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, } impl Default for _CK_SLOT_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub const CKF_TOKEN_PRESENT: ::std::os::raw::c_ulong = 1; pub const CKF_REMOVABLE_DEVICE: ::std::os::raw::c_ulong = 2; pub const CKF_HW_SLOT: ::std::os::raw::c_ulong = 4; pub const CKF_ARRAY_ATTRIBUTE: ::std::os::raw::c_ulong = 1073741824; #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_TOKEN_INFO { pub label: [::std::os::raw::c_uchar; 32usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub model: [::std::os::raw::c_uchar; 16usize], pub serialNumber: [::std::os::raw::c_uchar; 16usize], pub flags: CK_FLAGS, pub ulMaxSessionCount: ::std::os::raw::c_ulong, pub ulSessionCount: ::std::os::raw::c_ulong, pub ulMaxRwSessionCount: ::std::os::raw::c_ulong, pub ulRwSessionCount: ::std::os::raw::c_ulong, pub ulMaxPinLen: ::std::os::raw::c_ulong, pub ulMinPinLen: ::std::os::raw::c_ulong, pub ulTotalPublicMemory: ::std::os::raw::c_ulong, pub ulFreePublicMemory: ::std::os::raw::c_ulong, pub ulTotalPrivateMemory: ::std::os::raw::c_ulong, pub ulFreePrivateMemory: ::std::os::raw::c_ulong, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, pub utcTime: [::std::os::raw::c_uchar; 16usize], } pub type CK_SESSION_HANDLE = ::std::os::raw::c_ulong; pub type CK_USER_TYPE = ::std::os::raw::c_ulong; pub type CK_STATE = ::std::os::raw::c_ulong; #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_SESSION_INFO { pub slotID: CK_SLOT_ID, pub state: CK_STATE, pub flags: CK_FLAGS, pub ulDeviceError: ::std::os::raw::c_ulong, } pub type CK_OBJECT_HANDLE = ::std::os::raw::c_ulong; pub type CK_OBJECT_CLASS = ::std::os::raw::c_ulong; pub type CK_HW_FEATURE_TYPE = ::std::os::raw::c_ulong; pub type CK_KEY_TYPE = ::std::os::raw::c_ulong; pub type CK_CERTIFICATE_TYPE = ::std::os::raw::c_ulong; pub type CK_ATTRIBUTE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct _CK_ATTRIBUTE { pub type_: CK_ATTRIBUTE_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } impl Default for _CK_ATTRIBUTE { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_DATE { pub year: [::std::os::raw::c_uchar; 4usize], pub month: [::std::os::raw::c_uchar; 2usize], pub day: [::std::os::raw::c_uchar; 2usize], } pub type CK_MECHANISM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct _CK_MECHANISM { pub mechanism: CK_MECHANISM_TYPE, pub pParameter: *mut ::std::os::raw::c_void, pub ulParameterLen: ::std::os::raw::c_ulong, } impl Default for _CK_MECHANISM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_MECHANISM_INFO { pub ulMinKeySize: ::std::os::raw::c_ulong, pub ulMaxKeySize: ::std::os::raw::c_ulong, pub flags: CK_FLAGS, } pub type CK_PARAM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAM { pub type_: CK_PARAM_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } impl Default for CK_OTP_PARAM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAMS { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } impl Default for CK_OTP_PARAMS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_SIGNATURE_INFO { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } impl Default for CK_OTP_SIGNATURE_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RSA_PKCS_MGF_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Default, Copy, Clone)] pub struct ck_rsa_pkcs_pss_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub sLen: ::std::os::raw::c_ulong, } pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct ck_rsa_pkcs_oaep_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub source: CK_RSA_PKCS_OAEP_SOURCE_TYPE, pub pSourceData: *mut ::std::os::raw::c_void, pub ulSourceDataLen: ::std::os::raw::c_ulong, } impl Default for ck_rsa_pkcs_oaep_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Default, Copy, Clone)] pub struct ck_aes_ctr_params { pub ulCounterBits: ::std::os::raw::c_ulong, pub cb: [::std::os::raw::c_uchar; 16usize], } #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct ck_gcm_params { pub pIv: *mut ::std::os::raw::c_uchar, pub ulIvLen: ::std::os::raw::c_ulong, pub ulIvBits: ::std::os::raw::c_ulong, pub pAAD: *mut ::std::os::raw::c_uchar, pub ulAADLen: ::std::os::raw::c_ulong, pub ulTagBits: ::std::os::raw::c_ulong, } impl Default for ck_gcm_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type ck_ec_kdf_t = ::std::os::raw::c_ulong; #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct ck_ecdh1_derive_params { pub kdf: ck_ec_kdf_t, pub ulSharedDataLen: ::std::os::raw::c_ulong, pub pSharedData: *mut ::std::os::raw::c_uchar, pub ulPublicDataLen: ::std::os::raw::c_ulong, pub pPublicData: *mut ::std::os::raw::c_uchar, } impl Default for ck_ecdh1_derive_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct ck_key_derivation_string_data { pub pData: *mut ::std::os::raw::c_uchar, pub ulLen: ::std::os::raw::c_ulong, } impl Default for ck_key_derivation_string_data { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct ck_des_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 8usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } impl Default for ck_des_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct ck_aes_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 16usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } impl Default for ck_aes_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RV = ::std::os::raw::c_ulong; pub type CK_NOTIFY = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, event: CK_NOTIFICATION, application: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_Initialize = ::std::option::Option CK_RV>; pub type CK_C_Finalize = ::std::option::Option CK_RV>; pub type CK_C_GetInfo = ::std::option::Option CK_RV>; pub type CK_C_GetFunctionList = ::std::option::Option< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, >; pub type CK_C_GetSlotList = ::std::option::Option< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetSlotInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, >; pub type CK_C_GetTokenInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, >; pub type CK_C_WaitForSlotEvent = ::std::option::Option< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_GetMechanismList = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetMechanismInfo = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, >; pub type CK_C_InitToken = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, >; pub type CK_C_InitPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_OpenSession = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, >; pub type CK_C_CloseSession = ::std::option::Option CK_RV>; pub type CK_C_CloseAllSessions = ::std::option::Option CK_RV>; pub type CK_C_GetSessionInfo = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, >; pub type CK_C_GetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Login = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_Logout = ::std::option::Option CK_RV>; pub type CK_C_CreateObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_CopyObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DestroyObject = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_GetObjectSize = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjects = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsFinal = ::std::option::Option CK_RV>; pub type CK_C_EncryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Encrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Decrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestInit = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, >; pub type CK_C_Digest = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestKey = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_DigestFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Sign = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SignRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Verify = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_VerifyRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptDigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptVerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_GenerateKeyPair = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_WrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_UnwrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DeriveKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SeedRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetFunctionStatus = ::std::option::Option CK_RV>; pub type CK_C_CancelFunction = ::std::option::Option CK_RV>; #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_FUNCTION_LIST { pub version: _CK_VERSION, pub C_Initialize: CK_C_Initialize, pub C_Finalize: CK_C_Finalize, pub C_GetInfo: CK_C_GetInfo, pub C_GetFunctionList: CK_C_GetFunctionList, pub C_GetSlotList: CK_C_GetSlotList, pub C_GetSlotInfo: CK_C_GetSlotInfo, pub C_GetTokenInfo: CK_C_GetTokenInfo, pub C_GetMechanismList: CK_C_GetMechanismList, pub C_GetMechanismInfo: CK_C_GetMechanismInfo, pub C_InitToken: CK_C_InitToken, pub C_InitPIN: CK_C_InitPIN, pub C_SetPIN: CK_C_SetPIN, pub C_OpenSession: CK_C_OpenSession, pub C_CloseSession: CK_C_CloseSession, pub C_CloseAllSessions: CK_C_CloseAllSessions, pub C_GetSessionInfo: CK_C_GetSessionInfo, pub C_GetOperationState: CK_C_GetOperationState, pub C_SetOperationState: CK_C_SetOperationState, pub C_Login: CK_C_Login, pub C_Logout: CK_C_Logout, pub C_CreateObject: CK_C_CreateObject, pub C_CopyObject: CK_C_CopyObject, pub C_DestroyObject: CK_C_DestroyObject, pub C_GetObjectSize: CK_C_GetObjectSize, pub C_GetAttributeValue: CK_C_GetAttributeValue, pub C_SetAttributeValue: CK_C_SetAttributeValue, pub C_FindObjectsInit: CK_C_FindObjectsInit, pub C_FindObjects: CK_C_FindObjects, pub C_FindObjectsFinal: CK_C_FindObjectsFinal, pub C_EncryptInit: CK_C_EncryptInit, pub C_Encrypt: CK_C_Encrypt, pub C_EncryptUpdate: CK_C_EncryptUpdate, pub C_EncryptFinal: CK_C_EncryptFinal, pub C_DecryptInit: CK_C_DecryptInit, pub C_Decrypt: CK_C_Decrypt, pub C_DecryptUpdate: CK_C_DecryptUpdate, pub C_DecryptFinal: CK_C_DecryptFinal, pub C_DigestInit: CK_C_DigestInit, pub C_Digest: CK_C_Digest, pub C_DigestUpdate: CK_C_DigestUpdate, pub C_DigestKey: CK_C_DigestKey, pub C_DigestFinal: CK_C_DigestFinal, pub C_SignInit: CK_C_SignInit, pub C_Sign: CK_C_Sign, pub C_SignUpdate: CK_C_SignUpdate, pub C_SignFinal: CK_C_SignFinal, pub C_SignRecoverInit: CK_C_SignRecoverInit, pub C_SignRecover: CK_C_SignRecover, pub C_VerifyInit: CK_C_VerifyInit, pub C_Verify: CK_C_Verify, pub C_VerifyUpdate: CK_C_VerifyUpdate, pub C_VerifyFinal: CK_C_VerifyFinal, pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, pub C_VerifyRecover: CK_C_VerifyRecover, pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, pub C_GenerateKey: CK_C_GenerateKey, pub C_GenerateKeyPair: CK_C_GenerateKeyPair, pub C_WrapKey: CK_C_WrapKey, pub C_UnwrapKey: CK_C_UnwrapKey, pub C_DeriveKey: CK_C_DeriveKey, pub C_SeedRandom: CK_C_SeedRandom, pub C_GenerateRandom: CK_C_GenerateRandom, pub C_GetFunctionStatus: CK_C_GetFunctionStatus, pub C_CancelFunction: CK_C_CancelFunction, pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, } pub type CK_CREATEMUTEX = ::std::option::Option CK_RV>; pub type CK_DESTROYMUTEX = ::std::option::Option CK_RV>; pub type CK_LOCKMUTEX = ::std::option::Option CK_RV>; pub type CK_UNLOCKMUTEX = ::std::option::Option CK_RV>; #[repr(C)] #[cfg_attr(windows, repr(packed))] #[derive(Debug, Copy, Clone)] pub struct _CK_C_INITIALIZE_ARGS { pub CreateMutex: CK_CREATEMUTEX, pub DestroyMutex: CK_DESTROYMUTEX, pub LockMutex: CK_LOCKMUTEX, pub UnlockMutex: CK_UNLOCKMUTEX, pub flags: CK_FLAGS, pub pReserved: *mut ::std::os::raw::c_void, } impl Default for _CK_C_INITIALIZE_ARGS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_BYTE = ::std::os::raw::c_uchar; pub type CK_CHAR = ::std::os::raw::c_uchar; pub type CK_UTF8CHAR = ::std::os::raw::c_uchar; pub type CK_BBOOL = ::std::os::raw::c_uchar; pub type CK_ULONG = ::std::os::raw::c_ulong; pub type CK_LONG = ::std::os::raw::c_long; pub type CK_BYTE_PTR = *mut CK_BYTE; pub type CK_CHAR_PTR = *mut CK_CHAR; pub type CK_UTF8CHAR_PTR = *mut CK_UTF8CHAR; pub type CK_ULONG_PTR = *mut CK_ULONG; pub type CK_VOID_PTR = *mut ::std::os::raw::c_void; pub type CK_VOID_PTR_PTR = *mut *mut ::std::os::raw::c_void; pub type CK_VERSION = _CK_VERSION; pub type CK_VERSION_PTR = *mut _CK_VERSION; pub type CK_INFO = _CK_INFO; pub type CK_INFO_PTR = *mut _CK_INFO; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SLOT_INFO = _CK_SLOT_INFO; pub type CK_SLOT_INFO_PTR = *mut _CK_SLOT_INFO; pub type CK_TOKEN_INFO = _CK_TOKEN_INFO; pub type CK_TOKEN_INFO_PTR = *mut _CK_TOKEN_INFO; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; pub type CK_SESSION_INFO = _CK_SESSION_INFO; pub type CK_SESSION_INFO_PTR = *mut _CK_SESSION_INFO; pub type CK_OBJECT_HANDLE_PTR = *mut CK_OBJECT_HANDLE; pub type CK_OBJECT_CLASS_PTR = *mut CK_OBJECT_CLASS; pub type CK_ATTRIBUTE = _CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR = *mut _CK_ATTRIBUTE; pub type CK_DATE = _CK_DATE; pub type CK_DATE_PTR = *mut _CK_DATE; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; pub type CK_MECHANISM = _CK_MECHANISM; pub type CK_MECHANISM_PTR = *mut _CK_MECHANISM; pub type CK_MECHANISM_INFO = _CK_MECHANISM_INFO; pub type CK_MECHANISM_INFO_PTR = *mut _CK_MECHANISM_INFO; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_otp_mechanism_info { _unused: [u8; 0], } pub type CK_OTP_MECHANISM_INFO = ck_otp_mechanism_info; pub type CK_OTP_MECHANISM_INFO_PTR = *mut ck_otp_mechanism_info; pub type CK_FUNCTION_LIST = _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR = *mut _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut _CK_FUNCTION_LIST; pub type CK_C_INITIALIZE_ARGS = _CK_C_INITIALIZE_ARGS; pub type CK_C_INITIALIZE_ARGS_PTR = *mut _CK_C_INITIALIZE_ARGS; pub type CK_RSA_PKCS_PSS_PARAMS = ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_PSS_PARAMS_PTR = *mut ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_OAEP_PARAMS = ck_rsa_pkcs_oaep_params; pub type CK_RSA_PKCS_OAEP_PARAMS_PTR = *mut ck_rsa_pkcs_oaep_params; pub type CK_AES_CTR_PARAMS = ck_aes_ctr_params; pub type CK_AES_CTR_PARAMS_PTR = *mut ck_aes_ctr_params; pub type CK_GCM_PARAMS = ck_gcm_params; pub type CK_GCM_PARAMS_PTR = *mut ck_gcm_params; pub type CK_ECDH1_DERIVE_PARAMS = ck_ecdh1_derive_params; pub type CK_ECDH1_DERIVE_PARAMS_PTR = *mut ck_ecdh1_derive_params; pub type CK_KEY_DERIVATION_STRING_DATA = ck_key_derivation_string_data; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut ck_key_derivation_string_data; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS = ck_des_cbc_encrypt_data_params; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_des_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS = ck_aes_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_aes_cbc_encrypt_data_params; extern crate libloading; pub struct Pkcs11 { __library: ::libloading::Library, pub C_Initialize: Result< unsafe extern "C" fn(init_args: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_Finalize: Result< unsafe extern "C" fn(pReserved: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_GetInfo: Result CK_RV, ::libloading::Error>, pub C_GetFunctionList: Result< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, ::libloading::Error, >, pub C_GetSlotList: Result< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetSlotInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetTokenInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, ::libloading::Error, >, pub C_WaitForSlotEvent: Result< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismList: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismInfo: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, ::libloading::Error, >, pub C_InitToken: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, ::libloading::Error, >, pub C_InitPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_OpenSession: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CloseSession: Result CK_RV, ::libloading::Error>, pub C_CloseAllSessions: Result CK_RV, ::libloading::Error>, pub C_GetSessionInfo: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Login: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_Logout: Result CK_RV, ::libloading::Error>, pub C_CreateObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CopyObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DestroyObject: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_GetObjectSize: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjects: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsFinal: Result CK_RV, ::libloading::Error>, pub C_EncryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Encrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Decrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestInit: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, ::libloading::Error, >, pub C_Digest: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestKey: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_DigestFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Sign: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Verify: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptDigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptVerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKeyPair: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_WrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_UnwrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DeriveKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SeedRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetFunctionStatus: Result CK_RV, ::libloading::Error>, pub C_CancelFunction: Result CK_RV, ::libloading::Error>, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result where P: AsRef<::std::ffi::OsStr>, { let library = ::libloading::Library::new(path)?; Self::from_library(library) } pub unsafe fn from_library(library: L) -> Result where L: Into<::libloading::Library>, { let __library = library.into(); let C_Initialize = __library.get(b"C_Initialize\0").map(|sym| *sym); let C_Finalize = __library.get(b"C_Finalize\0").map(|sym| *sym); let C_GetInfo = __library.get(b"C_GetInfo\0").map(|sym| *sym); let C_GetFunctionList = __library.get(b"C_GetFunctionList\0").map(|sym| *sym); let C_GetSlotList = __library.get(b"C_GetSlotList\0").map(|sym| *sym); let C_GetSlotInfo = __library.get(b"C_GetSlotInfo\0").map(|sym| *sym); let C_GetTokenInfo = __library.get(b"C_GetTokenInfo\0").map(|sym| *sym); let C_WaitForSlotEvent = __library.get(b"C_WaitForSlotEvent\0").map(|sym| *sym); let C_GetMechanismList = __library.get(b"C_GetMechanismList\0").map(|sym| *sym); let C_GetMechanismInfo = __library.get(b"C_GetMechanismInfo\0").map(|sym| *sym); let C_InitToken = __library.get(b"C_InitToken\0").map(|sym| *sym); let C_InitPIN = __library.get(b"C_InitPIN\0").map(|sym| *sym); let C_SetPIN = __library.get(b"C_SetPIN\0").map(|sym| *sym); let C_OpenSession = __library.get(b"C_OpenSession\0").map(|sym| *sym); let C_CloseSession = __library.get(b"C_CloseSession\0").map(|sym| *sym); let C_CloseAllSessions = __library.get(b"C_CloseAllSessions\0").map(|sym| *sym); let C_GetSessionInfo = __library.get(b"C_GetSessionInfo\0").map(|sym| *sym); let C_GetOperationState = __library.get(b"C_GetOperationState\0").map(|sym| *sym); let C_SetOperationState = __library.get(b"C_SetOperationState\0").map(|sym| *sym); let C_Login = __library.get(b"C_Login\0").map(|sym| *sym); let C_Logout = __library.get(b"C_Logout\0").map(|sym| *sym); let C_CreateObject = __library.get(b"C_CreateObject\0").map(|sym| *sym); let C_CopyObject = __library.get(b"C_CopyObject\0").map(|sym| *sym); let C_DestroyObject = __library.get(b"C_DestroyObject\0").map(|sym| *sym); let C_GetObjectSize = __library.get(b"C_GetObjectSize\0").map(|sym| *sym); let C_GetAttributeValue = __library.get(b"C_GetAttributeValue\0").map(|sym| *sym); let C_SetAttributeValue = __library.get(b"C_SetAttributeValue\0").map(|sym| *sym); let C_FindObjectsInit = __library.get(b"C_FindObjectsInit\0").map(|sym| *sym); let C_FindObjects = __library.get(b"C_FindObjects\0").map(|sym| *sym); let C_FindObjectsFinal = __library.get(b"C_FindObjectsFinal\0").map(|sym| *sym); let C_EncryptInit = __library.get(b"C_EncryptInit\0").map(|sym| *sym); let C_Encrypt = __library.get(b"C_Encrypt\0").map(|sym| *sym); let C_EncryptUpdate = __library.get(b"C_EncryptUpdate\0").map(|sym| *sym); let C_EncryptFinal = __library.get(b"C_EncryptFinal\0").map(|sym| *sym); let C_DecryptInit = __library.get(b"C_DecryptInit\0").map(|sym| *sym); let C_Decrypt = __library.get(b"C_Decrypt\0").map(|sym| *sym); let C_DecryptUpdate = __library.get(b"C_DecryptUpdate\0").map(|sym| *sym); let C_DecryptFinal = __library.get(b"C_DecryptFinal\0").map(|sym| *sym); let C_DigestInit = __library.get(b"C_DigestInit\0").map(|sym| *sym); let C_Digest = __library.get(b"C_Digest\0").map(|sym| *sym); let C_DigestUpdate = __library.get(b"C_DigestUpdate\0").map(|sym| *sym); let C_DigestKey = __library.get(b"C_DigestKey\0").map(|sym| *sym); let C_DigestFinal = __library.get(b"C_DigestFinal\0").map(|sym| *sym); let C_SignInit = __library.get(b"C_SignInit\0").map(|sym| *sym); let C_Sign = __library.get(b"C_Sign\0").map(|sym| *sym); let C_SignUpdate = __library.get(b"C_SignUpdate\0").map(|sym| *sym); let C_SignFinal = __library.get(b"C_SignFinal\0").map(|sym| *sym); let C_SignRecoverInit = __library.get(b"C_SignRecoverInit\0").map(|sym| *sym); let C_SignRecover = __library.get(b"C_SignRecover\0").map(|sym| *sym); let C_VerifyInit = __library.get(b"C_VerifyInit\0").map(|sym| *sym); let C_Verify = __library.get(b"C_Verify\0").map(|sym| *sym); let C_VerifyUpdate = __library.get(b"C_VerifyUpdate\0").map(|sym| *sym); let C_VerifyFinal = __library.get(b"C_VerifyFinal\0").map(|sym| *sym); let C_VerifyRecoverInit = __library.get(b"C_VerifyRecoverInit\0").map(|sym| *sym); let C_VerifyRecover = __library.get(b"C_VerifyRecover\0").map(|sym| *sym); let C_DigestEncryptUpdate = __library.get(b"C_DigestEncryptUpdate\0").map(|sym| *sym); let C_DecryptDigestUpdate = __library.get(b"C_DecryptDigestUpdate\0").map(|sym| *sym); let C_SignEncryptUpdate = __library.get(b"C_SignEncryptUpdate\0").map(|sym| *sym); let C_DecryptVerifyUpdate = __library.get(b"C_DecryptVerifyUpdate\0").map(|sym| *sym); let C_GenerateKey = __library.get(b"C_GenerateKey\0").map(|sym| *sym); let C_GenerateKeyPair = __library.get(b"C_GenerateKeyPair\0").map(|sym| *sym); let C_WrapKey = __library.get(b"C_WrapKey\0").map(|sym| *sym); let C_UnwrapKey = __library.get(b"C_UnwrapKey\0").map(|sym| *sym); let C_DeriveKey = __library.get(b"C_DeriveKey\0").map(|sym| *sym); let C_SeedRandom = __library.get(b"C_SeedRandom\0").map(|sym| *sym); let C_GenerateRandom = __library.get(b"C_GenerateRandom\0").map(|sym| *sym); let C_GetFunctionStatus = __library.get(b"C_GetFunctionStatus\0").map(|sym| *sym); let C_CancelFunction = __library.get(b"C_CancelFunction\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, C_Finalize, C_GetInfo, C_GetFunctionList, C_GetSlotList, C_GetSlotInfo, C_GetTokenInfo, C_WaitForSlotEvent, C_GetMechanismList, C_GetMechanismInfo, C_InitToken, C_InitPIN, C_SetPIN, C_OpenSession, C_CloseSession, C_CloseAllSessions, C_GetSessionInfo, C_GetOperationState, C_SetOperationState, C_Login, C_Logout, C_CreateObject, C_CopyObject, C_DestroyObject, C_GetObjectSize, C_GetAttributeValue, C_SetAttributeValue, C_FindObjectsInit, C_FindObjects, C_FindObjectsFinal, C_EncryptInit, C_Encrypt, C_EncryptUpdate, C_EncryptFinal, C_DecryptInit, C_Decrypt, C_DecryptUpdate, C_DecryptFinal, C_DigestInit, C_Digest, C_DigestUpdate, C_DigestKey, C_DigestFinal, C_SignInit, C_Sign, C_SignUpdate, C_SignFinal, C_SignRecoverInit, C_SignRecover, C_VerifyInit, C_Verify, C_VerifyUpdate, C_VerifyFinal, C_VerifyRecoverInit, C_VerifyRecover, C_DigestEncryptUpdate, C_DecryptDigestUpdate, C_SignEncryptUpdate, C_DecryptVerifyUpdate, C_GenerateKey, C_GenerateKeyPair, C_WrapKey, C_UnwrapKey, C_DeriveKey, C_SeedRandom, C_GenerateRandom, C_GetFunctionStatus, C_CancelFunction, }) } pub unsafe fn C_Initialize(&self, init_args: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Initialize .as_ref() .expect("Expected function, got error."))(init_args) } pub unsafe fn C_Finalize(&self, pReserved: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Finalize .as_ref() .expect("Expected function, got error."))(pReserved) } pub unsafe fn C_GetInfo(&self, info: *mut _CK_INFO) -> CK_RV { (self .C_GetInfo .as_ref() .expect("Expected function, got error."))(info) } pub unsafe fn C_GetFunctionList(&self, function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV { (self .C_GetFunctionList .as_ref() .expect("Expected function, got error."))(function_list) } pub unsafe fn C_GetSlotList( &self, token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetSlotList .as_ref() .expect("Expected function, got error."))(token_present, slot_list, ulCount) } pub unsafe fn C_GetSlotInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV { (self .C_GetSlotInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_GetTokenInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV { (self .C_GetTokenInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_WaitForSlotEvent( &self, flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV { (self .C_WaitForSlotEvent .as_ref() .expect("Expected function, got error."))(flags, slot, pReserved) } pub unsafe fn C_GetMechanismList( &self, slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetMechanismList .as_ref() .expect("Expected function, got error."))(slotID, mechanism_list, ulCount) } pub unsafe fn C_GetMechanismInfo( &self, slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV { (self .C_GetMechanismInfo .as_ref() .expect("Expected function, got error."))(slotID, type_, info) } pub unsafe fn C_InitToken( &self, slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV { (self .C_InitToken .as_ref() .expect("Expected function, got error."))(slotID, pin, pin_len, label) } pub unsafe fn C_InitPIN( &self, session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_InitPIN .as_ref() .expect("Expected function, got error."))(session, pin, pin_len) } pub unsafe fn C_SetPIN( &self, session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetPIN .as_ref() .expect("Expected function, got error."))( session, old_pin, old_len, new_pin, new_len ) } pub unsafe fn C_OpenSession( &self, slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV { (self .C_OpenSession .as_ref() .expect("Expected function, got error."))( slotID, flags, application, notify, session ) } pub unsafe fn C_CloseSession(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CloseSession .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CloseAllSessions(&self, slotID: CK_SLOT_ID) -> CK_RV { (self .C_CloseAllSessions .as_ref() .expect("Expected function, got error."))(slotID) } pub unsafe fn C_GetSessionInfo( &self, session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO, ) -> CK_RV { (self .C_GetSessionInfo .as_ref() .expect("Expected function, got error."))(session, info) } pub unsafe fn C_GetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len ) } pub unsafe fn C_SetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len, encryption_key, authentiation_key, ) } pub unsafe fn C_Login( &self, session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Login .as_ref() .expect("Expected function, got error."))(session, user_type, pin, pin_len) } pub unsafe fn C_Logout(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_Logout .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CreateObject( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CreateObject .as_ref() .expect("Expected function, got error."))(session, templ, ulCount, object) } pub unsafe fn C_CopyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CopyObject .as_ref() .expect("Expected function, got error."))( session, object, templ, ulCount, new_object ) } pub unsafe fn C_DestroyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DestroyObject .as_ref() .expect("Expected function, got error."))(session, object) } pub unsafe fn C_GetObjectSize( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetObjectSize .as_ref() .expect("Expected function, got error."))(session, object, size) } pub unsafe fn C_GetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_SetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_FindObjectsInit( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjectsInit .as_ref() .expect("Expected function, got error."))(session, templ, ulCount) } pub unsafe fn C_FindObjects( &self, session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjects .as_ref() .expect("Expected function, got error."))( session, object, max_object_count, object_count, ) } pub unsafe fn C_FindObjectsFinal(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_FindObjectsFinal .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_EncryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_EncryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Encrypt( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Encrypt .as_ref() .expect("Expected function, got error."))( session, data, data_len, encrypted_data, encrypted_data_len, ) } pub unsafe fn C_EncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_EncryptFinal( &self, session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptFinal .as_ref() .expect("Expected function, got error."))( session, last_encrypted_part, last_encrypted_part_len, ) } pub unsafe fn C_DecryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DecryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Decrypt( &self, session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Decrypt .as_ref() .expect("Expected function, got error."))( session, encrypted_data, encrypted_data_len, data, data_len, ) } pub unsafe fn C_DecryptUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_DecryptFinal( &self, session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptFinal .as_ref() .expect("Expected function, got error."))(session, last_part, last_part_len) } pub unsafe fn C_DigestInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, ) -> CK_RV { (self .C_DigestInit .as_ref() .expect("Expected function, got error."))(session, mechanism) } pub unsafe fn C_Digest( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Digest .as_ref() .expect("Expected function, got error."))( session, data, data_len, digest, digest_len ) } pub unsafe fn C_DigestUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_DigestKey(&self, session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV { (self .C_DigestKey .as_ref() .expect("Expected function, got error."))(session, key) } pub unsafe fn C_DigestFinal( &self, session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestFinal .as_ref() .expect("Expected function, got error."))(session, digest, digest_len) } pub unsafe fn C_SignInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Sign( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self.C_Sign.as_ref().expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_SignUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_SignFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_SignRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_SignRecover( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignRecover .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Verify( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Verify .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_VerifyFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_VerifyRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_VerifyRecover( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyRecover .as_ref() .expect("Expected function, got error."))( session, signature, signature_len, data, data_len, ) } pub unsafe fn C_DigestEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptDigestUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptDigestUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_SignEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptVerifyUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptVerifyUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_GenerateKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKey .as_ref() .expect("Expected function, got error."))( session, mechanism, templ, ulCount, key ) } pub unsafe fn C_GenerateKeyPair( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKeyPair .as_ref() .expect("Expected function, got error."))( session, mechanism, public_key_template, public_key_attribute_count, private_key_template, private_key_attribute_count, public_key, private_key, ) } pub unsafe fn C_WrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_WrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, wrapping_key, key, wrapped_key, wrapped_key_len, ) } pub unsafe fn C_UnwrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_UnwrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, unwrapping_key, wrapped_key, wrapped_key_len, templ, attribute_count, key, ) } pub unsafe fn C_DeriveKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DeriveKey .as_ref() .expect("Expected function, got error."))( session, mechanism, base_key, templ, attribute_count, key, ) } pub unsafe fn C_SeedRandom( &self, session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SeedRandom .as_ref() .expect("Expected function, got error."))(session, seed, seed_len) } pub unsafe fn C_GenerateRandom( &self, session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GenerateRandom .as_ref() .expect("Expected function, got error."))(session, random_data, random_len) } pub unsafe fn C_GetFunctionStatus(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_GetFunctionStatus .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CancelFunction(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CancelFunction .as_ref() .expect("Expected function, got error."))(session) } } cryptoki-sys-0.1.7/src/bindings/i686-unknown-linux-gnu.rs000064400000000000000000005275501046102023000213760ustar 00000000000000/* automatically generated by rust-bindgen 0.66.1 */ pub const PKCS11_H: u32 = 1; pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 40; pub const P11_KIT_CRYPTOKI_VERSION_REVISION: u32 = 0; pub const CRYPTOKI_COMPAT: u32 = 1; pub const CKF_RNG: CK_FLAGS = 1; pub const CKF_WRITE_PROTECTED: CK_FLAGS = 2; pub const CKF_LOGIN_REQUIRED: CK_FLAGS = 4; pub const CKF_USER_PIN_INITIALIZED: CK_FLAGS = 8; pub const CKF_RESTORE_KEY_NOT_NEEDED: CK_FLAGS = 32; pub const CKF_CLOCK_ON_TOKEN: CK_FLAGS = 64; pub const CKF_PROTECTED_AUTHENTICATION_PATH: CK_FLAGS = 256; pub const CKF_DUAL_CRYPTO_OPERATIONS: CK_FLAGS = 512; pub const CKF_TOKEN_INITIALIZED: CK_FLAGS = 1024; pub const CKF_SECONDARY_AUTHENTICATION: CK_FLAGS = 2048; pub const CKF_USER_PIN_COUNT_LOW: CK_FLAGS = 65536; pub const CKF_USER_PIN_FINAL_TRY: CK_FLAGS = 131072; pub const CKF_USER_PIN_LOCKED: CK_FLAGS = 262144; pub const CKF_USER_PIN_TO_BE_CHANGED: CK_FLAGS = 524288; pub const CKF_SO_PIN_COUNT_LOW: CK_FLAGS = 1048576; pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; pub const CKO_DATA: CK_OBJECT_CLASS = 0; pub const CKO_CERTIFICATE: CK_OBJECT_CLASS = 1; pub const CKO_PUBLIC_KEY: CK_OBJECT_CLASS = 2; pub const CKO_PRIVATE_KEY: CK_OBJECT_CLASS = 3; pub const CKO_SECRET_KEY: CK_OBJECT_CLASS = 4; pub const CKO_HW_FEATURE: CK_OBJECT_CLASS = 5; pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_EC: CK_KEY_TYPE = 3; pub const CKK_X9_42_DH: CK_KEY_TYPE = 4; pub const CKK_KEA: CK_KEY_TYPE = 5; pub const CKK_GENERIC_SECRET: CK_KEY_TYPE = 16; pub const CKK_RC2: CK_KEY_TYPE = 17; pub const CKK_RC4: CK_KEY_TYPE = 18; pub const CKK_DES: CK_KEY_TYPE = 19; pub const CKK_DES2: CK_KEY_TYPE = 20; pub const CKK_DES3: CK_KEY_TYPE = 21; pub const CKK_CAST: CK_KEY_TYPE = 22; pub const CKK_CAST3: CK_KEY_TYPE = 23; pub const CKK_CAST128: CK_KEY_TYPE = 24; pub const CKK_RC5: CK_KEY_TYPE = 25; pub const CKK_IDEA: CK_KEY_TYPE = 26; pub const CKK_SKIPJACK: CK_KEY_TYPE = 27; pub const CKK_BATON: CK_KEY_TYPE = 28; pub const CKK_JUNIPER: CK_KEY_TYPE = 29; pub const CKK_CDMF: CK_KEY_TYPE = 30; pub const CKK_AES: CK_KEY_TYPE = 31; pub const CKK_BLOWFISH: CK_KEY_TYPE = 32; pub const CKK_TWOFISH: CK_KEY_TYPE = 33; pub const CKK_SECURID: CK_KEY_TYPE = 34; pub const CKK_HOTP: CK_KEY_TYPE = 35; pub const CKK_ACTI: CK_KEY_TYPE = 36; pub const CKK_CAMELLIA: CK_KEY_TYPE = 37; pub const CKK_ARIA: CK_KEY_TYPE = 38; pub const CKK_MD5_HMAC: CK_KEY_TYPE = 39; pub const CKK_SHA_1_HMAC: CK_KEY_TYPE = 40; pub const CKK_RIPEMD128_HMAC: CK_KEY_TYPE = 41; pub const CKK_RIPEMD160_HMAC: CK_KEY_TYPE = 42; pub const CKK_SHA256_HMAC: CK_KEY_TYPE = 43; pub const CKK_SHA384_HMAC: CK_KEY_TYPE = 44; pub const CKK_SHA512_HMAC: CK_KEY_TYPE = 45; pub const CKK_SHA224_HMAC: CK_KEY_TYPE = 46; pub const CKK_SEED: CK_KEY_TYPE = 47; pub const CKK_GOSTR3410: CK_KEY_TYPE = 48; pub const CKK_GOSTR3411: CK_KEY_TYPE = 49; pub const CKK_GOST28147: CK_KEY_TYPE = 50; pub const CKK_EC_EDWARDS: CK_KEY_TYPE = 64; pub const CKC_X_509: CK_CERTIFICATE_TYPE = 0; pub const CKC_X_509_ATTR_CERT: CK_CERTIFICATE_TYPE = 1; pub const CKC_WTLS: CK_CERTIFICATE_TYPE = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; pub const CKA_TOKEN: CK_ATTRIBUTE_TYPE = 1; pub const CKA_PRIVATE: CK_ATTRIBUTE_TYPE = 2; pub const CKA_LABEL: CK_ATTRIBUTE_TYPE = 3; pub const CKA_APPLICATION: CK_ATTRIBUTE_TYPE = 16; pub const CKA_VALUE: CK_ATTRIBUTE_TYPE = 17; pub const CKA_OBJECT_ID: CK_ATTRIBUTE_TYPE = 18; pub const CKA_CERTIFICATE_TYPE: CK_ATTRIBUTE_TYPE = 128; pub const CKA_ISSUER: CK_ATTRIBUTE_TYPE = 129; pub const CKA_SERIAL_NUMBER: CK_ATTRIBUTE_TYPE = 130; pub const CKA_AC_ISSUER: CK_ATTRIBUTE_TYPE = 131; pub const CKA_OWNER: CK_ATTRIBUTE_TYPE = 132; pub const CKA_ATTR_TYPES: CK_ATTRIBUTE_TYPE = 133; pub const CKA_TRUSTED: CK_ATTRIBUTE_TYPE = 134; pub const CKA_CERTIFICATE_CATEGORY: CK_ATTRIBUTE_TYPE = 135; pub const CKA_JAVA_MIDP_SECURITY_DOMAIN: CK_ATTRIBUTE_TYPE = 136; pub const CKA_URL: CK_ATTRIBUTE_TYPE = 137; pub const CKA_HASH_OF_SUBJECT_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 138; pub const CKA_HASH_OF_ISSUER_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 139; pub const CKA_NAME_HASH_ALGORITHM: CK_ATTRIBUTE_TYPE = 140; pub const CKA_CHECK_VALUE: CK_ATTRIBUTE_TYPE = 144; pub const CKA_KEY_TYPE: CK_ATTRIBUTE_TYPE = 256; pub const CKA_SUBJECT: CK_ATTRIBUTE_TYPE = 257; pub const CKA_ID: CK_ATTRIBUTE_TYPE = 258; pub const CKA_SENSITIVE: CK_ATTRIBUTE_TYPE = 259; pub const CKA_ENCRYPT: CK_ATTRIBUTE_TYPE = 260; pub const CKA_DECRYPT: CK_ATTRIBUTE_TYPE = 261; pub const CKA_WRAP: CK_ATTRIBUTE_TYPE = 262; pub const CKA_UNWRAP: CK_ATTRIBUTE_TYPE = 263; pub const CKA_SIGN: CK_ATTRIBUTE_TYPE = 264; pub const CKA_SIGN_RECOVER: CK_ATTRIBUTE_TYPE = 265; pub const CKA_VERIFY: CK_ATTRIBUTE_TYPE = 266; pub const CKA_VERIFY_RECOVER: CK_ATTRIBUTE_TYPE = 267; pub const CKA_DERIVE: CK_ATTRIBUTE_TYPE = 268; pub const CKA_START_DATE: CK_ATTRIBUTE_TYPE = 272; pub const CKA_END_DATE: CK_ATTRIBUTE_TYPE = 273; pub const CKA_MODULUS: CK_ATTRIBUTE_TYPE = 288; pub const CKA_MODULUS_BITS: CK_ATTRIBUTE_TYPE = 289; pub const CKA_PUBLIC_EXPONENT: CK_ATTRIBUTE_TYPE = 290; pub const CKA_PRIVATE_EXPONENT: CK_ATTRIBUTE_TYPE = 291; pub const CKA_PRIME_1: CK_ATTRIBUTE_TYPE = 292; pub const CKA_PRIME_2: CK_ATTRIBUTE_TYPE = 293; pub const CKA_EXPONENT_1: CK_ATTRIBUTE_TYPE = 294; pub const CKA_EXPONENT_2: CK_ATTRIBUTE_TYPE = 295; pub const CKA_COEFFICIENT: CK_ATTRIBUTE_TYPE = 296; pub const CKA_PUBLIC_KEY_INFO: CK_ATTRIBUTE_TYPE = 297; pub const CKA_PRIME: CK_ATTRIBUTE_TYPE = 304; pub const CKA_SUBPRIME: CK_ATTRIBUTE_TYPE = 305; pub const CKA_BASE: CK_ATTRIBUTE_TYPE = 306; pub const CKA_PRIME_BITS: CK_ATTRIBUTE_TYPE = 307; pub const CKA_SUB_PRIME_BITS: CK_ATTRIBUTE_TYPE = 308; pub const CKA_VALUE_BITS: CK_ATTRIBUTE_TYPE = 352; pub const CKA_VALUE_LEN: CK_ATTRIBUTE_TYPE = 353; pub const CKA_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 354; pub const CKA_LOCAL: CK_ATTRIBUTE_TYPE = 355; pub const CKA_NEVER_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 356; pub const CKA_ALWAYS_SENSITIVE: CK_ATTRIBUTE_TYPE = 357; pub const CKA_KEY_GEN_MECHANISM: CK_ATTRIBUTE_TYPE = 358; pub const CKA_MODIFIABLE: CK_ATTRIBUTE_TYPE = 368; pub const CKA_COPYABLE: CK_ATTRIBUTE_TYPE = 369; pub const CKA_DESTROYABLE: CK_ATTRIBUTE_TYPE = 370; pub const CKA_ECDSA_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_POINT: CK_ATTRIBUTE_TYPE = 385; pub const CKA_SECONDARY_AUTH: CK_ATTRIBUTE_TYPE = 512; pub const CKA_AUTH_PIN_FLAGS: CK_ATTRIBUTE_TYPE = 513; pub const CKA_ALWAYS_AUTHENTICATE: CK_ATTRIBUTE_TYPE = 514; pub const CKA_WRAP_WITH_TRUSTED: CK_ATTRIBUTE_TYPE = 528; pub const CKA_OTP_FORMAT: CK_ATTRIBUTE_TYPE = 544; pub const CKA_OTP_LENGTH: CK_ATTRIBUTE_TYPE = 545; pub const CKA_OTP_TIME_INTERVAL: CK_ATTRIBUTE_TYPE = 546; pub const CKA_OTP_USER_FRIENDLY_MODE: CK_ATTRIBUTE_TYPE = 547; pub const CKA_OTP_CHALLENGE_REQUIREMENT: CK_ATTRIBUTE_TYPE = 548; pub const CKA_OTP_TIME_REQUIREMENT: CK_ATTRIBUTE_TYPE = 549; pub const CKA_OTP_COUNTER_REQUIREMENT: CK_ATTRIBUTE_TYPE = 550; pub const CKA_OTP_PIN_REQUIREMENT: CK_ATTRIBUTE_TYPE = 551; pub const CKA_OTP_USER_IDENTIFIER: CK_ATTRIBUTE_TYPE = 554; pub const CKA_OTP_SERVICE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 555; pub const CKA_OTP_SERVICE_LOGO: CK_ATTRIBUTE_TYPE = 556; pub const CKA_OTP_SERVICE_LOGO_TYPE: CK_ATTRIBUTE_TYPE = 557; pub const CKA_OTP_COUNTER: CK_ATTRIBUTE_TYPE = 558; pub const CKA_OTP_TIME: CK_ATTRIBUTE_TYPE = 559; pub const CKA_GOSTR3410_PARAMS: CK_ATTRIBUTE_TYPE = 592; pub const CKA_GOSTR3411_PARAMS: CK_ATTRIBUTE_TYPE = 593; pub const CKA_GOST28147_PARAMS: CK_ATTRIBUTE_TYPE = 594; pub const CKA_HW_FEATURE_TYPE: CK_ATTRIBUTE_TYPE = 768; pub const CKA_RESET_ON_INIT: CK_ATTRIBUTE_TYPE = 769; pub const CKA_HAS_RESET: CK_ATTRIBUTE_TYPE = 770; pub const CKA_PIXEL_X: CK_ATTRIBUTE_TYPE = 1024; pub const CKA_PIXEL_Y: CK_ATTRIBUTE_TYPE = 1025; pub const CKA_RESOLUTION: CK_ATTRIBUTE_TYPE = 1026; pub const CKA_CHAR_ROWS: CK_ATTRIBUTE_TYPE = 1027; pub const CKA_CHAR_COLUMNS: CK_ATTRIBUTE_TYPE = 1028; pub const CKA_COLOR: CK_ATTRIBUTE_TYPE = 1029; pub const CKA_BITS_PER_PIXEL: CK_ATTRIBUTE_TYPE = 1030; pub const CKA_CHAR_SETS: CK_ATTRIBUTE_TYPE = 1152; pub const CKA_ENCODING_METHODS: CK_ATTRIBUTE_TYPE = 1153; pub const CKA_MIME_TYPES: CK_ATTRIBUTE_TYPE = 1154; pub const CKA_MECHANISM_TYPE: CK_ATTRIBUTE_TYPE = 1280; pub const CKA_REQUIRED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1281; pub const CKA_DEFAULT_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1282; pub const CKA_SUPPORTED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1283; pub const CKM_RSA_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 0; pub const CKM_RSA_PKCS: CK_MECHANISM_TYPE = 1; pub const CKM_RSA_9796: CK_MECHANISM_TYPE = 2; pub const CKM_RSA_X_509: CK_MECHANISM_TYPE = 3; pub const CKM_MD2_RSA_PKCS: CK_MECHANISM_TYPE = 4; pub const CKM_MD5_RSA_PKCS: CK_MECHANISM_TYPE = 5; pub const CKM_SHA1_RSA_PKCS: CK_MECHANISM_TYPE = 6; pub const CKM_RIPEMD128_RSA_PKCS: CK_MECHANISM_TYPE = 7; pub const CKM_RIPEMD160_RSA_PKCS: CK_MECHANISM_TYPE = 8; pub const CKM_RSA_PKCS_OAEP: CK_MECHANISM_TYPE = 9; pub const CKM_RSA_X9_31_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 10; pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; pub const CKM_SHA256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 67; pub const CKM_SHA384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 68; pub const CKM_SHA512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 69; pub const CKM_SHA512_224: CK_MECHANISM_TYPE = 72; pub const CKM_SHA512_224_HMAC: CK_MECHANISM_TYPE = 73; pub const CKM_SHA512_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 74; pub const CKM_SHA512_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 75; pub const CKM_SHA512_256: CK_MECHANISM_TYPE = 76; pub const CKM_SHA512_256_HMAC: CK_MECHANISM_TYPE = 77; pub const CKM_SHA512_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 78; pub const CKM_SHA512_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 79; pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; pub const CKM_RC2_KEY_GEN: CK_MECHANISM_TYPE = 256; pub const CKM_RC2_ECB: CK_MECHANISM_TYPE = 257; pub const CKM_RC2_CBC: CK_MECHANISM_TYPE = 258; pub const CKM_RC2_MAC: CK_MECHANISM_TYPE = 259; pub const CKM_RC2_MAC_GENERAL: CK_MECHANISM_TYPE = 260; pub const CKM_RC2_CBC_PAD: CK_MECHANISM_TYPE = 261; pub const CKM_RC4_KEY_GEN: CK_MECHANISM_TYPE = 272; pub const CKM_RC4: CK_MECHANISM_TYPE = 273; pub const CKM_DES_KEY_GEN: CK_MECHANISM_TYPE = 288; pub const CKM_DES_ECB: CK_MECHANISM_TYPE = 289; pub const CKM_DES_CBC: CK_MECHANISM_TYPE = 290; pub const CKM_DES_MAC: CK_MECHANISM_TYPE = 291; pub const CKM_DES_MAC_GENERAL: CK_MECHANISM_TYPE = 292; pub const CKM_DES_CBC_PAD: CK_MECHANISM_TYPE = 293; pub const CKM_DES2_KEY_GEN: CK_MECHANISM_TYPE = 304; pub const CKM_DES3_KEY_GEN: CK_MECHANISM_TYPE = 305; pub const CKM_DES3_ECB: CK_MECHANISM_TYPE = 306; pub const CKM_DES3_CBC: CK_MECHANISM_TYPE = 307; pub const CKM_DES3_MAC: CK_MECHANISM_TYPE = 308; pub const CKM_DES3_MAC_GENERAL: CK_MECHANISM_TYPE = 309; pub const CKM_DES3_CBC_PAD: CK_MECHANISM_TYPE = 310; pub const CKM_DES3_CMAC_GENERAL: CK_MECHANISM_TYPE = 311; pub const CKM_DES3_CMAC: CK_MECHANISM_TYPE = 312; pub const CKM_CDMF_KEY_GEN: CK_MECHANISM_TYPE = 320; pub const CKM_CDMF_ECB: CK_MECHANISM_TYPE = 321; pub const CKM_CDMF_CBC: CK_MECHANISM_TYPE = 322; pub const CKM_CDMF_MAC: CK_MECHANISM_TYPE = 323; pub const CKM_CDMF_MAC_GENERAL: CK_MECHANISM_TYPE = 324; pub const CKM_CDMF_CBC_PAD: CK_MECHANISM_TYPE = 325; pub const CKM_DES_OFB64: CK_MECHANISM_TYPE = 336; pub const CKM_DES_OFB8: CK_MECHANISM_TYPE = 337; pub const CKM_DES_CFB64: CK_MECHANISM_TYPE = 338; pub const CKM_DES_CFB8: CK_MECHANISM_TYPE = 339; pub const CKM_MD2: CK_MECHANISM_TYPE = 512; pub const CKM_MD2_HMAC: CK_MECHANISM_TYPE = 513; pub const CKM_MD2_HMAC_GENERAL: CK_MECHANISM_TYPE = 514; pub const CKM_MD5: CK_MECHANISM_TYPE = 528; pub const CKM_MD5_HMAC: CK_MECHANISM_TYPE = 529; pub const CKM_MD5_HMAC_GENERAL: CK_MECHANISM_TYPE = 530; pub const CKM_SHA_1: CK_MECHANISM_TYPE = 544; pub const CKM_SHA_1_HMAC: CK_MECHANISM_TYPE = 545; pub const CKM_SHA_1_HMAC_GENERAL: CK_MECHANISM_TYPE = 546; pub const CKM_RIPEMD128: CK_MECHANISM_TYPE = 560; pub const CKM_RIPEMD128_HMAC: CK_MECHANISM_TYPE = 561; pub const CKM_RIPEMD128_HMAC_GENERAL: CK_MECHANISM_TYPE = 562; pub const CKM_RIPEMD160: CK_MECHANISM_TYPE = 576; pub const CKM_RIPEMD160_HMAC: CK_MECHANISM_TYPE = 577; pub const CKM_RIPEMD160_HMAC_GENERAL: CK_MECHANISM_TYPE = 578; pub const CKM_SHA256: CK_MECHANISM_TYPE = 592; pub const CKM_SHA256_HMAC: CK_MECHANISM_TYPE = 593; pub const CKM_SHA256_HMAC_GENERAL: CK_MECHANISM_TYPE = 594; pub const CKM_SHA384: CK_MECHANISM_TYPE = 608; pub const CKM_SHA384_HMAC: CK_MECHANISM_TYPE = 609; pub const CKM_SHA384_HMAC_GENERAL: CK_MECHANISM_TYPE = 610; pub const CKM_SHA512: CK_MECHANISM_TYPE = 624; pub const CKM_SHA512_HMAC: CK_MECHANISM_TYPE = 625; pub const CKM_SHA512_HMAC_GENERAL: CK_MECHANISM_TYPE = 626; pub const CKM_SECURID_KEY_GEN: CK_MECHANISM_TYPE = 640; pub const CKM_SECURID: CK_MECHANISM_TYPE = 642; pub const CKM_HOTP_KEY_GEN: CK_MECHANISM_TYPE = 656; pub const CKM_HOTP: CK_MECHANISM_TYPE = 657; pub const CKM_ACTI: CK_MECHANISM_TYPE = 672; pub const CKM_ACTI_KEY_GEN: CK_MECHANISM_TYPE = 673; pub const CKM_CAST_KEY_GEN: CK_MECHANISM_TYPE = 768; pub const CKM_CAST_ECB: CK_MECHANISM_TYPE = 769; pub const CKM_CAST_CBC: CK_MECHANISM_TYPE = 770; pub const CKM_CAST_MAC: CK_MECHANISM_TYPE = 771; pub const CKM_CAST_MAC_GENERAL: CK_MECHANISM_TYPE = 772; pub const CKM_CAST_CBC_PAD: CK_MECHANISM_TYPE = 773; pub const CKM_CAST3_KEY_GEN: CK_MECHANISM_TYPE = 784; pub const CKM_CAST3_ECB: CK_MECHANISM_TYPE = 785; pub const CKM_CAST3_CBC: CK_MECHANISM_TYPE = 786; pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST128_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_CAST128_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_RC5_KEY_GEN: CK_MECHANISM_TYPE = 816; pub const CKM_RC5_ECB: CK_MECHANISM_TYPE = 817; pub const CKM_RC5_CBC: CK_MECHANISM_TYPE = 818; pub const CKM_RC5_MAC: CK_MECHANISM_TYPE = 819; pub const CKM_RC5_MAC_GENERAL: CK_MECHANISM_TYPE = 820; pub const CKM_RC5_CBC_PAD: CK_MECHANISM_TYPE = 821; pub const CKM_IDEA_KEY_GEN: CK_MECHANISM_TYPE = 832; pub const CKM_IDEA_ECB: CK_MECHANISM_TYPE = 833; pub const CKM_IDEA_CBC: CK_MECHANISM_TYPE = 834; pub const CKM_IDEA_MAC: CK_MECHANISM_TYPE = 835; pub const CKM_IDEA_MAC_GENERAL: CK_MECHANISM_TYPE = 836; pub const CKM_IDEA_CBC_PAD: CK_MECHANISM_TYPE = 837; pub const CKM_GENERIC_SECRET_KEY_GEN: CK_MECHANISM_TYPE = 848; pub const CKM_CONCATENATE_BASE_AND_KEY: CK_MECHANISM_TYPE = 864; pub const CKM_CONCATENATE_BASE_AND_DATA: CK_MECHANISM_TYPE = 866; pub const CKM_CONCATENATE_DATA_AND_BASE: CK_MECHANISM_TYPE = 867; pub const CKM_XOR_BASE_AND_DATA: CK_MECHANISM_TYPE = 868; pub const CKM_EXTRACT_KEY_FROM_KEY: CK_MECHANISM_TYPE = 869; pub const CKM_SSL3_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 880; pub const CKM_SSL3_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 881; pub const CKM_SSL3_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 882; pub const CKM_SSL3_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 883; pub const CKM_TLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 884; pub const CKM_TLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 885; pub const CKM_TLS_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 886; pub const CKM_TLS_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 887; pub const CKM_TLS_PRF: CK_MECHANISM_TYPE = 888; pub const CKM_SSL3_MD5_MAC: CK_MECHANISM_TYPE = 896; pub const CKM_SSL3_SHA1_MAC: CK_MECHANISM_TYPE = 897; pub const CKM_MD5_KEY_DERIVATION: CK_MECHANISM_TYPE = 912; pub const CKM_MD2_KEY_DERIVATION: CK_MECHANISM_TYPE = 913; pub const CKM_SHA1_KEY_DERIVATION: CK_MECHANISM_TYPE = 914; pub const CKM_SHA256_KEY_DERIVATION: CK_MECHANISM_TYPE = 915; pub const CKM_SHA384_KEY_DERIVATION: CK_MECHANISM_TYPE = 916; pub const CKM_SHA512_KEY_DERIVATION: CK_MECHANISM_TYPE = 917; pub const CKM_PBE_MD2_DES_CBC: CK_MECHANISM_TYPE = 928; pub const CKM_PBE_MD5_DES_CBC: CK_MECHANISM_TYPE = 929; pub const CKM_PBE_MD5_CAST_CBC: CK_MECHANISM_TYPE = 930; pub const CKM_PBE_MD5_CAST3_CBC: CK_MECHANISM_TYPE = 931; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_MD5_CAST128_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_CAST128_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_RC4_128: CK_MECHANISM_TYPE = 934; pub const CKM_PBE_SHA1_RC4_40: CK_MECHANISM_TYPE = 935; pub const CKM_PBE_SHA1_DES3_EDE_CBC: CK_MECHANISM_TYPE = 936; pub const CKM_PBE_SHA1_DES2_EDE_CBC: CK_MECHANISM_TYPE = 937; pub const CKM_PBE_SHA1_RC2_128_CBC: CK_MECHANISM_TYPE = 938; pub const CKM_PBE_SHA1_RC2_40_CBC: CK_MECHANISM_TYPE = 939; pub const CKM_PKCS5_PBKD2: CK_MECHANISM_TYPE = 944; pub const CKM_PBA_SHA1_WITH_SHA1_HMAC: CK_MECHANISM_TYPE = 960; pub const CKM_WTLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 976; pub const CKM_WTLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 977; pub const CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC: CK_MECHANISM_TYPE = 978; pub const CKM_WTLS_PRF: CK_MECHANISM_TYPE = 979; pub const CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 980; pub const CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 981; pub const CKM_TLS10_MAC_SERVER: CK_MECHANISM_TYPE = 982; pub const CKM_TLS10_MAC_CLIENT: CK_MECHANISM_TYPE = 983; pub const CKM_TLS12_MAC: CK_MECHANISM_TYPE = 984; pub const CKM_TLS12_KDF: CK_MECHANISM_TYPE = 985; pub const CKM_TLS12_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 992; pub const CKM_TLS12_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 993; pub const CKM_TLS12_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 994; pub const CKM_TLS12_KEY_SAFE_DERIVE: CK_MECHANISM_TYPE = 995; pub const CKM_TLS_MAC: CK_MECHANISM_TYPE = 996; pub const CKM_TLS_KDF: CK_MECHANISM_TYPE = 997; pub const CKM_KEY_WRAP_LYNKS: CK_MECHANISM_TYPE = 1024; pub const CKM_KEY_WRAP_SET_OAEP: CK_MECHANISM_TYPE = 1025; pub const CKM_CMS_SIG: CK_MECHANISM_TYPE = 1280; pub const CKM_KIP_DERIVE: CK_MECHANISM_TYPE = 1296; pub const CKM_KIP_WRAP: CK_MECHANISM_TYPE = 1297; pub const CKM_KIP_MAC: CK_MECHANISM_TYPE = 1298; pub const CKM_CAMELLIA_KEY_GEN: CK_MECHANISM_TYPE = 1360; pub const CKM_CAMELLIA_CTR: CK_MECHANISM_TYPE = 1368; pub const CKM_ARIA_KEY_GEN: CK_MECHANISM_TYPE = 1376; pub const CKM_ARIA_ECB: CK_MECHANISM_TYPE = 1377; pub const CKM_ARIA_CBC: CK_MECHANISM_TYPE = 1378; pub const CKM_ARIA_MAC: CK_MECHANISM_TYPE = 1379; pub const CKM_ARIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1380; pub const CKM_ARIA_CBC_PAD: CK_MECHANISM_TYPE = 1381; pub const CKM_ARIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1382; pub const CKM_ARIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1383; pub const CKM_SEED_KEY_GEN: CK_MECHANISM_TYPE = 1616; pub const CKM_SEED_ECB: CK_MECHANISM_TYPE = 1617; pub const CKM_SEED_CBC: CK_MECHANISM_TYPE = 1618; pub const CKM_SEED_MAC: CK_MECHANISM_TYPE = 1619; pub const CKM_SEED_MAC_GENERAL: CK_MECHANISM_TYPE = 1620; pub const CKM_SEED_CBC_PAD: CK_MECHANISM_TYPE = 1621; pub const CKM_SEED_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1622; pub const CKM_SEED_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1623; pub const CKM_SKIPJACK_KEY_GEN: CK_MECHANISM_TYPE = 4096; pub const CKM_SKIPJACK_ECB64: CK_MECHANISM_TYPE = 4097; pub const CKM_SKIPJACK_CBC64: CK_MECHANISM_TYPE = 4098; pub const CKM_SKIPJACK_OFB64: CK_MECHANISM_TYPE = 4099; pub const CKM_SKIPJACK_CFB64: CK_MECHANISM_TYPE = 4100; pub const CKM_SKIPJACK_CFB32: CK_MECHANISM_TYPE = 4101; pub const CKM_SKIPJACK_CFB16: CK_MECHANISM_TYPE = 4102; pub const CKM_SKIPJACK_CFB8: CK_MECHANISM_TYPE = 4103; pub const CKM_SKIPJACK_WRAP: CK_MECHANISM_TYPE = 4104; pub const CKM_SKIPJACK_PRIVATE_WRAP: CK_MECHANISM_TYPE = 4105; pub const CKM_SKIPJACK_RELAYX: CK_MECHANISM_TYPE = 4106; pub const CKM_KEA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4112; pub const CKM_KEA_KEY_DERIVE: CK_MECHANISM_TYPE = 4113; pub const CKM_FORTEZZA_TIMESTAMP: CK_MECHANISM_TYPE = 4128; pub const CKM_BATON_KEY_GEN: CK_MECHANISM_TYPE = 4144; pub const CKM_BATON_ECB128: CK_MECHANISM_TYPE = 4145; pub const CKM_BATON_ECB96: CK_MECHANISM_TYPE = 4146; pub const CKM_BATON_CBC128: CK_MECHANISM_TYPE = 4147; pub const CKM_BATON_COUNTER: CK_MECHANISM_TYPE = 4148; pub const CKM_BATON_SHUFFLE: CK_MECHANISM_TYPE = 4149; pub const CKM_BATON_WRAP: CK_MECHANISM_TYPE = 4150; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_EC_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_ECDSA: CK_MECHANISM_TYPE = 4161; pub const CKM_ECDSA_SHA1: CK_MECHANISM_TYPE = 4162; pub const CKM_ECDSA_SHA224: CK_MECHANISM_TYPE = 4163; pub const CKM_ECDSA_SHA256: CK_MECHANISM_TYPE = 4164; pub const CKM_ECDSA_SHA384: CK_MECHANISM_TYPE = 4165; pub const CKM_ECDSA_SHA512: CK_MECHANISM_TYPE = 4166; pub const CKM_ECDH1_DERIVE: CK_MECHANISM_TYPE = 4176; pub const CKM_ECDH1_COFACTOR_DERIVE: CK_MECHANISM_TYPE = 4177; pub const CKM_ECMQV_DERIVE: CK_MECHANISM_TYPE = 4178; pub const CKM_ECDH_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4179; pub const CKM_RSA_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4180; pub const CKM_JUNIPER_KEY_GEN: CK_MECHANISM_TYPE = 4192; pub const CKM_JUNIPER_ECB128: CK_MECHANISM_TYPE = 4193; pub const CKM_JUNIPER_CBC128: CK_MECHANISM_TYPE = 4194; pub const CKM_JUNIPER_COUNTER: CK_MECHANISM_TYPE = 4195; pub const CKM_JUNIPER_SHUFFLE: CK_MECHANISM_TYPE = 4196; pub const CKM_JUNIPER_WRAP: CK_MECHANISM_TYPE = 4197; pub const CKM_FASTHASH: CK_MECHANISM_TYPE = 4208; pub const CKM_AES_KEY_GEN: CK_MECHANISM_TYPE = 4224; pub const CKM_AES_ECB: CK_MECHANISM_TYPE = 4225; pub const CKM_AES_CBC: CK_MECHANISM_TYPE = 4226; pub const CKM_AES_MAC: CK_MECHANISM_TYPE = 4227; pub const CKM_AES_MAC_GENERAL: CK_MECHANISM_TYPE = 4228; pub const CKM_AES_CBC_PAD: CK_MECHANISM_TYPE = 4229; pub const CKM_AES_CTR: CK_MECHANISM_TYPE = 4230; pub const CKM_AES_GCM: CK_MECHANISM_TYPE = 4231; pub const CKM_AES_CCM: CK_MECHANISM_TYPE = 4232; pub const CKM_AES_CTS: CK_MECHANISM_TYPE = 4233; pub const CKM_AES_CMAC: CK_MECHANISM_TYPE = 4234; pub const CKM_AES_CMAC_GENERAL: CK_MECHANISM_TYPE = 4235; pub const CKM_AES_XCBC_MAC: CK_MECHANISM_TYPE = 4236; pub const CKM_AES_XCBC_MAC_96: CK_MECHANISM_TYPE = 4237; pub const CKM_AES_GMAC: CK_MECHANISM_TYPE = 4238; pub const CKM_BLOWFISH_KEY_GEN: CK_MECHANISM_TYPE = 4240; pub const CKM_BLOWFISH_CBC: CK_MECHANISM_TYPE = 4241; pub const CKM_TWOFISH_KEY_GEN: CK_MECHANISM_TYPE = 4242; pub const CKM_TWOFISH_CBC: CK_MECHANISM_TYPE = 4243; pub const CKM_BLOWFISH_CBC_PAD: CK_MECHANISM_TYPE = 4244; pub const CKM_TWOFISH_CBC_PAD: CK_MECHANISM_TYPE = 4245; pub const CKM_DES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4352; pub const CKM_DES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4353; pub const CKM_DES3_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4354; pub const CKM_DES3_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4355; pub const CKM_AES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4356; pub const CKM_AES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4357; pub const CKM_GOSTR3410_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4608; pub const CKM_GOSTR3410: CK_MECHANISM_TYPE = 4609; pub const CKM_GOSTR3410_WITH_GOSTR3411: CK_MECHANISM_TYPE = 4610; pub const CKM_GOSTR3410_KEY_WRAP: CK_MECHANISM_TYPE = 4611; pub const CKM_GOSTR3410_DERIVE: CK_MECHANISM_TYPE = 4612; pub const CKM_GOSTR3411: CK_MECHANISM_TYPE = 4624; pub const CKM_GOSTR3411_HMAC: CK_MECHANISM_TYPE = 4625; pub const CKM_GOST28147_KEY_GEN: CK_MECHANISM_TYPE = 4640; pub const CKM_GOST28147_ECB: CK_MECHANISM_TYPE = 4641; pub const CKM_GOST28147: CK_MECHANISM_TYPE = 4642; pub const CKM_GOST28147_MAC: CK_MECHANISM_TYPE = 4643; pub const CKM_GOST28147_KEY_WRAP: CK_MECHANISM_TYPE = 4644; pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; pub const CKM_AES_CFB64: CK_MECHANISM_TYPE = 8453; pub const CKM_AES_CFB8: CK_MECHANISM_TYPE = 8454; pub const CKM_AES_CFB128: CK_MECHANISM_TYPE = 8455; pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_SHA224: CK_MECHANISM_TYPE = 597; pub const CKM_SHA224_HMAC: CK_MECHANISM_TYPE = 598; pub const CKM_SHA224_HMAC_GENERAL: CK_MECHANISM_TYPE = 599; pub const CKM_SHA224_RSA_PKCS: CK_MECHANISM_TYPE = 70; pub const CKM_SHA224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 71; pub const CKM_SHA224_KEY_DERIVATION: CK_MECHANISM_TYPE = 918; pub const CKM_CAMELLIA_ECB: CK_MECHANISM_TYPE = 1361; pub const CKM_CAMELLIA_CBC: CK_MECHANISM_TYPE = 1362; pub const CKM_CAMELLIA_MAC: CK_MECHANISM_TYPE = 1363; pub const CKM_CAMELLIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1364; pub const CKM_CAMELLIA_CBC_PAD: CK_MECHANISM_TYPE = 1365; pub const CKM_CAMELLIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1366; pub const CKM_CAMELLIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1367; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_EC_EDWARDS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4181; pub const CKM_EC_MONTGOMERY_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4182; pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CK_OTP_FORMAT_DECIMAL: CK_ULONG = 0; pub const CK_OTP_FORMAT_HEXADECIMAL: CK_ULONG = 1; pub const CK_OTP_FORMAT_ALPHANUMERIC: CK_ULONG = 2; pub const CK_OTP_FORMAT_BINARY: CK_ULONG = 3; pub const CK_OTP_PARAM_IGNORED: CK_ULONG = 0; pub const CK_OTP_PARAM_OPTIONAL: CK_ULONG = 1; pub const CK_OTP_PARAM_MANDATORY: CK_ULONG = 2; pub const CK_OTP_VALUE: CK_ULONG = 0; pub const CK_OTP_PIN: CK_ULONG = 1; pub const CK_OTP_CHALLENGE: CK_ULONG = 2; pub const CK_OTP_TIME: CK_ULONG = 3; pub const CK_OTP_COUNTER: CK_ULONG = 4; pub const CK_OTP_FLAGS: CK_ULONG = 5; pub const CK_OTP_OUTPUT_LENGTH: CK_ULONG = 6; pub const CK_OTP_FORMAT: CK_ULONG = 7; pub const CKF_NEXT_OTP: CK_FLAGS = 1; pub const CKF_EXCLUDE_TIME: CK_FLAGS = 2; pub const CKF_EXCLUDE_COUNTER: CK_FLAGS = 4; pub const CKF_EXCLUDE_CHALLENGE: CK_FLAGS = 8; pub const CKF_EXCLUDE_PIN: CK_FLAGS = 16; pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKG_MGF1_SHA1: CK_RSA_PKCS_MGF_TYPE = 1; pub const CKG_MGF1_SHA224: CK_RSA_PKCS_MGF_TYPE = 5; pub const CKG_MGF1_SHA256: CK_RSA_PKCS_MGF_TYPE = 2; pub const CKG_MGF1_SHA384: CK_RSA_PKCS_MGF_TYPE = 3; pub const CKG_MGF1_SHA512: CK_RSA_PKCS_MGF_TYPE = 4; pub const CKD_NULL: CK_EC_KDF_TYPE = 1; pub const CKD_SHA1_KDF: CK_EC_KDF_TYPE = 2; pub const CKD_SHA1_KDF_ASN1: CK_EC_KDF_TYPE = 3; pub const CKD_SHA1_KDF_CONCATENATE: CK_EC_KDF_TYPE = 4; pub const CKD_SHA224_KDF: CK_EC_KDF_TYPE = 5; pub const CKD_SHA256_KDF: CK_EC_KDF_TYPE = 6; pub const CKD_SHA384_KDF: CK_EC_KDF_TYPE = 7; pub const CKD_SHA512_KDF: CK_EC_KDF_TYPE = 8; pub const CKD_CPDIVERSIFY_KDF: CK_EC_KDF_TYPE = 9; pub const CKF_HW: CK_FLAGS = 1; pub const CKF_ENCRYPT: CK_FLAGS = 256; pub const CKF_DECRYPT: CK_FLAGS = 512; pub const CKF_DIGEST: CK_FLAGS = 1024; pub const CKF_SIGN: CK_FLAGS = 2048; pub const CKF_SIGN_RECOVER: CK_FLAGS = 4096; pub const CKF_VERIFY: CK_FLAGS = 8192; pub const CKF_VERIFY_RECOVER: CK_FLAGS = 16384; pub const CKF_GENERATE: CK_FLAGS = 32768; pub const CKF_GENERATE_KEY_PAIR: CK_FLAGS = 65536; pub const CKF_WRAP: CK_FLAGS = 131072; pub const CKF_UNWRAP: CK_FLAGS = 262144; pub const CKF_DERIVE: CK_FLAGS = 524288; pub const CKF_EC_F_P: CK_FLAGS = 1048576; pub const CKF_EC_F_2M: CK_FLAGS = 2097152; pub const CKF_EC_ECPARAMETERS: CK_FLAGS = 4194304; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_LIBRARY_CANT_CREATE_OS_THREADS: CK_FLAGS = 1; pub const CKF_OS_LOCKING_OK: CK_FLAGS = 2; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; pub const CKR_SLOT_ID_INVALID: CK_RV = 3; pub const CKR_GENERAL_ERROR: CK_RV = 5; pub const CKR_FUNCTION_FAILED: CK_RV = 6; pub const CKR_ARGUMENTS_BAD: CK_RV = 7; pub const CKR_NO_EVENT: CK_RV = 8; pub const CKR_NEED_TO_CREATE_THREADS: CK_RV = 9; pub const CKR_CANT_LOCK: CK_RV = 10; pub const CKR_ATTRIBUTE_READ_ONLY: CK_RV = 16; pub const CKR_ATTRIBUTE_SENSITIVE: CK_RV = 17; pub const CKR_ATTRIBUTE_TYPE_INVALID: CK_RV = 18; pub const CKR_ATTRIBUTE_VALUE_INVALID: CK_RV = 19; pub const CKR_ACTION_PROHIBITED: CK_RV = 27; pub const CKR_DATA_INVALID: CK_RV = 32; pub const CKR_DATA_LEN_RANGE: CK_RV = 33; pub const CKR_DEVICE_ERROR: CK_RV = 48; pub const CKR_DEVICE_MEMORY: CK_RV = 49; pub const CKR_DEVICE_REMOVED: CK_RV = 50; pub const CKR_ENCRYPTED_DATA_INVALID: CK_RV = 64; pub const CKR_ENCRYPTED_DATA_LEN_RANGE: CK_RV = 65; pub const CKR_FUNCTION_CANCELED: CK_RV = 80; pub const CKR_FUNCTION_NOT_PARALLEL: CK_RV = 81; pub const CKR_FUNCTION_NOT_SUPPORTED: CK_RV = 84; pub const CKR_KEY_HANDLE_INVALID: CK_RV = 96; pub const CKR_KEY_SIZE_RANGE: CK_RV = 98; pub const CKR_KEY_TYPE_INCONSISTENT: CK_RV = 99; pub const CKR_KEY_NOT_NEEDED: CK_RV = 100; pub const CKR_KEY_CHANGED: CK_RV = 101; pub const CKR_KEY_NEEDED: CK_RV = 102; pub const CKR_KEY_INDIGESTIBLE: CK_RV = 103; pub const CKR_KEY_FUNCTION_NOT_PERMITTED: CK_RV = 104; pub const CKR_KEY_NOT_WRAPPABLE: CK_RV = 105; pub const CKR_KEY_UNEXTRACTABLE: CK_RV = 106; pub const CKR_MECHANISM_INVALID: CK_RV = 112; pub const CKR_MECHANISM_PARAM_INVALID: CK_RV = 113; pub const CKR_OBJECT_HANDLE_INVALID: CK_RV = 130; pub const CKR_OPERATION_ACTIVE: CK_RV = 144; pub const CKR_OPERATION_NOT_INITIALIZED: CK_RV = 145; pub const CKR_PIN_INCORRECT: CK_RV = 160; pub const CKR_PIN_INVALID: CK_RV = 161; pub const CKR_PIN_LEN_RANGE: CK_RV = 162; pub const CKR_PIN_EXPIRED: CK_RV = 163; pub const CKR_PIN_LOCKED: CK_RV = 164; pub const CKR_SESSION_CLOSED: CK_RV = 176; pub const CKR_SESSION_COUNT: CK_RV = 177; pub const CKR_SESSION_HANDLE_INVALID: CK_RV = 179; pub const CKR_SESSION_PARALLEL_NOT_SUPPORTED: CK_RV = 180; pub const CKR_SESSION_READ_ONLY: CK_RV = 181; pub const CKR_SESSION_EXISTS: CK_RV = 182; pub const CKR_SESSION_READ_ONLY_EXISTS: CK_RV = 183; pub const CKR_SESSION_READ_WRITE_SO_EXISTS: CK_RV = 184; pub const CKR_SIGNATURE_INVALID: CK_RV = 192; pub const CKR_SIGNATURE_LEN_RANGE: CK_RV = 193; pub const CKR_TEMPLATE_INCOMPLETE: CK_RV = 208; pub const CKR_TEMPLATE_INCONSISTENT: CK_RV = 209; pub const CKR_TOKEN_NOT_PRESENT: CK_RV = 224; pub const CKR_TOKEN_NOT_RECOGNIZED: CK_RV = 225; pub const CKR_TOKEN_WRITE_PROTECTED: CK_RV = 226; pub const CKR_UNWRAPPING_KEY_HANDLE_INVALID: CK_RV = 240; pub const CKR_UNWRAPPING_KEY_SIZE_RANGE: CK_RV = 241; pub const CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 242; pub const CKR_USER_ALREADY_LOGGED_IN: CK_RV = 256; pub const CKR_USER_NOT_LOGGED_IN: CK_RV = 257; pub const CKR_USER_PIN_NOT_INITIALIZED: CK_RV = 258; pub const CKR_USER_TYPE_INVALID: CK_RV = 259; pub const CKR_USER_ANOTHER_ALREADY_LOGGED_IN: CK_RV = 260; pub const CKR_USER_TOO_MANY_TYPES: CK_RV = 261; pub const CKR_WRAPPED_KEY_INVALID: CK_RV = 272; pub const CKR_WRAPPED_KEY_LEN_RANGE: CK_RV = 274; pub const CKR_WRAPPING_KEY_HANDLE_INVALID: CK_RV = 275; pub const CKR_WRAPPING_KEY_SIZE_RANGE: CK_RV = 276; pub const CKR_WRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 277; pub const CKR_RANDOM_SEED_NOT_SUPPORTED: CK_RV = 288; pub const CKR_RANDOM_NO_RNG: CK_RV = 289; pub const CKR_DOMAIN_PARAMS_INVALID: CK_RV = 304; pub const CKR_BUFFER_TOO_SMALL: CK_RV = 336; pub const CKR_SAVED_STATE_INVALID: CK_RV = 352; pub const CKR_INFORMATION_SENSITIVE: CK_RV = 368; pub const CKR_STATE_UNSAVEABLE: CK_RV = 384; pub const CKR_CRYPTOKI_NOT_INITIALIZED: CK_RV = 400; pub const CKR_CRYPTOKI_ALREADY_INITIALIZED: CK_RV = 401; pub const CKR_MUTEX_BAD: CK_RV = 416; pub const CKR_MUTEX_NOT_LOCKED: CK_RV = 417; pub const CKR_NEW_PIN_MODE: CK_RV = 432; pub const CKR_NEXT_OTP: CK_RV = 433; pub const CKR_EXCEEDED_MAX_ITERATIONS: CK_RV = 448; pub const CKR_FIPS_SELF_TEST_FAILED: CK_RV = 449; pub const CKR_LIBRARY_LOAD_FAILED: CK_RV = 450; pub const CKR_PIN_TOO_WEAK: CK_RV = 451; pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 452; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CK_FALSE: CK_BBOOL = 0; pub const CK_TRUE: CK_BBOOL = 1; pub const FALSE: u32 = 0; pub const TRUE: u32 = 1; pub type CK_FLAGS = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_VERSION { pub major: ::std::os::raw::c_uchar, pub minor: ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout__CK_VERSION() { const UNINIT: ::std::mem::MaybeUninit<_CK_VERSION> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_VERSION>(), 2usize, concat!("Size of: ", stringify!(_CK_VERSION)) ); assert_eq!( ::std::mem::align_of::<_CK_VERSION>(), 1usize, concat!("Alignment of ", stringify!(_CK_VERSION)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).major) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(major) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).minor) as usize - ptr as usize }, 1usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(minor) ) ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_INFO { pub cryptokiVersion: _CK_VERSION, pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub libraryDescription: [::std::os::raw::c_uchar; 32usize], pub libraryVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_INFO>(), 76usize, concat!("Size of: ", stringify!(_CK_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_INFO>(), 4usize, concat!("Alignment of ", stringify!(_CK_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cryptokiVersion) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(cryptokiVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 2usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 36usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryDescription) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryVersion) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryVersion) ) ); } pub type CK_NOTIFICATION = ::std::os::raw::c_ulong; pub const CKN_SURRENDER: ::std::os::raw::c_ulong = 0; pub type CK_SLOT_ID = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_SLOT_INFO { pub slotDescription: [::std::os::raw::c_uchar; 64usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_SLOT_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SLOT_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SLOT_INFO>(), 104usize, concat!("Size of: ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SLOT_INFO>(), 4usize, concat!("Alignment of ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotDescription) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(slotDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 100usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 102usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(firmwareVersion) ) ); } impl Default for _CK_SLOT_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub const CKF_TOKEN_PRESENT: ::std::os::raw::c_ulong = 1; pub const CKF_REMOVABLE_DEVICE: ::std::os::raw::c_ulong = 2; pub const CKF_HW_SLOT: ::std::os::raw::c_ulong = 4; pub const CKF_ARRAY_ATTRIBUTE: ::std::os::raw::c_ulong = 1073741824; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_TOKEN_INFO { pub label: [::std::os::raw::c_uchar; 32usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub model: [::std::os::raw::c_uchar; 16usize], pub serialNumber: [::std::os::raw::c_uchar; 16usize], pub flags: CK_FLAGS, pub ulMaxSessionCount: ::std::os::raw::c_ulong, pub ulSessionCount: ::std::os::raw::c_ulong, pub ulMaxRwSessionCount: ::std::os::raw::c_ulong, pub ulRwSessionCount: ::std::os::raw::c_ulong, pub ulMaxPinLen: ::std::os::raw::c_ulong, pub ulMinPinLen: ::std::os::raw::c_ulong, pub ulTotalPublicMemory: ::std::os::raw::c_ulong, pub ulFreePublicMemory: ::std::os::raw::c_ulong, pub ulTotalPrivateMemory: ::std::os::raw::c_ulong, pub ulFreePrivateMemory: ::std::os::raw::c_ulong, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, pub utcTime: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout__CK_TOKEN_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_TOKEN_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_TOKEN_INFO>(), 160usize, concat!("Size of: ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_TOKEN_INFO>(), 4usize, concat!("Alignment of ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(label) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).model) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(model) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).serialNumber) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(serialNumber) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxSessionCount) as usize - ptr as usize }, 100usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSessionCount) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxRwSessionCount) as usize - ptr as usize }, 108usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulRwSessionCount) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxPinLen) as usize - ptr as usize }, 116usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinPinLen) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMinPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPublicMemory) as usize - ptr as usize }, 124usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePublicMemory) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPrivateMemory) as usize - ptr as usize }, 132usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePrivateMemory) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 140usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 142usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(firmwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).utcTime) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(utcTime) ) ); } pub type CK_SESSION_HANDLE = ::std::os::raw::c_ulong; pub type CK_USER_TYPE = ::std::os::raw::c_ulong; pub type CK_STATE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_SESSION_INFO { pub slotID: CK_SLOT_ID, pub state: CK_STATE, pub flags: CK_FLAGS, pub ulDeviceError: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_SESSION_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SESSION_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SESSION_INFO>(), 16usize, concat!("Size of: ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SESSION_INFO>(), 4usize, concat!("Alignment of ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotID) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(slotID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(state) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulDeviceError) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(ulDeviceError) ) ); } pub type CK_OBJECT_HANDLE = ::std::os::raw::c_ulong; pub type CK_OBJECT_CLASS = ::std::os::raw::c_ulong; pub type CK_HW_FEATURE_TYPE = ::std::os::raw::c_ulong; pub type CK_KEY_TYPE = ::std::os::raw::c_ulong; pub type CK_CERTIFICATE_TYPE = ::std::os::raw::c_ulong; pub type CK_ATTRIBUTE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_ATTRIBUTE { pub type_: CK_ATTRIBUTE_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_ATTRIBUTE() { const UNINIT: ::std::mem::MaybeUninit<_CK_ATTRIBUTE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_ATTRIBUTE>(), 12usize, concat!("Size of: ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( ::std::mem::align_of::<_CK_ATTRIBUTE>(), 4usize, concat!("Alignment of ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(ulValueLen) ) ); } impl Default for _CK_ATTRIBUTE { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_DATE { pub year: [::std::os::raw::c_uchar; 4usize], pub month: [::std::os::raw::c_uchar; 2usize], pub day: [::std::os::raw::c_uchar; 2usize], } #[test] fn bindgen_test_layout__CK_DATE() { const UNINIT: ::std::mem::MaybeUninit<_CK_DATE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_DATE>(), 8usize, concat!("Size of: ", stringify!(_CK_DATE)) ); assert_eq!( ::std::mem::align_of::<_CK_DATE>(), 1usize, concat!("Alignment of ", stringify!(_CK_DATE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).year) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(year) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).month) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(month) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).day) as usize - ptr as usize }, 6usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(day) ) ); } pub type CK_MECHANISM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_MECHANISM { pub mechanism: CK_MECHANISM_TYPE, pub pParameter: *mut ::std::os::raw::c_void, pub ulParameterLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_MECHANISM() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM>(), 12usize, concat!("Size of: ", stringify!(_CK_MECHANISM)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM>(), 4usize, concat!("Alignment of ", stringify!(_CK_MECHANISM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mechanism) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(mechanism) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParameter) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(pParameter) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulParameterLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(ulParameterLen) ) ); } impl Default for _CK_MECHANISM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_MECHANISM_INFO { pub ulMinKeySize: ::std::os::raw::c_ulong, pub ulMaxKeySize: ::std::os::raw::c_ulong, pub flags: CK_FLAGS, } #[test] fn bindgen_test_layout__CK_MECHANISM_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM_INFO>(), 12usize, concat!("Size of: ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM_INFO>(), 4usize, concat!("Alignment of ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinKeySize) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMinKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxKeySize) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMaxKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(flags) ) ); } pub type CK_PARAM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAM { pub type_: CK_PARAM_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAM() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 12usize, concat!("Size of: ", stringify!(CK_OTP_PARAM)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(CK_OTP_PARAM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(ulValueLen) ) ); } impl Default for CK_OTP_PARAM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAMS { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAMS() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, concat!("Size of: ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_PARAMS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_SIGNATURE_INFO { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_SIGNATURE_INFO() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, concat!("Size of: ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_SIGNATURE_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RSA_PKCS_MGF_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_rsa_pkcs_pss_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub sLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_pss_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 12usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).sLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(sLen) ) ); } pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_rsa_pkcs_oaep_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub source: CK_RSA_PKCS_OAEP_SOURCE_TYPE, pub pSourceData: *mut ::std::os::raw::c_void, pub ulSourceDataLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_oaep_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 20usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(source) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSourceData) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(pSourceData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSourceDataLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(ulSourceDataLen) ) ); } impl Default for ck_rsa_pkcs_oaep_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_aes_ctr_params { pub ulCounterBits: ::std::os::raw::c_ulong, pub cb: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout_ck_aes_ctr_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 20usize, concat!("Size of: ", stringify!(ck_aes_ctr_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_aes_ctr_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCounterBits) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(ulCounterBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cb) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(cb) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_gcm_params { pub pIv: *mut ::std::os::raw::c_uchar, pub ulIvLen: ::std::os::raw::c_ulong, pub ulIvBits: ::std::os::raw::c_ulong, pub pAAD: *mut ::std::os::raw::c_uchar, pub ulAADLen: ::std::os::raw::c_ulong, pub ulTagBits: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_gcm_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_gcm_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_gcm_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pIv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pIv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvLen) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvBits) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pAAD) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pAAD) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulAADLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulAADLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTagBits) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulTagBits) ) ); } impl Default for ck_gcm_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type ck_ec_kdf_t = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_ecdh1_derive_params { pub kdf: ck_ec_kdf_t, pub ulSharedDataLen: ::std::os::raw::c_ulong, pub pSharedData: *mut ::std::os::raw::c_uchar, pub ulPublicDataLen: ::std::os::raw::c_ulong, pub pPublicData: *mut ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout_ck_ecdh1_derive_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 20usize, concat!("Size of: ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(kdf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSharedDataLen) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulSharedDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSharedData) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pSharedData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulPublicDataLen) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulPublicDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pPublicData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pPublicData) ) ); } impl Default for ck_ecdh1_derive_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_key_derivation_string_data { pub pData: *mut ::std::os::raw::c_uchar, pub ulLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_key_derivation_string_data() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, concat!("Size of: ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulLen) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(ulLen) ) ); } impl Default for ck_key_derivation_string_data { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_des_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 8usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_des_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_des_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_aes_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 16usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_aes_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_aes_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RV = ::std::os::raw::c_ulong; pub type CK_NOTIFY = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, event: CK_NOTIFICATION, application: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_Initialize = ::std::option::Option CK_RV>; pub type CK_C_Finalize = ::std::option::Option CK_RV>; pub type CK_C_GetInfo = ::std::option::Option CK_RV>; pub type CK_C_GetFunctionList = ::std::option::Option< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, >; pub type CK_C_GetSlotList = ::std::option::Option< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetSlotInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, >; pub type CK_C_GetTokenInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, >; pub type CK_C_WaitForSlotEvent = ::std::option::Option< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_GetMechanismList = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetMechanismInfo = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, >; pub type CK_C_InitToken = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, >; pub type CK_C_InitPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_OpenSession = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, >; pub type CK_C_CloseSession = ::std::option::Option CK_RV>; pub type CK_C_CloseAllSessions = ::std::option::Option CK_RV>; pub type CK_C_GetSessionInfo = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, >; pub type CK_C_GetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Login = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_Logout = ::std::option::Option CK_RV>; pub type CK_C_CreateObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_CopyObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DestroyObject = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_GetObjectSize = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjects = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsFinal = ::std::option::Option CK_RV>; pub type CK_C_EncryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Encrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Decrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestInit = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, >; pub type CK_C_Digest = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestKey = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_DigestFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Sign = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SignRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Verify = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_VerifyRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptDigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptVerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_GenerateKeyPair = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_WrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_UnwrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DeriveKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SeedRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetFunctionStatus = ::std::option::Option CK_RV>; pub type CK_C_CancelFunction = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_FUNCTION_LIST { pub version: _CK_VERSION, pub C_Initialize: CK_C_Initialize, pub C_Finalize: CK_C_Finalize, pub C_GetInfo: CK_C_GetInfo, pub C_GetFunctionList: CK_C_GetFunctionList, pub C_GetSlotList: CK_C_GetSlotList, pub C_GetSlotInfo: CK_C_GetSlotInfo, pub C_GetTokenInfo: CK_C_GetTokenInfo, pub C_GetMechanismList: CK_C_GetMechanismList, pub C_GetMechanismInfo: CK_C_GetMechanismInfo, pub C_InitToken: CK_C_InitToken, pub C_InitPIN: CK_C_InitPIN, pub C_SetPIN: CK_C_SetPIN, pub C_OpenSession: CK_C_OpenSession, pub C_CloseSession: CK_C_CloseSession, pub C_CloseAllSessions: CK_C_CloseAllSessions, pub C_GetSessionInfo: CK_C_GetSessionInfo, pub C_GetOperationState: CK_C_GetOperationState, pub C_SetOperationState: CK_C_SetOperationState, pub C_Login: CK_C_Login, pub C_Logout: CK_C_Logout, pub C_CreateObject: CK_C_CreateObject, pub C_CopyObject: CK_C_CopyObject, pub C_DestroyObject: CK_C_DestroyObject, pub C_GetObjectSize: CK_C_GetObjectSize, pub C_GetAttributeValue: CK_C_GetAttributeValue, pub C_SetAttributeValue: CK_C_SetAttributeValue, pub C_FindObjectsInit: CK_C_FindObjectsInit, pub C_FindObjects: CK_C_FindObjects, pub C_FindObjectsFinal: CK_C_FindObjectsFinal, pub C_EncryptInit: CK_C_EncryptInit, pub C_Encrypt: CK_C_Encrypt, pub C_EncryptUpdate: CK_C_EncryptUpdate, pub C_EncryptFinal: CK_C_EncryptFinal, pub C_DecryptInit: CK_C_DecryptInit, pub C_Decrypt: CK_C_Decrypt, pub C_DecryptUpdate: CK_C_DecryptUpdate, pub C_DecryptFinal: CK_C_DecryptFinal, pub C_DigestInit: CK_C_DigestInit, pub C_Digest: CK_C_Digest, pub C_DigestUpdate: CK_C_DigestUpdate, pub C_DigestKey: CK_C_DigestKey, pub C_DigestFinal: CK_C_DigestFinal, pub C_SignInit: CK_C_SignInit, pub C_Sign: CK_C_Sign, pub C_SignUpdate: CK_C_SignUpdate, pub C_SignFinal: CK_C_SignFinal, pub C_SignRecoverInit: CK_C_SignRecoverInit, pub C_SignRecover: CK_C_SignRecover, pub C_VerifyInit: CK_C_VerifyInit, pub C_Verify: CK_C_Verify, pub C_VerifyUpdate: CK_C_VerifyUpdate, pub C_VerifyFinal: CK_C_VerifyFinal, pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, pub C_VerifyRecover: CK_C_VerifyRecover, pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, pub C_GenerateKey: CK_C_GenerateKey, pub C_GenerateKeyPair: CK_C_GenerateKeyPair, pub C_WrapKey: CK_C_WrapKey, pub C_UnwrapKey: CK_C_UnwrapKey, pub C_DeriveKey: CK_C_DeriveKey, pub C_SeedRandom: CK_C_SeedRandom, pub C_GenerateRandom: CK_C_GenerateRandom, pub C_GetFunctionStatus: CK_C_GetFunctionStatus, pub C_CancelFunction: CK_C_CancelFunction, pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, } #[test] fn bindgen_test_layout__CK_FUNCTION_LIST() { const UNINIT: ::std::mem::MaybeUninit<_CK_FUNCTION_LIST> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_FUNCTION_LIST>(), 276usize, concat!("Size of: ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( ::std::mem::align_of::<_CK_FUNCTION_LIST>(), 4usize, concat!("Alignment of ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(version) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Initialize) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Initialize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Finalize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Finalize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetInfo) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionList) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotList) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotInfo) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetTokenInfo) as usize - ptr as usize }, 28usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetTokenInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismList) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismInfo) as usize - ptr as usize }, 36usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitToken) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitToken) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitPIN) as usize - ptr as usize }, 44usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetPIN) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_OpenSession) as usize - ptr as usize }, 52usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_OpenSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseSession) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseAllSessions) as usize - ptr as usize }, 60usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseAllSessions) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSessionInfo) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSessionInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetOperationState) as usize - ptr as usize }, 68usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetOperationState) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Login) as usize - ptr as usize }, 76usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Login) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Logout) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Logout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CreateObject) as usize - ptr as usize }, 84usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CreateObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CopyObject) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CopyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DestroyObject) as usize - ptr as usize }, 92usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DestroyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetObjectSize) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetObjectSize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetAttributeValue) as usize - ptr as usize }, 100usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetAttributeValue) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsInit) as usize - ptr as usize }, 108usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjects) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjects) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsFinal) as usize - ptr as usize }, 116usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptInit) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Encrypt) as usize - ptr as usize }, 124usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Encrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptUpdate) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptFinal) as usize - ptr as usize }, 132usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptInit) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Decrypt) as usize - ptr as usize }, 140usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Decrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptUpdate) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptFinal) as usize - ptr as usize }, 148usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestInit) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Digest) as usize - ptr as usize }, 156usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Digest) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestUpdate) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestKey) as usize - ptr as usize }, 164usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestFinal) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignInit) as usize - ptr as usize }, 172usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Sign) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Sign) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignUpdate) as usize - ptr as usize }, 180usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignFinal) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecoverInit) as usize - ptr as usize }, 188usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecover) as usize - ptr as usize }, 192usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyInit) as usize - ptr as usize }, 196usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Verify) as usize - ptr as usize }, 200usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Verify) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyUpdate) as usize - ptr as usize }, 204usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyFinal) as usize - ptr as usize }, 208usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecoverInit) as usize - ptr as usize }, 212usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecover) as usize - ptr as usize }, 216usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestEncryptUpdate) as usize - ptr as usize }, 220usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptDigestUpdate) as usize - ptr as usize }, 224usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptDigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignEncryptUpdate) as usize - ptr as usize }, 228usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptVerifyUpdate) as usize - ptr as usize }, 232usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptVerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKey) as usize - ptr as usize }, 236usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKeyPair) as usize - ptr as usize }, 240usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKeyPair) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WrapKey) as usize - ptr as usize }, 244usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_UnwrapKey) as usize - ptr as usize }, 248usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_UnwrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DeriveKey) as usize - ptr as usize }, 252usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DeriveKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SeedRandom) as usize - ptr as usize }, 256usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SeedRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateRandom) as usize - ptr as usize }, 260usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionStatus) as usize - ptr as usize }, 264usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionStatus) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CancelFunction) as usize - ptr as usize }, 268usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CancelFunction) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WaitForSlotEvent) as usize - ptr as usize }, 272usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WaitForSlotEvent) ) ); } pub type CK_CREATEMUTEX = ::std::option::Option CK_RV>; pub type CK_DESTROYMUTEX = ::std::option::Option CK_RV>; pub type CK_LOCKMUTEX = ::std::option::Option CK_RV>; pub type CK_UNLOCKMUTEX = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_C_INITIALIZE_ARGS { pub CreateMutex: CK_CREATEMUTEX, pub DestroyMutex: CK_DESTROYMUTEX, pub LockMutex: CK_LOCKMUTEX, pub UnlockMutex: CK_UNLOCKMUTEX, pub flags: CK_FLAGS, pub pReserved: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout__CK_C_INITIALIZE_ARGS() { const UNINIT: ::std::mem::MaybeUninit<_CK_C_INITIALIZE_ARGS> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_C_INITIALIZE_ARGS>(), 24usize, concat!("Size of: ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( ::std::mem::align_of::<_CK_C_INITIALIZE_ARGS>(), 4usize, concat!("Alignment of ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).CreateMutex) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(CreateMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).DestroyMutex) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(DestroyMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).LockMutex) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(LockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).UnlockMutex) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(UnlockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pReserved) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(pReserved) ) ); } impl Default for _CK_C_INITIALIZE_ARGS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_BYTE = ::std::os::raw::c_uchar; pub type CK_CHAR = ::std::os::raw::c_uchar; pub type CK_UTF8CHAR = ::std::os::raw::c_uchar; pub type CK_BBOOL = ::std::os::raw::c_uchar; pub type CK_ULONG = ::std::os::raw::c_ulong; pub type CK_LONG = ::std::os::raw::c_long; pub type CK_BYTE_PTR = *mut CK_BYTE; pub type CK_CHAR_PTR = *mut CK_CHAR; pub type CK_UTF8CHAR_PTR = *mut CK_UTF8CHAR; pub type CK_ULONG_PTR = *mut CK_ULONG; pub type CK_VOID_PTR = *mut ::std::os::raw::c_void; pub type CK_VOID_PTR_PTR = *mut *mut ::std::os::raw::c_void; pub type CK_VERSION = _CK_VERSION; pub type CK_VERSION_PTR = *mut _CK_VERSION; pub type CK_INFO = _CK_INFO; pub type CK_INFO_PTR = *mut _CK_INFO; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SLOT_INFO = _CK_SLOT_INFO; pub type CK_SLOT_INFO_PTR = *mut _CK_SLOT_INFO; pub type CK_TOKEN_INFO = _CK_TOKEN_INFO; pub type CK_TOKEN_INFO_PTR = *mut _CK_TOKEN_INFO; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; pub type CK_SESSION_INFO = _CK_SESSION_INFO; pub type CK_SESSION_INFO_PTR = *mut _CK_SESSION_INFO; pub type CK_OBJECT_HANDLE_PTR = *mut CK_OBJECT_HANDLE; pub type CK_OBJECT_CLASS_PTR = *mut CK_OBJECT_CLASS; pub type CK_ATTRIBUTE = _CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR = *mut _CK_ATTRIBUTE; pub type CK_DATE = _CK_DATE; pub type CK_DATE_PTR = *mut _CK_DATE; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; pub type CK_MECHANISM = _CK_MECHANISM; pub type CK_MECHANISM_PTR = *mut _CK_MECHANISM; pub type CK_MECHANISM_INFO = _CK_MECHANISM_INFO; pub type CK_MECHANISM_INFO_PTR = *mut _CK_MECHANISM_INFO; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_otp_mechanism_info { _unused: [u8; 0], } pub type CK_OTP_MECHANISM_INFO = ck_otp_mechanism_info; pub type CK_OTP_MECHANISM_INFO_PTR = *mut ck_otp_mechanism_info; pub type CK_FUNCTION_LIST = _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR = *mut _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut _CK_FUNCTION_LIST; pub type CK_C_INITIALIZE_ARGS = _CK_C_INITIALIZE_ARGS; pub type CK_C_INITIALIZE_ARGS_PTR = *mut _CK_C_INITIALIZE_ARGS; pub type CK_RSA_PKCS_PSS_PARAMS = ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_PSS_PARAMS_PTR = *mut ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_OAEP_PARAMS = ck_rsa_pkcs_oaep_params; pub type CK_RSA_PKCS_OAEP_PARAMS_PTR = *mut ck_rsa_pkcs_oaep_params; pub type CK_AES_CTR_PARAMS = ck_aes_ctr_params; pub type CK_AES_CTR_PARAMS_PTR = *mut ck_aes_ctr_params; pub type CK_GCM_PARAMS = ck_gcm_params; pub type CK_GCM_PARAMS_PTR = *mut ck_gcm_params; pub type CK_ECDH1_DERIVE_PARAMS = ck_ecdh1_derive_params; pub type CK_ECDH1_DERIVE_PARAMS_PTR = *mut ck_ecdh1_derive_params; pub type CK_KEY_DERIVATION_STRING_DATA = ck_key_derivation_string_data; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut ck_key_derivation_string_data; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS = ck_des_cbc_encrypt_data_params; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_des_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS = ck_aes_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_aes_cbc_encrypt_data_params; extern crate libloading; pub struct Pkcs11 { __library: ::libloading::Library, pub C_Initialize: Result< unsafe extern "C" fn(init_args: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_Finalize: Result< unsafe extern "C" fn(pReserved: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_GetInfo: Result CK_RV, ::libloading::Error>, pub C_GetFunctionList: Result< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, ::libloading::Error, >, pub C_GetSlotList: Result< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetSlotInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetTokenInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, ::libloading::Error, >, pub C_WaitForSlotEvent: Result< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismList: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismInfo: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, ::libloading::Error, >, pub C_InitToken: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, ::libloading::Error, >, pub C_InitPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_OpenSession: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CloseSession: Result CK_RV, ::libloading::Error>, pub C_CloseAllSessions: Result CK_RV, ::libloading::Error>, pub C_GetSessionInfo: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Login: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_Logout: Result CK_RV, ::libloading::Error>, pub C_CreateObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CopyObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DestroyObject: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_GetObjectSize: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjects: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsFinal: Result CK_RV, ::libloading::Error>, pub C_EncryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Encrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Decrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestInit: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, ::libloading::Error, >, pub C_Digest: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestKey: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_DigestFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Sign: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Verify: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptDigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptVerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKeyPair: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_WrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_UnwrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DeriveKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SeedRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetFunctionStatus: Result CK_RV, ::libloading::Error>, pub C_CancelFunction: Result CK_RV, ::libloading::Error>, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result where P: AsRef<::std::ffi::OsStr>, { let library = ::libloading::Library::new(path)?; Self::from_library(library) } pub unsafe fn from_library(library: L) -> Result where L: Into<::libloading::Library>, { let __library = library.into(); let C_Initialize = __library.get(b"C_Initialize\0").map(|sym| *sym); let C_Finalize = __library.get(b"C_Finalize\0").map(|sym| *sym); let C_GetInfo = __library.get(b"C_GetInfo\0").map(|sym| *sym); let C_GetFunctionList = __library.get(b"C_GetFunctionList\0").map(|sym| *sym); let C_GetSlotList = __library.get(b"C_GetSlotList\0").map(|sym| *sym); let C_GetSlotInfo = __library.get(b"C_GetSlotInfo\0").map(|sym| *sym); let C_GetTokenInfo = __library.get(b"C_GetTokenInfo\0").map(|sym| *sym); let C_WaitForSlotEvent = __library.get(b"C_WaitForSlotEvent\0").map(|sym| *sym); let C_GetMechanismList = __library.get(b"C_GetMechanismList\0").map(|sym| *sym); let C_GetMechanismInfo = __library.get(b"C_GetMechanismInfo\0").map(|sym| *sym); let C_InitToken = __library.get(b"C_InitToken\0").map(|sym| *sym); let C_InitPIN = __library.get(b"C_InitPIN\0").map(|sym| *sym); let C_SetPIN = __library.get(b"C_SetPIN\0").map(|sym| *sym); let C_OpenSession = __library.get(b"C_OpenSession\0").map(|sym| *sym); let C_CloseSession = __library.get(b"C_CloseSession\0").map(|sym| *sym); let C_CloseAllSessions = __library.get(b"C_CloseAllSessions\0").map(|sym| *sym); let C_GetSessionInfo = __library.get(b"C_GetSessionInfo\0").map(|sym| *sym); let C_GetOperationState = __library.get(b"C_GetOperationState\0").map(|sym| *sym); let C_SetOperationState = __library.get(b"C_SetOperationState\0").map(|sym| *sym); let C_Login = __library.get(b"C_Login\0").map(|sym| *sym); let C_Logout = __library.get(b"C_Logout\0").map(|sym| *sym); let C_CreateObject = __library.get(b"C_CreateObject\0").map(|sym| *sym); let C_CopyObject = __library.get(b"C_CopyObject\0").map(|sym| *sym); let C_DestroyObject = __library.get(b"C_DestroyObject\0").map(|sym| *sym); let C_GetObjectSize = __library.get(b"C_GetObjectSize\0").map(|sym| *sym); let C_GetAttributeValue = __library.get(b"C_GetAttributeValue\0").map(|sym| *sym); let C_SetAttributeValue = __library.get(b"C_SetAttributeValue\0").map(|sym| *sym); let C_FindObjectsInit = __library.get(b"C_FindObjectsInit\0").map(|sym| *sym); let C_FindObjects = __library.get(b"C_FindObjects\0").map(|sym| *sym); let C_FindObjectsFinal = __library.get(b"C_FindObjectsFinal\0").map(|sym| *sym); let C_EncryptInit = __library.get(b"C_EncryptInit\0").map(|sym| *sym); let C_Encrypt = __library.get(b"C_Encrypt\0").map(|sym| *sym); let C_EncryptUpdate = __library.get(b"C_EncryptUpdate\0").map(|sym| *sym); let C_EncryptFinal = __library.get(b"C_EncryptFinal\0").map(|sym| *sym); let C_DecryptInit = __library.get(b"C_DecryptInit\0").map(|sym| *sym); let C_Decrypt = __library.get(b"C_Decrypt\0").map(|sym| *sym); let C_DecryptUpdate = __library.get(b"C_DecryptUpdate\0").map(|sym| *sym); let C_DecryptFinal = __library.get(b"C_DecryptFinal\0").map(|sym| *sym); let C_DigestInit = __library.get(b"C_DigestInit\0").map(|sym| *sym); let C_Digest = __library.get(b"C_Digest\0").map(|sym| *sym); let C_DigestUpdate = __library.get(b"C_DigestUpdate\0").map(|sym| *sym); let C_DigestKey = __library.get(b"C_DigestKey\0").map(|sym| *sym); let C_DigestFinal = __library.get(b"C_DigestFinal\0").map(|sym| *sym); let C_SignInit = __library.get(b"C_SignInit\0").map(|sym| *sym); let C_Sign = __library.get(b"C_Sign\0").map(|sym| *sym); let C_SignUpdate = __library.get(b"C_SignUpdate\0").map(|sym| *sym); let C_SignFinal = __library.get(b"C_SignFinal\0").map(|sym| *sym); let C_SignRecoverInit = __library.get(b"C_SignRecoverInit\0").map(|sym| *sym); let C_SignRecover = __library.get(b"C_SignRecover\0").map(|sym| *sym); let C_VerifyInit = __library.get(b"C_VerifyInit\0").map(|sym| *sym); let C_Verify = __library.get(b"C_Verify\0").map(|sym| *sym); let C_VerifyUpdate = __library.get(b"C_VerifyUpdate\0").map(|sym| *sym); let C_VerifyFinal = __library.get(b"C_VerifyFinal\0").map(|sym| *sym); let C_VerifyRecoverInit = __library.get(b"C_VerifyRecoverInit\0").map(|sym| *sym); let C_VerifyRecover = __library.get(b"C_VerifyRecover\0").map(|sym| *sym); let C_DigestEncryptUpdate = __library.get(b"C_DigestEncryptUpdate\0").map(|sym| *sym); let C_DecryptDigestUpdate = __library.get(b"C_DecryptDigestUpdate\0").map(|sym| *sym); let C_SignEncryptUpdate = __library.get(b"C_SignEncryptUpdate\0").map(|sym| *sym); let C_DecryptVerifyUpdate = __library.get(b"C_DecryptVerifyUpdate\0").map(|sym| *sym); let C_GenerateKey = __library.get(b"C_GenerateKey\0").map(|sym| *sym); let C_GenerateKeyPair = __library.get(b"C_GenerateKeyPair\0").map(|sym| *sym); let C_WrapKey = __library.get(b"C_WrapKey\0").map(|sym| *sym); let C_UnwrapKey = __library.get(b"C_UnwrapKey\0").map(|sym| *sym); let C_DeriveKey = __library.get(b"C_DeriveKey\0").map(|sym| *sym); let C_SeedRandom = __library.get(b"C_SeedRandom\0").map(|sym| *sym); let C_GenerateRandom = __library.get(b"C_GenerateRandom\0").map(|sym| *sym); let C_GetFunctionStatus = __library.get(b"C_GetFunctionStatus\0").map(|sym| *sym); let C_CancelFunction = __library.get(b"C_CancelFunction\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, C_Finalize, C_GetInfo, C_GetFunctionList, C_GetSlotList, C_GetSlotInfo, C_GetTokenInfo, C_WaitForSlotEvent, C_GetMechanismList, C_GetMechanismInfo, C_InitToken, C_InitPIN, C_SetPIN, C_OpenSession, C_CloseSession, C_CloseAllSessions, C_GetSessionInfo, C_GetOperationState, C_SetOperationState, C_Login, C_Logout, C_CreateObject, C_CopyObject, C_DestroyObject, C_GetObjectSize, C_GetAttributeValue, C_SetAttributeValue, C_FindObjectsInit, C_FindObjects, C_FindObjectsFinal, C_EncryptInit, C_Encrypt, C_EncryptUpdate, C_EncryptFinal, C_DecryptInit, C_Decrypt, C_DecryptUpdate, C_DecryptFinal, C_DigestInit, C_Digest, C_DigestUpdate, C_DigestKey, C_DigestFinal, C_SignInit, C_Sign, C_SignUpdate, C_SignFinal, C_SignRecoverInit, C_SignRecover, C_VerifyInit, C_Verify, C_VerifyUpdate, C_VerifyFinal, C_VerifyRecoverInit, C_VerifyRecover, C_DigestEncryptUpdate, C_DecryptDigestUpdate, C_SignEncryptUpdate, C_DecryptVerifyUpdate, C_GenerateKey, C_GenerateKeyPair, C_WrapKey, C_UnwrapKey, C_DeriveKey, C_SeedRandom, C_GenerateRandom, C_GetFunctionStatus, C_CancelFunction, }) } pub unsafe fn C_Initialize(&self, init_args: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Initialize .as_ref() .expect("Expected function, got error."))(init_args) } pub unsafe fn C_Finalize(&self, pReserved: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Finalize .as_ref() .expect("Expected function, got error."))(pReserved) } pub unsafe fn C_GetInfo(&self, info: *mut _CK_INFO) -> CK_RV { (self .C_GetInfo .as_ref() .expect("Expected function, got error."))(info) } pub unsafe fn C_GetFunctionList(&self, function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV { (self .C_GetFunctionList .as_ref() .expect("Expected function, got error."))(function_list) } pub unsafe fn C_GetSlotList( &self, token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetSlotList .as_ref() .expect("Expected function, got error."))(token_present, slot_list, ulCount) } pub unsafe fn C_GetSlotInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV { (self .C_GetSlotInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_GetTokenInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV { (self .C_GetTokenInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_WaitForSlotEvent( &self, flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV { (self .C_WaitForSlotEvent .as_ref() .expect("Expected function, got error."))(flags, slot, pReserved) } pub unsafe fn C_GetMechanismList( &self, slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetMechanismList .as_ref() .expect("Expected function, got error."))(slotID, mechanism_list, ulCount) } pub unsafe fn C_GetMechanismInfo( &self, slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV { (self .C_GetMechanismInfo .as_ref() .expect("Expected function, got error."))(slotID, type_, info) } pub unsafe fn C_InitToken( &self, slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV { (self .C_InitToken .as_ref() .expect("Expected function, got error."))(slotID, pin, pin_len, label) } pub unsafe fn C_InitPIN( &self, session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_InitPIN .as_ref() .expect("Expected function, got error."))(session, pin, pin_len) } pub unsafe fn C_SetPIN( &self, session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetPIN .as_ref() .expect("Expected function, got error."))( session, old_pin, old_len, new_pin, new_len ) } pub unsafe fn C_OpenSession( &self, slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV { (self .C_OpenSession .as_ref() .expect("Expected function, got error."))( slotID, flags, application, notify, session ) } pub unsafe fn C_CloseSession(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CloseSession .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CloseAllSessions(&self, slotID: CK_SLOT_ID) -> CK_RV { (self .C_CloseAllSessions .as_ref() .expect("Expected function, got error."))(slotID) } pub unsafe fn C_GetSessionInfo( &self, session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO, ) -> CK_RV { (self .C_GetSessionInfo .as_ref() .expect("Expected function, got error."))(session, info) } pub unsafe fn C_GetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len ) } pub unsafe fn C_SetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len, encryption_key, authentiation_key, ) } pub unsafe fn C_Login( &self, session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Login .as_ref() .expect("Expected function, got error."))(session, user_type, pin, pin_len) } pub unsafe fn C_Logout(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_Logout .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CreateObject( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CreateObject .as_ref() .expect("Expected function, got error."))(session, templ, ulCount, object) } pub unsafe fn C_CopyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CopyObject .as_ref() .expect("Expected function, got error."))( session, object, templ, ulCount, new_object ) } pub unsafe fn C_DestroyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DestroyObject .as_ref() .expect("Expected function, got error."))(session, object) } pub unsafe fn C_GetObjectSize( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetObjectSize .as_ref() .expect("Expected function, got error."))(session, object, size) } pub unsafe fn C_GetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_SetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_FindObjectsInit( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjectsInit .as_ref() .expect("Expected function, got error."))(session, templ, ulCount) } pub unsafe fn C_FindObjects( &self, session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjects .as_ref() .expect("Expected function, got error."))( session, object, max_object_count, object_count, ) } pub unsafe fn C_FindObjectsFinal(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_FindObjectsFinal .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_EncryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_EncryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Encrypt( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Encrypt .as_ref() .expect("Expected function, got error."))( session, data, data_len, encrypted_data, encrypted_data_len, ) } pub unsafe fn C_EncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_EncryptFinal( &self, session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptFinal .as_ref() .expect("Expected function, got error."))( session, last_encrypted_part, last_encrypted_part_len, ) } pub unsafe fn C_DecryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DecryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Decrypt( &self, session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Decrypt .as_ref() .expect("Expected function, got error."))( session, encrypted_data, encrypted_data_len, data, data_len, ) } pub unsafe fn C_DecryptUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_DecryptFinal( &self, session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptFinal .as_ref() .expect("Expected function, got error."))(session, last_part, last_part_len) } pub unsafe fn C_DigestInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, ) -> CK_RV { (self .C_DigestInit .as_ref() .expect("Expected function, got error."))(session, mechanism) } pub unsafe fn C_Digest( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Digest .as_ref() .expect("Expected function, got error."))( session, data, data_len, digest, digest_len ) } pub unsafe fn C_DigestUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_DigestKey(&self, session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV { (self .C_DigestKey .as_ref() .expect("Expected function, got error."))(session, key) } pub unsafe fn C_DigestFinal( &self, session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestFinal .as_ref() .expect("Expected function, got error."))(session, digest, digest_len) } pub unsafe fn C_SignInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Sign( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self.C_Sign.as_ref().expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_SignUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_SignFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_SignRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_SignRecover( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignRecover .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Verify( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Verify .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_VerifyFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_VerifyRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_VerifyRecover( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyRecover .as_ref() .expect("Expected function, got error."))( session, signature, signature_len, data, data_len, ) } pub unsafe fn C_DigestEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptDigestUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptDigestUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_SignEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptVerifyUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptVerifyUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_GenerateKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKey .as_ref() .expect("Expected function, got error."))( session, mechanism, templ, ulCount, key ) } pub unsafe fn C_GenerateKeyPair( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKeyPair .as_ref() .expect("Expected function, got error."))( session, mechanism, public_key_template, public_key_attribute_count, private_key_template, private_key_attribute_count, public_key, private_key, ) } pub unsafe fn C_WrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_WrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, wrapping_key, key, wrapped_key, wrapped_key_len, ) } pub unsafe fn C_UnwrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_UnwrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, unwrapping_key, wrapped_key, wrapped_key_len, templ, attribute_count, key, ) } pub unsafe fn C_DeriveKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DeriveKey .as_ref() .expect("Expected function, got error."))( session, mechanism, base_key, templ, attribute_count, key, ) } pub unsafe fn C_SeedRandom( &self, session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SeedRandom .as_ref() .expect("Expected function, got error."))(session, seed, seed_len) } pub unsafe fn C_GenerateRandom( &self, session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GenerateRandom .as_ref() .expect("Expected function, got error."))(session, random_data, random_len) } pub unsafe fn C_GetFunctionStatus(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_GetFunctionStatus .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CancelFunction(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CancelFunction .as_ref() .expect("Expected function, got error."))(session) } } cryptoki-sys-0.1.7/src/bindings/powerpc64-unknown-linux-gnu.rs000064400000000000000000005276021046102023000225310ustar 00000000000000/* automatically generated by rust-bindgen 0.66.1 */ pub const PKCS11_H: u32 = 1; pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 40; pub const P11_KIT_CRYPTOKI_VERSION_REVISION: u32 = 0; pub const CRYPTOKI_COMPAT: u32 = 1; pub const CKF_RNG: CK_FLAGS = 1; pub const CKF_WRITE_PROTECTED: CK_FLAGS = 2; pub const CKF_LOGIN_REQUIRED: CK_FLAGS = 4; pub const CKF_USER_PIN_INITIALIZED: CK_FLAGS = 8; pub const CKF_RESTORE_KEY_NOT_NEEDED: CK_FLAGS = 32; pub const CKF_CLOCK_ON_TOKEN: CK_FLAGS = 64; pub const CKF_PROTECTED_AUTHENTICATION_PATH: CK_FLAGS = 256; pub const CKF_DUAL_CRYPTO_OPERATIONS: CK_FLAGS = 512; pub const CKF_TOKEN_INITIALIZED: CK_FLAGS = 1024; pub const CKF_SECONDARY_AUTHENTICATION: CK_FLAGS = 2048; pub const CKF_USER_PIN_COUNT_LOW: CK_FLAGS = 65536; pub const CKF_USER_PIN_FINAL_TRY: CK_FLAGS = 131072; pub const CKF_USER_PIN_LOCKED: CK_FLAGS = 262144; pub const CKF_USER_PIN_TO_BE_CHANGED: CK_FLAGS = 524288; pub const CKF_SO_PIN_COUNT_LOW: CK_FLAGS = 1048576; pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; pub const CKO_DATA: CK_OBJECT_CLASS = 0; pub const CKO_CERTIFICATE: CK_OBJECT_CLASS = 1; pub const CKO_PUBLIC_KEY: CK_OBJECT_CLASS = 2; pub const CKO_PRIVATE_KEY: CK_OBJECT_CLASS = 3; pub const CKO_SECRET_KEY: CK_OBJECT_CLASS = 4; pub const CKO_HW_FEATURE: CK_OBJECT_CLASS = 5; pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_EC: CK_KEY_TYPE = 3; pub const CKK_X9_42_DH: CK_KEY_TYPE = 4; pub const CKK_KEA: CK_KEY_TYPE = 5; pub const CKK_GENERIC_SECRET: CK_KEY_TYPE = 16; pub const CKK_RC2: CK_KEY_TYPE = 17; pub const CKK_RC4: CK_KEY_TYPE = 18; pub const CKK_DES: CK_KEY_TYPE = 19; pub const CKK_DES2: CK_KEY_TYPE = 20; pub const CKK_DES3: CK_KEY_TYPE = 21; pub const CKK_CAST: CK_KEY_TYPE = 22; pub const CKK_CAST3: CK_KEY_TYPE = 23; pub const CKK_CAST128: CK_KEY_TYPE = 24; pub const CKK_RC5: CK_KEY_TYPE = 25; pub const CKK_IDEA: CK_KEY_TYPE = 26; pub const CKK_SKIPJACK: CK_KEY_TYPE = 27; pub const CKK_BATON: CK_KEY_TYPE = 28; pub const CKK_JUNIPER: CK_KEY_TYPE = 29; pub const CKK_CDMF: CK_KEY_TYPE = 30; pub const CKK_AES: CK_KEY_TYPE = 31; pub const CKK_BLOWFISH: CK_KEY_TYPE = 32; pub const CKK_TWOFISH: CK_KEY_TYPE = 33; pub const CKK_SECURID: CK_KEY_TYPE = 34; pub const CKK_HOTP: CK_KEY_TYPE = 35; pub const CKK_ACTI: CK_KEY_TYPE = 36; pub const CKK_CAMELLIA: CK_KEY_TYPE = 37; pub const CKK_ARIA: CK_KEY_TYPE = 38; pub const CKK_MD5_HMAC: CK_KEY_TYPE = 39; pub const CKK_SHA_1_HMAC: CK_KEY_TYPE = 40; pub const CKK_RIPEMD128_HMAC: CK_KEY_TYPE = 41; pub const CKK_RIPEMD160_HMAC: CK_KEY_TYPE = 42; pub const CKK_SHA256_HMAC: CK_KEY_TYPE = 43; pub const CKK_SHA384_HMAC: CK_KEY_TYPE = 44; pub const CKK_SHA512_HMAC: CK_KEY_TYPE = 45; pub const CKK_SHA224_HMAC: CK_KEY_TYPE = 46; pub const CKK_SEED: CK_KEY_TYPE = 47; pub const CKK_GOSTR3410: CK_KEY_TYPE = 48; pub const CKK_GOSTR3411: CK_KEY_TYPE = 49; pub const CKK_GOST28147: CK_KEY_TYPE = 50; pub const CKK_EC_EDWARDS: CK_KEY_TYPE = 64; pub const CKC_X_509: CK_CERTIFICATE_TYPE = 0; pub const CKC_X_509_ATTR_CERT: CK_CERTIFICATE_TYPE = 1; pub const CKC_WTLS: CK_CERTIFICATE_TYPE = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; pub const CKA_TOKEN: CK_ATTRIBUTE_TYPE = 1; pub const CKA_PRIVATE: CK_ATTRIBUTE_TYPE = 2; pub const CKA_LABEL: CK_ATTRIBUTE_TYPE = 3; pub const CKA_APPLICATION: CK_ATTRIBUTE_TYPE = 16; pub const CKA_VALUE: CK_ATTRIBUTE_TYPE = 17; pub const CKA_OBJECT_ID: CK_ATTRIBUTE_TYPE = 18; pub const CKA_CERTIFICATE_TYPE: CK_ATTRIBUTE_TYPE = 128; pub const CKA_ISSUER: CK_ATTRIBUTE_TYPE = 129; pub const CKA_SERIAL_NUMBER: CK_ATTRIBUTE_TYPE = 130; pub const CKA_AC_ISSUER: CK_ATTRIBUTE_TYPE = 131; pub const CKA_OWNER: CK_ATTRIBUTE_TYPE = 132; pub const CKA_ATTR_TYPES: CK_ATTRIBUTE_TYPE = 133; pub const CKA_TRUSTED: CK_ATTRIBUTE_TYPE = 134; pub const CKA_CERTIFICATE_CATEGORY: CK_ATTRIBUTE_TYPE = 135; pub const CKA_JAVA_MIDP_SECURITY_DOMAIN: CK_ATTRIBUTE_TYPE = 136; pub const CKA_URL: CK_ATTRIBUTE_TYPE = 137; pub const CKA_HASH_OF_SUBJECT_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 138; pub const CKA_HASH_OF_ISSUER_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 139; pub const CKA_NAME_HASH_ALGORITHM: CK_ATTRIBUTE_TYPE = 140; pub const CKA_CHECK_VALUE: CK_ATTRIBUTE_TYPE = 144; pub const CKA_KEY_TYPE: CK_ATTRIBUTE_TYPE = 256; pub const CKA_SUBJECT: CK_ATTRIBUTE_TYPE = 257; pub const CKA_ID: CK_ATTRIBUTE_TYPE = 258; pub const CKA_SENSITIVE: CK_ATTRIBUTE_TYPE = 259; pub const CKA_ENCRYPT: CK_ATTRIBUTE_TYPE = 260; pub const CKA_DECRYPT: CK_ATTRIBUTE_TYPE = 261; pub const CKA_WRAP: CK_ATTRIBUTE_TYPE = 262; pub const CKA_UNWRAP: CK_ATTRIBUTE_TYPE = 263; pub const CKA_SIGN: CK_ATTRIBUTE_TYPE = 264; pub const CKA_SIGN_RECOVER: CK_ATTRIBUTE_TYPE = 265; pub const CKA_VERIFY: CK_ATTRIBUTE_TYPE = 266; pub const CKA_VERIFY_RECOVER: CK_ATTRIBUTE_TYPE = 267; pub const CKA_DERIVE: CK_ATTRIBUTE_TYPE = 268; pub const CKA_START_DATE: CK_ATTRIBUTE_TYPE = 272; pub const CKA_END_DATE: CK_ATTRIBUTE_TYPE = 273; pub const CKA_MODULUS: CK_ATTRIBUTE_TYPE = 288; pub const CKA_MODULUS_BITS: CK_ATTRIBUTE_TYPE = 289; pub const CKA_PUBLIC_EXPONENT: CK_ATTRIBUTE_TYPE = 290; pub const CKA_PRIVATE_EXPONENT: CK_ATTRIBUTE_TYPE = 291; pub const CKA_PRIME_1: CK_ATTRIBUTE_TYPE = 292; pub const CKA_PRIME_2: CK_ATTRIBUTE_TYPE = 293; pub const CKA_EXPONENT_1: CK_ATTRIBUTE_TYPE = 294; pub const CKA_EXPONENT_2: CK_ATTRIBUTE_TYPE = 295; pub const CKA_COEFFICIENT: CK_ATTRIBUTE_TYPE = 296; pub const CKA_PUBLIC_KEY_INFO: CK_ATTRIBUTE_TYPE = 297; pub const CKA_PRIME: CK_ATTRIBUTE_TYPE = 304; pub const CKA_SUBPRIME: CK_ATTRIBUTE_TYPE = 305; pub const CKA_BASE: CK_ATTRIBUTE_TYPE = 306; pub const CKA_PRIME_BITS: CK_ATTRIBUTE_TYPE = 307; pub const CKA_SUB_PRIME_BITS: CK_ATTRIBUTE_TYPE = 308; pub const CKA_VALUE_BITS: CK_ATTRIBUTE_TYPE = 352; pub const CKA_VALUE_LEN: CK_ATTRIBUTE_TYPE = 353; pub const CKA_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 354; pub const CKA_LOCAL: CK_ATTRIBUTE_TYPE = 355; pub const CKA_NEVER_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 356; pub const CKA_ALWAYS_SENSITIVE: CK_ATTRIBUTE_TYPE = 357; pub const CKA_KEY_GEN_MECHANISM: CK_ATTRIBUTE_TYPE = 358; pub const CKA_MODIFIABLE: CK_ATTRIBUTE_TYPE = 368; pub const CKA_COPYABLE: CK_ATTRIBUTE_TYPE = 369; pub const CKA_DESTROYABLE: CK_ATTRIBUTE_TYPE = 370; pub const CKA_ECDSA_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_POINT: CK_ATTRIBUTE_TYPE = 385; pub const CKA_SECONDARY_AUTH: CK_ATTRIBUTE_TYPE = 512; pub const CKA_AUTH_PIN_FLAGS: CK_ATTRIBUTE_TYPE = 513; pub const CKA_ALWAYS_AUTHENTICATE: CK_ATTRIBUTE_TYPE = 514; pub const CKA_WRAP_WITH_TRUSTED: CK_ATTRIBUTE_TYPE = 528; pub const CKA_OTP_FORMAT: CK_ATTRIBUTE_TYPE = 544; pub const CKA_OTP_LENGTH: CK_ATTRIBUTE_TYPE = 545; pub const CKA_OTP_TIME_INTERVAL: CK_ATTRIBUTE_TYPE = 546; pub const CKA_OTP_USER_FRIENDLY_MODE: CK_ATTRIBUTE_TYPE = 547; pub const CKA_OTP_CHALLENGE_REQUIREMENT: CK_ATTRIBUTE_TYPE = 548; pub const CKA_OTP_TIME_REQUIREMENT: CK_ATTRIBUTE_TYPE = 549; pub const CKA_OTP_COUNTER_REQUIREMENT: CK_ATTRIBUTE_TYPE = 550; pub const CKA_OTP_PIN_REQUIREMENT: CK_ATTRIBUTE_TYPE = 551; pub const CKA_OTP_USER_IDENTIFIER: CK_ATTRIBUTE_TYPE = 554; pub const CKA_OTP_SERVICE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 555; pub const CKA_OTP_SERVICE_LOGO: CK_ATTRIBUTE_TYPE = 556; pub const CKA_OTP_SERVICE_LOGO_TYPE: CK_ATTRIBUTE_TYPE = 557; pub const CKA_OTP_COUNTER: CK_ATTRIBUTE_TYPE = 558; pub const CKA_OTP_TIME: CK_ATTRIBUTE_TYPE = 559; pub const CKA_GOSTR3410_PARAMS: CK_ATTRIBUTE_TYPE = 592; pub const CKA_GOSTR3411_PARAMS: CK_ATTRIBUTE_TYPE = 593; pub const CKA_GOST28147_PARAMS: CK_ATTRIBUTE_TYPE = 594; pub const CKA_HW_FEATURE_TYPE: CK_ATTRIBUTE_TYPE = 768; pub const CKA_RESET_ON_INIT: CK_ATTRIBUTE_TYPE = 769; pub const CKA_HAS_RESET: CK_ATTRIBUTE_TYPE = 770; pub const CKA_PIXEL_X: CK_ATTRIBUTE_TYPE = 1024; pub const CKA_PIXEL_Y: CK_ATTRIBUTE_TYPE = 1025; pub const CKA_RESOLUTION: CK_ATTRIBUTE_TYPE = 1026; pub const CKA_CHAR_ROWS: CK_ATTRIBUTE_TYPE = 1027; pub const CKA_CHAR_COLUMNS: CK_ATTRIBUTE_TYPE = 1028; pub const CKA_COLOR: CK_ATTRIBUTE_TYPE = 1029; pub const CKA_BITS_PER_PIXEL: CK_ATTRIBUTE_TYPE = 1030; pub const CKA_CHAR_SETS: CK_ATTRIBUTE_TYPE = 1152; pub const CKA_ENCODING_METHODS: CK_ATTRIBUTE_TYPE = 1153; pub const CKA_MIME_TYPES: CK_ATTRIBUTE_TYPE = 1154; pub const CKA_MECHANISM_TYPE: CK_ATTRIBUTE_TYPE = 1280; pub const CKA_REQUIRED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1281; pub const CKA_DEFAULT_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1282; pub const CKA_SUPPORTED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1283; pub const CKM_RSA_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 0; pub const CKM_RSA_PKCS: CK_MECHANISM_TYPE = 1; pub const CKM_RSA_9796: CK_MECHANISM_TYPE = 2; pub const CKM_RSA_X_509: CK_MECHANISM_TYPE = 3; pub const CKM_MD2_RSA_PKCS: CK_MECHANISM_TYPE = 4; pub const CKM_MD5_RSA_PKCS: CK_MECHANISM_TYPE = 5; pub const CKM_SHA1_RSA_PKCS: CK_MECHANISM_TYPE = 6; pub const CKM_RIPEMD128_RSA_PKCS: CK_MECHANISM_TYPE = 7; pub const CKM_RIPEMD160_RSA_PKCS: CK_MECHANISM_TYPE = 8; pub const CKM_RSA_PKCS_OAEP: CK_MECHANISM_TYPE = 9; pub const CKM_RSA_X9_31_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 10; pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; pub const CKM_SHA256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 67; pub const CKM_SHA384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 68; pub const CKM_SHA512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 69; pub const CKM_SHA512_224: CK_MECHANISM_TYPE = 72; pub const CKM_SHA512_224_HMAC: CK_MECHANISM_TYPE = 73; pub const CKM_SHA512_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 74; pub const CKM_SHA512_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 75; pub const CKM_SHA512_256: CK_MECHANISM_TYPE = 76; pub const CKM_SHA512_256_HMAC: CK_MECHANISM_TYPE = 77; pub const CKM_SHA512_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 78; pub const CKM_SHA512_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 79; pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; pub const CKM_RC2_KEY_GEN: CK_MECHANISM_TYPE = 256; pub const CKM_RC2_ECB: CK_MECHANISM_TYPE = 257; pub const CKM_RC2_CBC: CK_MECHANISM_TYPE = 258; pub const CKM_RC2_MAC: CK_MECHANISM_TYPE = 259; pub const CKM_RC2_MAC_GENERAL: CK_MECHANISM_TYPE = 260; pub const CKM_RC2_CBC_PAD: CK_MECHANISM_TYPE = 261; pub const CKM_RC4_KEY_GEN: CK_MECHANISM_TYPE = 272; pub const CKM_RC4: CK_MECHANISM_TYPE = 273; pub const CKM_DES_KEY_GEN: CK_MECHANISM_TYPE = 288; pub const CKM_DES_ECB: CK_MECHANISM_TYPE = 289; pub const CKM_DES_CBC: CK_MECHANISM_TYPE = 290; pub const CKM_DES_MAC: CK_MECHANISM_TYPE = 291; pub const CKM_DES_MAC_GENERAL: CK_MECHANISM_TYPE = 292; pub const CKM_DES_CBC_PAD: CK_MECHANISM_TYPE = 293; pub const CKM_DES2_KEY_GEN: CK_MECHANISM_TYPE = 304; pub const CKM_DES3_KEY_GEN: CK_MECHANISM_TYPE = 305; pub const CKM_DES3_ECB: CK_MECHANISM_TYPE = 306; pub const CKM_DES3_CBC: CK_MECHANISM_TYPE = 307; pub const CKM_DES3_MAC: CK_MECHANISM_TYPE = 308; pub const CKM_DES3_MAC_GENERAL: CK_MECHANISM_TYPE = 309; pub const CKM_DES3_CBC_PAD: CK_MECHANISM_TYPE = 310; pub const CKM_DES3_CMAC_GENERAL: CK_MECHANISM_TYPE = 311; pub const CKM_DES3_CMAC: CK_MECHANISM_TYPE = 312; pub const CKM_CDMF_KEY_GEN: CK_MECHANISM_TYPE = 320; pub const CKM_CDMF_ECB: CK_MECHANISM_TYPE = 321; pub const CKM_CDMF_CBC: CK_MECHANISM_TYPE = 322; pub const CKM_CDMF_MAC: CK_MECHANISM_TYPE = 323; pub const CKM_CDMF_MAC_GENERAL: CK_MECHANISM_TYPE = 324; pub const CKM_CDMF_CBC_PAD: CK_MECHANISM_TYPE = 325; pub const CKM_DES_OFB64: CK_MECHANISM_TYPE = 336; pub const CKM_DES_OFB8: CK_MECHANISM_TYPE = 337; pub const CKM_DES_CFB64: CK_MECHANISM_TYPE = 338; pub const CKM_DES_CFB8: CK_MECHANISM_TYPE = 339; pub const CKM_MD2: CK_MECHANISM_TYPE = 512; pub const CKM_MD2_HMAC: CK_MECHANISM_TYPE = 513; pub const CKM_MD2_HMAC_GENERAL: CK_MECHANISM_TYPE = 514; pub const CKM_MD5: CK_MECHANISM_TYPE = 528; pub const CKM_MD5_HMAC: CK_MECHANISM_TYPE = 529; pub const CKM_MD5_HMAC_GENERAL: CK_MECHANISM_TYPE = 530; pub const CKM_SHA_1: CK_MECHANISM_TYPE = 544; pub const CKM_SHA_1_HMAC: CK_MECHANISM_TYPE = 545; pub const CKM_SHA_1_HMAC_GENERAL: CK_MECHANISM_TYPE = 546; pub const CKM_RIPEMD128: CK_MECHANISM_TYPE = 560; pub const CKM_RIPEMD128_HMAC: CK_MECHANISM_TYPE = 561; pub const CKM_RIPEMD128_HMAC_GENERAL: CK_MECHANISM_TYPE = 562; pub const CKM_RIPEMD160: CK_MECHANISM_TYPE = 576; pub const CKM_RIPEMD160_HMAC: CK_MECHANISM_TYPE = 577; pub const CKM_RIPEMD160_HMAC_GENERAL: CK_MECHANISM_TYPE = 578; pub const CKM_SHA256: CK_MECHANISM_TYPE = 592; pub const CKM_SHA256_HMAC: CK_MECHANISM_TYPE = 593; pub const CKM_SHA256_HMAC_GENERAL: CK_MECHANISM_TYPE = 594; pub const CKM_SHA384: CK_MECHANISM_TYPE = 608; pub const CKM_SHA384_HMAC: CK_MECHANISM_TYPE = 609; pub const CKM_SHA384_HMAC_GENERAL: CK_MECHANISM_TYPE = 610; pub const CKM_SHA512: CK_MECHANISM_TYPE = 624; pub const CKM_SHA512_HMAC: CK_MECHANISM_TYPE = 625; pub const CKM_SHA512_HMAC_GENERAL: CK_MECHANISM_TYPE = 626; pub const CKM_SECURID_KEY_GEN: CK_MECHANISM_TYPE = 640; pub const CKM_SECURID: CK_MECHANISM_TYPE = 642; pub const CKM_HOTP_KEY_GEN: CK_MECHANISM_TYPE = 656; pub const CKM_HOTP: CK_MECHANISM_TYPE = 657; pub const CKM_ACTI: CK_MECHANISM_TYPE = 672; pub const CKM_ACTI_KEY_GEN: CK_MECHANISM_TYPE = 673; pub const CKM_CAST_KEY_GEN: CK_MECHANISM_TYPE = 768; pub const CKM_CAST_ECB: CK_MECHANISM_TYPE = 769; pub const CKM_CAST_CBC: CK_MECHANISM_TYPE = 770; pub const CKM_CAST_MAC: CK_MECHANISM_TYPE = 771; pub const CKM_CAST_MAC_GENERAL: CK_MECHANISM_TYPE = 772; pub const CKM_CAST_CBC_PAD: CK_MECHANISM_TYPE = 773; pub const CKM_CAST3_KEY_GEN: CK_MECHANISM_TYPE = 784; pub const CKM_CAST3_ECB: CK_MECHANISM_TYPE = 785; pub const CKM_CAST3_CBC: CK_MECHANISM_TYPE = 786; pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST128_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_CAST128_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_RC5_KEY_GEN: CK_MECHANISM_TYPE = 816; pub const CKM_RC5_ECB: CK_MECHANISM_TYPE = 817; pub const CKM_RC5_CBC: CK_MECHANISM_TYPE = 818; pub const CKM_RC5_MAC: CK_MECHANISM_TYPE = 819; pub const CKM_RC5_MAC_GENERAL: CK_MECHANISM_TYPE = 820; pub const CKM_RC5_CBC_PAD: CK_MECHANISM_TYPE = 821; pub const CKM_IDEA_KEY_GEN: CK_MECHANISM_TYPE = 832; pub const CKM_IDEA_ECB: CK_MECHANISM_TYPE = 833; pub const CKM_IDEA_CBC: CK_MECHANISM_TYPE = 834; pub const CKM_IDEA_MAC: CK_MECHANISM_TYPE = 835; pub const CKM_IDEA_MAC_GENERAL: CK_MECHANISM_TYPE = 836; pub const CKM_IDEA_CBC_PAD: CK_MECHANISM_TYPE = 837; pub const CKM_GENERIC_SECRET_KEY_GEN: CK_MECHANISM_TYPE = 848; pub const CKM_CONCATENATE_BASE_AND_KEY: CK_MECHANISM_TYPE = 864; pub const CKM_CONCATENATE_BASE_AND_DATA: CK_MECHANISM_TYPE = 866; pub const CKM_CONCATENATE_DATA_AND_BASE: CK_MECHANISM_TYPE = 867; pub const CKM_XOR_BASE_AND_DATA: CK_MECHANISM_TYPE = 868; pub const CKM_EXTRACT_KEY_FROM_KEY: CK_MECHANISM_TYPE = 869; pub const CKM_SSL3_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 880; pub const CKM_SSL3_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 881; pub const CKM_SSL3_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 882; pub const CKM_SSL3_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 883; pub const CKM_TLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 884; pub const CKM_TLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 885; pub const CKM_TLS_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 886; pub const CKM_TLS_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 887; pub const CKM_TLS_PRF: CK_MECHANISM_TYPE = 888; pub const CKM_SSL3_MD5_MAC: CK_MECHANISM_TYPE = 896; pub const CKM_SSL3_SHA1_MAC: CK_MECHANISM_TYPE = 897; pub const CKM_MD5_KEY_DERIVATION: CK_MECHANISM_TYPE = 912; pub const CKM_MD2_KEY_DERIVATION: CK_MECHANISM_TYPE = 913; pub const CKM_SHA1_KEY_DERIVATION: CK_MECHANISM_TYPE = 914; pub const CKM_SHA256_KEY_DERIVATION: CK_MECHANISM_TYPE = 915; pub const CKM_SHA384_KEY_DERIVATION: CK_MECHANISM_TYPE = 916; pub const CKM_SHA512_KEY_DERIVATION: CK_MECHANISM_TYPE = 917; pub const CKM_PBE_MD2_DES_CBC: CK_MECHANISM_TYPE = 928; pub const CKM_PBE_MD5_DES_CBC: CK_MECHANISM_TYPE = 929; pub const CKM_PBE_MD5_CAST_CBC: CK_MECHANISM_TYPE = 930; pub const CKM_PBE_MD5_CAST3_CBC: CK_MECHANISM_TYPE = 931; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_MD5_CAST128_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_CAST128_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_RC4_128: CK_MECHANISM_TYPE = 934; pub const CKM_PBE_SHA1_RC4_40: CK_MECHANISM_TYPE = 935; pub const CKM_PBE_SHA1_DES3_EDE_CBC: CK_MECHANISM_TYPE = 936; pub const CKM_PBE_SHA1_DES2_EDE_CBC: CK_MECHANISM_TYPE = 937; pub const CKM_PBE_SHA1_RC2_128_CBC: CK_MECHANISM_TYPE = 938; pub const CKM_PBE_SHA1_RC2_40_CBC: CK_MECHANISM_TYPE = 939; pub const CKM_PKCS5_PBKD2: CK_MECHANISM_TYPE = 944; pub const CKM_PBA_SHA1_WITH_SHA1_HMAC: CK_MECHANISM_TYPE = 960; pub const CKM_WTLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 976; pub const CKM_WTLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 977; pub const CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC: CK_MECHANISM_TYPE = 978; pub const CKM_WTLS_PRF: CK_MECHANISM_TYPE = 979; pub const CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 980; pub const CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 981; pub const CKM_TLS10_MAC_SERVER: CK_MECHANISM_TYPE = 982; pub const CKM_TLS10_MAC_CLIENT: CK_MECHANISM_TYPE = 983; pub const CKM_TLS12_MAC: CK_MECHANISM_TYPE = 984; pub const CKM_TLS12_KDF: CK_MECHANISM_TYPE = 985; pub const CKM_TLS12_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 992; pub const CKM_TLS12_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 993; pub const CKM_TLS12_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 994; pub const CKM_TLS12_KEY_SAFE_DERIVE: CK_MECHANISM_TYPE = 995; pub const CKM_TLS_MAC: CK_MECHANISM_TYPE = 996; pub const CKM_TLS_KDF: CK_MECHANISM_TYPE = 997; pub const CKM_KEY_WRAP_LYNKS: CK_MECHANISM_TYPE = 1024; pub const CKM_KEY_WRAP_SET_OAEP: CK_MECHANISM_TYPE = 1025; pub const CKM_CMS_SIG: CK_MECHANISM_TYPE = 1280; pub const CKM_KIP_DERIVE: CK_MECHANISM_TYPE = 1296; pub const CKM_KIP_WRAP: CK_MECHANISM_TYPE = 1297; pub const CKM_KIP_MAC: CK_MECHANISM_TYPE = 1298; pub const CKM_CAMELLIA_KEY_GEN: CK_MECHANISM_TYPE = 1360; pub const CKM_CAMELLIA_CTR: CK_MECHANISM_TYPE = 1368; pub const CKM_ARIA_KEY_GEN: CK_MECHANISM_TYPE = 1376; pub const CKM_ARIA_ECB: CK_MECHANISM_TYPE = 1377; pub const CKM_ARIA_CBC: CK_MECHANISM_TYPE = 1378; pub const CKM_ARIA_MAC: CK_MECHANISM_TYPE = 1379; pub const CKM_ARIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1380; pub const CKM_ARIA_CBC_PAD: CK_MECHANISM_TYPE = 1381; pub const CKM_ARIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1382; pub const CKM_ARIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1383; pub const CKM_SEED_KEY_GEN: CK_MECHANISM_TYPE = 1616; pub const CKM_SEED_ECB: CK_MECHANISM_TYPE = 1617; pub const CKM_SEED_CBC: CK_MECHANISM_TYPE = 1618; pub const CKM_SEED_MAC: CK_MECHANISM_TYPE = 1619; pub const CKM_SEED_MAC_GENERAL: CK_MECHANISM_TYPE = 1620; pub const CKM_SEED_CBC_PAD: CK_MECHANISM_TYPE = 1621; pub const CKM_SEED_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1622; pub const CKM_SEED_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1623; pub const CKM_SKIPJACK_KEY_GEN: CK_MECHANISM_TYPE = 4096; pub const CKM_SKIPJACK_ECB64: CK_MECHANISM_TYPE = 4097; pub const CKM_SKIPJACK_CBC64: CK_MECHANISM_TYPE = 4098; pub const CKM_SKIPJACK_OFB64: CK_MECHANISM_TYPE = 4099; pub const CKM_SKIPJACK_CFB64: CK_MECHANISM_TYPE = 4100; pub const CKM_SKIPJACK_CFB32: CK_MECHANISM_TYPE = 4101; pub const CKM_SKIPJACK_CFB16: CK_MECHANISM_TYPE = 4102; pub const CKM_SKIPJACK_CFB8: CK_MECHANISM_TYPE = 4103; pub const CKM_SKIPJACK_WRAP: CK_MECHANISM_TYPE = 4104; pub const CKM_SKIPJACK_PRIVATE_WRAP: CK_MECHANISM_TYPE = 4105; pub const CKM_SKIPJACK_RELAYX: CK_MECHANISM_TYPE = 4106; pub const CKM_KEA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4112; pub const CKM_KEA_KEY_DERIVE: CK_MECHANISM_TYPE = 4113; pub const CKM_FORTEZZA_TIMESTAMP: CK_MECHANISM_TYPE = 4128; pub const CKM_BATON_KEY_GEN: CK_MECHANISM_TYPE = 4144; pub const CKM_BATON_ECB128: CK_MECHANISM_TYPE = 4145; pub const CKM_BATON_ECB96: CK_MECHANISM_TYPE = 4146; pub const CKM_BATON_CBC128: CK_MECHANISM_TYPE = 4147; pub const CKM_BATON_COUNTER: CK_MECHANISM_TYPE = 4148; pub const CKM_BATON_SHUFFLE: CK_MECHANISM_TYPE = 4149; pub const CKM_BATON_WRAP: CK_MECHANISM_TYPE = 4150; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_EC_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_ECDSA: CK_MECHANISM_TYPE = 4161; pub const CKM_ECDSA_SHA1: CK_MECHANISM_TYPE = 4162; pub const CKM_ECDSA_SHA224: CK_MECHANISM_TYPE = 4163; pub const CKM_ECDSA_SHA256: CK_MECHANISM_TYPE = 4164; pub const CKM_ECDSA_SHA384: CK_MECHANISM_TYPE = 4165; pub const CKM_ECDSA_SHA512: CK_MECHANISM_TYPE = 4166; pub const CKM_ECDH1_DERIVE: CK_MECHANISM_TYPE = 4176; pub const CKM_ECDH1_COFACTOR_DERIVE: CK_MECHANISM_TYPE = 4177; pub const CKM_ECMQV_DERIVE: CK_MECHANISM_TYPE = 4178; pub const CKM_ECDH_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4179; pub const CKM_RSA_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4180; pub const CKM_JUNIPER_KEY_GEN: CK_MECHANISM_TYPE = 4192; pub const CKM_JUNIPER_ECB128: CK_MECHANISM_TYPE = 4193; pub const CKM_JUNIPER_CBC128: CK_MECHANISM_TYPE = 4194; pub const CKM_JUNIPER_COUNTER: CK_MECHANISM_TYPE = 4195; pub const CKM_JUNIPER_SHUFFLE: CK_MECHANISM_TYPE = 4196; pub const CKM_JUNIPER_WRAP: CK_MECHANISM_TYPE = 4197; pub const CKM_FASTHASH: CK_MECHANISM_TYPE = 4208; pub const CKM_AES_KEY_GEN: CK_MECHANISM_TYPE = 4224; pub const CKM_AES_ECB: CK_MECHANISM_TYPE = 4225; pub const CKM_AES_CBC: CK_MECHANISM_TYPE = 4226; pub const CKM_AES_MAC: CK_MECHANISM_TYPE = 4227; pub const CKM_AES_MAC_GENERAL: CK_MECHANISM_TYPE = 4228; pub const CKM_AES_CBC_PAD: CK_MECHANISM_TYPE = 4229; pub const CKM_AES_CTR: CK_MECHANISM_TYPE = 4230; pub const CKM_AES_GCM: CK_MECHANISM_TYPE = 4231; pub const CKM_AES_CCM: CK_MECHANISM_TYPE = 4232; pub const CKM_AES_CTS: CK_MECHANISM_TYPE = 4233; pub const CKM_AES_CMAC: CK_MECHANISM_TYPE = 4234; pub const CKM_AES_CMAC_GENERAL: CK_MECHANISM_TYPE = 4235; pub const CKM_AES_XCBC_MAC: CK_MECHANISM_TYPE = 4236; pub const CKM_AES_XCBC_MAC_96: CK_MECHANISM_TYPE = 4237; pub const CKM_AES_GMAC: CK_MECHANISM_TYPE = 4238; pub const CKM_BLOWFISH_KEY_GEN: CK_MECHANISM_TYPE = 4240; pub const CKM_BLOWFISH_CBC: CK_MECHANISM_TYPE = 4241; pub const CKM_TWOFISH_KEY_GEN: CK_MECHANISM_TYPE = 4242; pub const CKM_TWOFISH_CBC: CK_MECHANISM_TYPE = 4243; pub const CKM_BLOWFISH_CBC_PAD: CK_MECHANISM_TYPE = 4244; pub const CKM_TWOFISH_CBC_PAD: CK_MECHANISM_TYPE = 4245; pub const CKM_DES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4352; pub const CKM_DES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4353; pub const CKM_DES3_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4354; pub const CKM_DES3_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4355; pub const CKM_AES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4356; pub const CKM_AES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4357; pub const CKM_GOSTR3410_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4608; pub const CKM_GOSTR3410: CK_MECHANISM_TYPE = 4609; pub const CKM_GOSTR3410_WITH_GOSTR3411: CK_MECHANISM_TYPE = 4610; pub const CKM_GOSTR3410_KEY_WRAP: CK_MECHANISM_TYPE = 4611; pub const CKM_GOSTR3410_DERIVE: CK_MECHANISM_TYPE = 4612; pub const CKM_GOSTR3411: CK_MECHANISM_TYPE = 4624; pub const CKM_GOSTR3411_HMAC: CK_MECHANISM_TYPE = 4625; pub const CKM_GOST28147_KEY_GEN: CK_MECHANISM_TYPE = 4640; pub const CKM_GOST28147_ECB: CK_MECHANISM_TYPE = 4641; pub const CKM_GOST28147: CK_MECHANISM_TYPE = 4642; pub const CKM_GOST28147_MAC: CK_MECHANISM_TYPE = 4643; pub const CKM_GOST28147_KEY_WRAP: CK_MECHANISM_TYPE = 4644; pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; pub const CKM_AES_CFB64: CK_MECHANISM_TYPE = 8453; pub const CKM_AES_CFB8: CK_MECHANISM_TYPE = 8454; pub const CKM_AES_CFB128: CK_MECHANISM_TYPE = 8455; pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_SHA224: CK_MECHANISM_TYPE = 597; pub const CKM_SHA224_HMAC: CK_MECHANISM_TYPE = 598; pub const CKM_SHA224_HMAC_GENERAL: CK_MECHANISM_TYPE = 599; pub const CKM_SHA224_RSA_PKCS: CK_MECHANISM_TYPE = 70; pub const CKM_SHA224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 71; pub const CKM_SHA224_KEY_DERIVATION: CK_MECHANISM_TYPE = 918; pub const CKM_CAMELLIA_ECB: CK_MECHANISM_TYPE = 1361; pub const CKM_CAMELLIA_CBC: CK_MECHANISM_TYPE = 1362; pub const CKM_CAMELLIA_MAC: CK_MECHANISM_TYPE = 1363; pub const CKM_CAMELLIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1364; pub const CKM_CAMELLIA_CBC_PAD: CK_MECHANISM_TYPE = 1365; pub const CKM_CAMELLIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1366; pub const CKM_CAMELLIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1367; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_EC_EDWARDS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4181; pub const CKM_EC_MONTGOMERY_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4182; pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CK_OTP_FORMAT_DECIMAL: CK_ULONG = 0; pub const CK_OTP_FORMAT_HEXADECIMAL: CK_ULONG = 1; pub const CK_OTP_FORMAT_ALPHANUMERIC: CK_ULONG = 2; pub const CK_OTP_FORMAT_BINARY: CK_ULONG = 3; pub const CK_OTP_PARAM_IGNORED: CK_ULONG = 0; pub const CK_OTP_PARAM_OPTIONAL: CK_ULONG = 1; pub const CK_OTP_PARAM_MANDATORY: CK_ULONG = 2; pub const CK_OTP_VALUE: CK_ULONG = 0; pub const CK_OTP_PIN: CK_ULONG = 1; pub const CK_OTP_CHALLENGE: CK_ULONG = 2; pub const CK_OTP_TIME: CK_ULONG = 3; pub const CK_OTP_COUNTER: CK_ULONG = 4; pub const CK_OTP_FLAGS: CK_ULONG = 5; pub const CK_OTP_OUTPUT_LENGTH: CK_ULONG = 6; pub const CK_OTP_FORMAT: CK_ULONG = 7; pub const CKF_NEXT_OTP: CK_FLAGS = 1; pub const CKF_EXCLUDE_TIME: CK_FLAGS = 2; pub const CKF_EXCLUDE_COUNTER: CK_FLAGS = 4; pub const CKF_EXCLUDE_CHALLENGE: CK_FLAGS = 8; pub const CKF_EXCLUDE_PIN: CK_FLAGS = 16; pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKG_MGF1_SHA1: CK_RSA_PKCS_MGF_TYPE = 1; pub const CKG_MGF1_SHA224: CK_RSA_PKCS_MGF_TYPE = 5; pub const CKG_MGF1_SHA256: CK_RSA_PKCS_MGF_TYPE = 2; pub const CKG_MGF1_SHA384: CK_RSA_PKCS_MGF_TYPE = 3; pub const CKG_MGF1_SHA512: CK_RSA_PKCS_MGF_TYPE = 4; pub const CKD_NULL: CK_EC_KDF_TYPE = 1; pub const CKD_SHA1_KDF: CK_EC_KDF_TYPE = 2; pub const CKD_SHA1_KDF_ASN1: CK_EC_KDF_TYPE = 3; pub const CKD_SHA1_KDF_CONCATENATE: CK_EC_KDF_TYPE = 4; pub const CKD_SHA224_KDF: CK_EC_KDF_TYPE = 5; pub const CKD_SHA256_KDF: CK_EC_KDF_TYPE = 6; pub const CKD_SHA384_KDF: CK_EC_KDF_TYPE = 7; pub const CKD_SHA512_KDF: CK_EC_KDF_TYPE = 8; pub const CKD_CPDIVERSIFY_KDF: CK_EC_KDF_TYPE = 9; pub const CKF_HW: CK_FLAGS = 1; pub const CKF_ENCRYPT: CK_FLAGS = 256; pub const CKF_DECRYPT: CK_FLAGS = 512; pub const CKF_DIGEST: CK_FLAGS = 1024; pub const CKF_SIGN: CK_FLAGS = 2048; pub const CKF_SIGN_RECOVER: CK_FLAGS = 4096; pub const CKF_VERIFY: CK_FLAGS = 8192; pub const CKF_VERIFY_RECOVER: CK_FLAGS = 16384; pub const CKF_GENERATE: CK_FLAGS = 32768; pub const CKF_GENERATE_KEY_PAIR: CK_FLAGS = 65536; pub const CKF_WRAP: CK_FLAGS = 131072; pub const CKF_UNWRAP: CK_FLAGS = 262144; pub const CKF_DERIVE: CK_FLAGS = 524288; pub const CKF_EC_F_P: CK_FLAGS = 1048576; pub const CKF_EC_F_2M: CK_FLAGS = 2097152; pub const CKF_EC_ECPARAMETERS: CK_FLAGS = 4194304; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_LIBRARY_CANT_CREATE_OS_THREADS: CK_FLAGS = 1; pub const CKF_OS_LOCKING_OK: CK_FLAGS = 2; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; pub const CKR_SLOT_ID_INVALID: CK_RV = 3; pub const CKR_GENERAL_ERROR: CK_RV = 5; pub const CKR_FUNCTION_FAILED: CK_RV = 6; pub const CKR_ARGUMENTS_BAD: CK_RV = 7; pub const CKR_NO_EVENT: CK_RV = 8; pub const CKR_NEED_TO_CREATE_THREADS: CK_RV = 9; pub const CKR_CANT_LOCK: CK_RV = 10; pub const CKR_ATTRIBUTE_READ_ONLY: CK_RV = 16; pub const CKR_ATTRIBUTE_SENSITIVE: CK_RV = 17; pub const CKR_ATTRIBUTE_TYPE_INVALID: CK_RV = 18; pub const CKR_ATTRIBUTE_VALUE_INVALID: CK_RV = 19; pub const CKR_ACTION_PROHIBITED: CK_RV = 27; pub const CKR_DATA_INVALID: CK_RV = 32; pub const CKR_DATA_LEN_RANGE: CK_RV = 33; pub const CKR_DEVICE_ERROR: CK_RV = 48; pub const CKR_DEVICE_MEMORY: CK_RV = 49; pub const CKR_DEVICE_REMOVED: CK_RV = 50; pub const CKR_ENCRYPTED_DATA_INVALID: CK_RV = 64; pub const CKR_ENCRYPTED_DATA_LEN_RANGE: CK_RV = 65; pub const CKR_FUNCTION_CANCELED: CK_RV = 80; pub const CKR_FUNCTION_NOT_PARALLEL: CK_RV = 81; pub const CKR_FUNCTION_NOT_SUPPORTED: CK_RV = 84; pub const CKR_KEY_HANDLE_INVALID: CK_RV = 96; pub const CKR_KEY_SIZE_RANGE: CK_RV = 98; pub const CKR_KEY_TYPE_INCONSISTENT: CK_RV = 99; pub const CKR_KEY_NOT_NEEDED: CK_RV = 100; pub const CKR_KEY_CHANGED: CK_RV = 101; pub const CKR_KEY_NEEDED: CK_RV = 102; pub const CKR_KEY_INDIGESTIBLE: CK_RV = 103; pub const CKR_KEY_FUNCTION_NOT_PERMITTED: CK_RV = 104; pub const CKR_KEY_NOT_WRAPPABLE: CK_RV = 105; pub const CKR_KEY_UNEXTRACTABLE: CK_RV = 106; pub const CKR_MECHANISM_INVALID: CK_RV = 112; pub const CKR_MECHANISM_PARAM_INVALID: CK_RV = 113; pub const CKR_OBJECT_HANDLE_INVALID: CK_RV = 130; pub const CKR_OPERATION_ACTIVE: CK_RV = 144; pub const CKR_OPERATION_NOT_INITIALIZED: CK_RV = 145; pub const CKR_PIN_INCORRECT: CK_RV = 160; pub const CKR_PIN_INVALID: CK_RV = 161; pub const CKR_PIN_LEN_RANGE: CK_RV = 162; pub const CKR_PIN_EXPIRED: CK_RV = 163; pub const CKR_PIN_LOCKED: CK_RV = 164; pub const CKR_SESSION_CLOSED: CK_RV = 176; pub const CKR_SESSION_COUNT: CK_RV = 177; pub const CKR_SESSION_HANDLE_INVALID: CK_RV = 179; pub const CKR_SESSION_PARALLEL_NOT_SUPPORTED: CK_RV = 180; pub const CKR_SESSION_READ_ONLY: CK_RV = 181; pub const CKR_SESSION_EXISTS: CK_RV = 182; pub const CKR_SESSION_READ_ONLY_EXISTS: CK_RV = 183; pub const CKR_SESSION_READ_WRITE_SO_EXISTS: CK_RV = 184; pub const CKR_SIGNATURE_INVALID: CK_RV = 192; pub const CKR_SIGNATURE_LEN_RANGE: CK_RV = 193; pub const CKR_TEMPLATE_INCOMPLETE: CK_RV = 208; pub const CKR_TEMPLATE_INCONSISTENT: CK_RV = 209; pub const CKR_TOKEN_NOT_PRESENT: CK_RV = 224; pub const CKR_TOKEN_NOT_RECOGNIZED: CK_RV = 225; pub const CKR_TOKEN_WRITE_PROTECTED: CK_RV = 226; pub const CKR_UNWRAPPING_KEY_HANDLE_INVALID: CK_RV = 240; pub const CKR_UNWRAPPING_KEY_SIZE_RANGE: CK_RV = 241; pub const CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 242; pub const CKR_USER_ALREADY_LOGGED_IN: CK_RV = 256; pub const CKR_USER_NOT_LOGGED_IN: CK_RV = 257; pub const CKR_USER_PIN_NOT_INITIALIZED: CK_RV = 258; pub const CKR_USER_TYPE_INVALID: CK_RV = 259; pub const CKR_USER_ANOTHER_ALREADY_LOGGED_IN: CK_RV = 260; pub const CKR_USER_TOO_MANY_TYPES: CK_RV = 261; pub const CKR_WRAPPED_KEY_INVALID: CK_RV = 272; pub const CKR_WRAPPED_KEY_LEN_RANGE: CK_RV = 274; pub const CKR_WRAPPING_KEY_HANDLE_INVALID: CK_RV = 275; pub const CKR_WRAPPING_KEY_SIZE_RANGE: CK_RV = 276; pub const CKR_WRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 277; pub const CKR_RANDOM_SEED_NOT_SUPPORTED: CK_RV = 288; pub const CKR_RANDOM_NO_RNG: CK_RV = 289; pub const CKR_DOMAIN_PARAMS_INVALID: CK_RV = 304; pub const CKR_BUFFER_TOO_SMALL: CK_RV = 336; pub const CKR_SAVED_STATE_INVALID: CK_RV = 352; pub const CKR_INFORMATION_SENSITIVE: CK_RV = 368; pub const CKR_STATE_UNSAVEABLE: CK_RV = 384; pub const CKR_CRYPTOKI_NOT_INITIALIZED: CK_RV = 400; pub const CKR_CRYPTOKI_ALREADY_INITIALIZED: CK_RV = 401; pub const CKR_MUTEX_BAD: CK_RV = 416; pub const CKR_MUTEX_NOT_LOCKED: CK_RV = 417; pub const CKR_NEW_PIN_MODE: CK_RV = 432; pub const CKR_NEXT_OTP: CK_RV = 433; pub const CKR_EXCEEDED_MAX_ITERATIONS: CK_RV = 448; pub const CKR_FIPS_SELF_TEST_FAILED: CK_RV = 449; pub const CKR_LIBRARY_LOAD_FAILED: CK_RV = 450; pub const CKR_PIN_TOO_WEAK: CK_RV = 451; pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 452; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CK_FALSE: CK_BBOOL = 0; pub const CK_TRUE: CK_BBOOL = 1; pub const FALSE: u32 = 0; pub const TRUE: u32 = 1; pub type CK_FLAGS = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_VERSION { pub major: ::std::os::raw::c_uchar, pub minor: ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout__CK_VERSION() { const UNINIT: ::std::mem::MaybeUninit<_CK_VERSION> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_VERSION>(), 2usize, concat!("Size of: ", stringify!(_CK_VERSION)) ); assert_eq!( ::std::mem::align_of::<_CK_VERSION>(), 1usize, concat!("Alignment of ", stringify!(_CK_VERSION)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).major) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(major) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).minor) as usize - ptr as usize }, 1usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(minor) ) ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_INFO { pub cryptokiVersion: _CK_VERSION, pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub libraryDescription: [::std::os::raw::c_uchar; 32usize], pub libraryVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_INFO>(), 88usize, concat!("Size of: ", stringify!(_CK_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cryptokiVersion) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(cryptokiVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 2usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryDescription) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryVersion) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryVersion) ) ); } pub type CK_NOTIFICATION = ::std::os::raw::c_ulong; pub const CKN_SURRENDER: ::std::os::raw::c_ulong = 0; pub type CK_SLOT_ID = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_SLOT_INFO { pub slotDescription: [::std::os::raw::c_uchar; 64usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_SLOT_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SLOT_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SLOT_INFO>(), 112usize, concat!("Size of: ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SLOT_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotDescription) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(slotDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 106usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(firmwareVersion) ) ); } impl Default for _CK_SLOT_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub const CKF_TOKEN_PRESENT: ::std::os::raw::c_ulong = 1; pub const CKF_REMOVABLE_DEVICE: ::std::os::raw::c_ulong = 2; pub const CKF_HW_SLOT: ::std::os::raw::c_ulong = 4; pub const CKF_ARRAY_ATTRIBUTE: ::std::os::raw::c_ulong = 1073741824; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_TOKEN_INFO { pub label: [::std::os::raw::c_uchar; 32usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub model: [::std::os::raw::c_uchar; 16usize], pub serialNumber: [::std::os::raw::c_uchar; 16usize], pub flags: CK_FLAGS, pub ulMaxSessionCount: ::std::os::raw::c_ulong, pub ulSessionCount: ::std::os::raw::c_ulong, pub ulMaxRwSessionCount: ::std::os::raw::c_ulong, pub ulRwSessionCount: ::std::os::raw::c_ulong, pub ulMaxPinLen: ::std::os::raw::c_ulong, pub ulMinPinLen: ::std::os::raw::c_ulong, pub ulTotalPublicMemory: ::std::os::raw::c_ulong, pub ulFreePublicMemory: ::std::os::raw::c_ulong, pub ulTotalPrivateMemory: ::std::os::raw::c_ulong, pub ulFreePrivateMemory: ::std::os::raw::c_ulong, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, pub utcTime: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout__CK_TOKEN_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_TOKEN_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_TOKEN_INFO>(), 208usize, concat!("Size of: ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_TOKEN_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(label) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).model) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(model) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).serialNumber) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(serialNumber) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxSessionCount) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSessionCount) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxRwSessionCount) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulRwSessionCount) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxPinLen) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinPinLen) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMinPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPublicMemory) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePublicMemory) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPrivateMemory) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePrivateMemory) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 186usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(firmwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).utcTime) as usize - ptr as usize }, 188usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(utcTime) ) ); } pub type CK_SESSION_HANDLE = ::std::os::raw::c_ulong; pub type CK_USER_TYPE = ::std::os::raw::c_ulong; pub type CK_STATE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_SESSION_INFO { pub slotID: CK_SLOT_ID, pub state: CK_STATE, pub flags: CK_FLAGS, pub ulDeviceError: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_SESSION_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SESSION_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SESSION_INFO>(), 32usize, concat!("Size of: ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SESSION_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotID) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(slotID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(state) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulDeviceError) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(ulDeviceError) ) ); } pub type CK_OBJECT_HANDLE = ::std::os::raw::c_ulong; pub type CK_OBJECT_CLASS = ::std::os::raw::c_ulong; pub type CK_HW_FEATURE_TYPE = ::std::os::raw::c_ulong; pub type CK_KEY_TYPE = ::std::os::raw::c_ulong; pub type CK_CERTIFICATE_TYPE = ::std::os::raw::c_ulong; pub type CK_ATTRIBUTE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_ATTRIBUTE { pub type_: CK_ATTRIBUTE_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_ATTRIBUTE() { const UNINIT: ::std::mem::MaybeUninit<_CK_ATTRIBUTE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_ATTRIBUTE>(), 24usize, concat!("Size of: ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( ::std::mem::align_of::<_CK_ATTRIBUTE>(), 8usize, concat!("Alignment of ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(ulValueLen) ) ); } impl Default for _CK_ATTRIBUTE { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_DATE { pub year: [::std::os::raw::c_uchar; 4usize], pub month: [::std::os::raw::c_uchar; 2usize], pub day: [::std::os::raw::c_uchar; 2usize], } #[test] fn bindgen_test_layout__CK_DATE() { const UNINIT: ::std::mem::MaybeUninit<_CK_DATE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_DATE>(), 8usize, concat!("Size of: ", stringify!(_CK_DATE)) ); assert_eq!( ::std::mem::align_of::<_CK_DATE>(), 1usize, concat!("Alignment of ", stringify!(_CK_DATE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).year) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(year) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).month) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(month) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).day) as usize - ptr as usize }, 6usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(day) ) ); } pub type CK_MECHANISM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_MECHANISM { pub mechanism: CK_MECHANISM_TYPE, pub pParameter: *mut ::std::os::raw::c_void, pub ulParameterLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_MECHANISM() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM>(), 24usize, concat!("Size of: ", stringify!(_CK_MECHANISM)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM>(), 8usize, concat!("Alignment of ", stringify!(_CK_MECHANISM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mechanism) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(mechanism) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParameter) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(pParameter) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulParameterLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(ulParameterLen) ) ); } impl Default for _CK_MECHANISM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_MECHANISM_INFO { pub ulMinKeySize: ::std::os::raw::c_ulong, pub ulMaxKeySize: ::std::os::raw::c_ulong, pub flags: CK_FLAGS, } #[test] fn bindgen_test_layout__CK_MECHANISM_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM_INFO>(), 24usize, concat!("Size of: ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinKeySize) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMinKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxKeySize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMaxKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(flags) ) ); } pub type CK_PARAM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAM { pub type_: CK_PARAM_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAM() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(CK_OTP_PARAM)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_PARAM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(ulValueLen) ) ); } impl Default for CK_OTP_PARAM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAMS { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAMS() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_PARAMS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_SIGNATURE_INFO { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_SIGNATURE_INFO() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_SIGNATURE_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RSA_PKCS_MGF_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_rsa_pkcs_pss_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub sLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_pss_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).sLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(sLen) ) ); } pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_rsa_pkcs_oaep_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub source: CK_RSA_PKCS_OAEP_SOURCE_TYPE, pub pSourceData: *mut ::std::os::raw::c_void, pub ulSourceDataLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_oaep_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(source) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSourceData) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(pSourceData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSourceDataLen) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(ulSourceDataLen) ) ); } impl Default for ck_rsa_pkcs_oaep_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_aes_ctr_params { pub ulCounterBits: ::std::os::raw::c_ulong, pub cb: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout_ck_aes_ctr_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_aes_ctr_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_aes_ctr_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCounterBits) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(ulCounterBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cb) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(cb) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_gcm_params { pub pIv: *mut ::std::os::raw::c_uchar, pub ulIvLen: ::std::os::raw::c_ulong, pub ulIvBits: ::std::os::raw::c_ulong, pub pAAD: *mut ::std::os::raw::c_uchar, pub ulAADLen: ::std::os::raw::c_ulong, pub ulTagBits: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_gcm_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 48usize, concat!("Size of: ", stringify!(ck_gcm_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_gcm_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pIv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pIv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvBits) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pAAD) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pAAD) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulAADLen) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulAADLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTagBits) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulTagBits) ) ); } impl Default for ck_gcm_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type ck_ec_kdf_t = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_ecdh1_derive_params { pub kdf: ck_ec_kdf_t, pub ulSharedDataLen: ::std::os::raw::c_ulong, pub pSharedData: *mut ::std::os::raw::c_uchar, pub ulPublicDataLen: ::std::os::raw::c_ulong, pub pPublicData: *mut ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout_ck_ecdh1_derive_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(kdf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSharedDataLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulSharedDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSharedData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pSharedData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulPublicDataLen) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulPublicDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pPublicData) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pPublicData) ) ); } impl Default for ck_ecdh1_derive_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_key_derivation_string_data { pub pData: *mut ::std::os::raw::c_uchar, pub ulLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_key_derivation_string_data() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(ulLen) ) ); } impl Default for ck_key_derivation_string_data { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_des_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 8usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_des_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_des_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_aes_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 16usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_aes_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 32usize, concat!("Size of: ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_aes_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RV = ::std::os::raw::c_ulong; pub type CK_NOTIFY = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, event: CK_NOTIFICATION, application: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_Initialize = ::std::option::Option CK_RV>; pub type CK_C_Finalize = ::std::option::Option CK_RV>; pub type CK_C_GetInfo = ::std::option::Option CK_RV>; pub type CK_C_GetFunctionList = ::std::option::Option< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, >; pub type CK_C_GetSlotList = ::std::option::Option< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetSlotInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, >; pub type CK_C_GetTokenInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, >; pub type CK_C_WaitForSlotEvent = ::std::option::Option< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_GetMechanismList = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetMechanismInfo = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, >; pub type CK_C_InitToken = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, >; pub type CK_C_InitPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_OpenSession = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, >; pub type CK_C_CloseSession = ::std::option::Option CK_RV>; pub type CK_C_CloseAllSessions = ::std::option::Option CK_RV>; pub type CK_C_GetSessionInfo = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, >; pub type CK_C_GetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Login = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_Logout = ::std::option::Option CK_RV>; pub type CK_C_CreateObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_CopyObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DestroyObject = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_GetObjectSize = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjects = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsFinal = ::std::option::Option CK_RV>; pub type CK_C_EncryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Encrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Decrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestInit = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, >; pub type CK_C_Digest = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestKey = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_DigestFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Sign = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SignRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Verify = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_VerifyRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptDigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptVerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_GenerateKeyPair = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_WrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_UnwrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DeriveKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SeedRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetFunctionStatus = ::std::option::Option CK_RV>; pub type CK_C_CancelFunction = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_FUNCTION_LIST { pub version: _CK_VERSION, pub C_Initialize: CK_C_Initialize, pub C_Finalize: CK_C_Finalize, pub C_GetInfo: CK_C_GetInfo, pub C_GetFunctionList: CK_C_GetFunctionList, pub C_GetSlotList: CK_C_GetSlotList, pub C_GetSlotInfo: CK_C_GetSlotInfo, pub C_GetTokenInfo: CK_C_GetTokenInfo, pub C_GetMechanismList: CK_C_GetMechanismList, pub C_GetMechanismInfo: CK_C_GetMechanismInfo, pub C_InitToken: CK_C_InitToken, pub C_InitPIN: CK_C_InitPIN, pub C_SetPIN: CK_C_SetPIN, pub C_OpenSession: CK_C_OpenSession, pub C_CloseSession: CK_C_CloseSession, pub C_CloseAllSessions: CK_C_CloseAllSessions, pub C_GetSessionInfo: CK_C_GetSessionInfo, pub C_GetOperationState: CK_C_GetOperationState, pub C_SetOperationState: CK_C_SetOperationState, pub C_Login: CK_C_Login, pub C_Logout: CK_C_Logout, pub C_CreateObject: CK_C_CreateObject, pub C_CopyObject: CK_C_CopyObject, pub C_DestroyObject: CK_C_DestroyObject, pub C_GetObjectSize: CK_C_GetObjectSize, pub C_GetAttributeValue: CK_C_GetAttributeValue, pub C_SetAttributeValue: CK_C_SetAttributeValue, pub C_FindObjectsInit: CK_C_FindObjectsInit, pub C_FindObjects: CK_C_FindObjects, pub C_FindObjectsFinal: CK_C_FindObjectsFinal, pub C_EncryptInit: CK_C_EncryptInit, pub C_Encrypt: CK_C_Encrypt, pub C_EncryptUpdate: CK_C_EncryptUpdate, pub C_EncryptFinal: CK_C_EncryptFinal, pub C_DecryptInit: CK_C_DecryptInit, pub C_Decrypt: CK_C_Decrypt, pub C_DecryptUpdate: CK_C_DecryptUpdate, pub C_DecryptFinal: CK_C_DecryptFinal, pub C_DigestInit: CK_C_DigestInit, pub C_Digest: CK_C_Digest, pub C_DigestUpdate: CK_C_DigestUpdate, pub C_DigestKey: CK_C_DigestKey, pub C_DigestFinal: CK_C_DigestFinal, pub C_SignInit: CK_C_SignInit, pub C_Sign: CK_C_Sign, pub C_SignUpdate: CK_C_SignUpdate, pub C_SignFinal: CK_C_SignFinal, pub C_SignRecoverInit: CK_C_SignRecoverInit, pub C_SignRecover: CK_C_SignRecover, pub C_VerifyInit: CK_C_VerifyInit, pub C_Verify: CK_C_Verify, pub C_VerifyUpdate: CK_C_VerifyUpdate, pub C_VerifyFinal: CK_C_VerifyFinal, pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, pub C_VerifyRecover: CK_C_VerifyRecover, pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, pub C_GenerateKey: CK_C_GenerateKey, pub C_GenerateKeyPair: CK_C_GenerateKeyPair, pub C_WrapKey: CK_C_WrapKey, pub C_UnwrapKey: CK_C_UnwrapKey, pub C_DeriveKey: CK_C_DeriveKey, pub C_SeedRandom: CK_C_SeedRandom, pub C_GenerateRandom: CK_C_GenerateRandom, pub C_GetFunctionStatus: CK_C_GetFunctionStatus, pub C_CancelFunction: CK_C_CancelFunction, pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, } #[test] fn bindgen_test_layout__CK_FUNCTION_LIST() { const UNINIT: ::std::mem::MaybeUninit<_CK_FUNCTION_LIST> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_FUNCTION_LIST>(), 552usize, concat!("Size of: ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( ::std::mem::align_of::<_CK_FUNCTION_LIST>(), 8usize, concat!("Alignment of ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(version) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Initialize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Initialize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Finalize) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Finalize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetInfo) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionList) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotList) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotInfo) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetTokenInfo) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetTokenInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismList) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismInfo) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitToken) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitToken) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitPIN) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetPIN) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_OpenSession) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_OpenSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseSession) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseAllSessions) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseAllSessions) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSessionInfo) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSessionInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetOperationState) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetOperationState) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Login) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Login) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Logout) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Logout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CreateObject) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CreateObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CopyObject) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CopyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DestroyObject) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DestroyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetObjectSize) as usize - ptr as usize }, 192usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetObjectSize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetAttributeValue) as usize - ptr as usize }, 200usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetAttributeValue) as usize - ptr as usize }, 208usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsInit) as usize - ptr as usize }, 216usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjects) as usize - ptr as usize }, 224usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjects) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsFinal) as usize - ptr as usize }, 232usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptInit) as usize - ptr as usize }, 240usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Encrypt) as usize - ptr as usize }, 248usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Encrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptUpdate) as usize - ptr as usize }, 256usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptFinal) as usize - ptr as usize }, 264usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptInit) as usize - ptr as usize }, 272usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Decrypt) as usize - ptr as usize }, 280usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Decrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptUpdate) as usize - ptr as usize }, 288usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptFinal) as usize - ptr as usize }, 296usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestInit) as usize - ptr as usize }, 304usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Digest) as usize - ptr as usize }, 312usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Digest) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestUpdate) as usize - ptr as usize }, 320usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestKey) as usize - ptr as usize }, 328usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestFinal) as usize - ptr as usize }, 336usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignInit) as usize - ptr as usize }, 344usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Sign) as usize - ptr as usize }, 352usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Sign) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignUpdate) as usize - ptr as usize }, 360usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignFinal) as usize - ptr as usize }, 368usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecoverInit) as usize - ptr as usize }, 376usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecover) as usize - ptr as usize }, 384usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyInit) as usize - ptr as usize }, 392usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Verify) as usize - ptr as usize }, 400usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Verify) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyUpdate) as usize - ptr as usize }, 408usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyFinal) as usize - ptr as usize }, 416usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecoverInit) as usize - ptr as usize }, 424usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecover) as usize - ptr as usize }, 432usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestEncryptUpdate) as usize - ptr as usize }, 440usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptDigestUpdate) as usize - ptr as usize }, 448usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptDigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignEncryptUpdate) as usize - ptr as usize }, 456usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptVerifyUpdate) as usize - ptr as usize }, 464usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptVerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKey) as usize - ptr as usize }, 472usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKeyPair) as usize - ptr as usize }, 480usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKeyPair) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WrapKey) as usize - ptr as usize }, 488usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_UnwrapKey) as usize - ptr as usize }, 496usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_UnwrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DeriveKey) as usize - ptr as usize }, 504usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DeriveKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SeedRandom) as usize - ptr as usize }, 512usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SeedRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateRandom) as usize - ptr as usize }, 520usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionStatus) as usize - ptr as usize }, 528usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionStatus) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CancelFunction) as usize - ptr as usize }, 536usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CancelFunction) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WaitForSlotEvent) as usize - ptr as usize }, 544usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WaitForSlotEvent) ) ); } pub type CK_CREATEMUTEX = ::std::option::Option CK_RV>; pub type CK_DESTROYMUTEX = ::std::option::Option CK_RV>; pub type CK_LOCKMUTEX = ::std::option::Option CK_RV>; pub type CK_UNLOCKMUTEX = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_C_INITIALIZE_ARGS { pub CreateMutex: CK_CREATEMUTEX, pub DestroyMutex: CK_DESTROYMUTEX, pub LockMutex: CK_LOCKMUTEX, pub UnlockMutex: CK_UNLOCKMUTEX, pub flags: CK_FLAGS, pub pReserved: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout__CK_C_INITIALIZE_ARGS() { const UNINIT: ::std::mem::MaybeUninit<_CK_C_INITIALIZE_ARGS> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_C_INITIALIZE_ARGS>(), 48usize, concat!("Size of: ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( ::std::mem::align_of::<_CK_C_INITIALIZE_ARGS>(), 8usize, concat!("Alignment of ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).CreateMutex) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(CreateMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).DestroyMutex) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(DestroyMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).LockMutex) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(LockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).UnlockMutex) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(UnlockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pReserved) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(pReserved) ) ); } impl Default for _CK_C_INITIALIZE_ARGS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_BYTE = ::std::os::raw::c_uchar; pub type CK_CHAR = ::std::os::raw::c_uchar; pub type CK_UTF8CHAR = ::std::os::raw::c_uchar; pub type CK_BBOOL = ::std::os::raw::c_uchar; pub type CK_ULONG = ::std::os::raw::c_ulong; pub type CK_LONG = ::std::os::raw::c_long; pub type CK_BYTE_PTR = *mut CK_BYTE; pub type CK_CHAR_PTR = *mut CK_CHAR; pub type CK_UTF8CHAR_PTR = *mut CK_UTF8CHAR; pub type CK_ULONG_PTR = *mut CK_ULONG; pub type CK_VOID_PTR = *mut ::std::os::raw::c_void; pub type CK_VOID_PTR_PTR = *mut *mut ::std::os::raw::c_void; pub type CK_VERSION = _CK_VERSION; pub type CK_VERSION_PTR = *mut _CK_VERSION; pub type CK_INFO = _CK_INFO; pub type CK_INFO_PTR = *mut _CK_INFO; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SLOT_INFO = _CK_SLOT_INFO; pub type CK_SLOT_INFO_PTR = *mut _CK_SLOT_INFO; pub type CK_TOKEN_INFO = _CK_TOKEN_INFO; pub type CK_TOKEN_INFO_PTR = *mut _CK_TOKEN_INFO; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; pub type CK_SESSION_INFO = _CK_SESSION_INFO; pub type CK_SESSION_INFO_PTR = *mut _CK_SESSION_INFO; pub type CK_OBJECT_HANDLE_PTR = *mut CK_OBJECT_HANDLE; pub type CK_OBJECT_CLASS_PTR = *mut CK_OBJECT_CLASS; pub type CK_ATTRIBUTE = _CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR = *mut _CK_ATTRIBUTE; pub type CK_DATE = _CK_DATE; pub type CK_DATE_PTR = *mut _CK_DATE; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; pub type CK_MECHANISM = _CK_MECHANISM; pub type CK_MECHANISM_PTR = *mut _CK_MECHANISM; pub type CK_MECHANISM_INFO = _CK_MECHANISM_INFO; pub type CK_MECHANISM_INFO_PTR = *mut _CK_MECHANISM_INFO; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_otp_mechanism_info { _unused: [u8; 0], } pub type CK_OTP_MECHANISM_INFO = ck_otp_mechanism_info; pub type CK_OTP_MECHANISM_INFO_PTR = *mut ck_otp_mechanism_info; pub type CK_FUNCTION_LIST = _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR = *mut _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut _CK_FUNCTION_LIST; pub type CK_C_INITIALIZE_ARGS = _CK_C_INITIALIZE_ARGS; pub type CK_C_INITIALIZE_ARGS_PTR = *mut _CK_C_INITIALIZE_ARGS; pub type CK_RSA_PKCS_PSS_PARAMS = ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_PSS_PARAMS_PTR = *mut ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_OAEP_PARAMS = ck_rsa_pkcs_oaep_params; pub type CK_RSA_PKCS_OAEP_PARAMS_PTR = *mut ck_rsa_pkcs_oaep_params; pub type CK_AES_CTR_PARAMS = ck_aes_ctr_params; pub type CK_AES_CTR_PARAMS_PTR = *mut ck_aes_ctr_params; pub type CK_GCM_PARAMS = ck_gcm_params; pub type CK_GCM_PARAMS_PTR = *mut ck_gcm_params; pub type CK_ECDH1_DERIVE_PARAMS = ck_ecdh1_derive_params; pub type CK_ECDH1_DERIVE_PARAMS_PTR = *mut ck_ecdh1_derive_params; pub type CK_KEY_DERIVATION_STRING_DATA = ck_key_derivation_string_data; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut ck_key_derivation_string_data; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS = ck_des_cbc_encrypt_data_params; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_des_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS = ck_aes_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_aes_cbc_encrypt_data_params; extern crate libloading; pub struct Pkcs11 { __library: ::libloading::Library, pub C_Initialize: Result< unsafe extern "C" fn(init_args: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_Finalize: Result< unsafe extern "C" fn(pReserved: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_GetInfo: Result CK_RV, ::libloading::Error>, pub C_GetFunctionList: Result< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, ::libloading::Error, >, pub C_GetSlotList: Result< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetSlotInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetTokenInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, ::libloading::Error, >, pub C_WaitForSlotEvent: Result< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismList: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismInfo: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, ::libloading::Error, >, pub C_InitToken: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, ::libloading::Error, >, pub C_InitPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_OpenSession: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CloseSession: Result CK_RV, ::libloading::Error>, pub C_CloseAllSessions: Result CK_RV, ::libloading::Error>, pub C_GetSessionInfo: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Login: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_Logout: Result CK_RV, ::libloading::Error>, pub C_CreateObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CopyObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DestroyObject: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_GetObjectSize: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjects: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsFinal: Result CK_RV, ::libloading::Error>, pub C_EncryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Encrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Decrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestInit: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, ::libloading::Error, >, pub C_Digest: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestKey: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_DigestFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Sign: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Verify: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptDigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptVerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKeyPair: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_WrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_UnwrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DeriveKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SeedRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetFunctionStatus: Result CK_RV, ::libloading::Error>, pub C_CancelFunction: Result CK_RV, ::libloading::Error>, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result where P: AsRef<::std::ffi::OsStr>, { let library = ::libloading::Library::new(path)?; Self::from_library(library) } pub unsafe fn from_library(library: L) -> Result where L: Into<::libloading::Library>, { let __library = library.into(); let C_Initialize = __library.get(b"C_Initialize\0").map(|sym| *sym); let C_Finalize = __library.get(b"C_Finalize\0").map(|sym| *sym); let C_GetInfo = __library.get(b"C_GetInfo\0").map(|sym| *sym); let C_GetFunctionList = __library.get(b"C_GetFunctionList\0").map(|sym| *sym); let C_GetSlotList = __library.get(b"C_GetSlotList\0").map(|sym| *sym); let C_GetSlotInfo = __library.get(b"C_GetSlotInfo\0").map(|sym| *sym); let C_GetTokenInfo = __library.get(b"C_GetTokenInfo\0").map(|sym| *sym); let C_WaitForSlotEvent = __library.get(b"C_WaitForSlotEvent\0").map(|sym| *sym); let C_GetMechanismList = __library.get(b"C_GetMechanismList\0").map(|sym| *sym); let C_GetMechanismInfo = __library.get(b"C_GetMechanismInfo\0").map(|sym| *sym); let C_InitToken = __library.get(b"C_InitToken\0").map(|sym| *sym); let C_InitPIN = __library.get(b"C_InitPIN\0").map(|sym| *sym); let C_SetPIN = __library.get(b"C_SetPIN\0").map(|sym| *sym); let C_OpenSession = __library.get(b"C_OpenSession\0").map(|sym| *sym); let C_CloseSession = __library.get(b"C_CloseSession\0").map(|sym| *sym); let C_CloseAllSessions = __library.get(b"C_CloseAllSessions\0").map(|sym| *sym); let C_GetSessionInfo = __library.get(b"C_GetSessionInfo\0").map(|sym| *sym); let C_GetOperationState = __library.get(b"C_GetOperationState\0").map(|sym| *sym); let C_SetOperationState = __library.get(b"C_SetOperationState\0").map(|sym| *sym); let C_Login = __library.get(b"C_Login\0").map(|sym| *sym); let C_Logout = __library.get(b"C_Logout\0").map(|sym| *sym); let C_CreateObject = __library.get(b"C_CreateObject\0").map(|sym| *sym); let C_CopyObject = __library.get(b"C_CopyObject\0").map(|sym| *sym); let C_DestroyObject = __library.get(b"C_DestroyObject\0").map(|sym| *sym); let C_GetObjectSize = __library.get(b"C_GetObjectSize\0").map(|sym| *sym); let C_GetAttributeValue = __library.get(b"C_GetAttributeValue\0").map(|sym| *sym); let C_SetAttributeValue = __library.get(b"C_SetAttributeValue\0").map(|sym| *sym); let C_FindObjectsInit = __library.get(b"C_FindObjectsInit\0").map(|sym| *sym); let C_FindObjects = __library.get(b"C_FindObjects\0").map(|sym| *sym); let C_FindObjectsFinal = __library.get(b"C_FindObjectsFinal\0").map(|sym| *sym); let C_EncryptInit = __library.get(b"C_EncryptInit\0").map(|sym| *sym); let C_Encrypt = __library.get(b"C_Encrypt\0").map(|sym| *sym); let C_EncryptUpdate = __library.get(b"C_EncryptUpdate\0").map(|sym| *sym); let C_EncryptFinal = __library.get(b"C_EncryptFinal\0").map(|sym| *sym); let C_DecryptInit = __library.get(b"C_DecryptInit\0").map(|sym| *sym); let C_Decrypt = __library.get(b"C_Decrypt\0").map(|sym| *sym); let C_DecryptUpdate = __library.get(b"C_DecryptUpdate\0").map(|sym| *sym); let C_DecryptFinal = __library.get(b"C_DecryptFinal\0").map(|sym| *sym); let C_DigestInit = __library.get(b"C_DigestInit\0").map(|sym| *sym); let C_Digest = __library.get(b"C_Digest\0").map(|sym| *sym); let C_DigestUpdate = __library.get(b"C_DigestUpdate\0").map(|sym| *sym); let C_DigestKey = __library.get(b"C_DigestKey\0").map(|sym| *sym); let C_DigestFinal = __library.get(b"C_DigestFinal\0").map(|sym| *sym); let C_SignInit = __library.get(b"C_SignInit\0").map(|sym| *sym); let C_Sign = __library.get(b"C_Sign\0").map(|sym| *sym); let C_SignUpdate = __library.get(b"C_SignUpdate\0").map(|sym| *sym); let C_SignFinal = __library.get(b"C_SignFinal\0").map(|sym| *sym); let C_SignRecoverInit = __library.get(b"C_SignRecoverInit\0").map(|sym| *sym); let C_SignRecover = __library.get(b"C_SignRecover\0").map(|sym| *sym); let C_VerifyInit = __library.get(b"C_VerifyInit\0").map(|sym| *sym); let C_Verify = __library.get(b"C_Verify\0").map(|sym| *sym); let C_VerifyUpdate = __library.get(b"C_VerifyUpdate\0").map(|sym| *sym); let C_VerifyFinal = __library.get(b"C_VerifyFinal\0").map(|sym| *sym); let C_VerifyRecoverInit = __library.get(b"C_VerifyRecoverInit\0").map(|sym| *sym); let C_VerifyRecover = __library.get(b"C_VerifyRecover\0").map(|sym| *sym); let C_DigestEncryptUpdate = __library.get(b"C_DigestEncryptUpdate\0").map(|sym| *sym); let C_DecryptDigestUpdate = __library.get(b"C_DecryptDigestUpdate\0").map(|sym| *sym); let C_SignEncryptUpdate = __library.get(b"C_SignEncryptUpdate\0").map(|sym| *sym); let C_DecryptVerifyUpdate = __library.get(b"C_DecryptVerifyUpdate\0").map(|sym| *sym); let C_GenerateKey = __library.get(b"C_GenerateKey\0").map(|sym| *sym); let C_GenerateKeyPair = __library.get(b"C_GenerateKeyPair\0").map(|sym| *sym); let C_WrapKey = __library.get(b"C_WrapKey\0").map(|sym| *sym); let C_UnwrapKey = __library.get(b"C_UnwrapKey\0").map(|sym| *sym); let C_DeriveKey = __library.get(b"C_DeriveKey\0").map(|sym| *sym); let C_SeedRandom = __library.get(b"C_SeedRandom\0").map(|sym| *sym); let C_GenerateRandom = __library.get(b"C_GenerateRandom\0").map(|sym| *sym); let C_GetFunctionStatus = __library.get(b"C_GetFunctionStatus\0").map(|sym| *sym); let C_CancelFunction = __library.get(b"C_CancelFunction\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, C_Finalize, C_GetInfo, C_GetFunctionList, C_GetSlotList, C_GetSlotInfo, C_GetTokenInfo, C_WaitForSlotEvent, C_GetMechanismList, C_GetMechanismInfo, C_InitToken, C_InitPIN, C_SetPIN, C_OpenSession, C_CloseSession, C_CloseAllSessions, C_GetSessionInfo, C_GetOperationState, C_SetOperationState, C_Login, C_Logout, C_CreateObject, C_CopyObject, C_DestroyObject, C_GetObjectSize, C_GetAttributeValue, C_SetAttributeValue, C_FindObjectsInit, C_FindObjects, C_FindObjectsFinal, C_EncryptInit, C_Encrypt, C_EncryptUpdate, C_EncryptFinal, C_DecryptInit, C_Decrypt, C_DecryptUpdate, C_DecryptFinal, C_DigestInit, C_Digest, C_DigestUpdate, C_DigestKey, C_DigestFinal, C_SignInit, C_Sign, C_SignUpdate, C_SignFinal, C_SignRecoverInit, C_SignRecover, C_VerifyInit, C_Verify, C_VerifyUpdate, C_VerifyFinal, C_VerifyRecoverInit, C_VerifyRecover, C_DigestEncryptUpdate, C_DecryptDigestUpdate, C_SignEncryptUpdate, C_DecryptVerifyUpdate, C_GenerateKey, C_GenerateKeyPair, C_WrapKey, C_UnwrapKey, C_DeriveKey, C_SeedRandom, C_GenerateRandom, C_GetFunctionStatus, C_CancelFunction, }) } pub unsafe fn C_Initialize(&self, init_args: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Initialize .as_ref() .expect("Expected function, got error."))(init_args) } pub unsafe fn C_Finalize(&self, pReserved: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Finalize .as_ref() .expect("Expected function, got error."))(pReserved) } pub unsafe fn C_GetInfo(&self, info: *mut _CK_INFO) -> CK_RV { (self .C_GetInfo .as_ref() .expect("Expected function, got error."))(info) } pub unsafe fn C_GetFunctionList(&self, function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV { (self .C_GetFunctionList .as_ref() .expect("Expected function, got error."))(function_list) } pub unsafe fn C_GetSlotList( &self, token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetSlotList .as_ref() .expect("Expected function, got error."))(token_present, slot_list, ulCount) } pub unsafe fn C_GetSlotInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV { (self .C_GetSlotInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_GetTokenInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV { (self .C_GetTokenInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_WaitForSlotEvent( &self, flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV { (self .C_WaitForSlotEvent .as_ref() .expect("Expected function, got error."))(flags, slot, pReserved) } pub unsafe fn C_GetMechanismList( &self, slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetMechanismList .as_ref() .expect("Expected function, got error."))(slotID, mechanism_list, ulCount) } pub unsafe fn C_GetMechanismInfo( &self, slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV { (self .C_GetMechanismInfo .as_ref() .expect("Expected function, got error."))(slotID, type_, info) } pub unsafe fn C_InitToken( &self, slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV { (self .C_InitToken .as_ref() .expect("Expected function, got error."))(slotID, pin, pin_len, label) } pub unsafe fn C_InitPIN( &self, session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_InitPIN .as_ref() .expect("Expected function, got error."))(session, pin, pin_len) } pub unsafe fn C_SetPIN( &self, session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetPIN .as_ref() .expect("Expected function, got error."))( session, old_pin, old_len, new_pin, new_len ) } pub unsafe fn C_OpenSession( &self, slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV { (self .C_OpenSession .as_ref() .expect("Expected function, got error."))( slotID, flags, application, notify, session ) } pub unsafe fn C_CloseSession(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CloseSession .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CloseAllSessions(&self, slotID: CK_SLOT_ID) -> CK_RV { (self .C_CloseAllSessions .as_ref() .expect("Expected function, got error."))(slotID) } pub unsafe fn C_GetSessionInfo( &self, session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO, ) -> CK_RV { (self .C_GetSessionInfo .as_ref() .expect("Expected function, got error."))(session, info) } pub unsafe fn C_GetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len ) } pub unsafe fn C_SetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len, encryption_key, authentiation_key, ) } pub unsafe fn C_Login( &self, session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Login .as_ref() .expect("Expected function, got error."))(session, user_type, pin, pin_len) } pub unsafe fn C_Logout(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_Logout .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CreateObject( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CreateObject .as_ref() .expect("Expected function, got error."))(session, templ, ulCount, object) } pub unsafe fn C_CopyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CopyObject .as_ref() .expect("Expected function, got error."))( session, object, templ, ulCount, new_object ) } pub unsafe fn C_DestroyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DestroyObject .as_ref() .expect("Expected function, got error."))(session, object) } pub unsafe fn C_GetObjectSize( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetObjectSize .as_ref() .expect("Expected function, got error."))(session, object, size) } pub unsafe fn C_GetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_SetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_FindObjectsInit( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjectsInit .as_ref() .expect("Expected function, got error."))(session, templ, ulCount) } pub unsafe fn C_FindObjects( &self, session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjects .as_ref() .expect("Expected function, got error."))( session, object, max_object_count, object_count, ) } pub unsafe fn C_FindObjectsFinal(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_FindObjectsFinal .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_EncryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_EncryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Encrypt( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Encrypt .as_ref() .expect("Expected function, got error."))( session, data, data_len, encrypted_data, encrypted_data_len, ) } pub unsafe fn C_EncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_EncryptFinal( &self, session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptFinal .as_ref() .expect("Expected function, got error."))( session, last_encrypted_part, last_encrypted_part_len, ) } pub unsafe fn C_DecryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DecryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Decrypt( &self, session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Decrypt .as_ref() .expect("Expected function, got error."))( session, encrypted_data, encrypted_data_len, data, data_len, ) } pub unsafe fn C_DecryptUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_DecryptFinal( &self, session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptFinal .as_ref() .expect("Expected function, got error."))(session, last_part, last_part_len) } pub unsafe fn C_DigestInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, ) -> CK_RV { (self .C_DigestInit .as_ref() .expect("Expected function, got error."))(session, mechanism) } pub unsafe fn C_Digest( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Digest .as_ref() .expect("Expected function, got error."))( session, data, data_len, digest, digest_len ) } pub unsafe fn C_DigestUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_DigestKey(&self, session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV { (self .C_DigestKey .as_ref() .expect("Expected function, got error."))(session, key) } pub unsafe fn C_DigestFinal( &self, session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestFinal .as_ref() .expect("Expected function, got error."))(session, digest, digest_len) } pub unsafe fn C_SignInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Sign( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self.C_Sign.as_ref().expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_SignUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_SignFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_SignRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_SignRecover( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignRecover .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Verify( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Verify .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_VerifyFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_VerifyRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_VerifyRecover( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyRecover .as_ref() .expect("Expected function, got error."))( session, signature, signature_len, data, data_len, ) } pub unsafe fn C_DigestEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptDigestUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptDigestUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_SignEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptVerifyUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptVerifyUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_GenerateKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKey .as_ref() .expect("Expected function, got error."))( session, mechanism, templ, ulCount, key ) } pub unsafe fn C_GenerateKeyPair( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKeyPair .as_ref() .expect("Expected function, got error."))( session, mechanism, public_key_template, public_key_attribute_count, private_key_template, private_key_attribute_count, public_key, private_key, ) } pub unsafe fn C_WrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_WrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, wrapping_key, key, wrapped_key, wrapped_key_len, ) } pub unsafe fn C_UnwrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_UnwrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, unwrapping_key, wrapped_key, wrapped_key_len, templ, attribute_count, key, ) } pub unsafe fn C_DeriveKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DeriveKey .as_ref() .expect("Expected function, got error."))( session, mechanism, base_key, templ, attribute_count, key, ) } pub unsafe fn C_SeedRandom( &self, session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SeedRandom .as_ref() .expect("Expected function, got error."))(session, seed, seed_len) } pub unsafe fn C_GenerateRandom( &self, session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GenerateRandom .as_ref() .expect("Expected function, got error."))(session, random_data, random_len) } pub unsafe fn C_GetFunctionStatus(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_GetFunctionStatus .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CancelFunction(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CancelFunction .as_ref() .expect("Expected function, got error."))(session) } } cryptoki-sys-0.1.7/src/bindings/x86_64-apple-darwin.rs000064400000000000000000005276021046102023000205760ustar 00000000000000/* automatically generated by rust-bindgen 0.66.1 */ pub const PKCS11_H: u32 = 1; pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 40; pub const P11_KIT_CRYPTOKI_VERSION_REVISION: u32 = 0; pub const CRYPTOKI_COMPAT: u32 = 1; pub const CKF_RNG: CK_FLAGS = 1; pub const CKF_WRITE_PROTECTED: CK_FLAGS = 2; pub const CKF_LOGIN_REQUIRED: CK_FLAGS = 4; pub const CKF_USER_PIN_INITIALIZED: CK_FLAGS = 8; pub const CKF_RESTORE_KEY_NOT_NEEDED: CK_FLAGS = 32; pub const CKF_CLOCK_ON_TOKEN: CK_FLAGS = 64; pub const CKF_PROTECTED_AUTHENTICATION_PATH: CK_FLAGS = 256; pub const CKF_DUAL_CRYPTO_OPERATIONS: CK_FLAGS = 512; pub const CKF_TOKEN_INITIALIZED: CK_FLAGS = 1024; pub const CKF_SECONDARY_AUTHENTICATION: CK_FLAGS = 2048; pub const CKF_USER_PIN_COUNT_LOW: CK_FLAGS = 65536; pub const CKF_USER_PIN_FINAL_TRY: CK_FLAGS = 131072; pub const CKF_USER_PIN_LOCKED: CK_FLAGS = 262144; pub const CKF_USER_PIN_TO_BE_CHANGED: CK_FLAGS = 524288; pub const CKF_SO_PIN_COUNT_LOW: CK_FLAGS = 1048576; pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; pub const CKO_DATA: CK_OBJECT_CLASS = 0; pub const CKO_CERTIFICATE: CK_OBJECT_CLASS = 1; pub const CKO_PUBLIC_KEY: CK_OBJECT_CLASS = 2; pub const CKO_PRIVATE_KEY: CK_OBJECT_CLASS = 3; pub const CKO_SECRET_KEY: CK_OBJECT_CLASS = 4; pub const CKO_HW_FEATURE: CK_OBJECT_CLASS = 5; pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_EC: CK_KEY_TYPE = 3; pub const CKK_X9_42_DH: CK_KEY_TYPE = 4; pub const CKK_KEA: CK_KEY_TYPE = 5; pub const CKK_GENERIC_SECRET: CK_KEY_TYPE = 16; pub const CKK_RC2: CK_KEY_TYPE = 17; pub const CKK_RC4: CK_KEY_TYPE = 18; pub const CKK_DES: CK_KEY_TYPE = 19; pub const CKK_DES2: CK_KEY_TYPE = 20; pub const CKK_DES3: CK_KEY_TYPE = 21; pub const CKK_CAST: CK_KEY_TYPE = 22; pub const CKK_CAST3: CK_KEY_TYPE = 23; pub const CKK_CAST128: CK_KEY_TYPE = 24; pub const CKK_RC5: CK_KEY_TYPE = 25; pub const CKK_IDEA: CK_KEY_TYPE = 26; pub const CKK_SKIPJACK: CK_KEY_TYPE = 27; pub const CKK_BATON: CK_KEY_TYPE = 28; pub const CKK_JUNIPER: CK_KEY_TYPE = 29; pub const CKK_CDMF: CK_KEY_TYPE = 30; pub const CKK_AES: CK_KEY_TYPE = 31; pub const CKK_BLOWFISH: CK_KEY_TYPE = 32; pub const CKK_TWOFISH: CK_KEY_TYPE = 33; pub const CKK_SECURID: CK_KEY_TYPE = 34; pub const CKK_HOTP: CK_KEY_TYPE = 35; pub const CKK_ACTI: CK_KEY_TYPE = 36; pub const CKK_CAMELLIA: CK_KEY_TYPE = 37; pub const CKK_ARIA: CK_KEY_TYPE = 38; pub const CKK_MD5_HMAC: CK_KEY_TYPE = 39; pub const CKK_SHA_1_HMAC: CK_KEY_TYPE = 40; pub const CKK_RIPEMD128_HMAC: CK_KEY_TYPE = 41; pub const CKK_RIPEMD160_HMAC: CK_KEY_TYPE = 42; pub const CKK_SHA256_HMAC: CK_KEY_TYPE = 43; pub const CKK_SHA384_HMAC: CK_KEY_TYPE = 44; pub const CKK_SHA512_HMAC: CK_KEY_TYPE = 45; pub const CKK_SHA224_HMAC: CK_KEY_TYPE = 46; pub const CKK_SEED: CK_KEY_TYPE = 47; pub const CKK_GOSTR3410: CK_KEY_TYPE = 48; pub const CKK_GOSTR3411: CK_KEY_TYPE = 49; pub const CKK_GOST28147: CK_KEY_TYPE = 50; pub const CKK_EC_EDWARDS: CK_KEY_TYPE = 64; pub const CKC_X_509: CK_CERTIFICATE_TYPE = 0; pub const CKC_X_509_ATTR_CERT: CK_CERTIFICATE_TYPE = 1; pub const CKC_WTLS: CK_CERTIFICATE_TYPE = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; pub const CKA_TOKEN: CK_ATTRIBUTE_TYPE = 1; pub const CKA_PRIVATE: CK_ATTRIBUTE_TYPE = 2; pub const CKA_LABEL: CK_ATTRIBUTE_TYPE = 3; pub const CKA_APPLICATION: CK_ATTRIBUTE_TYPE = 16; pub const CKA_VALUE: CK_ATTRIBUTE_TYPE = 17; pub const CKA_OBJECT_ID: CK_ATTRIBUTE_TYPE = 18; pub const CKA_CERTIFICATE_TYPE: CK_ATTRIBUTE_TYPE = 128; pub const CKA_ISSUER: CK_ATTRIBUTE_TYPE = 129; pub const CKA_SERIAL_NUMBER: CK_ATTRIBUTE_TYPE = 130; pub const CKA_AC_ISSUER: CK_ATTRIBUTE_TYPE = 131; pub const CKA_OWNER: CK_ATTRIBUTE_TYPE = 132; pub const CKA_ATTR_TYPES: CK_ATTRIBUTE_TYPE = 133; pub const CKA_TRUSTED: CK_ATTRIBUTE_TYPE = 134; pub const CKA_CERTIFICATE_CATEGORY: CK_ATTRIBUTE_TYPE = 135; pub const CKA_JAVA_MIDP_SECURITY_DOMAIN: CK_ATTRIBUTE_TYPE = 136; pub const CKA_URL: CK_ATTRIBUTE_TYPE = 137; pub const CKA_HASH_OF_SUBJECT_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 138; pub const CKA_HASH_OF_ISSUER_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 139; pub const CKA_NAME_HASH_ALGORITHM: CK_ATTRIBUTE_TYPE = 140; pub const CKA_CHECK_VALUE: CK_ATTRIBUTE_TYPE = 144; pub const CKA_KEY_TYPE: CK_ATTRIBUTE_TYPE = 256; pub const CKA_SUBJECT: CK_ATTRIBUTE_TYPE = 257; pub const CKA_ID: CK_ATTRIBUTE_TYPE = 258; pub const CKA_SENSITIVE: CK_ATTRIBUTE_TYPE = 259; pub const CKA_ENCRYPT: CK_ATTRIBUTE_TYPE = 260; pub const CKA_DECRYPT: CK_ATTRIBUTE_TYPE = 261; pub const CKA_WRAP: CK_ATTRIBUTE_TYPE = 262; pub const CKA_UNWRAP: CK_ATTRIBUTE_TYPE = 263; pub const CKA_SIGN: CK_ATTRIBUTE_TYPE = 264; pub const CKA_SIGN_RECOVER: CK_ATTRIBUTE_TYPE = 265; pub const CKA_VERIFY: CK_ATTRIBUTE_TYPE = 266; pub const CKA_VERIFY_RECOVER: CK_ATTRIBUTE_TYPE = 267; pub const CKA_DERIVE: CK_ATTRIBUTE_TYPE = 268; pub const CKA_START_DATE: CK_ATTRIBUTE_TYPE = 272; pub const CKA_END_DATE: CK_ATTRIBUTE_TYPE = 273; pub const CKA_MODULUS: CK_ATTRIBUTE_TYPE = 288; pub const CKA_MODULUS_BITS: CK_ATTRIBUTE_TYPE = 289; pub const CKA_PUBLIC_EXPONENT: CK_ATTRIBUTE_TYPE = 290; pub const CKA_PRIVATE_EXPONENT: CK_ATTRIBUTE_TYPE = 291; pub const CKA_PRIME_1: CK_ATTRIBUTE_TYPE = 292; pub const CKA_PRIME_2: CK_ATTRIBUTE_TYPE = 293; pub const CKA_EXPONENT_1: CK_ATTRIBUTE_TYPE = 294; pub const CKA_EXPONENT_2: CK_ATTRIBUTE_TYPE = 295; pub const CKA_COEFFICIENT: CK_ATTRIBUTE_TYPE = 296; pub const CKA_PUBLIC_KEY_INFO: CK_ATTRIBUTE_TYPE = 297; pub const CKA_PRIME: CK_ATTRIBUTE_TYPE = 304; pub const CKA_SUBPRIME: CK_ATTRIBUTE_TYPE = 305; pub const CKA_BASE: CK_ATTRIBUTE_TYPE = 306; pub const CKA_PRIME_BITS: CK_ATTRIBUTE_TYPE = 307; pub const CKA_SUB_PRIME_BITS: CK_ATTRIBUTE_TYPE = 308; pub const CKA_VALUE_BITS: CK_ATTRIBUTE_TYPE = 352; pub const CKA_VALUE_LEN: CK_ATTRIBUTE_TYPE = 353; pub const CKA_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 354; pub const CKA_LOCAL: CK_ATTRIBUTE_TYPE = 355; pub const CKA_NEVER_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 356; pub const CKA_ALWAYS_SENSITIVE: CK_ATTRIBUTE_TYPE = 357; pub const CKA_KEY_GEN_MECHANISM: CK_ATTRIBUTE_TYPE = 358; pub const CKA_MODIFIABLE: CK_ATTRIBUTE_TYPE = 368; pub const CKA_COPYABLE: CK_ATTRIBUTE_TYPE = 369; pub const CKA_DESTROYABLE: CK_ATTRIBUTE_TYPE = 370; pub const CKA_ECDSA_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_POINT: CK_ATTRIBUTE_TYPE = 385; pub const CKA_SECONDARY_AUTH: CK_ATTRIBUTE_TYPE = 512; pub const CKA_AUTH_PIN_FLAGS: CK_ATTRIBUTE_TYPE = 513; pub const CKA_ALWAYS_AUTHENTICATE: CK_ATTRIBUTE_TYPE = 514; pub const CKA_WRAP_WITH_TRUSTED: CK_ATTRIBUTE_TYPE = 528; pub const CKA_OTP_FORMAT: CK_ATTRIBUTE_TYPE = 544; pub const CKA_OTP_LENGTH: CK_ATTRIBUTE_TYPE = 545; pub const CKA_OTP_TIME_INTERVAL: CK_ATTRIBUTE_TYPE = 546; pub const CKA_OTP_USER_FRIENDLY_MODE: CK_ATTRIBUTE_TYPE = 547; pub const CKA_OTP_CHALLENGE_REQUIREMENT: CK_ATTRIBUTE_TYPE = 548; pub const CKA_OTP_TIME_REQUIREMENT: CK_ATTRIBUTE_TYPE = 549; pub const CKA_OTP_COUNTER_REQUIREMENT: CK_ATTRIBUTE_TYPE = 550; pub const CKA_OTP_PIN_REQUIREMENT: CK_ATTRIBUTE_TYPE = 551; pub const CKA_OTP_USER_IDENTIFIER: CK_ATTRIBUTE_TYPE = 554; pub const CKA_OTP_SERVICE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 555; pub const CKA_OTP_SERVICE_LOGO: CK_ATTRIBUTE_TYPE = 556; pub const CKA_OTP_SERVICE_LOGO_TYPE: CK_ATTRIBUTE_TYPE = 557; pub const CKA_OTP_COUNTER: CK_ATTRIBUTE_TYPE = 558; pub const CKA_OTP_TIME: CK_ATTRIBUTE_TYPE = 559; pub const CKA_GOSTR3410_PARAMS: CK_ATTRIBUTE_TYPE = 592; pub const CKA_GOSTR3411_PARAMS: CK_ATTRIBUTE_TYPE = 593; pub const CKA_GOST28147_PARAMS: CK_ATTRIBUTE_TYPE = 594; pub const CKA_HW_FEATURE_TYPE: CK_ATTRIBUTE_TYPE = 768; pub const CKA_RESET_ON_INIT: CK_ATTRIBUTE_TYPE = 769; pub const CKA_HAS_RESET: CK_ATTRIBUTE_TYPE = 770; pub const CKA_PIXEL_X: CK_ATTRIBUTE_TYPE = 1024; pub const CKA_PIXEL_Y: CK_ATTRIBUTE_TYPE = 1025; pub const CKA_RESOLUTION: CK_ATTRIBUTE_TYPE = 1026; pub const CKA_CHAR_ROWS: CK_ATTRIBUTE_TYPE = 1027; pub const CKA_CHAR_COLUMNS: CK_ATTRIBUTE_TYPE = 1028; pub const CKA_COLOR: CK_ATTRIBUTE_TYPE = 1029; pub const CKA_BITS_PER_PIXEL: CK_ATTRIBUTE_TYPE = 1030; pub const CKA_CHAR_SETS: CK_ATTRIBUTE_TYPE = 1152; pub const CKA_ENCODING_METHODS: CK_ATTRIBUTE_TYPE = 1153; pub const CKA_MIME_TYPES: CK_ATTRIBUTE_TYPE = 1154; pub const CKA_MECHANISM_TYPE: CK_ATTRIBUTE_TYPE = 1280; pub const CKA_REQUIRED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1281; pub const CKA_DEFAULT_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1282; pub const CKA_SUPPORTED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1283; pub const CKM_RSA_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 0; pub const CKM_RSA_PKCS: CK_MECHANISM_TYPE = 1; pub const CKM_RSA_9796: CK_MECHANISM_TYPE = 2; pub const CKM_RSA_X_509: CK_MECHANISM_TYPE = 3; pub const CKM_MD2_RSA_PKCS: CK_MECHANISM_TYPE = 4; pub const CKM_MD5_RSA_PKCS: CK_MECHANISM_TYPE = 5; pub const CKM_SHA1_RSA_PKCS: CK_MECHANISM_TYPE = 6; pub const CKM_RIPEMD128_RSA_PKCS: CK_MECHANISM_TYPE = 7; pub const CKM_RIPEMD160_RSA_PKCS: CK_MECHANISM_TYPE = 8; pub const CKM_RSA_PKCS_OAEP: CK_MECHANISM_TYPE = 9; pub const CKM_RSA_X9_31_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 10; pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; pub const CKM_SHA256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 67; pub const CKM_SHA384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 68; pub const CKM_SHA512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 69; pub const CKM_SHA512_224: CK_MECHANISM_TYPE = 72; pub const CKM_SHA512_224_HMAC: CK_MECHANISM_TYPE = 73; pub const CKM_SHA512_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 74; pub const CKM_SHA512_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 75; pub const CKM_SHA512_256: CK_MECHANISM_TYPE = 76; pub const CKM_SHA512_256_HMAC: CK_MECHANISM_TYPE = 77; pub const CKM_SHA512_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 78; pub const CKM_SHA512_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 79; pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; pub const CKM_RC2_KEY_GEN: CK_MECHANISM_TYPE = 256; pub const CKM_RC2_ECB: CK_MECHANISM_TYPE = 257; pub const CKM_RC2_CBC: CK_MECHANISM_TYPE = 258; pub const CKM_RC2_MAC: CK_MECHANISM_TYPE = 259; pub const CKM_RC2_MAC_GENERAL: CK_MECHANISM_TYPE = 260; pub const CKM_RC2_CBC_PAD: CK_MECHANISM_TYPE = 261; pub const CKM_RC4_KEY_GEN: CK_MECHANISM_TYPE = 272; pub const CKM_RC4: CK_MECHANISM_TYPE = 273; pub const CKM_DES_KEY_GEN: CK_MECHANISM_TYPE = 288; pub const CKM_DES_ECB: CK_MECHANISM_TYPE = 289; pub const CKM_DES_CBC: CK_MECHANISM_TYPE = 290; pub const CKM_DES_MAC: CK_MECHANISM_TYPE = 291; pub const CKM_DES_MAC_GENERAL: CK_MECHANISM_TYPE = 292; pub const CKM_DES_CBC_PAD: CK_MECHANISM_TYPE = 293; pub const CKM_DES2_KEY_GEN: CK_MECHANISM_TYPE = 304; pub const CKM_DES3_KEY_GEN: CK_MECHANISM_TYPE = 305; pub const CKM_DES3_ECB: CK_MECHANISM_TYPE = 306; pub const CKM_DES3_CBC: CK_MECHANISM_TYPE = 307; pub const CKM_DES3_MAC: CK_MECHANISM_TYPE = 308; pub const CKM_DES3_MAC_GENERAL: CK_MECHANISM_TYPE = 309; pub const CKM_DES3_CBC_PAD: CK_MECHANISM_TYPE = 310; pub const CKM_DES3_CMAC_GENERAL: CK_MECHANISM_TYPE = 311; pub const CKM_DES3_CMAC: CK_MECHANISM_TYPE = 312; pub const CKM_CDMF_KEY_GEN: CK_MECHANISM_TYPE = 320; pub const CKM_CDMF_ECB: CK_MECHANISM_TYPE = 321; pub const CKM_CDMF_CBC: CK_MECHANISM_TYPE = 322; pub const CKM_CDMF_MAC: CK_MECHANISM_TYPE = 323; pub const CKM_CDMF_MAC_GENERAL: CK_MECHANISM_TYPE = 324; pub const CKM_CDMF_CBC_PAD: CK_MECHANISM_TYPE = 325; pub const CKM_DES_OFB64: CK_MECHANISM_TYPE = 336; pub const CKM_DES_OFB8: CK_MECHANISM_TYPE = 337; pub const CKM_DES_CFB64: CK_MECHANISM_TYPE = 338; pub const CKM_DES_CFB8: CK_MECHANISM_TYPE = 339; pub const CKM_MD2: CK_MECHANISM_TYPE = 512; pub const CKM_MD2_HMAC: CK_MECHANISM_TYPE = 513; pub const CKM_MD2_HMAC_GENERAL: CK_MECHANISM_TYPE = 514; pub const CKM_MD5: CK_MECHANISM_TYPE = 528; pub const CKM_MD5_HMAC: CK_MECHANISM_TYPE = 529; pub const CKM_MD5_HMAC_GENERAL: CK_MECHANISM_TYPE = 530; pub const CKM_SHA_1: CK_MECHANISM_TYPE = 544; pub const CKM_SHA_1_HMAC: CK_MECHANISM_TYPE = 545; pub const CKM_SHA_1_HMAC_GENERAL: CK_MECHANISM_TYPE = 546; pub const CKM_RIPEMD128: CK_MECHANISM_TYPE = 560; pub const CKM_RIPEMD128_HMAC: CK_MECHANISM_TYPE = 561; pub const CKM_RIPEMD128_HMAC_GENERAL: CK_MECHANISM_TYPE = 562; pub const CKM_RIPEMD160: CK_MECHANISM_TYPE = 576; pub const CKM_RIPEMD160_HMAC: CK_MECHANISM_TYPE = 577; pub const CKM_RIPEMD160_HMAC_GENERAL: CK_MECHANISM_TYPE = 578; pub const CKM_SHA256: CK_MECHANISM_TYPE = 592; pub const CKM_SHA256_HMAC: CK_MECHANISM_TYPE = 593; pub const CKM_SHA256_HMAC_GENERAL: CK_MECHANISM_TYPE = 594; pub const CKM_SHA384: CK_MECHANISM_TYPE = 608; pub const CKM_SHA384_HMAC: CK_MECHANISM_TYPE = 609; pub const CKM_SHA384_HMAC_GENERAL: CK_MECHANISM_TYPE = 610; pub const CKM_SHA512: CK_MECHANISM_TYPE = 624; pub const CKM_SHA512_HMAC: CK_MECHANISM_TYPE = 625; pub const CKM_SHA512_HMAC_GENERAL: CK_MECHANISM_TYPE = 626; pub const CKM_SECURID_KEY_GEN: CK_MECHANISM_TYPE = 640; pub const CKM_SECURID: CK_MECHANISM_TYPE = 642; pub const CKM_HOTP_KEY_GEN: CK_MECHANISM_TYPE = 656; pub const CKM_HOTP: CK_MECHANISM_TYPE = 657; pub const CKM_ACTI: CK_MECHANISM_TYPE = 672; pub const CKM_ACTI_KEY_GEN: CK_MECHANISM_TYPE = 673; pub const CKM_CAST_KEY_GEN: CK_MECHANISM_TYPE = 768; pub const CKM_CAST_ECB: CK_MECHANISM_TYPE = 769; pub const CKM_CAST_CBC: CK_MECHANISM_TYPE = 770; pub const CKM_CAST_MAC: CK_MECHANISM_TYPE = 771; pub const CKM_CAST_MAC_GENERAL: CK_MECHANISM_TYPE = 772; pub const CKM_CAST_CBC_PAD: CK_MECHANISM_TYPE = 773; pub const CKM_CAST3_KEY_GEN: CK_MECHANISM_TYPE = 784; pub const CKM_CAST3_ECB: CK_MECHANISM_TYPE = 785; pub const CKM_CAST3_CBC: CK_MECHANISM_TYPE = 786; pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST128_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_CAST128_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_RC5_KEY_GEN: CK_MECHANISM_TYPE = 816; pub const CKM_RC5_ECB: CK_MECHANISM_TYPE = 817; pub const CKM_RC5_CBC: CK_MECHANISM_TYPE = 818; pub const CKM_RC5_MAC: CK_MECHANISM_TYPE = 819; pub const CKM_RC5_MAC_GENERAL: CK_MECHANISM_TYPE = 820; pub const CKM_RC5_CBC_PAD: CK_MECHANISM_TYPE = 821; pub const CKM_IDEA_KEY_GEN: CK_MECHANISM_TYPE = 832; pub const CKM_IDEA_ECB: CK_MECHANISM_TYPE = 833; pub const CKM_IDEA_CBC: CK_MECHANISM_TYPE = 834; pub const CKM_IDEA_MAC: CK_MECHANISM_TYPE = 835; pub const CKM_IDEA_MAC_GENERAL: CK_MECHANISM_TYPE = 836; pub const CKM_IDEA_CBC_PAD: CK_MECHANISM_TYPE = 837; pub const CKM_GENERIC_SECRET_KEY_GEN: CK_MECHANISM_TYPE = 848; pub const CKM_CONCATENATE_BASE_AND_KEY: CK_MECHANISM_TYPE = 864; pub const CKM_CONCATENATE_BASE_AND_DATA: CK_MECHANISM_TYPE = 866; pub const CKM_CONCATENATE_DATA_AND_BASE: CK_MECHANISM_TYPE = 867; pub const CKM_XOR_BASE_AND_DATA: CK_MECHANISM_TYPE = 868; pub const CKM_EXTRACT_KEY_FROM_KEY: CK_MECHANISM_TYPE = 869; pub const CKM_SSL3_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 880; pub const CKM_SSL3_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 881; pub const CKM_SSL3_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 882; pub const CKM_SSL3_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 883; pub const CKM_TLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 884; pub const CKM_TLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 885; pub const CKM_TLS_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 886; pub const CKM_TLS_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 887; pub const CKM_TLS_PRF: CK_MECHANISM_TYPE = 888; pub const CKM_SSL3_MD5_MAC: CK_MECHANISM_TYPE = 896; pub const CKM_SSL3_SHA1_MAC: CK_MECHANISM_TYPE = 897; pub const CKM_MD5_KEY_DERIVATION: CK_MECHANISM_TYPE = 912; pub const CKM_MD2_KEY_DERIVATION: CK_MECHANISM_TYPE = 913; pub const CKM_SHA1_KEY_DERIVATION: CK_MECHANISM_TYPE = 914; pub const CKM_SHA256_KEY_DERIVATION: CK_MECHANISM_TYPE = 915; pub const CKM_SHA384_KEY_DERIVATION: CK_MECHANISM_TYPE = 916; pub const CKM_SHA512_KEY_DERIVATION: CK_MECHANISM_TYPE = 917; pub const CKM_PBE_MD2_DES_CBC: CK_MECHANISM_TYPE = 928; pub const CKM_PBE_MD5_DES_CBC: CK_MECHANISM_TYPE = 929; pub const CKM_PBE_MD5_CAST_CBC: CK_MECHANISM_TYPE = 930; pub const CKM_PBE_MD5_CAST3_CBC: CK_MECHANISM_TYPE = 931; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_MD5_CAST128_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_CAST128_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_RC4_128: CK_MECHANISM_TYPE = 934; pub const CKM_PBE_SHA1_RC4_40: CK_MECHANISM_TYPE = 935; pub const CKM_PBE_SHA1_DES3_EDE_CBC: CK_MECHANISM_TYPE = 936; pub const CKM_PBE_SHA1_DES2_EDE_CBC: CK_MECHANISM_TYPE = 937; pub const CKM_PBE_SHA1_RC2_128_CBC: CK_MECHANISM_TYPE = 938; pub const CKM_PBE_SHA1_RC2_40_CBC: CK_MECHANISM_TYPE = 939; pub const CKM_PKCS5_PBKD2: CK_MECHANISM_TYPE = 944; pub const CKM_PBA_SHA1_WITH_SHA1_HMAC: CK_MECHANISM_TYPE = 960; pub const CKM_WTLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 976; pub const CKM_WTLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 977; pub const CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC: CK_MECHANISM_TYPE = 978; pub const CKM_WTLS_PRF: CK_MECHANISM_TYPE = 979; pub const CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 980; pub const CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 981; pub const CKM_TLS10_MAC_SERVER: CK_MECHANISM_TYPE = 982; pub const CKM_TLS10_MAC_CLIENT: CK_MECHANISM_TYPE = 983; pub const CKM_TLS12_MAC: CK_MECHANISM_TYPE = 984; pub const CKM_TLS12_KDF: CK_MECHANISM_TYPE = 985; pub const CKM_TLS12_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 992; pub const CKM_TLS12_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 993; pub const CKM_TLS12_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 994; pub const CKM_TLS12_KEY_SAFE_DERIVE: CK_MECHANISM_TYPE = 995; pub const CKM_TLS_MAC: CK_MECHANISM_TYPE = 996; pub const CKM_TLS_KDF: CK_MECHANISM_TYPE = 997; pub const CKM_KEY_WRAP_LYNKS: CK_MECHANISM_TYPE = 1024; pub const CKM_KEY_WRAP_SET_OAEP: CK_MECHANISM_TYPE = 1025; pub const CKM_CMS_SIG: CK_MECHANISM_TYPE = 1280; pub const CKM_KIP_DERIVE: CK_MECHANISM_TYPE = 1296; pub const CKM_KIP_WRAP: CK_MECHANISM_TYPE = 1297; pub const CKM_KIP_MAC: CK_MECHANISM_TYPE = 1298; pub const CKM_CAMELLIA_KEY_GEN: CK_MECHANISM_TYPE = 1360; pub const CKM_CAMELLIA_CTR: CK_MECHANISM_TYPE = 1368; pub const CKM_ARIA_KEY_GEN: CK_MECHANISM_TYPE = 1376; pub const CKM_ARIA_ECB: CK_MECHANISM_TYPE = 1377; pub const CKM_ARIA_CBC: CK_MECHANISM_TYPE = 1378; pub const CKM_ARIA_MAC: CK_MECHANISM_TYPE = 1379; pub const CKM_ARIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1380; pub const CKM_ARIA_CBC_PAD: CK_MECHANISM_TYPE = 1381; pub const CKM_ARIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1382; pub const CKM_ARIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1383; pub const CKM_SEED_KEY_GEN: CK_MECHANISM_TYPE = 1616; pub const CKM_SEED_ECB: CK_MECHANISM_TYPE = 1617; pub const CKM_SEED_CBC: CK_MECHANISM_TYPE = 1618; pub const CKM_SEED_MAC: CK_MECHANISM_TYPE = 1619; pub const CKM_SEED_MAC_GENERAL: CK_MECHANISM_TYPE = 1620; pub const CKM_SEED_CBC_PAD: CK_MECHANISM_TYPE = 1621; pub const CKM_SEED_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1622; pub const CKM_SEED_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1623; pub const CKM_SKIPJACK_KEY_GEN: CK_MECHANISM_TYPE = 4096; pub const CKM_SKIPJACK_ECB64: CK_MECHANISM_TYPE = 4097; pub const CKM_SKIPJACK_CBC64: CK_MECHANISM_TYPE = 4098; pub const CKM_SKIPJACK_OFB64: CK_MECHANISM_TYPE = 4099; pub const CKM_SKIPJACK_CFB64: CK_MECHANISM_TYPE = 4100; pub const CKM_SKIPJACK_CFB32: CK_MECHANISM_TYPE = 4101; pub const CKM_SKIPJACK_CFB16: CK_MECHANISM_TYPE = 4102; pub const CKM_SKIPJACK_CFB8: CK_MECHANISM_TYPE = 4103; pub const CKM_SKIPJACK_WRAP: CK_MECHANISM_TYPE = 4104; pub const CKM_SKIPJACK_PRIVATE_WRAP: CK_MECHANISM_TYPE = 4105; pub const CKM_SKIPJACK_RELAYX: CK_MECHANISM_TYPE = 4106; pub const CKM_KEA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4112; pub const CKM_KEA_KEY_DERIVE: CK_MECHANISM_TYPE = 4113; pub const CKM_FORTEZZA_TIMESTAMP: CK_MECHANISM_TYPE = 4128; pub const CKM_BATON_KEY_GEN: CK_MECHANISM_TYPE = 4144; pub const CKM_BATON_ECB128: CK_MECHANISM_TYPE = 4145; pub const CKM_BATON_ECB96: CK_MECHANISM_TYPE = 4146; pub const CKM_BATON_CBC128: CK_MECHANISM_TYPE = 4147; pub const CKM_BATON_COUNTER: CK_MECHANISM_TYPE = 4148; pub const CKM_BATON_SHUFFLE: CK_MECHANISM_TYPE = 4149; pub const CKM_BATON_WRAP: CK_MECHANISM_TYPE = 4150; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_EC_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_ECDSA: CK_MECHANISM_TYPE = 4161; pub const CKM_ECDSA_SHA1: CK_MECHANISM_TYPE = 4162; pub const CKM_ECDSA_SHA224: CK_MECHANISM_TYPE = 4163; pub const CKM_ECDSA_SHA256: CK_MECHANISM_TYPE = 4164; pub const CKM_ECDSA_SHA384: CK_MECHANISM_TYPE = 4165; pub const CKM_ECDSA_SHA512: CK_MECHANISM_TYPE = 4166; pub const CKM_ECDH1_DERIVE: CK_MECHANISM_TYPE = 4176; pub const CKM_ECDH1_COFACTOR_DERIVE: CK_MECHANISM_TYPE = 4177; pub const CKM_ECMQV_DERIVE: CK_MECHANISM_TYPE = 4178; pub const CKM_ECDH_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4179; pub const CKM_RSA_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4180; pub const CKM_JUNIPER_KEY_GEN: CK_MECHANISM_TYPE = 4192; pub const CKM_JUNIPER_ECB128: CK_MECHANISM_TYPE = 4193; pub const CKM_JUNIPER_CBC128: CK_MECHANISM_TYPE = 4194; pub const CKM_JUNIPER_COUNTER: CK_MECHANISM_TYPE = 4195; pub const CKM_JUNIPER_SHUFFLE: CK_MECHANISM_TYPE = 4196; pub const CKM_JUNIPER_WRAP: CK_MECHANISM_TYPE = 4197; pub const CKM_FASTHASH: CK_MECHANISM_TYPE = 4208; pub const CKM_AES_KEY_GEN: CK_MECHANISM_TYPE = 4224; pub const CKM_AES_ECB: CK_MECHANISM_TYPE = 4225; pub const CKM_AES_CBC: CK_MECHANISM_TYPE = 4226; pub const CKM_AES_MAC: CK_MECHANISM_TYPE = 4227; pub const CKM_AES_MAC_GENERAL: CK_MECHANISM_TYPE = 4228; pub const CKM_AES_CBC_PAD: CK_MECHANISM_TYPE = 4229; pub const CKM_AES_CTR: CK_MECHANISM_TYPE = 4230; pub const CKM_AES_GCM: CK_MECHANISM_TYPE = 4231; pub const CKM_AES_CCM: CK_MECHANISM_TYPE = 4232; pub const CKM_AES_CTS: CK_MECHANISM_TYPE = 4233; pub const CKM_AES_CMAC: CK_MECHANISM_TYPE = 4234; pub const CKM_AES_CMAC_GENERAL: CK_MECHANISM_TYPE = 4235; pub const CKM_AES_XCBC_MAC: CK_MECHANISM_TYPE = 4236; pub const CKM_AES_XCBC_MAC_96: CK_MECHANISM_TYPE = 4237; pub const CKM_AES_GMAC: CK_MECHANISM_TYPE = 4238; pub const CKM_BLOWFISH_KEY_GEN: CK_MECHANISM_TYPE = 4240; pub const CKM_BLOWFISH_CBC: CK_MECHANISM_TYPE = 4241; pub const CKM_TWOFISH_KEY_GEN: CK_MECHANISM_TYPE = 4242; pub const CKM_TWOFISH_CBC: CK_MECHANISM_TYPE = 4243; pub const CKM_BLOWFISH_CBC_PAD: CK_MECHANISM_TYPE = 4244; pub const CKM_TWOFISH_CBC_PAD: CK_MECHANISM_TYPE = 4245; pub const CKM_DES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4352; pub const CKM_DES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4353; pub const CKM_DES3_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4354; pub const CKM_DES3_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4355; pub const CKM_AES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4356; pub const CKM_AES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4357; pub const CKM_GOSTR3410_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4608; pub const CKM_GOSTR3410: CK_MECHANISM_TYPE = 4609; pub const CKM_GOSTR3410_WITH_GOSTR3411: CK_MECHANISM_TYPE = 4610; pub const CKM_GOSTR3410_KEY_WRAP: CK_MECHANISM_TYPE = 4611; pub const CKM_GOSTR3410_DERIVE: CK_MECHANISM_TYPE = 4612; pub const CKM_GOSTR3411: CK_MECHANISM_TYPE = 4624; pub const CKM_GOSTR3411_HMAC: CK_MECHANISM_TYPE = 4625; pub const CKM_GOST28147_KEY_GEN: CK_MECHANISM_TYPE = 4640; pub const CKM_GOST28147_ECB: CK_MECHANISM_TYPE = 4641; pub const CKM_GOST28147: CK_MECHANISM_TYPE = 4642; pub const CKM_GOST28147_MAC: CK_MECHANISM_TYPE = 4643; pub const CKM_GOST28147_KEY_WRAP: CK_MECHANISM_TYPE = 4644; pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; pub const CKM_AES_CFB64: CK_MECHANISM_TYPE = 8453; pub const CKM_AES_CFB8: CK_MECHANISM_TYPE = 8454; pub const CKM_AES_CFB128: CK_MECHANISM_TYPE = 8455; pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_SHA224: CK_MECHANISM_TYPE = 597; pub const CKM_SHA224_HMAC: CK_MECHANISM_TYPE = 598; pub const CKM_SHA224_HMAC_GENERAL: CK_MECHANISM_TYPE = 599; pub const CKM_SHA224_RSA_PKCS: CK_MECHANISM_TYPE = 70; pub const CKM_SHA224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 71; pub const CKM_SHA224_KEY_DERIVATION: CK_MECHANISM_TYPE = 918; pub const CKM_CAMELLIA_ECB: CK_MECHANISM_TYPE = 1361; pub const CKM_CAMELLIA_CBC: CK_MECHANISM_TYPE = 1362; pub const CKM_CAMELLIA_MAC: CK_MECHANISM_TYPE = 1363; pub const CKM_CAMELLIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1364; pub const CKM_CAMELLIA_CBC_PAD: CK_MECHANISM_TYPE = 1365; pub const CKM_CAMELLIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1366; pub const CKM_CAMELLIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1367; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_EC_EDWARDS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4181; pub const CKM_EC_MONTGOMERY_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4182; pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CK_OTP_FORMAT_DECIMAL: CK_ULONG = 0; pub const CK_OTP_FORMAT_HEXADECIMAL: CK_ULONG = 1; pub const CK_OTP_FORMAT_ALPHANUMERIC: CK_ULONG = 2; pub const CK_OTP_FORMAT_BINARY: CK_ULONG = 3; pub const CK_OTP_PARAM_IGNORED: CK_ULONG = 0; pub const CK_OTP_PARAM_OPTIONAL: CK_ULONG = 1; pub const CK_OTP_PARAM_MANDATORY: CK_ULONG = 2; pub const CK_OTP_VALUE: CK_ULONG = 0; pub const CK_OTP_PIN: CK_ULONG = 1; pub const CK_OTP_CHALLENGE: CK_ULONG = 2; pub const CK_OTP_TIME: CK_ULONG = 3; pub const CK_OTP_COUNTER: CK_ULONG = 4; pub const CK_OTP_FLAGS: CK_ULONG = 5; pub const CK_OTP_OUTPUT_LENGTH: CK_ULONG = 6; pub const CK_OTP_FORMAT: CK_ULONG = 7; pub const CKF_NEXT_OTP: CK_FLAGS = 1; pub const CKF_EXCLUDE_TIME: CK_FLAGS = 2; pub const CKF_EXCLUDE_COUNTER: CK_FLAGS = 4; pub const CKF_EXCLUDE_CHALLENGE: CK_FLAGS = 8; pub const CKF_EXCLUDE_PIN: CK_FLAGS = 16; pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKG_MGF1_SHA1: CK_RSA_PKCS_MGF_TYPE = 1; pub const CKG_MGF1_SHA224: CK_RSA_PKCS_MGF_TYPE = 5; pub const CKG_MGF1_SHA256: CK_RSA_PKCS_MGF_TYPE = 2; pub const CKG_MGF1_SHA384: CK_RSA_PKCS_MGF_TYPE = 3; pub const CKG_MGF1_SHA512: CK_RSA_PKCS_MGF_TYPE = 4; pub const CKD_NULL: CK_EC_KDF_TYPE = 1; pub const CKD_SHA1_KDF: CK_EC_KDF_TYPE = 2; pub const CKD_SHA1_KDF_ASN1: CK_EC_KDF_TYPE = 3; pub const CKD_SHA1_KDF_CONCATENATE: CK_EC_KDF_TYPE = 4; pub const CKD_SHA224_KDF: CK_EC_KDF_TYPE = 5; pub const CKD_SHA256_KDF: CK_EC_KDF_TYPE = 6; pub const CKD_SHA384_KDF: CK_EC_KDF_TYPE = 7; pub const CKD_SHA512_KDF: CK_EC_KDF_TYPE = 8; pub const CKD_CPDIVERSIFY_KDF: CK_EC_KDF_TYPE = 9; pub const CKF_HW: CK_FLAGS = 1; pub const CKF_ENCRYPT: CK_FLAGS = 256; pub const CKF_DECRYPT: CK_FLAGS = 512; pub const CKF_DIGEST: CK_FLAGS = 1024; pub const CKF_SIGN: CK_FLAGS = 2048; pub const CKF_SIGN_RECOVER: CK_FLAGS = 4096; pub const CKF_VERIFY: CK_FLAGS = 8192; pub const CKF_VERIFY_RECOVER: CK_FLAGS = 16384; pub const CKF_GENERATE: CK_FLAGS = 32768; pub const CKF_GENERATE_KEY_PAIR: CK_FLAGS = 65536; pub const CKF_WRAP: CK_FLAGS = 131072; pub const CKF_UNWRAP: CK_FLAGS = 262144; pub const CKF_DERIVE: CK_FLAGS = 524288; pub const CKF_EC_F_P: CK_FLAGS = 1048576; pub const CKF_EC_F_2M: CK_FLAGS = 2097152; pub const CKF_EC_ECPARAMETERS: CK_FLAGS = 4194304; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_LIBRARY_CANT_CREATE_OS_THREADS: CK_FLAGS = 1; pub const CKF_OS_LOCKING_OK: CK_FLAGS = 2; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; pub const CKR_SLOT_ID_INVALID: CK_RV = 3; pub const CKR_GENERAL_ERROR: CK_RV = 5; pub const CKR_FUNCTION_FAILED: CK_RV = 6; pub const CKR_ARGUMENTS_BAD: CK_RV = 7; pub const CKR_NO_EVENT: CK_RV = 8; pub const CKR_NEED_TO_CREATE_THREADS: CK_RV = 9; pub const CKR_CANT_LOCK: CK_RV = 10; pub const CKR_ATTRIBUTE_READ_ONLY: CK_RV = 16; pub const CKR_ATTRIBUTE_SENSITIVE: CK_RV = 17; pub const CKR_ATTRIBUTE_TYPE_INVALID: CK_RV = 18; pub const CKR_ATTRIBUTE_VALUE_INVALID: CK_RV = 19; pub const CKR_ACTION_PROHIBITED: CK_RV = 27; pub const CKR_DATA_INVALID: CK_RV = 32; pub const CKR_DATA_LEN_RANGE: CK_RV = 33; pub const CKR_DEVICE_ERROR: CK_RV = 48; pub const CKR_DEVICE_MEMORY: CK_RV = 49; pub const CKR_DEVICE_REMOVED: CK_RV = 50; pub const CKR_ENCRYPTED_DATA_INVALID: CK_RV = 64; pub const CKR_ENCRYPTED_DATA_LEN_RANGE: CK_RV = 65; pub const CKR_FUNCTION_CANCELED: CK_RV = 80; pub const CKR_FUNCTION_NOT_PARALLEL: CK_RV = 81; pub const CKR_FUNCTION_NOT_SUPPORTED: CK_RV = 84; pub const CKR_KEY_HANDLE_INVALID: CK_RV = 96; pub const CKR_KEY_SIZE_RANGE: CK_RV = 98; pub const CKR_KEY_TYPE_INCONSISTENT: CK_RV = 99; pub const CKR_KEY_NOT_NEEDED: CK_RV = 100; pub const CKR_KEY_CHANGED: CK_RV = 101; pub const CKR_KEY_NEEDED: CK_RV = 102; pub const CKR_KEY_INDIGESTIBLE: CK_RV = 103; pub const CKR_KEY_FUNCTION_NOT_PERMITTED: CK_RV = 104; pub const CKR_KEY_NOT_WRAPPABLE: CK_RV = 105; pub const CKR_KEY_UNEXTRACTABLE: CK_RV = 106; pub const CKR_MECHANISM_INVALID: CK_RV = 112; pub const CKR_MECHANISM_PARAM_INVALID: CK_RV = 113; pub const CKR_OBJECT_HANDLE_INVALID: CK_RV = 130; pub const CKR_OPERATION_ACTIVE: CK_RV = 144; pub const CKR_OPERATION_NOT_INITIALIZED: CK_RV = 145; pub const CKR_PIN_INCORRECT: CK_RV = 160; pub const CKR_PIN_INVALID: CK_RV = 161; pub const CKR_PIN_LEN_RANGE: CK_RV = 162; pub const CKR_PIN_EXPIRED: CK_RV = 163; pub const CKR_PIN_LOCKED: CK_RV = 164; pub const CKR_SESSION_CLOSED: CK_RV = 176; pub const CKR_SESSION_COUNT: CK_RV = 177; pub const CKR_SESSION_HANDLE_INVALID: CK_RV = 179; pub const CKR_SESSION_PARALLEL_NOT_SUPPORTED: CK_RV = 180; pub const CKR_SESSION_READ_ONLY: CK_RV = 181; pub const CKR_SESSION_EXISTS: CK_RV = 182; pub const CKR_SESSION_READ_ONLY_EXISTS: CK_RV = 183; pub const CKR_SESSION_READ_WRITE_SO_EXISTS: CK_RV = 184; pub const CKR_SIGNATURE_INVALID: CK_RV = 192; pub const CKR_SIGNATURE_LEN_RANGE: CK_RV = 193; pub const CKR_TEMPLATE_INCOMPLETE: CK_RV = 208; pub const CKR_TEMPLATE_INCONSISTENT: CK_RV = 209; pub const CKR_TOKEN_NOT_PRESENT: CK_RV = 224; pub const CKR_TOKEN_NOT_RECOGNIZED: CK_RV = 225; pub const CKR_TOKEN_WRITE_PROTECTED: CK_RV = 226; pub const CKR_UNWRAPPING_KEY_HANDLE_INVALID: CK_RV = 240; pub const CKR_UNWRAPPING_KEY_SIZE_RANGE: CK_RV = 241; pub const CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 242; pub const CKR_USER_ALREADY_LOGGED_IN: CK_RV = 256; pub const CKR_USER_NOT_LOGGED_IN: CK_RV = 257; pub const CKR_USER_PIN_NOT_INITIALIZED: CK_RV = 258; pub const CKR_USER_TYPE_INVALID: CK_RV = 259; pub const CKR_USER_ANOTHER_ALREADY_LOGGED_IN: CK_RV = 260; pub const CKR_USER_TOO_MANY_TYPES: CK_RV = 261; pub const CKR_WRAPPED_KEY_INVALID: CK_RV = 272; pub const CKR_WRAPPED_KEY_LEN_RANGE: CK_RV = 274; pub const CKR_WRAPPING_KEY_HANDLE_INVALID: CK_RV = 275; pub const CKR_WRAPPING_KEY_SIZE_RANGE: CK_RV = 276; pub const CKR_WRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 277; pub const CKR_RANDOM_SEED_NOT_SUPPORTED: CK_RV = 288; pub const CKR_RANDOM_NO_RNG: CK_RV = 289; pub const CKR_DOMAIN_PARAMS_INVALID: CK_RV = 304; pub const CKR_BUFFER_TOO_SMALL: CK_RV = 336; pub const CKR_SAVED_STATE_INVALID: CK_RV = 352; pub const CKR_INFORMATION_SENSITIVE: CK_RV = 368; pub const CKR_STATE_UNSAVEABLE: CK_RV = 384; pub const CKR_CRYPTOKI_NOT_INITIALIZED: CK_RV = 400; pub const CKR_CRYPTOKI_ALREADY_INITIALIZED: CK_RV = 401; pub const CKR_MUTEX_BAD: CK_RV = 416; pub const CKR_MUTEX_NOT_LOCKED: CK_RV = 417; pub const CKR_NEW_PIN_MODE: CK_RV = 432; pub const CKR_NEXT_OTP: CK_RV = 433; pub const CKR_EXCEEDED_MAX_ITERATIONS: CK_RV = 448; pub const CKR_FIPS_SELF_TEST_FAILED: CK_RV = 449; pub const CKR_LIBRARY_LOAD_FAILED: CK_RV = 450; pub const CKR_PIN_TOO_WEAK: CK_RV = 451; pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 452; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CK_FALSE: CK_BBOOL = 0; pub const CK_TRUE: CK_BBOOL = 1; pub const FALSE: u32 = 0; pub const TRUE: u32 = 1; pub type CK_FLAGS = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_VERSION { pub major: ::std::os::raw::c_uchar, pub minor: ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout__CK_VERSION() { const UNINIT: ::std::mem::MaybeUninit<_CK_VERSION> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_VERSION>(), 2usize, concat!("Size of: ", stringify!(_CK_VERSION)) ); assert_eq!( ::std::mem::align_of::<_CK_VERSION>(), 1usize, concat!("Alignment of ", stringify!(_CK_VERSION)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).major) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(major) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).minor) as usize - ptr as usize }, 1usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(minor) ) ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_INFO { pub cryptokiVersion: _CK_VERSION, pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub libraryDescription: [::std::os::raw::c_uchar; 32usize], pub libraryVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_INFO>(), 88usize, concat!("Size of: ", stringify!(_CK_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cryptokiVersion) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(cryptokiVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 2usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryDescription) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryVersion) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryVersion) ) ); } pub type CK_NOTIFICATION = ::std::os::raw::c_ulong; pub const CKN_SURRENDER: ::std::os::raw::c_ulong = 0; pub type CK_SLOT_ID = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_SLOT_INFO { pub slotDescription: [::std::os::raw::c_uchar; 64usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_SLOT_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SLOT_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SLOT_INFO>(), 112usize, concat!("Size of: ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SLOT_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotDescription) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(slotDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 106usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(firmwareVersion) ) ); } impl Default for _CK_SLOT_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub const CKF_TOKEN_PRESENT: ::std::os::raw::c_ulong = 1; pub const CKF_REMOVABLE_DEVICE: ::std::os::raw::c_ulong = 2; pub const CKF_HW_SLOT: ::std::os::raw::c_ulong = 4; pub const CKF_ARRAY_ATTRIBUTE: ::std::os::raw::c_ulong = 1073741824; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_TOKEN_INFO { pub label: [::std::os::raw::c_uchar; 32usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub model: [::std::os::raw::c_uchar; 16usize], pub serialNumber: [::std::os::raw::c_uchar; 16usize], pub flags: CK_FLAGS, pub ulMaxSessionCount: ::std::os::raw::c_ulong, pub ulSessionCount: ::std::os::raw::c_ulong, pub ulMaxRwSessionCount: ::std::os::raw::c_ulong, pub ulRwSessionCount: ::std::os::raw::c_ulong, pub ulMaxPinLen: ::std::os::raw::c_ulong, pub ulMinPinLen: ::std::os::raw::c_ulong, pub ulTotalPublicMemory: ::std::os::raw::c_ulong, pub ulFreePublicMemory: ::std::os::raw::c_ulong, pub ulTotalPrivateMemory: ::std::os::raw::c_ulong, pub ulFreePrivateMemory: ::std::os::raw::c_ulong, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, pub utcTime: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout__CK_TOKEN_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_TOKEN_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_TOKEN_INFO>(), 208usize, concat!("Size of: ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_TOKEN_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(label) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).model) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(model) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).serialNumber) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(serialNumber) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxSessionCount) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSessionCount) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxRwSessionCount) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulRwSessionCount) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxPinLen) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinPinLen) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMinPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPublicMemory) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePublicMemory) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPrivateMemory) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePrivateMemory) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 186usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(firmwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).utcTime) as usize - ptr as usize }, 188usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(utcTime) ) ); } pub type CK_SESSION_HANDLE = ::std::os::raw::c_ulong; pub type CK_USER_TYPE = ::std::os::raw::c_ulong; pub type CK_STATE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_SESSION_INFO { pub slotID: CK_SLOT_ID, pub state: CK_STATE, pub flags: CK_FLAGS, pub ulDeviceError: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_SESSION_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SESSION_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SESSION_INFO>(), 32usize, concat!("Size of: ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SESSION_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotID) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(slotID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(state) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulDeviceError) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(ulDeviceError) ) ); } pub type CK_OBJECT_HANDLE = ::std::os::raw::c_ulong; pub type CK_OBJECT_CLASS = ::std::os::raw::c_ulong; pub type CK_HW_FEATURE_TYPE = ::std::os::raw::c_ulong; pub type CK_KEY_TYPE = ::std::os::raw::c_ulong; pub type CK_CERTIFICATE_TYPE = ::std::os::raw::c_ulong; pub type CK_ATTRIBUTE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_ATTRIBUTE { pub type_: CK_ATTRIBUTE_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_ATTRIBUTE() { const UNINIT: ::std::mem::MaybeUninit<_CK_ATTRIBUTE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_ATTRIBUTE>(), 24usize, concat!("Size of: ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( ::std::mem::align_of::<_CK_ATTRIBUTE>(), 8usize, concat!("Alignment of ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(ulValueLen) ) ); } impl Default for _CK_ATTRIBUTE { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_DATE { pub year: [::std::os::raw::c_uchar; 4usize], pub month: [::std::os::raw::c_uchar; 2usize], pub day: [::std::os::raw::c_uchar; 2usize], } #[test] fn bindgen_test_layout__CK_DATE() { const UNINIT: ::std::mem::MaybeUninit<_CK_DATE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_DATE>(), 8usize, concat!("Size of: ", stringify!(_CK_DATE)) ); assert_eq!( ::std::mem::align_of::<_CK_DATE>(), 1usize, concat!("Alignment of ", stringify!(_CK_DATE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).year) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(year) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).month) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(month) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).day) as usize - ptr as usize }, 6usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(day) ) ); } pub type CK_MECHANISM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_MECHANISM { pub mechanism: CK_MECHANISM_TYPE, pub pParameter: *mut ::std::os::raw::c_void, pub ulParameterLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_MECHANISM() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM>(), 24usize, concat!("Size of: ", stringify!(_CK_MECHANISM)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM>(), 8usize, concat!("Alignment of ", stringify!(_CK_MECHANISM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mechanism) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(mechanism) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParameter) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(pParameter) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulParameterLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(ulParameterLen) ) ); } impl Default for _CK_MECHANISM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_MECHANISM_INFO { pub ulMinKeySize: ::std::os::raw::c_ulong, pub ulMaxKeySize: ::std::os::raw::c_ulong, pub flags: CK_FLAGS, } #[test] fn bindgen_test_layout__CK_MECHANISM_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM_INFO>(), 24usize, concat!("Size of: ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinKeySize) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMinKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxKeySize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMaxKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(flags) ) ); } pub type CK_PARAM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAM { pub type_: CK_PARAM_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAM() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(CK_OTP_PARAM)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_PARAM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(ulValueLen) ) ); } impl Default for CK_OTP_PARAM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAMS { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAMS() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_PARAMS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_SIGNATURE_INFO { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_SIGNATURE_INFO() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_SIGNATURE_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RSA_PKCS_MGF_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_rsa_pkcs_pss_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub sLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_pss_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).sLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(sLen) ) ); } pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_rsa_pkcs_oaep_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub source: CK_RSA_PKCS_OAEP_SOURCE_TYPE, pub pSourceData: *mut ::std::os::raw::c_void, pub ulSourceDataLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_oaep_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(source) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSourceData) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(pSourceData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSourceDataLen) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(ulSourceDataLen) ) ); } impl Default for ck_rsa_pkcs_oaep_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_aes_ctr_params { pub ulCounterBits: ::std::os::raw::c_ulong, pub cb: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout_ck_aes_ctr_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_aes_ctr_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_aes_ctr_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCounterBits) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(ulCounterBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cb) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(cb) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_gcm_params { pub pIv: *mut ::std::os::raw::c_uchar, pub ulIvLen: ::std::os::raw::c_ulong, pub ulIvBits: ::std::os::raw::c_ulong, pub pAAD: *mut ::std::os::raw::c_uchar, pub ulAADLen: ::std::os::raw::c_ulong, pub ulTagBits: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_gcm_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 48usize, concat!("Size of: ", stringify!(ck_gcm_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_gcm_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pIv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pIv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvBits) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pAAD) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pAAD) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulAADLen) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulAADLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTagBits) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulTagBits) ) ); } impl Default for ck_gcm_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type ck_ec_kdf_t = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_ecdh1_derive_params { pub kdf: ck_ec_kdf_t, pub ulSharedDataLen: ::std::os::raw::c_ulong, pub pSharedData: *mut ::std::os::raw::c_uchar, pub ulPublicDataLen: ::std::os::raw::c_ulong, pub pPublicData: *mut ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout_ck_ecdh1_derive_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(kdf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSharedDataLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulSharedDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSharedData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pSharedData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulPublicDataLen) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulPublicDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pPublicData) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pPublicData) ) ); } impl Default for ck_ecdh1_derive_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_key_derivation_string_data { pub pData: *mut ::std::os::raw::c_uchar, pub ulLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_key_derivation_string_data() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(ulLen) ) ); } impl Default for ck_key_derivation_string_data { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_des_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 8usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_des_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_des_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_aes_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 16usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_aes_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 32usize, concat!("Size of: ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_aes_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RV = ::std::os::raw::c_ulong; pub type CK_NOTIFY = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, event: CK_NOTIFICATION, application: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_Initialize = ::std::option::Option CK_RV>; pub type CK_C_Finalize = ::std::option::Option CK_RV>; pub type CK_C_GetInfo = ::std::option::Option CK_RV>; pub type CK_C_GetFunctionList = ::std::option::Option< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, >; pub type CK_C_GetSlotList = ::std::option::Option< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetSlotInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, >; pub type CK_C_GetTokenInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, >; pub type CK_C_WaitForSlotEvent = ::std::option::Option< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_GetMechanismList = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetMechanismInfo = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, >; pub type CK_C_InitToken = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, >; pub type CK_C_InitPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_OpenSession = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, >; pub type CK_C_CloseSession = ::std::option::Option CK_RV>; pub type CK_C_CloseAllSessions = ::std::option::Option CK_RV>; pub type CK_C_GetSessionInfo = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, >; pub type CK_C_GetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Login = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_Logout = ::std::option::Option CK_RV>; pub type CK_C_CreateObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_CopyObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DestroyObject = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_GetObjectSize = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjects = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsFinal = ::std::option::Option CK_RV>; pub type CK_C_EncryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Encrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Decrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestInit = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, >; pub type CK_C_Digest = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestKey = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_DigestFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Sign = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SignRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Verify = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_VerifyRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptDigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptVerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_GenerateKeyPair = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_WrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_UnwrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DeriveKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SeedRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetFunctionStatus = ::std::option::Option CK_RV>; pub type CK_C_CancelFunction = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_FUNCTION_LIST { pub version: _CK_VERSION, pub C_Initialize: CK_C_Initialize, pub C_Finalize: CK_C_Finalize, pub C_GetInfo: CK_C_GetInfo, pub C_GetFunctionList: CK_C_GetFunctionList, pub C_GetSlotList: CK_C_GetSlotList, pub C_GetSlotInfo: CK_C_GetSlotInfo, pub C_GetTokenInfo: CK_C_GetTokenInfo, pub C_GetMechanismList: CK_C_GetMechanismList, pub C_GetMechanismInfo: CK_C_GetMechanismInfo, pub C_InitToken: CK_C_InitToken, pub C_InitPIN: CK_C_InitPIN, pub C_SetPIN: CK_C_SetPIN, pub C_OpenSession: CK_C_OpenSession, pub C_CloseSession: CK_C_CloseSession, pub C_CloseAllSessions: CK_C_CloseAllSessions, pub C_GetSessionInfo: CK_C_GetSessionInfo, pub C_GetOperationState: CK_C_GetOperationState, pub C_SetOperationState: CK_C_SetOperationState, pub C_Login: CK_C_Login, pub C_Logout: CK_C_Logout, pub C_CreateObject: CK_C_CreateObject, pub C_CopyObject: CK_C_CopyObject, pub C_DestroyObject: CK_C_DestroyObject, pub C_GetObjectSize: CK_C_GetObjectSize, pub C_GetAttributeValue: CK_C_GetAttributeValue, pub C_SetAttributeValue: CK_C_SetAttributeValue, pub C_FindObjectsInit: CK_C_FindObjectsInit, pub C_FindObjects: CK_C_FindObjects, pub C_FindObjectsFinal: CK_C_FindObjectsFinal, pub C_EncryptInit: CK_C_EncryptInit, pub C_Encrypt: CK_C_Encrypt, pub C_EncryptUpdate: CK_C_EncryptUpdate, pub C_EncryptFinal: CK_C_EncryptFinal, pub C_DecryptInit: CK_C_DecryptInit, pub C_Decrypt: CK_C_Decrypt, pub C_DecryptUpdate: CK_C_DecryptUpdate, pub C_DecryptFinal: CK_C_DecryptFinal, pub C_DigestInit: CK_C_DigestInit, pub C_Digest: CK_C_Digest, pub C_DigestUpdate: CK_C_DigestUpdate, pub C_DigestKey: CK_C_DigestKey, pub C_DigestFinal: CK_C_DigestFinal, pub C_SignInit: CK_C_SignInit, pub C_Sign: CK_C_Sign, pub C_SignUpdate: CK_C_SignUpdate, pub C_SignFinal: CK_C_SignFinal, pub C_SignRecoverInit: CK_C_SignRecoverInit, pub C_SignRecover: CK_C_SignRecover, pub C_VerifyInit: CK_C_VerifyInit, pub C_Verify: CK_C_Verify, pub C_VerifyUpdate: CK_C_VerifyUpdate, pub C_VerifyFinal: CK_C_VerifyFinal, pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, pub C_VerifyRecover: CK_C_VerifyRecover, pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, pub C_GenerateKey: CK_C_GenerateKey, pub C_GenerateKeyPair: CK_C_GenerateKeyPair, pub C_WrapKey: CK_C_WrapKey, pub C_UnwrapKey: CK_C_UnwrapKey, pub C_DeriveKey: CK_C_DeriveKey, pub C_SeedRandom: CK_C_SeedRandom, pub C_GenerateRandom: CK_C_GenerateRandom, pub C_GetFunctionStatus: CK_C_GetFunctionStatus, pub C_CancelFunction: CK_C_CancelFunction, pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, } #[test] fn bindgen_test_layout__CK_FUNCTION_LIST() { const UNINIT: ::std::mem::MaybeUninit<_CK_FUNCTION_LIST> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_FUNCTION_LIST>(), 552usize, concat!("Size of: ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( ::std::mem::align_of::<_CK_FUNCTION_LIST>(), 8usize, concat!("Alignment of ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(version) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Initialize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Initialize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Finalize) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Finalize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetInfo) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionList) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotList) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotInfo) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetTokenInfo) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetTokenInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismList) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismInfo) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitToken) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitToken) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitPIN) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetPIN) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_OpenSession) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_OpenSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseSession) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseAllSessions) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseAllSessions) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSessionInfo) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSessionInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetOperationState) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetOperationState) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Login) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Login) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Logout) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Logout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CreateObject) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CreateObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CopyObject) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CopyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DestroyObject) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DestroyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetObjectSize) as usize - ptr as usize }, 192usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetObjectSize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetAttributeValue) as usize - ptr as usize }, 200usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetAttributeValue) as usize - ptr as usize }, 208usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsInit) as usize - ptr as usize }, 216usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjects) as usize - ptr as usize }, 224usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjects) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsFinal) as usize - ptr as usize }, 232usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptInit) as usize - ptr as usize }, 240usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Encrypt) as usize - ptr as usize }, 248usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Encrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptUpdate) as usize - ptr as usize }, 256usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptFinal) as usize - ptr as usize }, 264usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptInit) as usize - ptr as usize }, 272usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Decrypt) as usize - ptr as usize }, 280usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Decrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptUpdate) as usize - ptr as usize }, 288usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptFinal) as usize - ptr as usize }, 296usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestInit) as usize - ptr as usize }, 304usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Digest) as usize - ptr as usize }, 312usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Digest) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestUpdate) as usize - ptr as usize }, 320usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestKey) as usize - ptr as usize }, 328usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestFinal) as usize - ptr as usize }, 336usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignInit) as usize - ptr as usize }, 344usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Sign) as usize - ptr as usize }, 352usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Sign) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignUpdate) as usize - ptr as usize }, 360usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignFinal) as usize - ptr as usize }, 368usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecoverInit) as usize - ptr as usize }, 376usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecover) as usize - ptr as usize }, 384usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyInit) as usize - ptr as usize }, 392usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Verify) as usize - ptr as usize }, 400usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Verify) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyUpdate) as usize - ptr as usize }, 408usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyFinal) as usize - ptr as usize }, 416usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecoverInit) as usize - ptr as usize }, 424usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecover) as usize - ptr as usize }, 432usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestEncryptUpdate) as usize - ptr as usize }, 440usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptDigestUpdate) as usize - ptr as usize }, 448usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptDigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignEncryptUpdate) as usize - ptr as usize }, 456usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptVerifyUpdate) as usize - ptr as usize }, 464usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptVerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKey) as usize - ptr as usize }, 472usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKeyPair) as usize - ptr as usize }, 480usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKeyPair) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WrapKey) as usize - ptr as usize }, 488usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_UnwrapKey) as usize - ptr as usize }, 496usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_UnwrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DeriveKey) as usize - ptr as usize }, 504usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DeriveKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SeedRandom) as usize - ptr as usize }, 512usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SeedRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateRandom) as usize - ptr as usize }, 520usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionStatus) as usize - ptr as usize }, 528usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionStatus) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CancelFunction) as usize - ptr as usize }, 536usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CancelFunction) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WaitForSlotEvent) as usize - ptr as usize }, 544usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WaitForSlotEvent) ) ); } pub type CK_CREATEMUTEX = ::std::option::Option CK_RV>; pub type CK_DESTROYMUTEX = ::std::option::Option CK_RV>; pub type CK_LOCKMUTEX = ::std::option::Option CK_RV>; pub type CK_UNLOCKMUTEX = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_C_INITIALIZE_ARGS { pub CreateMutex: CK_CREATEMUTEX, pub DestroyMutex: CK_DESTROYMUTEX, pub LockMutex: CK_LOCKMUTEX, pub UnlockMutex: CK_UNLOCKMUTEX, pub flags: CK_FLAGS, pub pReserved: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout__CK_C_INITIALIZE_ARGS() { const UNINIT: ::std::mem::MaybeUninit<_CK_C_INITIALIZE_ARGS> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_C_INITIALIZE_ARGS>(), 48usize, concat!("Size of: ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( ::std::mem::align_of::<_CK_C_INITIALIZE_ARGS>(), 8usize, concat!("Alignment of ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).CreateMutex) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(CreateMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).DestroyMutex) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(DestroyMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).LockMutex) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(LockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).UnlockMutex) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(UnlockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pReserved) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(pReserved) ) ); } impl Default for _CK_C_INITIALIZE_ARGS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_BYTE = ::std::os::raw::c_uchar; pub type CK_CHAR = ::std::os::raw::c_uchar; pub type CK_UTF8CHAR = ::std::os::raw::c_uchar; pub type CK_BBOOL = ::std::os::raw::c_uchar; pub type CK_ULONG = ::std::os::raw::c_ulong; pub type CK_LONG = ::std::os::raw::c_long; pub type CK_BYTE_PTR = *mut CK_BYTE; pub type CK_CHAR_PTR = *mut CK_CHAR; pub type CK_UTF8CHAR_PTR = *mut CK_UTF8CHAR; pub type CK_ULONG_PTR = *mut CK_ULONG; pub type CK_VOID_PTR = *mut ::std::os::raw::c_void; pub type CK_VOID_PTR_PTR = *mut *mut ::std::os::raw::c_void; pub type CK_VERSION = _CK_VERSION; pub type CK_VERSION_PTR = *mut _CK_VERSION; pub type CK_INFO = _CK_INFO; pub type CK_INFO_PTR = *mut _CK_INFO; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SLOT_INFO = _CK_SLOT_INFO; pub type CK_SLOT_INFO_PTR = *mut _CK_SLOT_INFO; pub type CK_TOKEN_INFO = _CK_TOKEN_INFO; pub type CK_TOKEN_INFO_PTR = *mut _CK_TOKEN_INFO; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; pub type CK_SESSION_INFO = _CK_SESSION_INFO; pub type CK_SESSION_INFO_PTR = *mut _CK_SESSION_INFO; pub type CK_OBJECT_HANDLE_PTR = *mut CK_OBJECT_HANDLE; pub type CK_OBJECT_CLASS_PTR = *mut CK_OBJECT_CLASS; pub type CK_ATTRIBUTE = _CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR = *mut _CK_ATTRIBUTE; pub type CK_DATE = _CK_DATE; pub type CK_DATE_PTR = *mut _CK_DATE; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; pub type CK_MECHANISM = _CK_MECHANISM; pub type CK_MECHANISM_PTR = *mut _CK_MECHANISM; pub type CK_MECHANISM_INFO = _CK_MECHANISM_INFO; pub type CK_MECHANISM_INFO_PTR = *mut _CK_MECHANISM_INFO; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_otp_mechanism_info { _unused: [u8; 0], } pub type CK_OTP_MECHANISM_INFO = ck_otp_mechanism_info; pub type CK_OTP_MECHANISM_INFO_PTR = *mut ck_otp_mechanism_info; pub type CK_FUNCTION_LIST = _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR = *mut _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut _CK_FUNCTION_LIST; pub type CK_C_INITIALIZE_ARGS = _CK_C_INITIALIZE_ARGS; pub type CK_C_INITIALIZE_ARGS_PTR = *mut _CK_C_INITIALIZE_ARGS; pub type CK_RSA_PKCS_PSS_PARAMS = ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_PSS_PARAMS_PTR = *mut ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_OAEP_PARAMS = ck_rsa_pkcs_oaep_params; pub type CK_RSA_PKCS_OAEP_PARAMS_PTR = *mut ck_rsa_pkcs_oaep_params; pub type CK_AES_CTR_PARAMS = ck_aes_ctr_params; pub type CK_AES_CTR_PARAMS_PTR = *mut ck_aes_ctr_params; pub type CK_GCM_PARAMS = ck_gcm_params; pub type CK_GCM_PARAMS_PTR = *mut ck_gcm_params; pub type CK_ECDH1_DERIVE_PARAMS = ck_ecdh1_derive_params; pub type CK_ECDH1_DERIVE_PARAMS_PTR = *mut ck_ecdh1_derive_params; pub type CK_KEY_DERIVATION_STRING_DATA = ck_key_derivation_string_data; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut ck_key_derivation_string_data; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS = ck_des_cbc_encrypt_data_params; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_des_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS = ck_aes_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_aes_cbc_encrypt_data_params; extern crate libloading; pub struct Pkcs11 { __library: ::libloading::Library, pub C_Initialize: Result< unsafe extern "C" fn(init_args: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_Finalize: Result< unsafe extern "C" fn(pReserved: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_GetInfo: Result CK_RV, ::libloading::Error>, pub C_GetFunctionList: Result< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, ::libloading::Error, >, pub C_GetSlotList: Result< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetSlotInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetTokenInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, ::libloading::Error, >, pub C_WaitForSlotEvent: Result< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismList: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismInfo: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, ::libloading::Error, >, pub C_InitToken: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, ::libloading::Error, >, pub C_InitPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_OpenSession: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CloseSession: Result CK_RV, ::libloading::Error>, pub C_CloseAllSessions: Result CK_RV, ::libloading::Error>, pub C_GetSessionInfo: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Login: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_Logout: Result CK_RV, ::libloading::Error>, pub C_CreateObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CopyObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DestroyObject: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_GetObjectSize: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjects: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsFinal: Result CK_RV, ::libloading::Error>, pub C_EncryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Encrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Decrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestInit: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, ::libloading::Error, >, pub C_Digest: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestKey: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_DigestFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Sign: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Verify: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptDigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptVerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKeyPair: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_WrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_UnwrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DeriveKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SeedRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetFunctionStatus: Result CK_RV, ::libloading::Error>, pub C_CancelFunction: Result CK_RV, ::libloading::Error>, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result where P: AsRef<::std::ffi::OsStr>, { let library = ::libloading::Library::new(path)?; Self::from_library(library) } pub unsafe fn from_library(library: L) -> Result where L: Into<::libloading::Library>, { let __library = library.into(); let C_Initialize = __library.get(b"C_Initialize\0").map(|sym| *sym); let C_Finalize = __library.get(b"C_Finalize\0").map(|sym| *sym); let C_GetInfo = __library.get(b"C_GetInfo\0").map(|sym| *sym); let C_GetFunctionList = __library.get(b"C_GetFunctionList\0").map(|sym| *sym); let C_GetSlotList = __library.get(b"C_GetSlotList\0").map(|sym| *sym); let C_GetSlotInfo = __library.get(b"C_GetSlotInfo\0").map(|sym| *sym); let C_GetTokenInfo = __library.get(b"C_GetTokenInfo\0").map(|sym| *sym); let C_WaitForSlotEvent = __library.get(b"C_WaitForSlotEvent\0").map(|sym| *sym); let C_GetMechanismList = __library.get(b"C_GetMechanismList\0").map(|sym| *sym); let C_GetMechanismInfo = __library.get(b"C_GetMechanismInfo\0").map(|sym| *sym); let C_InitToken = __library.get(b"C_InitToken\0").map(|sym| *sym); let C_InitPIN = __library.get(b"C_InitPIN\0").map(|sym| *sym); let C_SetPIN = __library.get(b"C_SetPIN\0").map(|sym| *sym); let C_OpenSession = __library.get(b"C_OpenSession\0").map(|sym| *sym); let C_CloseSession = __library.get(b"C_CloseSession\0").map(|sym| *sym); let C_CloseAllSessions = __library.get(b"C_CloseAllSessions\0").map(|sym| *sym); let C_GetSessionInfo = __library.get(b"C_GetSessionInfo\0").map(|sym| *sym); let C_GetOperationState = __library.get(b"C_GetOperationState\0").map(|sym| *sym); let C_SetOperationState = __library.get(b"C_SetOperationState\0").map(|sym| *sym); let C_Login = __library.get(b"C_Login\0").map(|sym| *sym); let C_Logout = __library.get(b"C_Logout\0").map(|sym| *sym); let C_CreateObject = __library.get(b"C_CreateObject\0").map(|sym| *sym); let C_CopyObject = __library.get(b"C_CopyObject\0").map(|sym| *sym); let C_DestroyObject = __library.get(b"C_DestroyObject\0").map(|sym| *sym); let C_GetObjectSize = __library.get(b"C_GetObjectSize\0").map(|sym| *sym); let C_GetAttributeValue = __library.get(b"C_GetAttributeValue\0").map(|sym| *sym); let C_SetAttributeValue = __library.get(b"C_SetAttributeValue\0").map(|sym| *sym); let C_FindObjectsInit = __library.get(b"C_FindObjectsInit\0").map(|sym| *sym); let C_FindObjects = __library.get(b"C_FindObjects\0").map(|sym| *sym); let C_FindObjectsFinal = __library.get(b"C_FindObjectsFinal\0").map(|sym| *sym); let C_EncryptInit = __library.get(b"C_EncryptInit\0").map(|sym| *sym); let C_Encrypt = __library.get(b"C_Encrypt\0").map(|sym| *sym); let C_EncryptUpdate = __library.get(b"C_EncryptUpdate\0").map(|sym| *sym); let C_EncryptFinal = __library.get(b"C_EncryptFinal\0").map(|sym| *sym); let C_DecryptInit = __library.get(b"C_DecryptInit\0").map(|sym| *sym); let C_Decrypt = __library.get(b"C_Decrypt\0").map(|sym| *sym); let C_DecryptUpdate = __library.get(b"C_DecryptUpdate\0").map(|sym| *sym); let C_DecryptFinal = __library.get(b"C_DecryptFinal\0").map(|sym| *sym); let C_DigestInit = __library.get(b"C_DigestInit\0").map(|sym| *sym); let C_Digest = __library.get(b"C_Digest\0").map(|sym| *sym); let C_DigestUpdate = __library.get(b"C_DigestUpdate\0").map(|sym| *sym); let C_DigestKey = __library.get(b"C_DigestKey\0").map(|sym| *sym); let C_DigestFinal = __library.get(b"C_DigestFinal\0").map(|sym| *sym); let C_SignInit = __library.get(b"C_SignInit\0").map(|sym| *sym); let C_Sign = __library.get(b"C_Sign\0").map(|sym| *sym); let C_SignUpdate = __library.get(b"C_SignUpdate\0").map(|sym| *sym); let C_SignFinal = __library.get(b"C_SignFinal\0").map(|sym| *sym); let C_SignRecoverInit = __library.get(b"C_SignRecoverInit\0").map(|sym| *sym); let C_SignRecover = __library.get(b"C_SignRecover\0").map(|sym| *sym); let C_VerifyInit = __library.get(b"C_VerifyInit\0").map(|sym| *sym); let C_Verify = __library.get(b"C_Verify\0").map(|sym| *sym); let C_VerifyUpdate = __library.get(b"C_VerifyUpdate\0").map(|sym| *sym); let C_VerifyFinal = __library.get(b"C_VerifyFinal\0").map(|sym| *sym); let C_VerifyRecoverInit = __library.get(b"C_VerifyRecoverInit\0").map(|sym| *sym); let C_VerifyRecover = __library.get(b"C_VerifyRecover\0").map(|sym| *sym); let C_DigestEncryptUpdate = __library.get(b"C_DigestEncryptUpdate\0").map(|sym| *sym); let C_DecryptDigestUpdate = __library.get(b"C_DecryptDigestUpdate\0").map(|sym| *sym); let C_SignEncryptUpdate = __library.get(b"C_SignEncryptUpdate\0").map(|sym| *sym); let C_DecryptVerifyUpdate = __library.get(b"C_DecryptVerifyUpdate\0").map(|sym| *sym); let C_GenerateKey = __library.get(b"C_GenerateKey\0").map(|sym| *sym); let C_GenerateKeyPair = __library.get(b"C_GenerateKeyPair\0").map(|sym| *sym); let C_WrapKey = __library.get(b"C_WrapKey\0").map(|sym| *sym); let C_UnwrapKey = __library.get(b"C_UnwrapKey\0").map(|sym| *sym); let C_DeriveKey = __library.get(b"C_DeriveKey\0").map(|sym| *sym); let C_SeedRandom = __library.get(b"C_SeedRandom\0").map(|sym| *sym); let C_GenerateRandom = __library.get(b"C_GenerateRandom\0").map(|sym| *sym); let C_GetFunctionStatus = __library.get(b"C_GetFunctionStatus\0").map(|sym| *sym); let C_CancelFunction = __library.get(b"C_CancelFunction\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, C_Finalize, C_GetInfo, C_GetFunctionList, C_GetSlotList, C_GetSlotInfo, C_GetTokenInfo, C_WaitForSlotEvent, C_GetMechanismList, C_GetMechanismInfo, C_InitToken, C_InitPIN, C_SetPIN, C_OpenSession, C_CloseSession, C_CloseAllSessions, C_GetSessionInfo, C_GetOperationState, C_SetOperationState, C_Login, C_Logout, C_CreateObject, C_CopyObject, C_DestroyObject, C_GetObjectSize, C_GetAttributeValue, C_SetAttributeValue, C_FindObjectsInit, C_FindObjects, C_FindObjectsFinal, C_EncryptInit, C_Encrypt, C_EncryptUpdate, C_EncryptFinal, C_DecryptInit, C_Decrypt, C_DecryptUpdate, C_DecryptFinal, C_DigestInit, C_Digest, C_DigestUpdate, C_DigestKey, C_DigestFinal, C_SignInit, C_Sign, C_SignUpdate, C_SignFinal, C_SignRecoverInit, C_SignRecover, C_VerifyInit, C_Verify, C_VerifyUpdate, C_VerifyFinal, C_VerifyRecoverInit, C_VerifyRecover, C_DigestEncryptUpdate, C_DecryptDigestUpdate, C_SignEncryptUpdate, C_DecryptVerifyUpdate, C_GenerateKey, C_GenerateKeyPair, C_WrapKey, C_UnwrapKey, C_DeriveKey, C_SeedRandom, C_GenerateRandom, C_GetFunctionStatus, C_CancelFunction, }) } pub unsafe fn C_Initialize(&self, init_args: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Initialize .as_ref() .expect("Expected function, got error."))(init_args) } pub unsafe fn C_Finalize(&self, pReserved: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Finalize .as_ref() .expect("Expected function, got error."))(pReserved) } pub unsafe fn C_GetInfo(&self, info: *mut _CK_INFO) -> CK_RV { (self .C_GetInfo .as_ref() .expect("Expected function, got error."))(info) } pub unsafe fn C_GetFunctionList(&self, function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV { (self .C_GetFunctionList .as_ref() .expect("Expected function, got error."))(function_list) } pub unsafe fn C_GetSlotList( &self, token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetSlotList .as_ref() .expect("Expected function, got error."))(token_present, slot_list, ulCount) } pub unsafe fn C_GetSlotInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV { (self .C_GetSlotInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_GetTokenInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV { (self .C_GetTokenInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_WaitForSlotEvent( &self, flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV { (self .C_WaitForSlotEvent .as_ref() .expect("Expected function, got error."))(flags, slot, pReserved) } pub unsafe fn C_GetMechanismList( &self, slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetMechanismList .as_ref() .expect("Expected function, got error."))(slotID, mechanism_list, ulCount) } pub unsafe fn C_GetMechanismInfo( &self, slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV { (self .C_GetMechanismInfo .as_ref() .expect("Expected function, got error."))(slotID, type_, info) } pub unsafe fn C_InitToken( &self, slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV { (self .C_InitToken .as_ref() .expect("Expected function, got error."))(slotID, pin, pin_len, label) } pub unsafe fn C_InitPIN( &self, session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_InitPIN .as_ref() .expect("Expected function, got error."))(session, pin, pin_len) } pub unsafe fn C_SetPIN( &self, session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetPIN .as_ref() .expect("Expected function, got error."))( session, old_pin, old_len, new_pin, new_len ) } pub unsafe fn C_OpenSession( &self, slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV { (self .C_OpenSession .as_ref() .expect("Expected function, got error."))( slotID, flags, application, notify, session ) } pub unsafe fn C_CloseSession(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CloseSession .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CloseAllSessions(&self, slotID: CK_SLOT_ID) -> CK_RV { (self .C_CloseAllSessions .as_ref() .expect("Expected function, got error."))(slotID) } pub unsafe fn C_GetSessionInfo( &self, session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO, ) -> CK_RV { (self .C_GetSessionInfo .as_ref() .expect("Expected function, got error."))(session, info) } pub unsafe fn C_GetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len ) } pub unsafe fn C_SetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len, encryption_key, authentiation_key, ) } pub unsafe fn C_Login( &self, session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Login .as_ref() .expect("Expected function, got error."))(session, user_type, pin, pin_len) } pub unsafe fn C_Logout(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_Logout .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CreateObject( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CreateObject .as_ref() .expect("Expected function, got error."))(session, templ, ulCount, object) } pub unsafe fn C_CopyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CopyObject .as_ref() .expect("Expected function, got error."))( session, object, templ, ulCount, new_object ) } pub unsafe fn C_DestroyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DestroyObject .as_ref() .expect("Expected function, got error."))(session, object) } pub unsafe fn C_GetObjectSize( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetObjectSize .as_ref() .expect("Expected function, got error."))(session, object, size) } pub unsafe fn C_GetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_SetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_FindObjectsInit( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjectsInit .as_ref() .expect("Expected function, got error."))(session, templ, ulCount) } pub unsafe fn C_FindObjects( &self, session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjects .as_ref() .expect("Expected function, got error."))( session, object, max_object_count, object_count, ) } pub unsafe fn C_FindObjectsFinal(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_FindObjectsFinal .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_EncryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_EncryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Encrypt( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Encrypt .as_ref() .expect("Expected function, got error."))( session, data, data_len, encrypted_data, encrypted_data_len, ) } pub unsafe fn C_EncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_EncryptFinal( &self, session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptFinal .as_ref() .expect("Expected function, got error."))( session, last_encrypted_part, last_encrypted_part_len, ) } pub unsafe fn C_DecryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DecryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Decrypt( &self, session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Decrypt .as_ref() .expect("Expected function, got error."))( session, encrypted_data, encrypted_data_len, data, data_len, ) } pub unsafe fn C_DecryptUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_DecryptFinal( &self, session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptFinal .as_ref() .expect("Expected function, got error."))(session, last_part, last_part_len) } pub unsafe fn C_DigestInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, ) -> CK_RV { (self .C_DigestInit .as_ref() .expect("Expected function, got error."))(session, mechanism) } pub unsafe fn C_Digest( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Digest .as_ref() .expect("Expected function, got error."))( session, data, data_len, digest, digest_len ) } pub unsafe fn C_DigestUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_DigestKey(&self, session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV { (self .C_DigestKey .as_ref() .expect("Expected function, got error."))(session, key) } pub unsafe fn C_DigestFinal( &self, session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestFinal .as_ref() .expect("Expected function, got error."))(session, digest, digest_len) } pub unsafe fn C_SignInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Sign( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self.C_Sign.as_ref().expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_SignUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_SignFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_SignRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_SignRecover( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignRecover .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Verify( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Verify .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_VerifyFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_VerifyRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_VerifyRecover( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyRecover .as_ref() .expect("Expected function, got error."))( session, signature, signature_len, data, data_len, ) } pub unsafe fn C_DigestEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptDigestUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptDigestUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_SignEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptVerifyUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptVerifyUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_GenerateKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKey .as_ref() .expect("Expected function, got error."))( session, mechanism, templ, ulCount, key ) } pub unsafe fn C_GenerateKeyPair( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKeyPair .as_ref() .expect("Expected function, got error."))( session, mechanism, public_key_template, public_key_attribute_count, private_key_template, private_key_attribute_count, public_key, private_key, ) } pub unsafe fn C_WrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_WrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, wrapping_key, key, wrapped_key, wrapped_key_len, ) } pub unsafe fn C_UnwrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_UnwrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, unwrapping_key, wrapped_key, wrapped_key_len, templ, attribute_count, key, ) } pub unsafe fn C_DeriveKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DeriveKey .as_ref() .expect("Expected function, got error."))( session, mechanism, base_key, templ, attribute_count, key, ) } pub unsafe fn C_SeedRandom( &self, session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SeedRandom .as_ref() .expect("Expected function, got error."))(session, seed, seed_len) } pub unsafe fn C_GenerateRandom( &self, session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GenerateRandom .as_ref() .expect("Expected function, got error."))(session, random_data, random_len) } pub unsafe fn C_GetFunctionStatus(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_GetFunctionStatus .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CancelFunction(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CancelFunction .as_ref() .expect("Expected function, got error."))(session) } } cryptoki-sys-0.1.7/src/bindings/x86_64-pc-windows-msvc.rs000064400000000000000000005300341046102023000212440ustar 00000000000000/* automatically generated by rust-bindgen 0.66.1 */ pub const PKCS11_H: u32 = 1; pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 40; pub const P11_KIT_CRYPTOKI_VERSION_REVISION: u32 = 0; pub const CRYPTOKI_COMPAT: u32 = 1; pub const CKF_RNG: CK_FLAGS = 1; pub const CKF_WRITE_PROTECTED: CK_FLAGS = 2; pub const CKF_LOGIN_REQUIRED: CK_FLAGS = 4; pub const CKF_USER_PIN_INITIALIZED: CK_FLAGS = 8; pub const CKF_RESTORE_KEY_NOT_NEEDED: CK_FLAGS = 32; pub const CKF_CLOCK_ON_TOKEN: CK_FLAGS = 64; pub const CKF_PROTECTED_AUTHENTICATION_PATH: CK_FLAGS = 256; pub const CKF_DUAL_CRYPTO_OPERATIONS: CK_FLAGS = 512; pub const CKF_TOKEN_INITIALIZED: CK_FLAGS = 1024; pub const CKF_SECONDARY_AUTHENTICATION: CK_FLAGS = 2048; pub const CKF_USER_PIN_COUNT_LOW: CK_FLAGS = 65536; pub const CKF_USER_PIN_FINAL_TRY: CK_FLAGS = 131072; pub const CKF_USER_PIN_LOCKED: CK_FLAGS = 262144; pub const CKF_USER_PIN_TO_BE_CHANGED: CK_FLAGS = 524288; pub const CKF_SO_PIN_COUNT_LOW: CK_FLAGS = 1048576; pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; pub const CKO_DATA: CK_OBJECT_CLASS = 0; pub const CKO_CERTIFICATE: CK_OBJECT_CLASS = 1; pub const CKO_PUBLIC_KEY: CK_OBJECT_CLASS = 2; pub const CKO_PRIVATE_KEY: CK_OBJECT_CLASS = 3; pub const CKO_SECRET_KEY: CK_OBJECT_CLASS = 4; pub const CKO_HW_FEATURE: CK_OBJECT_CLASS = 5; pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_EC: CK_KEY_TYPE = 3; pub const CKK_X9_42_DH: CK_KEY_TYPE = 4; pub const CKK_KEA: CK_KEY_TYPE = 5; pub const CKK_GENERIC_SECRET: CK_KEY_TYPE = 16; pub const CKK_RC2: CK_KEY_TYPE = 17; pub const CKK_RC4: CK_KEY_TYPE = 18; pub const CKK_DES: CK_KEY_TYPE = 19; pub const CKK_DES2: CK_KEY_TYPE = 20; pub const CKK_DES3: CK_KEY_TYPE = 21; pub const CKK_CAST: CK_KEY_TYPE = 22; pub const CKK_CAST3: CK_KEY_TYPE = 23; pub const CKK_CAST128: CK_KEY_TYPE = 24; pub const CKK_RC5: CK_KEY_TYPE = 25; pub const CKK_IDEA: CK_KEY_TYPE = 26; pub const CKK_SKIPJACK: CK_KEY_TYPE = 27; pub const CKK_BATON: CK_KEY_TYPE = 28; pub const CKK_JUNIPER: CK_KEY_TYPE = 29; pub const CKK_CDMF: CK_KEY_TYPE = 30; pub const CKK_AES: CK_KEY_TYPE = 31; pub const CKK_BLOWFISH: CK_KEY_TYPE = 32; pub const CKK_TWOFISH: CK_KEY_TYPE = 33; pub const CKK_SECURID: CK_KEY_TYPE = 34; pub const CKK_HOTP: CK_KEY_TYPE = 35; pub const CKK_ACTI: CK_KEY_TYPE = 36; pub const CKK_CAMELLIA: CK_KEY_TYPE = 37; pub const CKK_ARIA: CK_KEY_TYPE = 38; pub const CKK_MD5_HMAC: CK_KEY_TYPE = 39; pub const CKK_SHA_1_HMAC: CK_KEY_TYPE = 40; pub const CKK_RIPEMD128_HMAC: CK_KEY_TYPE = 41; pub const CKK_RIPEMD160_HMAC: CK_KEY_TYPE = 42; pub const CKK_SHA256_HMAC: CK_KEY_TYPE = 43; pub const CKK_SHA384_HMAC: CK_KEY_TYPE = 44; pub const CKK_SHA512_HMAC: CK_KEY_TYPE = 45; pub const CKK_SHA224_HMAC: CK_KEY_TYPE = 46; pub const CKK_SEED: CK_KEY_TYPE = 47; pub const CKK_GOSTR3410: CK_KEY_TYPE = 48; pub const CKK_GOSTR3411: CK_KEY_TYPE = 49; pub const CKK_GOST28147: CK_KEY_TYPE = 50; pub const CKK_EC_EDWARDS: CK_KEY_TYPE = 64; pub const CKC_X_509: CK_CERTIFICATE_TYPE = 0; pub const CKC_X_509_ATTR_CERT: CK_CERTIFICATE_TYPE = 1; pub const CKC_WTLS: CK_CERTIFICATE_TYPE = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; pub const CKA_TOKEN: CK_ATTRIBUTE_TYPE = 1; pub const CKA_PRIVATE: CK_ATTRIBUTE_TYPE = 2; pub const CKA_LABEL: CK_ATTRIBUTE_TYPE = 3; pub const CKA_APPLICATION: CK_ATTRIBUTE_TYPE = 16; pub const CKA_VALUE: CK_ATTRIBUTE_TYPE = 17; pub const CKA_OBJECT_ID: CK_ATTRIBUTE_TYPE = 18; pub const CKA_CERTIFICATE_TYPE: CK_ATTRIBUTE_TYPE = 128; pub const CKA_ISSUER: CK_ATTRIBUTE_TYPE = 129; pub const CKA_SERIAL_NUMBER: CK_ATTRIBUTE_TYPE = 130; pub const CKA_AC_ISSUER: CK_ATTRIBUTE_TYPE = 131; pub const CKA_OWNER: CK_ATTRIBUTE_TYPE = 132; pub const CKA_ATTR_TYPES: CK_ATTRIBUTE_TYPE = 133; pub const CKA_TRUSTED: CK_ATTRIBUTE_TYPE = 134; pub const CKA_CERTIFICATE_CATEGORY: CK_ATTRIBUTE_TYPE = 135; pub const CKA_JAVA_MIDP_SECURITY_DOMAIN: CK_ATTRIBUTE_TYPE = 136; pub const CKA_URL: CK_ATTRIBUTE_TYPE = 137; pub const CKA_HASH_OF_SUBJECT_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 138; pub const CKA_HASH_OF_ISSUER_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 139; pub const CKA_NAME_HASH_ALGORITHM: CK_ATTRIBUTE_TYPE = 140; pub const CKA_CHECK_VALUE: CK_ATTRIBUTE_TYPE = 144; pub const CKA_KEY_TYPE: CK_ATTRIBUTE_TYPE = 256; pub const CKA_SUBJECT: CK_ATTRIBUTE_TYPE = 257; pub const CKA_ID: CK_ATTRIBUTE_TYPE = 258; pub const CKA_SENSITIVE: CK_ATTRIBUTE_TYPE = 259; pub const CKA_ENCRYPT: CK_ATTRIBUTE_TYPE = 260; pub const CKA_DECRYPT: CK_ATTRIBUTE_TYPE = 261; pub const CKA_WRAP: CK_ATTRIBUTE_TYPE = 262; pub const CKA_UNWRAP: CK_ATTRIBUTE_TYPE = 263; pub const CKA_SIGN: CK_ATTRIBUTE_TYPE = 264; pub const CKA_SIGN_RECOVER: CK_ATTRIBUTE_TYPE = 265; pub const CKA_VERIFY: CK_ATTRIBUTE_TYPE = 266; pub const CKA_VERIFY_RECOVER: CK_ATTRIBUTE_TYPE = 267; pub const CKA_DERIVE: CK_ATTRIBUTE_TYPE = 268; pub const CKA_START_DATE: CK_ATTRIBUTE_TYPE = 272; pub const CKA_END_DATE: CK_ATTRIBUTE_TYPE = 273; pub const CKA_MODULUS: CK_ATTRIBUTE_TYPE = 288; pub const CKA_MODULUS_BITS: CK_ATTRIBUTE_TYPE = 289; pub const CKA_PUBLIC_EXPONENT: CK_ATTRIBUTE_TYPE = 290; pub const CKA_PRIVATE_EXPONENT: CK_ATTRIBUTE_TYPE = 291; pub const CKA_PRIME_1: CK_ATTRIBUTE_TYPE = 292; pub const CKA_PRIME_2: CK_ATTRIBUTE_TYPE = 293; pub const CKA_EXPONENT_1: CK_ATTRIBUTE_TYPE = 294; pub const CKA_EXPONENT_2: CK_ATTRIBUTE_TYPE = 295; pub const CKA_COEFFICIENT: CK_ATTRIBUTE_TYPE = 296; pub const CKA_PUBLIC_KEY_INFO: CK_ATTRIBUTE_TYPE = 297; pub const CKA_PRIME: CK_ATTRIBUTE_TYPE = 304; pub const CKA_SUBPRIME: CK_ATTRIBUTE_TYPE = 305; pub const CKA_BASE: CK_ATTRIBUTE_TYPE = 306; pub const CKA_PRIME_BITS: CK_ATTRIBUTE_TYPE = 307; pub const CKA_SUB_PRIME_BITS: CK_ATTRIBUTE_TYPE = 308; pub const CKA_VALUE_BITS: CK_ATTRIBUTE_TYPE = 352; pub const CKA_VALUE_LEN: CK_ATTRIBUTE_TYPE = 353; pub const CKA_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 354; pub const CKA_LOCAL: CK_ATTRIBUTE_TYPE = 355; pub const CKA_NEVER_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 356; pub const CKA_ALWAYS_SENSITIVE: CK_ATTRIBUTE_TYPE = 357; pub const CKA_KEY_GEN_MECHANISM: CK_ATTRIBUTE_TYPE = 358; pub const CKA_MODIFIABLE: CK_ATTRIBUTE_TYPE = 368; pub const CKA_COPYABLE: CK_ATTRIBUTE_TYPE = 369; pub const CKA_DESTROYABLE: CK_ATTRIBUTE_TYPE = 370; pub const CKA_ECDSA_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_POINT: CK_ATTRIBUTE_TYPE = 385; pub const CKA_SECONDARY_AUTH: CK_ATTRIBUTE_TYPE = 512; pub const CKA_AUTH_PIN_FLAGS: CK_ATTRIBUTE_TYPE = 513; pub const CKA_ALWAYS_AUTHENTICATE: CK_ATTRIBUTE_TYPE = 514; pub const CKA_WRAP_WITH_TRUSTED: CK_ATTRIBUTE_TYPE = 528; pub const CKA_OTP_FORMAT: CK_ATTRIBUTE_TYPE = 544; pub const CKA_OTP_LENGTH: CK_ATTRIBUTE_TYPE = 545; pub const CKA_OTP_TIME_INTERVAL: CK_ATTRIBUTE_TYPE = 546; pub const CKA_OTP_USER_FRIENDLY_MODE: CK_ATTRIBUTE_TYPE = 547; pub const CKA_OTP_CHALLENGE_REQUIREMENT: CK_ATTRIBUTE_TYPE = 548; pub const CKA_OTP_TIME_REQUIREMENT: CK_ATTRIBUTE_TYPE = 549; pub const CKA_OTP_COUNTER_REQUIREMENT: CK_ATTRIBUTE_TYPE = 550; pub const CKA_OTP_PIN_REQUIREMENT: CK_ATTRIBUTE_TYPE = 551; pub const CKA_OTP_USER_IDENTIFIER: CK_ATTRIBUTE_TYPE = 554; pub const CKA_OTP_SERVICE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 555; pub const CKA_OTP_SERVICE_LOGO: CK_ATTRIBUTE_TYPE = 556; pub const CKA_OTP_SERVICE_LOGO_TYPE: CK_ATTRIBUTE_TYPE = 557; pub const CKA_OTP_COUNTER: CK_ATTRIBUTE_TYPE = 558; pub const CKA_OTP_TIME: CK_ATTRIBUTE_TYPE = 559; pub const CKA_GOSTR3410_PARAMS: CK_ATTRIBUTE_TYPE = 592; pub const CKA_GOSTR3411_PARAMS: CK_ATTRIBUTE_TYPE = 593; pub const CKA_GOST28147_PARAMS: CK_ATTRIBUTE_TYPE = 594; pub const CKA_HW_FEATURE_TYPE: CK_ATTRIBUTE_TYPE = 768; pub const CKA_RESET_ON_INIT: CK_ATTRIBUTE_TYPE = 769; pub const CKA_HAS_RESET: CK_ATTRIBUTE_TYPE = 770; pub const CKA_PIXEL_X: CK_ATTRIBUTE_TYPE = 1024; pub const CKA_PIXEL_Y: CK_ATTRIBUTE_TYPE = 1025; pub const CKA_RESOLUTION: CK_ATTRIBUTE_TYPE = 1026; pub const CKA_CHAR_ROWS: CK_ATTRIBUTE_TYPE = 1027; pub const CKA_CHAR_COLUMNS: CK_ATTRIBUTE_TYPE = 1028; pub const CKA_COLOR: CK_ATTRIBUTE_TYPE = 1029; pub const CKA_BITS_PER_PIXEL: CK_ATTRIBUTE_TYPE = 1030; pub const CKA_CHAR_SETS: CK_ATTRIBUTE_TYPE = 1152; pub const CKA_ENCODING_METHODS: CK_ATTRIBUTE_TYPE = 1153; pub const CKA_MIME_TYPES: CK_ATTRIBUTE_TYPE = 1154; pub const CKA_MECHANISM_TYPE: CK_ATTRIBUTE_TYPE = 1280; pub const CKA_REQUIRED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1281; pub const CKA_DEFAULT_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1282; pub const CKA_SUPPORTED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1283; pub const CKM_RSA_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 0; pub const CKM_RSA_PKCS: CK_MECHANISM_TYPE = 1; pub const CKM_RSA_9796: CK_MECHANISM_TYPE = 2; pub const CKM_RSA_X_509: CK_MECHANISM_TYPE = 3; pub const CKM_MD2_RSA_PKCS: CK_MECHANISM_TYPE = 4; pub const CKM_MD5_RSA_PKCS: CK_MECHANISM_TYPE = 5; pub const CKM_SHA1_RSA_PKCS: CK_MECHANISM_TYPE = 6; pub const CKM_RIPEMD128_RSA_PKCS: CK_MECHANISM_TYPE = 7; pub const CKM_RIPEMD160_RSA_PKCS: CK_MECHANISM_TYPE = 8; pub const CKM_RSA_PKCS_OAEP: CK_MECHANISM_TYPE = 9; pub const CKM_RSA_X9_31_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 10; pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; pub const CKM_SHA256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 67; pub const CKM_SHA384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 68; pub const CKM_SHA512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 69; pub const CKM_SHA512_224: CK_MECHANISM_TYPE = 72; pub const CKM_SHA512_224_HMAC: CK_MECHANISM_TYPE = 73; pub const CKM_SHA512_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 74; pub const CKM_SHA512_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 75; pub const CKM_SHA512_256: CK_MECHANISM_TYPE = 76; pub const CKM_SHA512_256_HMAC: CK_MECHANISM_TYPE = 77; pub const CKM_SHA512_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 78; pub const CKM_SHA512_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 79; pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; pub const CKM_RC2_KEY_GEN: CK_MECHANISM_TYPE = 256; pub const CKM_RC2_ECB: CK_MECHANISM_TYPE = 257; pub const CKM_RC2_CBC: CK_MECHANISM_TYPE = 258; pub const CKM_RC2_MAC: CK_MECHANISM_TYPE = 259; pub const CKM_RC2_MAC_GENERAL: CK_MECHANISM_TYPE = 260; pub const CKM_RC2_CBC_PAD: CK_MECHANISM_TYPE = 261; pub const CKM_RC4_KEY_GEN: CK_MECHANISM_TYPE = 272; pub const CKM_RC4: CK_MECHANISM_TYPE = 273; pub const CKM_DES_KEY_GEN: CK_MECHANISM_TYPE = 288; pub const CKM_DES_ECB: CK_MECHANISM_TYPE = 289; pub const CKM_DES_CBC: CK_MECHANISM_TYPE = 290; pub const CKM_DES_MAC: CK_MECHANISM_TYPE = 291; pub const CKM_DES_MAC_GENERAL: CK_MECHANISM_TYPE = 292; pub const CKM_DES_CBC_PAD: CK_MECHANISM_TYPE = 293; pub const CKM_DES2_KEY_GEN: CK_MECHANISM_TYPE = 304; pub const CKM_DES3_KEY_GEN: CK_MECHANISM_TYPE = 305; pub const CKM_DES3_ECB: CK_MECHANISM_TYPE = 306; pub const CKM_DES3_CBC: CK_MECHANISM_TYPE = 307; pub const CKM_DES3_MAC: CK_MECHANISM_TYPE = 308; pub const CKM_DES3_MAC_GENERAL: CK_MECHANISM_TYPE = 309; pub const CKM_DES3_CBC_PAD: CK_MECHANISM_TYPE = 310; pub const CKM_DES3_CMAC_GENERAL: CK_MECHANISM_TYPE = 311; pub const CKM_DES3_CMAC: CK_MECHANISM_TYPE = 312; pub const CKM_CDMF_KEY_GEN: CK_MECHANISM_TYPE = 320; pub const CKM_CDMF_ECB: CK_MECHANISM_TYPE = 321; pub const CKM_CDMF_CBC: CK_MECHANISM_TYPE = 322; pub const CKM_CDMF_MAC: CK_MECHANISM_TYPE = 323; pub const CKM_CDMF_MAC_GENERAL: CK_MECHANISM_TYPE = 324; pub const CKM_CDMF_CBC_PAD: CK_MECHANISM_TYPE = 325; pub const CKM_DES_OFB64: CK_MECHANISM_TYPE = 336; pub const CKM_DES_OFB8: CK_MECHANISM_TYPE = 337; pub const CKM_DES_CFB64: CK_MECHANISM_TYPE = 338; pub const CKM_DES_CFB8: CK_MECHANISM_TYPE = 339; pub const CKM_MD2: CK_MECHANISM_TYPE = 512; pub const CKM_MD2_HMAC: CK_MECHANISM_TYPE = 513; pub const CKM_MD2_HMAC_GENERAL: CK_MECHANISM_TYPE = 514; pub const CKM_MD5: CK_MECHANISM_TYPE = 528; pub const CKM_MD5_HMAC: CK_MECHANISM_TYPE = 529; pub const CKM_MD5_HMAC_GENERAL: CK_MECHANISM_TYPE = 530; pub const CKM_SHA_1: CK_MECHANISM_TYPE = 544; pub const CKM_SHA_1_HMAC: CK_MECHANISM_TYPE = 545; pub const CKM_SHA_1_HMAC_GENERAL: CK_MECHANISM_TYPE = 546; pub const CKM_RIPEMD128: CK_MECHANISM_TYPE = 560; pub const CKM_RIPEMD128_HMAC: CK_MECHANISM_TYPE = 561; pub const CKM_RIPEMD128_HMAC_GENERAL: CK_MECHANISM_TYPE = 562; pub const CKM_RIPEMD160: CK_MECHANISM_TYPE = 576; pub const CKM_RIPEMD160_HMAC: CK_MECHANISM_TYPE = 577; pub const CKM_RIPEMD160_HMAC_GENERAL: CK_MECHANISM_TYPE = 578; pub const CKM_SHA256: CK_MECHANISM_TYPE = 592; pub const CKM_SHA256_HMAC: CK_MECHANISM_TYPE = 593; pub const CKM_SHA256_HMAC_GENERAL: CK_MECHANISM_TYPE = 594; pub const CKM_SHA384: CK_MECHANISM_TYPE = 608; pub const CKM_SHA384_HMAC: CK_MECHANISM_TYPE = 609; pub const CKM_SHA384_HMAC_GENERAL: CK_MECHANISM_TYPE = 610; pub const CKM_SHA512: CK_MECHANISM_TYPE = 624; pub const CKM_SHA512_HMAC: CK_MECHANISM_TYPE = 625; pub const CKM_SHA512_HMAC_GENERAL: CK_MECHANISM_TYPE = 626; pub const CKM_SECURID_KEY_GEN: CK_MECHANISM_TYPE = 640; pub const CKM_SECURID: CK_MECHANISM_TYPE = 642; pub const CKM_HOTP_KEY_GEN: CK_MECHANISM_TYPE = 656; pub const CKM_HOTP: CK_MECHANISM_TYPE = 657; pub const CKM_ACTI: CK_MECHANISM_TYPE = 672; pub const CKM_ACTI_KEY_GEN: CK_MECHANISM_TYPE = 673; pub const CKM_CAST_KEY_GEN: CK_MECHANISM_TYPE = 768; pub const CKM_CAST_ECB: CK_MECHANISM_TYPE = 769; pub const CKM_CAST_CBC: CK_MECHANISM_TYPE = 770; pub const CKM_CAST_MAC: CK_MECHANISM_TYPE = 771; pub const CKM_CAST_MAC_GENERAL: CK_MECHANISM_TYPE = 772; pub const CKM_CAST_CBC_PAD: CK_MECHANISM_TYPE = 773; pub const CKM_CAST3_KEY_GEN: CK_MECHANISM_TYPE = 784; pub const CKM_CAST3_ECB: CK_MECHANISM_TYPE = 785; pub const CKM_CAST3_CBC: CK_MECHANISM_TYPE = 786; pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST128_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_CAST128_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_RC5_KEY_GEN: CK_MECHANISM_TYPE = 816; pub const CKM_RC5_ECB: CK_MECHANISM_TYPE = 817; pub const CKM_RC5_CBC: CK_MECHANISM_TYPE = 818; pub const CKM_RC5_MAC: CK_MECHANISM_TYPE = 819; pub const CKM_RC5_MAC_GENERAL: CK_MECHANISM_TYPE = 820; pub const CKM_RC5_CBC_PAD: CK_MECHANISM_TYPE = 821; pub const CKM_IDEA_KEY_GEN: CK_MECHANISM_TYPE = 832; pub const CKM_IDEA_ECB: CK_MECHANISM_TYPE = 833; pub const CKM_IDEA_CBC: CK_MECHANISM_TYPE = 834; pub const CKM_IDEA_MAC: CK_MECHANISM_TYPE = 835; pub const CKM_IDEA_MAC_GENERAL: CK_MECHANISM_TYPE = 836; pub const CKM_IDEA_CBC_PAD: CK_MECHANISM_TYPE = 837; pub const CKM_GENERIC_SECRET_KEY_GEN: CK_MECHANISM_TYPE = 848; pub const CKM_CONCATENATE_BASE_AND_KEY: CK_MECHANISM_TYPE = 864; pub const CKM_CONCATENATE_BASE_AND_DATA: CK_MECHANISM_TYPE = 866; pub const CKM_CONCATENATE_DATA_AND_BASE: CK_MECHANISM_TYPE = 867; pub const CKM_XOR_BASE_AND_DATA: CK_MECHANISM_TYPE = 868; pub const CKM_EXTRACT_KEY_FROM_KEY: CK_MECHANISM_TYPE = 869; pub const CKM_SSL3_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 880; pub const CKM_SSL3_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 881; pub const CKM_SSL3_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 882; pub const CKM_SSL3_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 883; pub const CKM_TLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 884; pub const CKM_TLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 885; pub const CKM_TLS_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 886; pub const CKM_TLS_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 887; pub const CKM_TLS_PRF: CK_MECHANISM_TYPE = 888; pub const CKM_SSL3_MD5_MAC: CK_MECHANISM_TYPE = 896; pub const CKM_SSL3_SHA1_MAC: CK_MECHANISM_TYPE = 897; pub const CKM_MD5_KEY_DERIVATION: CK_MECHANISM_TYPE = 912; pub const CKM_MD2_KEY_DERIVATION: CK_MECHANISM_TYPE = 913; pub const CKM_SHA1_KEY_DERIVATION: CK_MECHANISM_TYPE = 914; pub const CKM_SHA256_KEY_DERIVATION: CK_MECHANISM_TYPE = 915; pub const CKM_SHA384_KEY_DERIVATION: CK_MECHANISM_TYPE = 916; pub const CKM_SHA512_KEY_DERIVATION: CK_MECHANISM_TYPE = 917; pub const CKM_PBE_MD2_DES_CBC: CK_MECHANISM_TYPE = 928; pub const CKM_PBE_MD5_DES_CBC: CK_MECHANISM_TYPE = 929; pub const CKM_PBE_MD5_CAST_CBC: CK_MECHANISM_TYPE = 930; pub const CKM_PBE_MD5_CAST3_CBC: CK_MECHANISM_TYPE = 931; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_MD5_CAST128_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_CAST128_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_RC4_128: CK_MECHANISM_TYPE = 934; pub const CKM_PBE_SHA1_RC4_40: CK_MECHANISM_TYPE = 935; pub const CKM_PBE_SHA1_DES3_EDE_CBC: CK_MECHANISM_TYPE = 936; pub const CKM_PBE_SHA1_DES2_EDE_CBC: CK_MECHANISM_TYPE = 937; pub const CKM_PBE_SHA1_RC2_128_CBC: CK_MECHANISM_TYPE = 938; pub const CKM_PBE_SHA1_RC2_40_CBC: CK_MECHANISM_TYPE = 939; pub const CKM_PKCS5_PBKD2: CK_MECHANISM_TYPE = 944; pub const CKM_PBA_SHA1_WITH_SHA1_HMAC: CK_MECHANISM_TYPE = 960; pub const CKM_WTLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 976; pub const CKM_WTLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 977; pub const CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC: CK_MECHANISM_TYPE = 978; pub const CKM_WTLS_PRF: CK_MECHANISM_TYPE = 979; pub const CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 980; pub const CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 981; pub const CKM_TLS10_MAC_SERVER: CK_MECHANISM_TYPE = 982; pub const CKM_TLS10_MAC_CLIENT: CK_MECHANISM_TYPE = 983; pub const CKM_TLS12_MAC: CK_MECHANISM_TYPE = 984; pub const CKM_TLS12_KDF: CK_MECHANISM_TYPE = 985; pub const CKM_TLS12_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 992; pub const CKM_TLS12_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 993; pub const CKM_TLS12_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 994; pub const CKM_TLS12_KEY_SAFE_DERIVE: CK_MECHANISM_TYPE = 995; pub const CKM_TLS_MAC: CK_MECHANISM_TYPE = 996; pub const CKM_TLS_KDF: CK_MECHANISM_TYPE = 997; pub const CKM_KEY_WRAP_LYNKS: CK_MECHANISM_TYPE = 1024; pub const CKM_KEY_WRAP_SET_OAEP: CK_MECHANISM_TYPE = 1025; pub const CKM_CMS_SIG: CK_MECHANISM_TYPE = 1280; pub const CKM_KIP_DERIVE: CK_MECHANISM_TYPE = 1296; pub const CKM_KIP_WRAP: CK_MECHANISM_TYPE = 1297; pub const CKM_KIP_MAC: CK_MECHANISM_TYPE = 1298; pub const CKM_CAMELLIA_KEY_GEN: CK_MECHANISM_TYPE = 1360; pub const CKM_CAMELLIA_CTR: CK_MECHANISM_TYPE = 1368; pub const CKM_ARIA_KEY_GEN: CK_MECHANISM_TYPE = 1376; pub const CKM_ARIA_ECB: CK_MECHANISM_TYPE = 1377; pub const CKM_ARIA_CBC: CK_MECHANISM_TYPE = 1378; pub const CKM_ARIA_MAC: CK_MECHANISM_TYPE = 1379; pub const CKM_ARIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1380; pub const CKM_ARIA_CBC_PAD: CK_MECHANISM_TYPE = 1381; pub const CKM_ARIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1382; pub const CKM_ARIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1383; pub const CKM_SEED_KEY_GEN: CK_MECHANISM_TYPE = 1616; pub const CKM_SEED_ECB: CK_MECHANISM_TYPE = 1617; pub const CKM_SEED_CBC: CK_MECHANISM_TYPE = 1618; pub const CKM_SEED_MAC: CK_MECHANISM_TYPE = 1619; pub const CKM_SEED_MAC_GENERAL: CK_MECHANISM_TYPE = 1620; pub const CKM_SEED_CBC_PAD: CK_MECHANISM_TYPE = 1621; pub const CKM_SEED_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1622; pub const CKM_SEED_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1623; pub const CKM_SKIPJACK_KEY_GEN: CK_MECHANISM_TYPE = 4096; pub const CKM_SKIPJACK_ECB64: CK_MECHANISM_TYPE = 4097; pub const CKM_SKIPJACK_CBC64: CK_MECHANISM_TYPE = 4098; pub const CKM_SKIPJACK_OFB64: CK_MECHANISM_TYPE = 4099; pub const CKM_SKIPJACK_CFB64: CK_MECHANISM_TYPE = 4100; pub const CKM_SKIPJACK_CFB32: CK_MECHANISM_TYPE = 4101; pub const CKM_SKIPJACK_CFB16: CK_MECHANISM_TYPE = 4102; pub const CKM_SKIPJACK_CFB8: CK_MECHANISM_TYPE = 4103; pub const CKM_SKIPJACK_WRAP: CK_MECHANISM_TYPE = 4104; pub const CKM_SKIPJACK_PRIVATE_WRAP: CK_MECHANISM_TYPE = 4105; pub const CKM_SKIPJACK_RELAYX: CK_MECHANISM_TYPE = 4106; pub const CKM_KEA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4112; pub const CKM_KEA_KEY_DERIVE: CK_MECHANISM_TYPE = 4113; pub const CKM_FORTEZZA_TIMESTAMP: CK_MECHANISM_TYPE = 4128; pub const CKM_BATON_KEY_GEN: CK_MECHANISM_TYPE = 4144; pub const CKM_BATON_ECB128: CK_MECHANISM_TYPE = 4145; pub const CKM_BATON_ECB96: CK_MECHANISM_TYPE = 4146; pub const CKM_BATON_CBC128: CK_MECHANISM_TYPE = 4147; pub const CKM_BATON_COUNTER: CK_MECHANISM_TYPE = 4148; pub const CKM_BATON_SHUFFLE: CK_MECHANISM_TYPE = 4149; pub const CKM_BATON_WRAP: CK_MECHANISM_TYPE = 4150; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_EC_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_ECDSA: CK_MECHANISM_TYPE = 4161; pub const CKM_ECDSA_SHA1: CK_MECHANISM_TYPE = 4162; pub const CKM_ECDSA_SHA224: CK_MECHANISM_TYPE = 4163; pub const CKM_ECDSA_SHA256: CK_MECHANISM_TYPE = 4164; pub const CKM_ECDSA_SHA384: CK_MECHANISM_TYPE = 4165; pub const CKM_ECDSA_SHA512: CK_MECHANISM_TYPE = 4166; pub const CKM_ECDH1_DERIVE: CK_MECHANISM_TYPE = 4176; pub const CKM_ECDH1_COFACTOR_DERIVE: CK_MECHANISM_TYPE = 4177; pub const CKM_ECMQV_DERIVE: CK_MECHANISM_TYPE = 4178; pub const CKM_ECDH_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4179; pub const CKM_RSA_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4180; pub const CKM_JUNIPER_KEY_GEN: CK_MECHANISM_TYPE = 4192; pub const CKM_JUNIPER_ECB128: CK_MECHANISM_TYPE = 4193; pub const CKM_JUNIPER_CBC128: CK_MECHANISM_TYPE = 4194; pub const CKM_JUNIPER_COUNTER: CK_MECHANISM_TYPE = 4195; pub const CKM_JUNIPER_SHUFFLE: CK_MECHANISM_TYPE = 4196; pub const CKM_JUNIPER_WRAP: CK_MECHANISM_TYPE = 4197; pub const CKM_FASTHASH: CK_MECHANISM_TYPE = 4208; pub const CKM_AES_KEY_GEN: CK_MECHANISM_TYPE = 4224; pub const CKM_AES_ECB: CK_MECHANISM_TYPE = 4225; pub const CKM_AES_CBC: CK_MECHANISM_TYPE = 4226; pub const CKM_AES_MAC: CK_MECHANISM_TYPE = 4227; pub const CKM_AES_MAC_GENERAL: CK_MECHANISM_TYPE = 4228; pub const CKM_AES_CBC_PAD: CK_MECHANISM_TYPE = 4229; pub const CKM_AES_CTR: CK_MECHANISM_TYPE = 4230; pub const CKM_AES_GCM: CK_MECHANISM_TYPE = 4231; pub const CKM_AES_CCM: CK_MECHANISM_TYPE = 4232; pub const CKM_AES_CTS: CK_MECHANISM_TYPE = 4233; pub const CKM_AES_CMAC: CK_MECHANISM_TYPE = 4234; pub const CKM_AES_CMAC_GENERAL: CK_MECHANISM_TYPE = 4235; pub const CKM_AES_XCBC_MAC: CK_MECHANISM_TYPE = 4236; pub const CKM_AES_XCBC_MAC_96: CK_MECHANISM_TYPE = 4237; pub const CKM_AES_GMAC: CK_MECHANISM_TYPE = 4238; pub const CKM_BLOWFISH_KEY_GEN: CK_MECHANISM_TYPE = 4240; pub const CKM_BLOWFISH_CBC: CK_MECHANISM_TYPE = 4241; pub const CKM_TWOFISH_KEY_GEN: CK_MECHANISM_TYPE = 4242; pub const CKM_TWOFISH_CBC: CK_MECHANISM_TYPE = 4243; pub const CKM_BLOWFISH_CBC_PAD: CK_MECHANISM_TYPE = 4244; pub const CKM_TWOFISH_CBC_PAD: CK_MECHANISM_TYPE = 4245; pub const CKM_DES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4352; pub const CKM_DES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4353; pub const CKM_DES3_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4354; pub const CKM_DES3_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4355; pub const CKM_AES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4356; pub const CKM_AES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4357; pub const CKM_GOSTR3410_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4608; pub const CKM_GOSTR3410: CK_MECHANISM_TYPE = 4609; pub const CKM_GOSTR3410_WITH_GOSTR3411: CK_MECHANISM_TYPE = 4610; pub const CKM_GOSTR3410_KEY_WRAP: CK_MECHANISM_TYPE = 4611; pub const CKM_GOSTR3410_DERIVE: CK_MECHANISM_TYPE = 4612; pub const CKM_GOSTR3411: CK_MECHANISM_TYPE = 4624; pub const CKM_GOSTR3411_HMAC: CK_MECHANISM_TYPE = 4625; pub const CKM_GOST28147_KEY_GEN: CK_MECHANISM_TYPE = 4640; pub const CKM_GOST28147_ECB: CK_MECHANISM_TYPE = 4641; pub const CKM_GOST28147: CK_MECHANISM_TYPE = 4642; pub const CKM_GOST28147_MAC: CK_MECHANISM_TYPE = 4643; pub const CKM_GOST28147_KEY_WRAP: CK_MECHANISM_TYPE = 4644; pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; pub const CKM_AES_CFB64: CK_MECHANISM_TYPE = 8453; pub const CKM_AES_CFB8: CK_MECHANISM_TYPE = 8454; pub const CKM_AES_CFB128: CK_MECHANISM_TYPE = 8455; pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_SHA224: CK_MECHANISM_TYPE = 597; pub const CKM_SHA224_HMAC: CK_MECHANISM_TYPE = 598; pub const CKM_SHA224_HMAC_GENERAL: CK_MECHANISM_TYPE = 599; pub const CKM_SHA224_RSA_PKCS: CK_MECHANISM_TYPE = 70; pub const CKM_SHA224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 71; pub const CKM_SHA224_KEY_DERIVATION: CK_MECHANISM_TYPE = 918; pub const CKM_CAMELLIA_ECB: CK_MECHANISM_TYPE = 1361; pub const CKM_CAMELLIA_CBC: CK_MECHANISM_TYPE = 1362; pub const CKM_CAMELLIA_MAC: CK_MECHANISM_TYPE = 1363; pub const CKM_CAMELLIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1364; pub const CKM_CAMELLIA_CBC_PAD: CK_MECHANISM_TYPE = 1365; pub const CKM_CAMELLIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1366; pub const CKM_CAMELLIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1367; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_EC_EDWARDS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4181; pub const CKM_EC_MONTGOMERY_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4182; pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CK_OTP_FORMAT_DECIMAL: CK_ULONG = 0; pub const CK_OTP_FORMAT_HEXADECIMAL: CK_ULONG = 1; pub const CK_OTP_FORMAT_ALPHANUMERIC: CK_ULONG = 2; pub const CK_OTP_FORMAT_BINARY: CK_ULONG = 3; pub const CK_OTP_PARAM_IGNORED: CK_ULONG = 0; pub const CK_OTP_PARAM_OPTIONAL: CK_ULONG = 1; pub const CK_OTP_PARAM_MANDATORY: CK_ULONG = 2; pub const CK_OTP_VALUE: CK_ULONG = 0; pub const CK_OTP_PIN: CK_ULONG = 1; pub const CK_OTP_CHALLENGE: CK_ULONG = 2; pub const CK_OTP_TIME: CK_ULONG = 3; pub const CK_OTP_COUNTER: CK_ULONG = 4; pub const CK_OTP_FLAGS: CK_ULONG = 5; pub const CK_OTP_OUTPUT_LENGTH: CK_ULONG = 6; pub const CK_OTP_FORMAT: CK_ULONG = 7; pub const CKF_NEXT_OTP: CK_FLAGS = 1; pub const CKF_EXCLUDE_TIME: CK_FLAGS = 2; pub const CKF_EXCLUDE_COUNTER: CK_FLAGS = 4; pub const CKF_EXCLUDE_CHALLENGE: CK_FLAGS = 8; pub const CKF_EXCLUDE_PIN: CK_FLAGS = 16; pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKG_MGF1_SHA1: CK_RSA_PKCS_MGF_TYPE = 1; pub const CKG_MGF1_SHA224: CK_RSA_PKCS_MGF_TYPE = 5; pub const CKG_MGF1_SHA256: CK_RSA_PKCS_MGF_TYPE = 2; pub const CKG_MGF1_SHA384: CK_RSA_PKCS_MGF_TYPE = 3; pub const CKG_MGF1_SHA512: CK_RSA_PKCS_MGF_TYPE = 4; pub const CKD_NULL: CK_EC_KDF_TYPE = 1; pub const CKD_SHA1_KDF: CK_EC_KDF_TYPE = 2; pub const CKD_SHA1_KDF_ASN1: CK_EC_KDF_TYPE = 3; pub const CKD_SHA1_KDF_CONCATENATE: CK_EC_KDF_TYPE = 4; pub const CKD_SHA224_KDF: CK_EC_KDF_TYPE = 5; pub const CKD_SHA256_KDF: CK_EC_KDF_TYPE = 6; pub const CKD_SHA384_KDF: CK_EC_KDF_TYPE = 7; pub const CKD_SHA512_KDF: CK_EC_KDF_TYPE = 8; pub const CKD_CPDIVERSIFY_KDF: CK_EC_KDF_TYPE = 9; pub const CKF_HW: CK_FLAGS = 1; pub const CKF_ENCRYPT: CK_FLAGS = 256; pub const CKF_DECRYPT: CK_FLAGS = 512; pub const CKF_DIGEST: CK_FLAGS = 1024; pub const CKF_SIGN: CK_FLAGS = 2048; pub const CKF_SIGN_RECOVER: CK_FLAGS = 4096; pub const CKF_VERIFY: CK_FLAGS = 8192; pub const CKF_VERIFY_RECOVER: CK_FLAGS = 16384; pub const CKF_GENERATE: CK_FLAGS = 32768; pub const CKF_GENERATE_KEY_PAIR: CK_FLAGS = 65536; pub const CKF_WRAP: CK_FLAGS = 131072; pub const CKF_UNWRAP: CK_FLAGS = 262144; pub const CKF_DERIVE: CK_FLAGS = 524288; pub const CKF_EC_F_P: CK_FLAGS = 1048576; pub const CKF_EC_F_2M: CK_FLAGS = 2097152; pub const CKF_EC_ECPARAMETERS: CK_FLAGS = 4194304; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_LIBRARY_CANT_CREATE_OS_THREADS: CK_FLAGS = 1; pub const CKF_OS_LOCKING_OK: CK_FLAGS = 2; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; pub const CKR_SLOT_ID_INVALID: CK_RV = 3; pub const CKR_GENERAL_ERROR: CK_RV = 5; pub const CKR_FUNCTION_FAILED: CK_RV = 6; pub const CKR_ARGUMENTS_BAD: CK_RV = 7; pub const CKR_NO_EVENT: CK_RV = 8; pub const CKR_NEED_TO_CREATE_THREADS: CK_RV = 9; pub const CKR_CANT_LOCK: CK_RV = 10; pub const CKR_ATTRIBUTE_READ_ONLY: CK_RV = 16; pub const CKR_ATTRIBUTE_SENSITIVE: CK_RV = 17; pub const CKR_ATTRIBUTE_TYPE_INVALID: CK_RV = 18; pub const CKR_ATTRIBUTE_VALUE_INVALID: CK_RV = 19; pub const CKR_ACTION_PROHIBITED: CK_RV = 27; pub const CKR_DATA_INVALID: CK_RV = 32; pub const CKR_DATA_LEN_RANGE: CK_RV = 33; pub const CKR_DEVICE_ERROR: CK_RV = 48; pub const CKR_DEVICE_MEMORY: CK_RV = 49; pub const CKR_DEVICE_REMOVED: CK_RV = 50; pub const CKR_ENCRYPTED_DATA_INVALID: CK_RV = 64; pub const CKR_ENCRYPTED_DATA_LEN_RANGE: CK_RV = 65; pub const CKR_FUNCTION_CANCELED: CK_RV = 80; pub const CKR_FUNCTION_NOT_PARALLEL: CK_RV = 81; pub const CKR_FUNCTION_NOT_SUPPORTED: CK_RV = 84; pub const CKR_KEY_HANDLE_INVALID: CK_RV = 96; pub const CKR_KEY_SIZE_RANGE: CK_RV = 98; pub const CKR_KEY_TYPE_INCONSISTENT: CK_RV = 99; pub const CKR_KEY_NOT_NEEDED: CK_RV = 100; pub const CKR_KEY_CHANGED: CK_RV = 101; pub const CKR_KEY_NEEDED: CK_RV = 102; pub const CKR_KEY_INDIGESTIBLE: CK_RV = 103; pub const CKR_KEY_FUNCTION_NOT_PERMITTED: CK_RV = 104; pub const CKR_KEY_NOT_WRAPPABLE: CK_RV = 105; pub const CKR_KEY_UNEXTRACTABLE: CK_RV = 106; pub const CKR_MECHANISM_INVALID: CK_RV = 112; pub const CKR_MECHANISM_PARAM_INVALID: CK_RV = 113; pub const CKR_OBJECT_HANDLE_INVALID: CK_RV = 130; pub const CKR_OPERATION_ACTIVE: CK_RV = 144; pub const CKR_OPERATION_NOT_INITIALIZED: CK_RV = 145; pub const CKR_PIN_INCORRECT: CK_RV = 160; pub const CKR_PIN_INVALID: CK_RV = 161; pub const CKR_PIN_LEN_RANGE: CK_RV = 162; pub const CKR_PIN_EXPIRED: CK_RV = 163; pub const CKR_PIN_LOCKED: CK_RV = 164; pub const CKR_SESSION_CLOSED: CK_RV = 176; pub const CKR_SESSION_COUNT: CK_RV = 177; pub const CKR_SESSION_HANDLE_INVALID: CK_RV = 179; pub const CKR_SESSION_PARALLEL_NOT_SUPPORTED: CK_RV = 180; pub const CKR_SESSION_READ_ONLY: CK_RV = 181; pub const CKR_SESSION_EXISTS: CK_RV = 182; pub const CKR_SESSION_READ_ONLY_EXISTS: CK_RV = 183; pub const CKR_SESSION_READ_WRITE_SO_EXISTS: CK_RV = 184; pub const CKR_SIGNATURE_INVALID: CK_RV = 192; pub const CKR_SIGNATURE_LEN_RANGE: CK_RV = 193; pub const CKR_TEMPLATE_INCOMPLETE: CK_RV = 208; pub const CKR_TEMPLATE_INCONSISTENT: CK_RV = 209; pub const CKR_TOKEN_NOT_PRESENT: CK_RV = 224; pub const CKR_TOKEN_NOT_RECOGNIZED: CK_RV = 225; pub const CKR_TOKEN_WRITE_PROTECTED: CK_RV = 226; pub const CKR_UNWRAPPING_KEY_HANDLE_INVALID: CK_RV = 240; pub const CKR_UNWRAPPING_KEY_SIZE_RANGE: CK_RV = 241; pub const CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 242; pub const CKR_USER_ALREADY_LOGGED_IN: CK_RV = 256; pub const CKR_USER_NOT_LOGGED_IN: CK_RV = 257; pub const CKR_USER_PIN_NOT_INITIALIZED: CK_RV = 258; pub const CKR_USER_TYPE_INVALID: CK_RV = 259; pub const CKR_USER_ANOTHER_ALREADY_LOGGED_IN: CK_RV = 260; pub const CKR_USER_TOO_MANY_TYPES: CK_RV = 261; pub const CKR_WRAPPED_KEY_INVALID: CK_RV = 272; pub const CKR_WRAPPED_KEY_LEN_RANGE: CK_RV = 274; pub const CKR_WRAPPING_KEY_HANDLE_INVALID: CK_RV = 275; pub const CKR_WRAPPING_KEY_SIZE_RANGE: CK_RV = 276; pub const CKR_WRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 277; pub const CKR_RANDOM_SEED_NOT_SUPPORTED: CK_RV = 288; pub const CKR_RANDOM_NO_RNG: CK_RV = 289; pub const CKR_DOMAIN_PARAMS_INVALID: CK_RV = 304; pub const CKR_BUFFER_TOO_SMALL: CK_RV = 336; pub const CKR_SAVED_STATE_INVALID: CK_RV = 352; pub const CKR_INFORMATION_SENSITIVE: CK_RV = 368; pub const CKR_STATE_UNSAVEABLE: CK_RV = 384; pub const CKR_CRYPTOKI_NOT_INITIALIZED: CK_RV = 400; pub const CKR_CRYPTOKI_ALREADY_INITIALIZED: CK_RV = 401; pub const CKR_MUTEX_BAD: CK_RV = 416; pub const CKR_MUTEX_NOT_LOCKED: CK_RV = 417; pub const CKR_NEW_PIN_MODE: CK_RV = 432; pub const CKR_NEXT_OTP: CK_RV = 433; pub const CKR_EXCEEDED_MAX_ITERATIONS: CK_RV = 448; pub const CKR_FIPS_SELF_TEST_FAILED: CK_RV = 449; pub const CKR_LIBRARY_LOAD_FAILED: CK_RV = 450; pub const CKR_PIN_TOO_WEAK: CK_RV = 451; pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 452; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CK_FALSE: CK_BBOOL = 0; pub const CK_TRUE: CK_BBOOL = 1; pub const FALSE: u32 = 0; pub const TRUE: u32 = 1; pub type CK_FLAGS = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_VERSION { pub major: ::std::os::raw::c_uchar, pub minor: ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout__CK_VERSION() { const UNINIT: ::std::mem::MaybeUninit<_CK_VERSION> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_VERSION>(), 2usize, concat!("Size of: ", stringify!(_CK_VERSION)) ); assert_eq!( ::std::mem::align_of::<_CK_VERSION>(), 1usize, concat!("Alignment of ", stringify!(_CK_VERSION)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).major) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(major) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).minor) as usize - ptr as usize }, 1usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(minor) ) ); } #[repr(C, packed)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_INFO { pub cryptokiVersion: _CK_VERSION, pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub libraryDescription: [::std::os::raw::c_uchar; 32usize], pub libraryVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_INFO>(), 72usize, concat!("Size of: ", stringify!(_CK_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_INFO>(), 1usize, concat!("Alignment of ", stringify!(_CK_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cryptokiVersion) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(cryptokiVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 2usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 34usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryDescription) as usize - ptr as usize }, 38usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryVersion) as usize - ptr as usize }, 70usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryVersion) ) ); } pub type CK_NOTIFICATION = ::std::os::raw::c_ulong; pub const CKN_SURRENDER: ::std::os::raw::c_ulong = 0; pub type CK_SLOT_ID = ::std::os::raw::c_ulong; #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct _CK_SLOT_INFO { pub slotDescription: [::std::os::raw::c_uchar; 64usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_SLOT_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SLOT_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SLOT_INFO>(), 104usize, concat!("Size of: ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SLOT_INFO>(), 1usize, concat!("Alignment of ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotDescription) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(slotDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 100usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 102usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(firmwareVersion) ) ); } impl Default for _CK_SLOT_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub const CKF_TOKEN_PRESENT: ::std::os::raw::c_ulong = 1; pub const CKF_REMOVABLE_DEVICE: ::std::os::raw::c_ulong = 2; pub const CKF_HW_SLOT: ::std::os::raw::c_ulong = 4; pub const CKF_ARRAY_ATTRIBUTE: ::std::os::raw::c_ulong = 1073741824; #[repr(C, packed)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_TOKEN_INFO { pub label: [::std::os::raw::c_uchar; 32usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub model: [::std::os::raw::c_uchar; 16usize], pub serialNumber: [::std::os::raw::c_uchar; 16usize], pub flags: CK_FLAGS, pub ulMaxSessionCount: ::std::os::raw::c_ulong, pub ulSessionCount: ::std::os::raw::c_ulong, pub ulMaxRwSessionCount: ::std::os::raw::c_ulong, pub ulRwSessionCount: ::std::os::raw::c_ulong, pub ulMaxPinLen: ::std::os::raw::c_ulong, pub ulMinPinLen: ::std::os::raw::c_ulong, pub ulTotalPublicMemory: ::std::os::raw::c_ulong, pub ulFreePublicMemory: ::std::os::raw::c_ulong, pub ulTotalPrivateMemory: ::std::os::raw::c_ulong, pub ulFreePrivateMemory: ::std::os::raw::c_ulong, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, pub utcTime: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout__CK_TOKEN_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_TOKEN_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_TOKEN_INFO>(), 160usize, concat!("Size of: ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_TOKEN_INFO>(), 1usize, concat!("Alignment of ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(label) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).model) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(model) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).serialNumber) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(serialNumber) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxSessionCount) as usize - ptr as usize }, 100usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSessionCount) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxRwSessionCount) as usize - ptr as usize }, 108usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulRwSessionCount) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxPinLen) as usize - ptr as usize }, 116usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinPinLen) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMinPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPublicMemory) as usize - ptr as usize }, 124usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePublicMemory) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPrivateMemory) as usize - ptr as usize }, 132usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePrivateMemory) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 140usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 142usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(firmwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).utcTime) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(utcTime) ) ); } pub type CK_SESSION_HANDLE = ::std::os::raw::c_ulong; pub type CK_USER_TYPE = ::std::os::raw::c_ulong; pub type CK_STATE = ::std::os::raw::c_ulong; #[repr(C, packed)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_SESSION_INFO { pub slotID: CK_SLOT_ID, pub state: CK_STATE, pub flags: CK_FLAGS, pub ulDeviceError: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_SESSION_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SESSION_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SESSION_INFO>(), 16usize, concat!("Size of: ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SESSION_INFO>(), 1usize, concat!("Alignment of ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotID) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(slotID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(state) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulDeviceError) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(ulDeviceError) ) ); } pub type CK_OBJECT_HANDLE = ::std::os::raw::c_ulong; pub type CK_OBJECT_CLASS = ::std::os::raw::c_ulong; pub type CK_HW_FEATURE_TYPE = ::std::os::raw::c_ulong; pub type CK_KEY_TYPE = ::std::os::raw::c_ulong; pub type CK_CERTIFICATE_TYPE = ::std::os::raw::c_ulong; pub type CK_ATTRIBUTE_TYPE = ::std::os::raw::c_ulong; #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct _CK_ATTRIBUTE { pub type_: CK_ATTRIBUTE_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_ATTRIBUTE() { const UNINIT: ::std::mem::MaybeUninit<_CK_ATTRIBUTE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_ATTRIBUTE>(), 16usize, concat!("Size of: ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( ::std::mem::align_of::<_CK_ATTRIBUTE>(), 1usize, concat!("Alignment of ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(ulValueLen) ) ); } impl Default for _CK_ATTRIBUTE { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_DATE { pub year: [::std::os::raw::c_uchar; 4usize], pub month: [::std::os::raw::c_uchar; 2usize], pub day: [::std::os::raw::c_uchar; 2usize], } #[test] fn bindgen_test_layout__CK_DATE() { const UNINIT: ::std::mem::MaybeUninit<_CK_DATE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_DATE>(), 8usize, concat!("Size of: ", stringify!(_CK_DATE)) ); assert_eq!( ::std::mem::align_of::<_CK_DATE>(), 1usize, concat!("Alignment of ", stringify!(_CK_DATE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).year) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(year) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).month) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(month) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).day) as usize - ptr as usize }, 6usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(day) ) ); } pub type CK_MECHANISM_TYPE = ::std::os::raw::c_ulong; #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct _CK_MECHANISM { pub mechanism: CK_MECHANISM_TYPE, pub pParameter: *mut ::std::os::raw::c_void, pub ulParameterLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_MECHANISM() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM>(), 16usize, concat!("Size of: ", stringify!(_CK_MECHANISM)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM>(), 1usize, concat!("Alignment of ", stringify!(_CK_MECHANISM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mechanism) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(mechanism) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParameter) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(pParameter) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulParameterLen) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(ulParameterLen) ) ); } impl Default for _CK_MECHANISM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C, packed)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_MECHANISM_INFO { pub ulMinKeySize: ::std::os::raw::c_ulong, pub ulMaxKeySize: ::std::os::raw::c_ulong, pub flags: CK_FLAGS, } #[test] fn bindgen_test_layout__CK_MECHANISM_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM_INFO>(), 12usize, concat!("Size of: ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM_INFO>(), 1usize, concat!("Alignment of ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinKeySize) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMinKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxKeySize) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMaxKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(flags) ) ); } pub type CK_PARAM_TYPE = ::std::os::raw::c_ulong; #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAM { pub type_: CK_PARAM_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAM() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(CK_OTP_PARAM)) ); assert_eq!( ::std::mem::align_of::(), 1usize, concat!("Alignment of ", stringify!(CK_OTP_PARAM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(ulValueLen) ) ); } impl Default for CK_OTP_PARAM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAMS { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAMS() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 12usize, concat!("Size of: ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( ::std::mem::align_of::(), 1usize, concat!("Alignment of ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_PARAMS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_SIGNATURE_INFO { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_SIGNATURE_INFO() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 12usize, concat!("Size of: ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( ::std::mem::align_of::(), 1usize, concat!("Alignment of ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_SIGNATURE_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RSA_PKCS_MGF_TYPE = ::std::os::raw::c_ulong; #[repr(C, packed)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_rsa_pkcs_pss_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub sLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_pss_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 12usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( ::std::mem::align_of::(), 1usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).sLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(sLen) ) ); } pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE = ::std::os::raw::c_ulong; #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct ck_rsa_pkcs_oaep_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub source: CK_RSA_PKCS_OAEP_SOURCE_TYPE, pub pSourceData: *mut ::std::os::raw::c_void, pub ulSourceDataLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_oaep_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( ::std::mem::align_of::(), 1usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(source) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSourceData) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(pSourceData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSourceDataLen) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(ulSourceDataLen) ) ); } impl Default for ck_rsa_pkcs_oaep_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C, packed)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_aes_ctr_params { pub ulCounterBits: ::std::os::raw::c_ulong, pub cb: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout_ck_aes_ctr_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 20usize, concat!("Size of: ", stringify!(ck_aes_ctr_params)) ); assert_eq!( ::std::mem::align_of::(), 1usize, concat!("Alignment of ", stringify!(ck_aes_ctr_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCounterBits) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(ulCounterBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cb) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(cb) ) ); } #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct ck_gcm_params { pub pIv: *mut ::std::os::raw::c_uchar, pub ulIvLen: ::std::os::raw::c_ulong, pub ulIvBits: ::std::os::raw::c_ulong, pub pAAD: *mut ::std::os::raw::c_uchar, pub ulAADLen: ::std::os::raw::c_ulong, pub ulTagBits: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_gcm_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 32usize, concat!("Size of: ", stringify!(ck_gcm_params)) ); assert_eq!( ::std::mem::align_of::(), 1usize, concat!("Alignment of ", stringify!(ck_gcm_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pIv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pIv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvBits) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pAAD) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pAAD) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulAADLen) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulAADLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTagBits) as usize - ptr as usize }, 28usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulTagBits) ) ); } impl Default for ck_gcm_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type ck_ec_kdf_t = ::std::os::raw::c_ulong; #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct ck_ecdh1_derive_params { pub kdf: ck_ec_kdf_t, pub ulSharedDataLen: ::std::os::raw::c_ulong, pub pSharedData: *mut ::std::os::raw::c_uchar, pub ulPublicDataLen: ::std::os::raw::c_ulong, pub pPublicData: *mut ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout_ck_ecdh1_derive_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 28usize, concat!("Size of: ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( ::std::mem::align_of::(), 1usize, concat!("Alignment of ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(kdf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSharedDataLen) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulSharedDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSharedData) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pSharedData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulPublicDataLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulPublicDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pPublicData) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pPublicData) ) ); } impl Default for ck_ecdh1_derive_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct ck_key_derivation_string_data { pub pData: *mut ::std::os::raw::c_uchar, pub ulLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_key_derivation_string_data() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 12usize, concat!("Size of: ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( ::std::mem::align_of::(), 1usize, concat!("Alignment of ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(ulLen) ) ); } impl Default for ck_key_derivation_string_data { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct ck_des_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 8usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_des_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 20usize, concat!("Size of: ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 1usize, concat!("Alignment of ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_des_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct ck_aes_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 16usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_aes_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 28usize, concat!("Size of: ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 1usize, concat!("Alignment of ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_aes_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RV = ::std::os::raw::c_ulong; pub type CK_NOTIFY = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, event: CK_NOTIFICATION, application: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_Initialize = ::std::option::Option CK_RV>; pub type CK_C_Finalize = ::std::option::Option CK_RV>; pub type CK_C_GetInfo = ::std::option::Option CK_RV>; pub type CK_C_GetFunctionList = ::std::option::Option< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, >; pub type CK_C_GetSlotList = ::std::option::Option< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetSlotInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, >; pub type CK_C_GetTokenInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, >; pub type CK_C_WaitForSlotEvent = ::std::option::Option< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_GetMechanismList = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetMechanismInfo = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, >; pub type CK_C_InitToken = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, >; pub type CK_C_InitPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_OpenSession = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, >; pub type CK_C_CloseSession = ::std::option::Option CK_RV>; pub type CK_C_CloseAllSessions = ::std::option::Option CK_RV>; pub type CK_C_GetSessionInfo = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, >; pub type CK_C_GetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Login = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_Logout = ::std::option::Option CK_RV>; pub type CK_C_CreateObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_CopyObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DestroyObject = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_GetObjectSize = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjects = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsFinal = ::std::option::Option CK_RV>; pub type CK_C_EncryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Encrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Decrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestInit = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, >; pub type CK_C_Digest = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestKey = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_DigestFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Sign = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SignRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Verify = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_VerifyRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptDigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptVerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_GenerateKeyPair = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_WrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_UnwrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DeriveKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SeedRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetFunctionStatus = ::std::option::Option CK_RV>; pub type CK_C_CancelFunction = ::std::option::Option CK_RV>; #[repr(C, packed)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_FUNCTION_LIST { pub version: _CK_VERSION, pub C_Initialize: CK_C_Initialize, pub C_Finalize: CK_C_Finalize, pub C_GetInfo: CK_C_GetInfo, pub C_GetFunctionList: CK_C_GetFunctionList, pub C_GetSlotList: CK_C_GetSlotList, pub C_GetSlotInfo: CK_C_GetSlotInfo, pub C_GetTokenInfo: CK_C_GetTokenInfo, pub C_GetMechanismList: CK_C_GetMechanismList, pub C_GetMechanismInfo: CK_C_GetMechanismInfo, pub C_InitToken: CK_C_InitToken, pub C_InitPIN: CK_C_InitPIN, pub C_SetPIN: CK_C_SetPIN, pub C_OpenSession: CK_C_OpenSession, pub C_CloseSession: CK_C_CloseSession, pub C_CloseAllSessions: CK_C_CloseAllSessions, pub C_GetSessionInfo: CK_C_GetSessionInfo, pub C_GetOperationState: CK_C_GetOperationState, pub C_SetOperationState: CK_C_SetOperationState, pub C_Login: CK_C_Login, pub C_Logout: CK_C_Logout, pub C_CreateObject: CK_C_CreateObject, pub C_CopyObject: CK_C_CopyObject, pub C_DestroyObject: CK_C_DestroyObject, pub C_GetObjectSize: CK_C_GetObjectSize, pub C_GetAttributeValue: CK_C_GetAttributeValue, pub C_SetAttributeValue: CK_C_SetAttributeValue, pub C_FindObjectsInit: CK_C_FindObjectsInit, pub C_FindObjects: CK_C_FindObjects, pub C_FindObjectsFinal: CK_C_FindObjectsFinal, pub C_EncryptInit: CK_C_EncryptInit, pub C_Encrypt: CK_C_Encrypt, pub C_EncryptUpdate: CK_C_EncryptUpdate, pub C_EncryptFinal: CK_C_EncryptFinal, pub C_DecryptInit: CK_C_DecryptInit, pub C_Decrypt: CK_C_Decrypt, pub C_DecryptUpdate: CK_C_DecryptUpdate, pub C_DecryptFinal: CK_C_DecryptFinal, pub C_DigestInit: CK_C_DigestInit, pub C_Digest: CK_C_Digest, pub C_DigestUpdate: CK_C_DigestUpdate, pub C_DigestKey: CK_C_DigestKey, pub C_DigestFinal: CK_C_DigestFinal, pub C_SignInit: CK_C_SignInit, pub C_Sign: CK_C_Sign, pub C_SignUpdate: CK_C_SignUpdate, pub C_SignFinal: CK_C_SignFinal, pub C_SignRecoverInit: CK_C_SignRecoverInit, pub C_SignRecover: CK_C_SignRecover, pub C_VerifyInit: CK_C_VerifyInit, pub C_Verify: CK_C_Verify, pub C_VerifyUpdate: CK_C_VerifyUpdate, pub C_VerifyFinal: CK_C_VerifyFinal, pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, pub C_VerifyRecover: CK_C_VerifyRecover, pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, pub C_GenerateKey: CK_C_GenerateKey, pub C_GenerateKeyPair: CK_C_GenerateKeyPair, pub C_WrapKey: CK_C_WrapKey, pub C_UnwrapKey: CK_C_UnwrapKey, pub C_DeriveKey: CK_C_DeriveKey, pub C_SeedRandom: CK_C_SeedRandom, pub C_GenerateRandom: CK_C_GenerateRandom, pub C_GetFunctionStatus: CK_C_GetFunctionStatus, pub C_CancelFunction: CK_C_CancelFunction, pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, } #[test] fn bindgen_test_layout__CK_FUNCTION_LIST() { const UNINIT: ::std::mem::MaybeUninit<_CK_FUNCTION_LIST> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_FUNCTION_LIST>(), 546usize, concat!("Size of: ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( ::std::mem::align_of::<_CK_FUNCTION_LIST>(), 1usize, concat!("Alignment of ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(version) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Initialize) as usize - ptr as usize }, 2usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Initialize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Finalize) as usize - ptr as usize }, 10usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Finalize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetInfo) as usize - ptr as usize }, 18usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionList) as usize - ptr as usize }, 26usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotList) as usize - ptr as usize }, 34usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotInfo) as usize - ptr as usize }, 42usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetTokenInfo) as usize - ptr as usize }, 50usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetTokenInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismList) as usize - ptr as usize }, 58usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismInfo) as usize - ptr as usize }, 66usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitToken) as usize - ptr as usize }, 74usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitToken) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitPIN) as usize - ptr as usize }, 82usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetPIN) as usize - ptr as usize }, 90usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_OpenSession) as usize - ptr as usize }, 98usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_OpenSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseSession) as usize - ptr as usize }, 106usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseAllSessions) as usize - ptr as usize }, 114usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseAllSessions) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSessionInfo) as usize - ptr as usize }, 122usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSessionInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetOperationState) as usize - ptr as usize }, 130usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetOperationState) as usize - ptr as usize }, 138usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Login) as usize - ptr as usize }, 146usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Login) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Logout) as usize - ptr as usize }, 154usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Logout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CreateObject) as usize - ptr as usize }, 162usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CreateObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CopyObject) as usize - ptr as usize }, 170usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CopyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DestroyObject) as usize - ptr as usize }, 178usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DestroyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetObjectSize) as usize - ptr as usize }, 186usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetObjectSize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetAttributeValue) as usize - ptr as usize }, 194usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetAttributeValue) as usize - ptr as usize }, 202usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsInit) as usize - ptr as usize }, 210usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjects) as usize - ptr as usize }, 218usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjects) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsFinal) as usize - ptr as usize }, 226usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptInit) as usize - ptr as usize }, 234usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Encrypt) as usize - ptr as usize }, 242usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Encrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptUpdate) as usize - ptr as usize }, 250usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptFinal) as usize - ptr as usize }, 258usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptInit) as usize - ptr as usize }, 266usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Decrypt) as usize - ptr as usize }, 274usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Decrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptUpdate) as usize - ptr as usize }, 282usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptFinal) as usize - ptr as usize }, 290usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestInit) as usize - ptr as usize }, 298usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Digest) as usize - ptr as usize }, 306usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Digest) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestUpdate) as usize - ptr as usize }, 314usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestKey) as usize - ptr as usize }, 322usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestFinal) as usize - ptr as usize }, 330usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignInit) as usize - ptr as usize }, 338usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Sign) as usize - ptr as usize }, 346usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Sign) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignUpdate) as usize - ptr as usize }, 354usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignFinal) as usize - ptr as usize }, 362usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecoverInit) as usize - ptr as usize }, 370usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecover) as usize - ptr as usize }, 378usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyInit) as usize - ptr as usize }, 386usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Verify) as usize - ptr as usize }, 394usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Verify) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyUpdate) as usize - ptr as usize }, 402usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyFinal) as usize - ptr as usize }, 410usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecoverInit) as usize - ptr as usize }, 418usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecover) as usize - ptr as usize }, 426usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestEncryptUpdate) as usize - ptr as usize }, 434usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptDigestUpdate) as usize - ptr as usize }, 442usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptDigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignEncryptUpdate) as usize - ptr as usize }, 450usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptVerifyUpdate) as usize - ptr as usize }, 458usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptVerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKey) as usize - ptr as usize }, 466usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKeyPair) as usize - ptr as usize }, 474usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKeyPair) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WrapKey) as usize - ptr as usize }, 482usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_UnwrapKey) as usize - ptr as usize }, 490usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_UnwrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DeriveKey) as usize - ptr as usize }, 498usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DeriveKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SeedRandom) as usize - ptr as usize }, 506usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SeedRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateRandom) as usize - ptr as usize }, 514usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionStatus) as usize - ptr as usize }, 522usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionStatus) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CancelFunction) as usize - ptr as usize }, 530usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CancelFunction) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WaitForSlotEvent) as usize - ptr as usize }, 538usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WaitForSlotEvent) ) ); } pub type CK_CREATEMUTEX = ::std::option::Option CK_RV>; pub type CK_DESTROYMUTEX = ::std::option::Option CK_RV>; pub type CK_LOCKMUTEX = ::std::option::Option CK_RV>; pub type CK_UNLOCKMUTEX = ::std::option::Option CK_RV>; #[repr(C, packed)] #[derive(Debug, Copy, Clone)] pub struct _CK_C_INITIALIZE_ARGS { pub CreateMutex: CK_CREATEMUTEX, pub DestroyMutex: CK_DESTROYMUTEX, pub LockMutex: CK_LOCKMUTEX, pub UnlockMutex: CK_UNLOCKMUTEX, pub flags: CK_FLAGS, pub pReserved: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout__CK_C_INITIALIZE_ARGS() { const UNINIT: ::std::mem::MaybeUninit<_CK_C_INITIALIZE_ARGS> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_C_INITIALIZE_ARGS>(), 44usize, concat!("Size of: ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( ::std::mem::align_of::<_CK_C_INITIALIZE_ARGS>(), 1usize, concat!("Alignment of ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).CreateMutex) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(CreateMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).DestroyMutex) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(DestroyMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).LockMutex) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(LockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).UnlockMutex) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(UnlockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pReserved) as usize - ptr as usize }, 36usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(pReserved) ) ); } impl Default for _CK_C_INITIALIZE_ARGS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_BYTE = ::std::os::raw::c_uchar; pub type CK_CHAR = ::std::os::raw::c_uchar; pub type CK_UTF8CHAR = ::std::os::raw::c_uchar; pub type CK_BBOOL = ::std::os::raw::c_uchar; pub type CK_ULONG = ::std::os::raw::c_ulong; pub type CK_LONG = ::std::os::raw::c_long; pub type CK_BYTE_PTR = *mut CK_BYTE; pub type CK_CHAR_PTR = *mut CK_CHAR; pub type CK_UTF8CHAR_PTR = *mut CK_UTF8CHAR; pub type CK_ULONG_PTR = *mut CK_ULONG; pub type CK_VOID_PTR = *mut ::std::os::raw::c_void; pub type CK_VOID_PTR_PTR = *mut *mut ::std::os::raw::c_void; pub type CK_VERSION = _CK_VERSION; pub type CK_VERSION_PTR = *mut _CK_VERSION; pub type CK_INFO = _CK_INFO; pub type CK_INFO_PTR = *mut _CK_INFO; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SLOT_INFO = _CK_SLOT_INFO; pub type CK_SLOT_INFO_PTR = *mut _CK_SLOT_INFO; pub type CK_TOKEN_INFO = _CK_TOKEN_INFO; pub type CK_TOKEN_INFO_PTR = *mut _CK_TOKEN_INFO; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; pub type CK_SESSION_INFO = _CK_SESSION_INFO; pub type CK_SESSION_INFO_PTR = *mut _CK_SESSION_INFO; pub type CK_OBJECT_HANDLE_PTR = *mut CK_OBJECT_HANDLE; pub type CK_OBJECT_CLASS_PTR = *mut CK_OBJECT_CLASS; pub type CK_ATTRIBUTE = _CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR = *mut _CK_ATTRIBUTE; pub type CK_DATE = _CK_DATE; pub type CK_DATE_PTR = *mut _CK_DATE; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; pub type CK_MECHANISM = _CK_MECHANISM; pub type CK_MECHANISM_PTR = *mut _CK_MECHANISM; pub type CK_MECHANISM_INFO = _CK_MECHANISM_INFO; pub type CK_MECHANISM_INFO_PTR = *mut _CK_MECHANISM_INFO; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_otp_mechanism_info { _unused: [u8; 0], } pub type CK_OTP_MECHANISM_INFO = ck_otp_mechanism_info; pub type CK_OTP_MECHANISM_INFO_PTR = *mut ck_otp_mechanism_info; pub type CK_FUNCTION_LIST = _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR = *mut _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut _CK_FUNCTION_LIST; pub type CK_C_INITIALIZE_ARGS = _CK_C_INITIALIZE_ARGS; pub type CK_C_INITIALIZE_ARGS_PTR = *mut _CK_C_INITIALIZE_ARGS; pub type CK_RSA_PKCS_PSS_PARAMS = ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_PSS_PARAMS_PTR = *mut ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_OAEP_PARAMS = ck_rsa_pkcs_oaep_params; pub type CK_RSA_PKCS_OAEP_PARAMS_PTR = *mut ck_rsa_pkcs_oaep_params; pub type CK_AES_CTR_PARAMS = ck_aes_ctr_params; pub type CK_AES_CTR_PARAMS_PTR = *mut ck_aes_ctr_params; pub type CK_GCM_PARAMS = ck_gcm_params; pub type CK_GCM_PARAMS_PTR = *mut ck_gcm_params; pub type CK_ECDH1_DERIVE_PARAMS = ck_ecdh1_derive_params; pub type CK_ECDH1_DERIVE_PARAMS_PTR = *mut ck_ecdh1_derive_params; pub type CK_KEY_DERIVATION_STRING_DATA = ck_key_derivation_string_data; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut ck_key_derivation_string_data; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS = ck_des_cbc_encrypt_data_params; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_des_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS = ck_aes_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_aes_cbc_encrypt_data_params; extern crate libloading; pub struct Pkcs11 { __library: ::libloading::Library, pub C_Initialize: Result< unsafe extern "C" fn(init_args: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_Finalize: Result< unsafe extern "C" fn(pReserved: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_GetInfo: Result CK_RV, ::libloading::Error>, pub C_GetFunctionList: Result< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, ::libloading::Error, >, pub C_GetSlotList: Result< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetSlotInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetTokenInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, ::libloading::Error, >, pub C_WaitForSlotEvent: Result< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismList: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismInfo: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, ::libloading::Error, >, pub C_InitToken: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, ::libloading::Error, >, pub C_InitPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_OpenSession: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CloseSession: Result CK_RV, ::libloading::Error>, pub C_CloseAllSessions: Result CK_RV, ::libloading::Error>, pub C_GetSessionInfo: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Login: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_Logout: Result CK_RV, ::libloading::Error>, pub C_CreateObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CopyObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DestroyObject: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_GetObjectSize: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjects: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsFinal: Result CK_RV, ::libloading::Error>, pub C_EncryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Encrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Decrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestInit: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, ::libloading::Error, >, pub C_Digest: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestKey: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_DigestFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Sign: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Verify: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptDigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptVerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKeyPair: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_WrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_UnwrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DeriveKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SeedRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetFunctionStatus: Result CK_RV, ::libloading::Error>, pub C_CancelFunction: Result CK_RV, ::libloading::Error>, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result where P: AsRef<::std::ffi::OsStr>, { let library = ::libloading::Library::new(path)?; Self::from_library(library) } pub unsafe fn from_library(library: L) -> Result where L: Into<::libloading::Library>, { let __library = library.into(); let C_Initialize = __library.get(b"C_Initialize\0").map(|sym| *sym); let C_Finalize = __library.get(b"C_Finalize\0").map(|sym| *sym); let C_GetInfo = __library.get(b"C_GetInfo\0").map(|sym| *sym); let C_GetFunctionList = __library.get(b"C_GetFunctionList\0").map(|sym| *sym); let C_GetSlotList = __library.get(b"C_GetSlotList\0").map(|sym| *sym); let C_GetSlotInfo = __library.get(b"C_GetSlotInfo\0").map(|sym| *sym); let C_GetTokenInfo = __library.get(b"C_GetTokenInfo\0").map(|sym| *sym); let C_WaitForSlotEvent = __library.get(b"C_WaitForSlotEvent\0").map(|sym| *sym); let C_GetMechanismList = __library.get(b"C_GetMechanismList\0").map(|sym| *sym); let C_GetMechanismInfo = __library.get(b"C_GetMechanismInfo\0").map(|sym| *sym); let C_InitToken = __library.get(b"C_InitToken\0").map(|sym| *sym); let C_InitPIN = __library.get(b"C_InitPIN\0").map(|sym| *sym); let C_SetPIN = __library.get(b"C_SetPIN\0").map(|sym| *sym); let C_OpenSession = __library.get(b"C_OpenSession\0").map(|sym| *sym); let C_CloseSession = __library.get(b"C_CloseSession\0").map(|sym| *sym); let C_CloseAllSessions = __library.get(b"C_CloseAllSessions\0").map(|sym| *sym); let C_GetSessionInfo = __library.get(b"C_GetSessionInfo\0").map(|sym| *sym); let C_GetOperationState = __library.get(b"C_GetOperationState\0").map(|sym| *sym); let C_SetOperationState = __library.get(b"C_SetOperationState\0").map(|sym| *sym); let C_Login = __library.get(b"C_Login\0").map(|sym| *sym); let C_Logout = __library.get(b"C_Logout\0").map(|sym| *sym); let C_CreateObject = __library.get(b"C_CreateObject\0").map(|sym| *sym); let C_CopyObject = __library.get(b"C_CopyObject\0").map(|sym| *sym); let C_DestroyObject = __library.get(b"C_DestroyObject\0").map(|sym| *sym); let C_GetObjectSize = __library.get(b"C_GetObjectSize\0").map(|sym| *sym); let C_GetAttributeValue = __library.get(b"C_GetAttributeValue\0").map(|sym| *sym); let C_SetAttributeValue = __library.get(b"C_SetAttributeValue\0").map(|sym| *sym); let C_FindObjectsInit = __library.get(b"C_FindObjectsInit\0").map(|sym| *sym); let C_FindObjects = __library.get(b"C_FindObjects\0").map(|sym| *sym); let C_FindObjectsFinal = __library.get(b"C_FindObjectsFinal\0").map(|sym| *sym); let C_EncryptInit = __library.get(b"C_EncryptInit\0").map(|sym| *sym); let C_Encrypt = __library.get(b"C_Encrypt\0").map(|sym| *sym); let C_EncryptUpdate = __library.get(b"C_EncryptUpdate\0").map(|sym| *sym); let C_EncryptFinal = __library.get(b"C_EncryptFinal\0").map(|sym| *sym); let C_DecryptInit = __library.get(b"C_DecryptInit\0").map(|sym| *sym); let C_Decrypt = __library.get(b"C_Decrypt\0").map(|sym| *sym); let C_DecryptUpdate = __library.get(b"C_DecryptUpdate\0").map(|sym| *sym); let C_DecryptFinal = __library.get(b"C_DecryptFinal\0").map(|sym| *sym); let C_DigestInit = __library.get(b"C_DigestInit\0").map(|sym| *sym); let C_Digest = __library.get(b"C_Digest\0").map(|sym| *sym); let C_DigestUpdate = __library.get(b"C_DigestUpdate\0").map(|sym| *sym); let C_DigestKey = __library.get(b"C_DigestKey\0").map(|sym| *sym); let C_DigestFinal = __library.get(b"C_DigestFinal\0").map(|sym| *sym); let C_SignInit = __library.get(b"C_SignInit\0").map(|sym| *sym); let C_Sign = __library.get(b"C_Sign\0").map(|sym| *sym); let C_SignUpdate = __library.get(b"C_SignUpdate\0").map(|sym| *sym); let C_SignFinal = __library.get(b"C_SignFinal\0").map(|sym| *sym); let C_SignRecoverInit = __library.get(b"C_SignRecoverInit\0").map(|sym| *sym); let C_SignRecover = __library.get(b"C_SignRecover\0").map(|sym| *sym); let C_VerifyInit = __library.get(b"C_VerifyInit\0").map(|sym| *sym); let C_Verify = __library.get(b"C_Verify\0").map(|sym| *sym); let C_VerifyUpdate = __library.get(b"C_VerifyUpdate\0").map(|sym| *sym); let C_VerifyFinal = __library.get(b"C_VerifyFinal\0").map(|sym| *sym); let C_VerifyRecoverInit = __library.get(b"C_VerifyRecoverInit\0").map(|sym| *sym); let C_VerifyRecover = __library.get(b"C_VerifyRecover\0").map(|sym| *sym); let C_DigestEncryptUpdate = __library.get(b"C_DigestEncryptUpdate\0").map(|sym| *sym); let C_DecryptDigestUpdate = __library.get(b"C_DecryptDigestUpdate\0").map(|sym| *sym); let C_SignEncryptUpdate = __library.get(b"C_SignEncryptUpdate\0").map(|sym| *sym); let C_DecryptVerifyUpdate = __library.get(b"C_DecryptVerifyUpdate\0").map(|sym| *sym); let C_GenerateKey = __library.get(b"C_GenerateKey\0").map(|sym| *sym); let C_GenerateKeyPair = __library.get(b"C_GenerateKeyPair\0").map(|sym| *sym); let C_WrapKey = __library.get(b"C_WrapKey\0").map(|sym| *sym); let C_UnwrapKey = __library.get(b"C_UnwrapKey\0").map(|sym| *sym); let C_DeriveKey = __library.get(b"C_DeriveKey\0").map(|sym| *sym); let C_SeedRandom = __library.get(b"C_SeedRandom\0").map(|sym| *sym); let C_GenerateRandom = __library.get(b"C_GenerateRandom\0").map(|sym| *sym); let C_GetFunctionStatus = __library.get(b"C_GetFunctionStatus\0").map(|sym| *sym); let C_CancelFunction = __library.get(b"C_CancelFunction\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, C_Finalize, C_GetInfo, C_GetFunctionList, C_GetSlotList, C_GetSlotInfo, C_GetTokenInfo, C_WaitForSlotEvent, C_GetMechanismList, C_GetMechanismInfo, C_InitToken, C_InitPIN, C_SetPIN, C_OpenSession, C_CloseSession, C_CloseAllSessions, C_GetSessionInfo, C_GetOperationState, C_SetOperationState, C_Login, C_Logout, C_CreateObject, C_CopyObject, C_DestroyObject, C_GetObjectSize, C_GetAttributeValue, C_SetAttributeValue, C_FindObjectsInit, C_FindObjects, C_FindObjectsFinal, C_EncryptInit, C_Encrypt, C_EncryptUpdate, C_EncryptFinal, C_DecryptInit, C_Decrypt, C_DecryptUpdate, C_DecryptFinal, C_DigestInit, C_Digest, C_DigestUpdate, C_DigestKey, C_DigestFinal, C_SignInit, C_Sign, C_SignUpdate, C_SignFinal, C_SignRecoverInit, C_SignRecover, C_VerifyInit, C_Verify, C_VerifyUpdate, C_VerifyFinal, C_VerifyRecoverInit, C_VerifyRecover, C_DigestEncryptUpdate, C_DecryptDigestUpdate, C_SignEncryptUpdate, C_DecryptVerifyUpdate, C_GenerateKey, C_GenerateKeyPair, C_WrapKey, C_UnwrapKey, C_DeriveKey, C_SeedRandom, C_GenerateRandom, C_GetFunctionStatus, C_CancelFunction, }) } pub unsafe fn C_Initialize(&self, init_args: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Initialize .as_ref() .expect("Expected function, got error."))(init_args) } pub unsafe fn C_Finalize(&self, pReserved: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Finalize .as_ref() .expect("Expected function, got error."))(pReserved) } pub unsafe fn C_GetInfo(&self, info: *mut _CK_INFO) -> CK_RV { (self .C_GetInfo .as_ref() .expect("Expected function, got error."))(info) } pub unsafe fn C_GetFunctionList(&self, function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV { (self .C_GetFunctionList .as_ref() .expect("Expected function, got error."))(function_list) } pub unsafe fn C_GetSlotList( &self, token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetSlotList .as_ref() .expect("Expected function, got error."))(token_present, slot_list, ulCount) } pub unsafe fn C_GetSlotInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV { (self .C_GetSlotInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_GetTokenInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV { (self .C_GetTokenInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_WaitForSlotEvent( &self, flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV { (self .C_WaitForSlotEvent .as_ref() .expect("Expected function, got error."))(flags, slot, pReserved) } pub unsafe fn C_GetMechanismList( &self, slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetMechanismList .as_ref() .expect("Expected function, got error."))(slotID, mechanism_list, ulCount) } pub unsafe fn C_GetMechanismInfo( &self, slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV { (self .C_GetMechanismInfo .as_ref() .expect("Expected function, got error."))(slotID, type_, info) } pub unsafe fn C_InitToken( &self, slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV { (self .C_InitToken .as_ref() .expect("Expected function, got error."))(slotID, pin, pin_len, label) } pub unsafe fn C_InitPIN( &self, session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_InitPIN .as_ref() .expect("Expected function, got error."))(session, pin, pin_len) } pub unsafe fn C_SetPIN( &self, session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetPIN .as_ref() .expect("Expected function, got error."))( session, old_pin, old_len, new_pin, new_len ) } pub unsafe fn C_OpenSession( &self, slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV { (self .C_OpenSession .as_ref() .expect("Expected function, got error."))( slotID, flags, application, notify, session ) } pub unsafe fn C_CloseSession(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CloseSession .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CloseAllSessions(&self, slotID: CK_SLOT_ID) -> CK_RV { (self .C_CloseAllSessions .as_ref() .expect("Expected function, got error."))(slotID) } pub unsafe fn C_GetSessionInfo( &self, session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO, ) -> CK_RV { (self .C_GetSessionInfo .as_ref() .expect("Expected function, got error."))(session, info) } pub unsafe fn C_GetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len ) } pub unsafe fn C_SetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len, encryption_key, authentiation_key, ) } pub unsafe fn C_Login( &self, session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Login .as_ref() .expect("Expected function, got error."))(session, user_type, pin, pin_len) } pub unsafe fn C_Logout(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_Logout .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CreateObject( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CreateObject .as_ref() .expect("Expected function, got error."))(session, templ, ulCount, object) } pub unsafe fn C_CopyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CopyObject .as_ref() .expect("Expected function, got error."))( session, object, templ, ulCount, new_object ) } pub unsafe fn C_DestroyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DestroyObject .as_ref() .expect("Expected function, got error."))(session, object) } pub unsafe fn C_GetObjectSize( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetObjectSize .as_ref() .expect("Expected function, got error."))(session, object, size) } pub unsafe fn C_GetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_SetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_FindObjectsInit( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjectsInit .as_ref() .expect("Expected function, got error."))(session, templ, ulCount) } pub unsafe fn C_FindObjects( &self, session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjects .as_ref() .expect("Expected function, got error."))( session, object, max_object_count, object_count, ) } pub unsafe fn C_FindObjectsFinal(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_FindObjectsFinal .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_EncryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_EncryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Encrypt( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Encrypt .as_ref() .expect("Expected function, got error."))( session, data, data_len, encrypted_data, encrypted_data_len, ) } pub unsafe fn C_EncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_EncryptFinal( &self, session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptFinal .as_ref() .expect("Expected function, got error."))( session, last_encrypted_part, last_encrypted_part_len, ) } pub unsafe fn C_DecryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DecryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Decrypt( &self, session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Decrypt .as_ref() .expect("Expected function, got error."))( session, encrypted_data, encrypted_data_len, data, data_len, ) } pub unsafe fn C_DecryptUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_DecryptFinal( &self, session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptFinal .as_ref() .expect("Expected function, got error."))(session, last_part, last_part_len) } pub unsafe fn C_DigestInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, ) -> CK_RV { (self .C_DigestInit .as_ref() .expect("Expected function, got error."))(session, mechanism) } pub unsafe fn C_Digest( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Digest .as_ref() .expect("Expected function, got error."))( session, data, data_len, digest, digest_len ) } pub unsafe fn C_DigestUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_DigestKey(&self, session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV { (self .C_DigestKey .as_ref() .expect("Expected function, got error."))(session, key) } pub unsafe fn C_DigestFinal( &self, session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestFinal .as_ref() .expect("Expected function, got error."))(session, digest, digest_len) } pub unsafe fn C_SignInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Sign( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self.C_Sign.as_ref().expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_SignUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_SignFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_SignRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_SignRecover( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignRecover .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Verify( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Verify .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_VerifyFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_VerifyRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_VerifyRecover( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyRecover .as_ref() .expect("Expected function, got error."))( session, signature, signature_len, data, data_len, ) } pub unsafe fn C_DigestEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptDigestUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptDigestUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_SignEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptVerifyUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptVerifyUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_GenerateKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKey .as_ref() .expect("Expected function, got error."))( session, mechanism, templ, ulCount, key ) } pub unsafe fn C_GenerateKeyPair( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKeyPair .as_ref() .expect("Expected function, got error."))( session, mechanism, public_key_template, public_key_attribute_count, private_key_template, private_key_attribute_count, public_key, private_key, ) } pub unsafe fn C_WrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_WrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, wrapping_key, key, wrapped_key, wrapped_key_len, ) } pub unsafe fn C_UnwrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_UnwrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, unwrapping_key, wrapped_key, wrapped_key_len, templ, attribute_count, key, ) } pub unsafe fn C_DeriveKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DeriveKey .as_ref() .expect("Expected function, got error."))( session, mechanism, base_key, templ, attribute_count, key, ) } pub unsafe fn C_SeedRandom( &self, session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SeedRandom .as_ref() .expect("Expected function, got error."))(session, seed, seed_len) } pub unsafe fn C_GenerateRandom( &self, session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GenerateRandom .as_ref() .expect("Expected function, got error."))(session, random_data, random_len) } pub unsafe fn C_GetFunctionStatus(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_GetFunctionStatus .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CancelFunction(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CancelFunction .as_ref() .expect("Expected function, got error."))(session) } } cryptoki-sys-0.1.7/src/bindings/x86_64-unknown-freebsd.rs000064400000000000000000005276021046102023000213220ustar 00000000000000/* automatically generated by rust-bindgen 0.66.1 */ pub const PKCS11_H: u32 = 1; pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 40; pub const P11_KIT_CRYPTOKI_VERSION_REVISION: u32 = 0; pub const CRYPTOKI_COMPAT: u32 = 1; pub const CKF_RNG: CK_FLAGS = 1; pub const CKF_WRITE_PROTECTED: CK_FLAGS = 2; pub const CKF_LOGIN_REQUIRED: CK_FLAGS = 4; pub const CKF_USER_PIN_INITIALIZED: CK_FLAGS = 8; pub const CKF_RESTORE_KEY_NOT_NEEDED: CK_FLAGS = 32; pub const CKF_CLOCK_ON_TOKEN: CK_FLAGS = 64; pub const CKF_PROTECTED_AUTHENTICATION_PATH: CK_FLAGS = 256; pub const CKF_DUAL_CRYPTO_OPERATIONS: CK_FLAGS = 512; pub const CKF_TOKEN_INITIALIZED: CK_FLAGS = 1024; pub const CKF_SECONDARY_AUTHENTICATION: CK_FLAGS = 2048; pub const CKF_USER_PIN_COUNT_LOW: CK_FLAGS = 65536; pub const CKF_USER_PIN_FINAL_TRY: CK_FLAGS = 131072; pub const CKF_USER_PIN_LOCKED: CK_FLAGS = 262144; pub const CKF_USER_PIN_TO_BE_CHANGED: CK_FLAGS = 524288; pub const CKF_SO_PIN_COUNT_LOW: CK_FLAGS = 1048576; pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; pub const CKO_DATA: CK_OBJECT_CLASS = 0; pub const CKO_CERTIFICATE: CK_OBJECT_CLASS = 1; pub const CKO_PUBLIC_KEY: CK_OBJECT_CLASS = 2; pub const CKO_PRIVATE_KEY: CK_OBJECT_CLASS = 3; pub const CKO_SECRET_KEY: CK_OBJECT_CLASS = 4; pub const CKO_HW_FEATURE: CK_OBJECT_CLASS = 5; pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_EC: CK_KEY_TYPE = 3; pub const CKK_X9_42_DH: CK_KEY_TYPE = 4; pub const CKK_KEA: CK_KEY_TYPE = 5; pub const CKK_GENERIC_SECRET: CK_KEY_TYPE = 16; pub const CKK_RC2: CK_KEY_TYPE = 17; pub const CKK_RC4: CK_KEY_TYPE = 18; pub const CKK_DES: CK_KEY_TYPE = 19; pub const CKK_DES2: CK_KEY_TYPE = 20; pub const CKK_DES3: CK_KEY_TYPE = 21; pub const CKK_CAST: CK_KEY_TYPE = 22; pub const CKK_CAST3: CK_KEY_TYPE = 23; pub const CKK_CAST128: CK_KEY_TYPE = 24; pub const CKK_RC5: CK_KEY_TYPE = 25; pub const CKK_IDEA: CK_KEY_TYPE = 26; pub const CKK_SKIPJACK: CK_KEY_TYPE = 27; pub const CKK_BATON: CK_KEY_TYPE = 28; pub const CKK_JUNIPER: CK_KEY_TYPE = 29; pub const CKK_CDMF: CK_KEY_TYPE = 30; pub const CKK_AES: CK_KEY_TYPE = 31; pub const CKK_BLOWFISH: CK_KEY_TYPE = 32; pub const CKK_TWOFISH: CK_KEY_TYPE = 33; pub const CKK_SECURID: CK_KEY_TYPE = 34; pub const CKK_HOTP: CK_KEY_TYPE = 35; pub const CKK_ACTI: CK_KEY_TYPE = 36; pub const CKK_CAMELLIA: CK_KEY_TYPE = 37; pub const CKK_ARIA: CK_KEY_TYPE = 38; pub const CKK_MD5_HMAC: CK_KEY_TYPE = 39; pub const CKK_SHA_1_HMAC: CK_KEY_TYPE = 40; pub const CKK_RIPEMD128_HMAC: CK_KEY_TYPE = 41; pub const CKK_RIPEMD160_HMAC: CK_KEY_TYPE = 42; pub const CKK_SHA256_HMAC: CK_KEY_TYPE = 43; pub const CKK_SHA384_HMAC: CK_KEY_TYPE = 44; pub const CKK_SHA512_HMAC: CK_KEY_TYPE = 45; pub const CKK_SHA224_HMAC: CK_KEY_TYPE = 46; pub const CKK_SEED: CK_KEY_TYPE = 47; pub const CKK_GOSTR3410: CK_KEY_TYPE = 48; pub const CKK_GOSTR3411: CK_KEY_TYPE = 49; pub const CKK_GOST28147: CK_KEY_TYPE = 50; pub const CKK_EC_EDWARDS: CK_KEY_TYPE = 64; pub const CKC_X_509: CK_CERTIFICATE_TYPE = 0; pub const CKC_X_509_ATTR_CERT: CK_CERTIFICATE_TYPE = 1; pub const CKC_WTLS: CK_CERTIFICATE_TYPE = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; pub const CKA_TOKEN: CK_ATTRIBUTE_TYPE = 1; pub const CKA_PRIVATE: CK_ATTRIBUTE_TYPE = 2; pub const CKA_LABEL: CK_ATTRIBUTE_TYPE = 3; pub const CKA_APPLICATION: CK_ATTRIBUTE_TYPE = 16; pub const CKA_VALUE: CK_ATTRIBUTE_TYPE = 17; pub const CKA_OBJECT_ID: CK_ATTRIBUTE_TYPE = 18; pub const CKA_CERTIFICATE_TYPE: CK_ATTRIBUTE_TYPE = 128; pub const CKA_ISSUER: CK_ATTRIBUTE_TYPE = 129; pub const CKA_SERIAL_NUMBER: CK_ATTRIBUTE_TYPE = 130; pub const CKA_AC_ISSUER: CK_ATTRIBUTE_TYPE = 131; pub const CKA_OWNER: CK_ATTRIBUTE_TYPE = 132; pub const CKA_ATTR_TYPES: CK_ATTRIBUTE_TYPE = 133; pub const CKA_TRUSTED: CK_ATTRIBUTE_TYPE = 134; pub const CKA_CERTIFICATE_CATEGORY: CK_ATTRIBUTE_TYPE = 135; pub const CKA_JAVA_MIDP_SECURITY_DOMAIN: CK_ATTRIBUTE_TYPE = 136; pub const CKA_URL: CK_ATTRIBUTE_TYPE = 137; pub const CKA_HASH_OF_SUBJECT_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 138; pub const CKA_HASH_OF_ISSUER_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 139; pub const CKA_NAME_HASH_ALGORITHM: CK_ATTRIBUTE_TYPE = 140; pub const CKA_CHECK_VALUE: CK_ATTRIBUTE_TYPE = 144; pub const CKA_KEY_TYPE: CK_ATTRIBUTE_TYPE = 256; pub const CKA_SUBJECT: CK_ATTRIBUTE_TYPE = 257; pub const CKA_ID: CK_ATTRIBUTE_TYPE = 258; pub const CKA_SENSITIVE: CK_ATTRIBUTE_TYPE = 259; pub const CKA_ENCRYPT: CK_ATTRIBUTE_TYPE = 260; pub const CKA_DECRYPT: CK_ATTRIBUTE_TYPE = 261; pub const CKA_WRAP: CK_ATTRIBUTE_TYPE = 262; pub const CKA_UNWRAP: CK_ATTRIBUTE_TYPE = 263; pub const CKA_SIGN: CK_ATTRIBUTE_TYPE = 264; pub const CKA_SIGN_RECOVER: CK_ATTRIBUTE_TYPE = 265; pub const CKA_VERIFY: CK_ATTRIBUTE_TYPE = 266; pub const CKA_VERIFY_RECOVER: CK_ATTRIBUTE_TYPE = 267; pub const CKA_DERIVE: CK_ATTRIBUTE_TYPE = 268; pub const CKA_START_DATE: CK_ATTRIBUTE_TYPE = 272; pub const CKA_END_DATE: CK_ATTRIBUTE_TYPE = 273; pub const CKA_MODULUS: CK_ATTRIBUTE_TYPE = 288; pub const CKA_MODULUS_BITS: CK_ATTRIBUTE_TYPE = 289; pub const CKA_PUBLIC_EXPONENT: CK_ATTRIBUTE_TYPE = 290; pub const CKA_PRIVATE_EXPONENT: CK_ATTRIBUTE_TYPE = 291; pub const CKA_PRIME_1: CK_ATTRIBUTE_TYPE = 292; pub const CKA_PRIME_2: CK_ATTRIBUTE_TYPE = 293; pub const CKA_EXPONENT_1: CK_ATTRIBUTE_TYPE = 294; pub const CKA_EXPONENT_2: CK_ATTRIBUTE_TYPE = 295; pub const CKA_COEFFICIENT: CK_ATTRIBUTE_TYPE = 296; pub const CKA_PUBLIC_KEY_INFO: CK_ATTRIBUTE_TYPE = 297; pub const CKA_PRIME: CK_ATTRIBUTE_TYPE = 304; pub const CKA_SUBPRIME: CK_ATTRIBUTE_TYPE = 305; pub const CKA_BASE: CK_ATTRIBUTE_TYPE = 306; pub const CKA_PRIME_BITS: CK_ATTRIBUTE_TYPE = 307; pub const CKA_SUB_PRIME_BITS: CK_ATTRIBUTE_TYPE = 308; pub const CKA_VALUE_BITS: CK_ATTRIBUTE_TYPE = 352; pub const CKA_VALUE_LEN: CK_ATTRIBUTE_TYPE = 353; pub const CKA_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 354; pub const CKA_LOCAL: CK_ATTRIBUTE_TYPE = 355; pub const CKA_NEVER_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 356; pub const CKA_ALWAYS_SENSITIVE: CK_ATTRIBUTE_TYPE = 357; pub const CKA_KEY_GEN_MECHANISM: CK_ATTRIBUTE_TYPE = 358; pub const CKA_MODIFIABLE: CK_ATTRIBUTE_TYPE = 368; pub const CKA_COPYABLE: CK_ATTRIBUTE_TYPE = 369; pub const CKA_DESTROYABLE: CK_ATTRIBUTE_TYPE = 370; pub const CKA_ECDSA_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_POINT: CK_ATTRIBUTE_TYPE = 385; pub const CKA_SECONDARY_AUTH: CK_ATTRIBUTE_TYPE = 512; pub const CKA_AUTH_PIN_FLAGS: CK_ATTRIBUTE_TYPE = 513; pub const CKA_ALWAYS_AUTHENTICATE: CK_ATTRIBUTE_TYPE = 514; pub const CKA_WRAP_WITH_TRUSTED: CK_ATTRIBUTE_TYPE = 528; pub const CKA_OTP_FORMAT: CK_ATTRIBUTE_TYPE = 544; pub const CKA_OTP_LENGTH: CK_ATTRIBUTE_TYPE = 545; pub const CKA_OTP_TIME_INTERVAL: CK_ATTRIBUTE_TYPE = 546; pub const CKA_OTP_USER_FRIENDLY_MODE: CK_ATTRIBUTE_TYPE = 547; pub const CKA_OTP_CHALLENGE_REQUIREMENT: CK_ATTRIBUTE_TYPE = 548; pub const CKA_OTP_TIME_REQUIREMENT: CK_ATTRIBUTE_TYPE = 549; pub const CKA_OTP_COUNTER_REQUIREMENT: CK_ATTRIBUTE_TYPE = 550; pub const CKA_OTP_PIN_REQUIREMENT: CK_ATTRIBUTE_TYPE = 551; pub const CKA_OTP_USER_IDENTIFIER: CK_ATTRIBUTE_TYPE = 554; pub const CKA_OTP_SERVICE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 555; pub const CKA_OTP_SERVICE_LOGO: CK_ATTRIBUTE_TYPE = 556; pub const CKA_OTP_SERVICE_LOGO_TYPE: CK_ATTRIBUTE_TYPE = 557; pub const CKA_OTP_COUNTER: CK_ATTRIBUTE_TYPE = 558; pub const CKA_OTP_TIME: CK_ATTRIBUTE_TYPE = 559; pub const CKA_GOSTR3410_PARAMS: CK_ATTRIBUTE_TYPE = 592; pub const CKA_GOSTR3411_PARAMS: CK_ATTRIBUTE_TYPE = 593; pub const CKA_GOST28147_PARAMS: CK_ATTRIBUTE_TYPE = 594; pub const CKA_HW_FEATURE_TYPE: CK_ATTRIBUTE_TYPE = 768; pub const CKA_RESET_ON_INIT: CK_ATTRIBUTE_TYPE = 769; pub const CKA_HAS_RESET: CK_ATTRIBUTE_TYPE = 770; pub const CKA_PIXEL_X: CK_ATTRIBUTE_TYPE = 1024; pub const CKA_PIXEL_Y: CK_ATTRIBUTE_TYPE = 1025; pub const CKA_RESOLUTION: CK_ATTRIBUTE_TYPE = 1026; pub const CKA_CHAR_ROWS: CK_ATTRIBUTE_TYPE = 1027; pub const CKA_CHAR_COLUMNS: CK_ATTRIBUTE_TYPE = 1028; pub const CKA_COLOR: CK_ATTRIBUTE_TYPE = 1029; pub const CKA_BITS_PER_PIXEL: CK_ATTRIBUTE_TYPE = 1030; pub const CKA_CHAR_SETS: CK_ATTRIBUTE_TYPE = 1152; pub const CKA_ENCODING_METHODS: CK_ATTRIBUTE_TYPE = 1153; pub const CKA_MIME_TYPES: CK_ATTRIBUTE_TYPE = 1154; pub const CKA_MECHANISM_TYPE: CK_ATTRIBUTE_TYPE = 1280; pub const CKA_REQUIRED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1281; pub const CKA_DEFAULT_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1282; pub const CKA_SUPPORTED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1283; pub const CKM_RSA_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 0; pub const CKM_RSA_PKCS: CK_MECHANISM_TYPE = 1; pub const CKM_RSA_9796: CK_MECHANISM_TYPE = 2; pub const CKM_RSA_X_509: CK_MECHANISM_TYPE = 3; pub const CKM_MD2_RSA_PKCS: CK_MECHANISM_TYPE = 4; pub const CKM_MD5_RSA_PKCS: CK_MECHANISM_TYPE = 5; pub const CKM_SHA1_RSA_PKCS: CK_MECHANISM_TYPE = 6; pub const CKM_RIPEMD128_RSA_PKCS: CK_MECHANISM_TYPE = 7; pub const CKM_RIPEMD160_RSA_PKCS: CK_MECHANISM_TYPE = 8; pub const CKM_RSA_PKCS_OAEP: CK_MECHANISM_TYPE = 9; pub const CKM_RSA_X9_31_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 10; pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; pub const CKM_SHA256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 67; pub const CKM_SHA384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 68; pub const CKM_SHA512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 69; pub const CKM_SHA512_224: CK_MECHANISM_TYPE = 72; pub const CKM_SHA512_224_HMAC: CK_MECHANISM_TYPE = 73; pub const CKM_SHA512_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 74; pub const CKM_SHA512_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 75; pub const CKM_SHA512_256: CK_MECHANISM_TYPE = 76; pub const CKM_SHA512_256_HMAC: CK_MECHANISM_TYPE = 77; pub const CKM_SHA512_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 78; pub const CKM_SHA512_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 79; pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; pub const CKM_RC2_KEY_GEN: CK_MECHANISM_TYPE = 256; pub const CKM_RC2_ECB: CK_MECHANISM_TYPE = 257; pub const CKM_RC2_CBC: CK_MECHANISM_TYPE = 258; pub const CKM_RC2_MAC: CK_MECHANISM_TYPE = 259; pub const CKM_RC2_MAC_GENERAL: CK_MECHANISM_TYPE = 260; pub const CKM_RC2_CBC_PAD: CK_MECHANISM_TYPE = 261; pub const CKM_RC4_KEY_GEN: CK_MECHANISM_TYPE = 272; pub const CKM_RC4: CK_MECHANISM_TYPE = 273; pub const CKM_DES_KEY_GEN: CK_MECHANISM_TYPE = 288; pub const CKM_DES_ECB: CK_MECHANISM_TYPE = 289; pub const CKM_DES_CBC: CK_MECHANISM_TYPE = 290; pub const CKM_DES_MAC: CK_MECHANISM_TYPE = 291; pub const CKM_DES_MAC_GENERAL: CK_MECHANISM_TYPE = 292; pub const CKM_DES_CBC_PAD: CK_MECHANISM_TYPE = 293; pub const CKM_DES2_KEY_GEN: CK_MECHANISM_TYPE = 304; pub const CKM_DES3_KEY_GEN: CK_MECHANISM_TYPE = 305; pub const CKM_DES3_ECB: CK_MECHANISM_TYPE = 306; pub const CKM_DES3_CBC: CK_MECHANISM_TYPE = 307; pub const CKM_DES3_MAC: CK_MECHANISM_TYPE = 308; pub const CKM_DES3_MAC_GENERAL: CK_MECHANISM_TYPE = 309; pub const CKM_DES3_CBC_PAD: CK_MECHANISM_TYPE = 310; pub const CKM_DES3_CMAC_GENERAL: CK_MECHANISM_TYPE = 311; pub const CKM_DES3_CMAC: CK_MECHANISM_TYPE = 312; pub const CKM_CDMF_KEY_GEN: CK_MECHANISM_TYPE = 320; pub const CKM_CDMF_ECB: CK_MECHANISM_TYPE = 321; pub const CKM_CDMF_CBC: CK_MECHANISM_TYPE = 322; pub const CKM_CDMF_MAC: CK_MECHANISM_TYPE = 323; pub const CKM_CDMF_MAC_GENERAL: CK_MECHANISM_TYPE = 324; pub const CKM_CDMF_CBC_PAD: CK_MECHANISM_TYPE = 325; pub const CKM_DES_OFB64: CK_MECHANISM_TYPE = 336; pub const CKM_DES_OFB8: CK_MECHANISM_TYPE = 337; pub const CKM_DES_CFB64: CK_MECHANISM_TYPE = 338; pub const CKM_DES_CFB8: CK_MECHANISM_TYPE = 339; pub const CKM_MD2: CK_MECHANISM_TYPE = 512; pub const CKM_MD2_HMAC: CK_MECHANISM_TYPE = 513; pub const CKM_MD2_HMAC_GENERAL: CK_MECHANISM_TYPE = 514; pub const CKM_MD5: CK_MECHANISM_TYPE = 528; pub const CKM_MD5_HMAC: CK_MECHANISM_TYPE = 529; pub const CKM_MD5_HMAC_GENERAL: CK_MECHANISM_TYPE = 530; pub const CKM_SHA_1: CK_MECHANISM_TYPE = 544; pub const CKM_SHA_1_HMAC: CK_MECHANISM_TYPE = 545; pub const CKM_SHA_1_HMAC_GENERAL: CK_MECHANISM_TYPE = 546; pub const CKM_RIPEMD128: CK_MECHANISM_TYPE = 560; pub const CKM_RIPEMD128_HMAC: CK_MECHANISM_TYPE = 561; pub const CKM_RIPEMD128_HMAC_GENERAL: CK_MECHANISM_TYPE = 562; pub const CKM_RIPEMD160: CK_MECHANISM_TYPE = 576; pub const CKM_RIPEMD160_HMAC: CK_MECHANISM_TYPE = 577; pub const CKM_RIPEMD160_HMAC_GENERAL: CK_MECHANISM_TYPE = 578; pub const CKM_SHA256: CK_MECHANISM_TYPE = 592; pub const CKM_SHA256_HMAC: CK_MECHANISM_TYPE = 593; pub const CKM_SHA256_HMAC_GENERAL: CK_MECHANISM_TYPE = 594; pub const CKM_SHA384: CK_MECHANISM_TYPE = 608; pub const CKM_SHA384_HMAC: CK_MECHANISM_TYPE = 609; pub const CKM_SHA384_HMAC_GENERAL: CK_MECHANISM_TYPE = 610; pub const CKM_SHA512: CK_MECHANISM_TYPE = 624; pub const CKM_SHA512_HMAC: CK_MECHANISM_TYPE = 625; pub const CKM_SHA512_HMAC_GENERAL: CK_MECHANISM_TYPE = 626; pub const CKM_SECURID_KEY_GEN: CK_MECHANISM_TYPE = 640; pub const CKM_SECURID: CK_MECHANISM_TYPE = 642; pub const CKM_HOTP_KEY_GEN: CK_MECHANISM_TYPE = 656; pub const CKM_HOTP: CK_MECHANISM_TYPE = 657; pub const CKM_ACTI: CK_MECHANISM_TYPE = 672; pub const CKM_ACTI_KEY_GEN: CK_MECHANISM_TYPE = 673; pub const CKM_CAST_KEY_GEN: CK_MECHANISM_TYPE = 768; pub const CKM_CAST_ECB: CK_MECHANISM_TYPE = 769; pub const CKM_CAST_CBC: CK_MECHANISM_TYPE = 770; pub const CKM_CAST_MAC: CK_MECHANISM_TYPE = 771; pub const CKM_CAST_MAC_GENERAL: CK_MECHANISM_TYPE = 772; pub const CKM_CAST_CBC_PAD: CK_MECHANISM_TYPE = 773; pub const CKM_CAST3_KEY_GEN: CK_MECHANISM_TYPE = 784; pub const CKM_CAST3_ECB: CK_MECHANISM_TYPE = 785; pub const CKM_CAST3_CBC: CK_MECHANISM_TYPE = 786; pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST128_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_CAST128_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_RC5_KEY_GEN: CK_MECHANISM_TYPE = 816; pub const CKM_RC5_ECB: CK_MECHANISM_TYPE = 817; pub const CKM_RC5_CBC: CK_MECHANISM_TYPE = 818; pub const CKM_RC5_MAC: CK_MECHANISM_TYPE = 819; pub const CKM_RC5_MAC_GENERAL: CK_MECHANISM_TYPE = 820; pub const CKM_RC5_CBC_PAD: CK_MECHANISM_TYPE = 821; pub const CKM_IDEA_KEY_GEN: CK_MECHANISM_TYPE = 832; pub const CKM_IDEA_ECB: CK_MECHANISM_TYPE = 833; pub const CKM_IDEA_CBC: CK_MECHANISM_TYPE = 834; pub const CKM_IDEA_MAC: CK_MECHANISM_TYPE = 835; pub const CKM_IDEA_MAC_GENERAL: CK_MECHANISM_TYPE = 836; pub const CKM_IDEA_CBC_PAD: CK_MECHANISM_TYPE = 837; pub const CKM_GENERIC_SECRET_KEY_GEN: CK_MECHANISM_TYPE = 848; pub const CKM_CONCATENATE_BASE_AND_KEY: CK_MECHANISM_TYPE = 864; pub const CKM_CONCATENATE_BASE_AND_DATA: CK_MECHANISM_TYPE = 866; pub const CKM_CONCATENATE_DATA_AND_BASE: CK_MECHANISM_TYPE = 867; pub const CKM_XOR_BASE_AND_DATA: CK_MECHANISM_TYPE = 868; pub const CKM_EXTRACT_KEY_FROM_KEY: CK_MECHANISM_TYPE = 869; pub const CKM_SSL3_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 880; pub const CKM_SSL3_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 881; pub const CKM_SSL3_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 882; pub const CKM_SSL3_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 883; pub const CKM_TLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 884; pub const CKM_TLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 885; pub const CKM_TLS_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 886; pub const CKM_TLS_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 887; pub const CKM_TLS_PRF: CK_MECHANISM_TYPE = 888; pub const CKM_SSL3_MD5_MAC: CK_MECHANISM_TYPE = 896; pub const CKM_SSL3_SHA1_MAC: CK_MECHANISM_TYPE = 897; pub const CKM_MD5_KEY_DERIVATION: CK_MECHANISM_TYPE = 912; pub const CKM_MD2_KEY_DERIVATION: CK_MECHANISM_TYPE = 913; pub const CKM_SHA1_KEY_DERIVATION: CK_MECHANISM_TYPE = 914; pub const CKM_SHA256_KEY_DERIVATION: CK_MECHANISM_TYPE = 915; pub const CKM_SHA384_KEY_DERIVATION: CK_MECHANISM_TYPE = 916; pub const CKM_SHA512_KEY_DERIVATION: CK_MECHANISM_TYPE = 917; pub const CKM_PBE_MD2_DES_CBC: CK_MECHANISM_TYPE = 928; pub const CKM_PBE_MD5_DES_CBC: CK_MECHANISM_TYPE = 929; pub const CKM_PBE_MD5_CAST_CBC: CK_MECHANISM_TYPE = 930; pub const CKM_PBE_MD5_CAST3_CBC: CK_MECHANISM_TYPE = 931; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_MD5_CAST128_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_CAST128_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_RC4_128: CK_MECHANISM_TYPE = 934; pub const CKM_PBE_SHA1_RC4_40: CK_MECHANISM_TYPE = 935; pub const CKM_PBE_SHA1_DES3_EDE_CBC: CK_MECHANISM_TYPE = 936; pub const CKM_PBE_SHA1_DES2_EDE_CBC: CK_MECHANISM_TYPE = 937; pub const CKM_PBE_SHA1_RC2_128_CBC: CK_MECHANISM_TYPE = 938; pub const CKM_PBE_SHA1_RC2_40_CBC: CK_MECHANISM_TYPE = 939; pub const CKM_PKCS5_PBKD2: CK_MECHANISM_TYPE = 944; pub const CKM_PBA_SHA1_WITH_SHA1_HMAC: CK_MECHANISM_TYPE = 960; pub const CKM_WTLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 976; pub const CKM_WTLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 977; pub const CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC: CK_MECHANISM_TYPE = 978; pub const CKM_WTLS_PRF: CK_MECHANISM_TYPE = 979; pub const CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 980; pub const CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 981; pub const CKM_TLS10_MAC_SERVER: CK_MECHANISM_TYPE = 982; pub const CKM_TLS10_MAC_CLIENT: CK_MECHANISM_TYPE = 983; pub const CKM_TLS12_MAC: CK_MECHANISM_TYPE = 984; pub const CKM_TLS12_KDF: CK_MECHANISM_TYPE = 985; pub const CKM_TLS12_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 992; pub const CKM_TLS12_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 993; pub const CKM_TLS12_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 994; pub const CKM_TLS12_KEY_SAFE_DERIVE: CK_MECHANISM_TYPE = 995; pub const CKM_TLS_MAC: CK_MECHANISM_TYPE = 996; pub const CKM_TLS_KDF: CK_MECHANISM_TYPE = 997; pub const CKM_KEY_WRAP_LYNKS: CK_MECHANISM_TYPE = 1024; pub const CKM_KEY_WRAP_SET_OAEP: CK_MECHANISM_TYPE = 1025; pub const CKM_CMS_SIG: CK_MECHANISM_TYPE = 1280; pub const CKM_KIP_DERIVE: CK_MECHANISM_TYPE = 1296; pub const CKM_KIP_WRAP: CK_MECHANISM_TYPE = 1297; pub const CKM_KIP_MAC: CK_MECHANISM_TYPE = 1298; pub const CKM_CAMELLIA_KEY_GEN: CK_MECHANISM_TYPE = 1360; pub const CKM_CAMELLIA_CTR: CK_MECHANISM_TYPE = 1368; pub const CKM_ARIA_KEY_GEN: CK_MECHANISM_TYPE = 1376; pub const CKM_ARIA_ECB: CK_MECHANISM_TYPE = 1377; pub const CKM_ARIA_CBC: CK_MECHANISM_TYPE = 1378; pub const CKM_ARIA_MAC: CK_MECHANISM_TYPE = 1379; pub const CKM_ARIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1380; pub const CKM_ARIA_CBC_PAD: CK_MECHANISM_TYPE = 1381; pub const CKM_ARIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1382; pub const CKM_ARIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1383; pub const CKM_SEED_KEY_GEN: CK_MECHANISM_TYPE = 1616; pub const CKM_SEED_ECB: CK_MECHANISM_TYPE = 1617; pub const CKM_SEED_CBC: CK_MECHANISM_TYPE = 1618; pub const CKM_SEED_MAC: CK_MECHANISM_TYPE = 1619; pub const CKM_SEED_MAC_GENERAL: CK_MECHANISM_TYPE = 1620; pub const CKM_SEED_CBC_PAD: CK_MECHANISM_TYPE = 1621; pub const CKM_SEED_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1622; pub const CKM_SEED_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1623; pub const CKM_SKIPJACK_KEY_GEN: CK_MECHANISM_TYPE = 4096; pub const CKM_SKIPJACK_ECB64: CK_MECHANISM_TYPE = 4097; pub const CKM_SKIPJACK_CBC64: CK_MECHANISM_TYPE = 4098; pub const CKM_SKIPJACK_OFB64: CK_MECHANISM_TYPE = 4099; pub const CKM_SKIPJACK_CFB64: CK_MECHANISM_TYPE = 4100; pub const CKM_SKIPJACK_CFB32: CK_MECHANISM_TYPE = 4101; pub const CKM_SKIPJACK_CFB16: CK_MECHANISM_TYPE = 4102; pub const CKM_SKIPJACK_CFB8: CK_MECHANISM_TYPE = 4103; pub const CKM_SKIPJACK_WRAP: CK_MECHANISM_TYPE = 4104; pub const CKM_SKIPJACK_PRIVATE_WRAP: CK_MECHANISM_TYPE = 4105; pub const CKM_SKIPJACK_RELAYX: CK_MECHANISM_TYPE = 4106; pub const CKM_KEA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4112; pub const CKM_KEA_KEY_DERIVE: CK_MECHANISM_TYPE = 4113; pub const CKM_FORTEZZA_TIMESTAMP: CK_MECHANISM_TYPE = 4128; pub const CKM_BATON_KEY_GEN: CK_MECHANISM_TYPE = 4144; pub const CKM_BATON_ECB128: CK_MECHANISM_TYPE = 4145; pub const CKM_BATON_ECB96: CK_MECHANISM_TYPE = 4146; pub const CKM_BATON_CBC128: CK_MECHANISM_TYPE = 4147; pub const CKM_BATON_COUNTER: CK_MECHANISM_TYPE = 4148; pub const CKM_BATON_SHUFFLE: CK_MECHANISM_TYPE = 4149; pub const CKM_BATON_WRAP: CK_MECHANISM_TYPE = 4150; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_EC_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_ECDSA: CK_MECHANISM_TYPE = 4161; pub const CKM_ECDSA_SHA1: CK_MECHANISM_TYPE = 4162; pub const CKM_ECDSA_SHA224: CK_MECHANISM_TYPE = 4163; pub const CKM_ECDSA_SHA256: CK_MECHANISM_TYPE = 4164; pub const CKM_ECDSA_SHA384: CK_MECHANISM_TYPE = 4165; pub const CKM_ECDSA_SHA512: CK_MECHANISM_TYPE = 4166; pub const CKM_ECDH1_DERIVE: CK_MECHANISM_TYPE = 4176; pub const CKM_ECDH1_COFACTOR_DERIVE: CK_MECHANISM_TYPE = 4177; pub const CKM_ECMQV_DERIVE: CK_MECHANISM_TYPE = 4178; pub const CKM_ECDH_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4179; pub const CKM_RSA_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4180; pub const CKM_JUNIPER_KEY_GEN: CK_MECHANISM_TYPE = 4192; pub const CKM_JUNIPER_ECB128: CK_MECHANISM_TYPE = 4193; pub const CKM_JUNIPER_CBC128: CK_MECHANISM_TYPE = 4194; pub const CKM_JUNIPER_COUNTER: CK_MECHANISM_TYPE = 4195; pub const CKM_JUNIPER_SHUFFLE: CK_MECHANISM_TYPE = 4196; pub const CKM_JUNIPER_WRAP: CK_MECHANISM_TYPE = 4197; pub const CKM_FASTHASH: CK_MECHANISM_TYPE = 4208; pub const CKM_AES_KEY_GEN: CK_MECHANISM_TYPE = 4224; pub const CKM_AES_ECB: CK_MECHANISM_TYPE = 4225; pub const CKM_AES_CBC: CK_MECHANISM_TYPE = 4226; pub const CKM_AES_MAC: CK_MECHANISM_TYPE = 4227; pub const CKM_AES_MAC_GENERAL: CK_MECHANISM_TYPE = 4228; pub const CKM_AES_CBC_PAD: CK_MECHANISM_TYPE = 4229; pub const CKM_AES_CTR: CK_MECHANISM_TYPE = 4230; pub const CKM_AES_GCM: CK_MECHANISM_TYPE = 4231; pub const CKM_AES_CCM: CK_MECHANISM_TYPE = 4232; pub const CKM_AES_CTS: CK_MECHANISM_TYPE = 4233; pub const CKM_AES_CMAC: CK_MECHANISM_TYPE = 4234; pub const CKM_AES_CMAC_GENERAL: CK_MECHANISM_TYPE = 4235; pub const CKM_AES_XCBC_MAC: CK_MECHANISM_TYPE = 4236; pub const CKM_AES_XCBC_MAC_96: CK_MECHANISM_TYPE = 4237; pub const CKM_AES_GMAC: CK_MECHANISM_TYPE = 4238; pub const CKM_BLOWFISH_KEY_GEN: CK_MECHANISM_TYPE = 4240; pub const CKM_BLOWFISH_CBC: CK_MECHANISM_TYPE = 4241; pub const CKM_TWOFISH_KEY_GEN: CK_MECHANISM_TYPE = 4242; pub const CKM_TWOFISH_CBC: CK_MECHANISM_TYPE = 4243; pub const CKM_BLOWFISH_CBC_PAD: CK_MECHANISM_TYPE = 4244; pub const CKM_TWOFISH_CBC_PAD: CK_MECHANISM_TYPE = 4245; pub const CKM_DES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4352; pub const CKM_DES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4353; pub const CKM_DES3_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4354; pub const CKM_DES3_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4355; pub const CKM_AES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4356; pub const CKM_AES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4357; pub const CKM_GOSTR3410_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4608; pub const CKM_GOSTR3410: CK_MECHANISM_TYPE = 4609; pub const CKM_GOSTR3410_WITH_GOSTR3411: CK_MECHANISM_TYPE = 4610; pub const CKM_GOSTR3410_KEY_WRAP: CK_MECHANISM_TYPE = 4611; pub const CKM_GOSTR3410_DERIVE: CK_MECHANISM_TYPE = 4612; pub const CKM_GOSTR3411: CK_MECHANISM_TYPE = 4624; pub const CKM_GOSTR3411_HMAC: CK_MECHANISM_TYPE = 4625; pub const CKM_GOST28147_KEY_GEN: CK_MECHANISM_TYPE = 4640; pub const CKM_GOST28147_ECB: CK_MECHANISM_TYPE = 4641; pub const CKM_GOST28147: CK_MECHANISM_TYPE = 4642; pub const CKM_GOST28147_MAC: CK_MECHANISM_TYPE = 4643; pub const CKM_GOST28147_KEY_WRAP: CK_MECHANISM_TYPE = 4644; pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; pub const CKM_AES_CFB64: CK_MECHANISM_TYPE = 8453; pub const CKM_AES_CFB8: CK_MECHANISM_TYPE = 8454; pub const CKM_AES_CFB128: CK_MECHANISM_TYPE = 8455; pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_SHA224: CK_MECHANISM_TYPE = 597; pub const CKM_SHA224_HMAC: CK_MECHANISM_TYPE = 598; pub const CKM_SHA224_HMAC_GENERAL: CK_MECHANISM_TYPE = 599; pub const CKM_SHA224_RSA_PKCS: CK_MECHANISM_TYPE = 70; pub const CKM_SHA224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 71; pub const CKM_SHA224_KEY_DERIVATION: CK_MECHANISM_TYPE = 918; pub const CKM_CAMELLIA_ECB: CK_MECHANISM_TYPE = 1361; pub const CKM_CAMELLIA_CBC: CK_MECHANISM_TYPE = 1362; pub const CKM_CAMELLIA_MAC: CK_MECHANISM_TYPE = 1363; pub const CKM_CAMELLIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1364; pub const CKM_CAMELLIA_CBC_PAD: CK_MECHANISM_TYPE = 1365; pub const CKM_CAMELLIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1366; pub const CKM_CAMELLIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1367; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_EC_EDWARDS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4181; pub const CKM_EC_MONTGOMERY_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4182; pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CK_OTP_FORMAT_DECIMAL: CK_ULONG = 0; pub const CK_OTP_FORMAT_HEXADECIMAL: CK_ULONG = 1; pub const CK_OTP_FORMAT_ALPHANUMERIC: CK_ULONG = 2; pub const CK_OTP_FORMAT_BINARY: CK_ULONG = 3; pub const CK_OTP_PARAM_IGNORED: CK_ULONG = 0; pub const CK_OTP_PARAM_OPTIONAL: CK_ULONG = 1; pub const CK_OTP_PARAM_MANDATORY: CK_ULONG = 2; pub const CK_OTP_VALUE: CK_ULONG = 0; pub const CK_OTP_PIN: CK_ULONG = 1; pub const CK_OTP_CHALLENGE: CK_ULONG = 2; pub const CK_OTP_TIME: CK_ULONG = 3; pub const CK_OTP_COUNTER: CK_ULONG = 4; pub const CK_OTP_FLAGS: CK_ULONG = 5; pub const CK_OTP_OUTPUT_LENGTH: CK_ULONG = 6; pub const CK_OTP_FORMAT: CK_ULONG = 7; pub const CKF_NEXT_OTP: CK_FLAGS = 1; pub const CKF_EXCLUDE_TIME: CK_FLAGS = 2; pub const CKF_EXCLUDE_COUNTER: CK_FLAGS = 4; pub const CKF_EXCLUDE_CHALLENGE: CK_FLAGS = 8; pub const CKF_EXCLUDE_PIN: CK_FLAGS = 16; pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKG_MGF1_SHA1: CK_RSA_PKCS_MGF_TYPE = 1; pub const CKG_MGF1_SHA224: CK_RSA_PKCS_MGF_TYPE = 5; pub const CKG_MGF1_SHA256: CK_RSA_PKCS_MGF_TYPE = 2; pub const CKG_MGF1_SHA384: CK_RSA_PKCS_MGF_TYPE = 3; pub const CKG_MGF1_SHA512: CK_RSA_PKCS_MGF_TYPE = 4; pub const CKD_NULL: CK_EC_KDF_TYPE = 1; pub const CKD_SHA1_KDF: CK_EC_KDF_TYPE = 2; pub const CKD_SHA1_KDF_ASN1: CK_EC_KDF_TYPE = 3; pub const CKD_SHA1_KDF_CONCATENATE: CK_EC_KDF_TYPE = 4; pub const CKD_SHA224_KDF: CK_EC_KDF_TYPE = 5; pub const CKD_SHA256_KDF: CK_EC_KDF_TYPE = 6; pub const CKD_SHA384_KDF: CK_EC_KDF_TYPE = 7; pub const CKD_SHA512_KDF: CK_EC_KDF_TYPE = 8; pub const CKD_CPDIVERSIFY_KDF: CK_EC_KDF_TYPE = 9; pub const CKF_HW: CK_FLAGS = 1; pub const CKF_ENCRYPT: CK_FLAGS = 256; pub const CKF_DECRYPT: CK_FLAGS = 512; pub const CKF_DIGEST: CK_FLAGS = 1024; pub const CKF_SIGN: CK_FLAGS = 2048; pub const CKF_SIGN_RECOVER: CK_FLAGS = 4096; pub const CKF_VERIFY: CK_FLAGS = 8192; pub const CKF_VERIFY_RECOVER: CK_FLAGS = 16384; pub const CKF_GENERATE: CK_FLAGS = 32768; pub const CKF_GENERATE_KEY_PAIR: CK_FLAGS = 65536; pub const CKF_WRAP: CK_FLAGS = 131072; pub const CKF_UNWRAP: CK_FLAGS = 262144; pub const CKF_DERIVE: CK_FLAGS = 524288; pub const CKF_EC_F_P: CK_FLAGS = 1048576; pub const CKF_EC_F_2M: CK_FLAGS = 2097152; pub const CKF_EC_ECPARAMETERS: CK_FLAGS = 4194304; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_LIBRARY_CANT_CREATE_OS_THREADS: CK_FLAGS = 1; pub const CKF_OS_LOCKING_OK: CK_FLAGS = 2; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; pub const CKR_SLOT_ID_INVALID: CK_RV = 3; pub const CKR_GENERAL_ERROR: CK_RV = 5; pub const CKR_FUNCTION_FAILED: CK_RV = 6; pub const CKR_ARGUMENTS_BAD: CK_RV = 7; pub const CKR_NO_EVENT: CK_RV = 8; pub const CKR_NEED_TO_CREATE_THREADS: CK_RV = 9; pub const CKR_CANT_LOCK: CK_RV = 10; pub const CKR_ATTRIBUTE_READ_ONLY: CK_RV = 16; pub const CKR_ATTRIBUTE_SENSITIVE: CK_RV = 17; pub const CKR_ATTRIBUTE_TYPE_INVALID: CK_RV = 18; pub const CKR_ATTRIBUTE_VALUE_INVALID: CK_RV = 19; pub const CKR_ACTION_PROHIBITED: CK_RV = 27; pub const CKR_DATA_INVALID: CK_RV = 32; pub const CKR_DATA_LEN_RANGE: CK_RV = 33; pub const CKR_DEVICE_ERROR: CK_RV = 48; pub const CKR_DEVICE_MEMORY: CK_RV = 49; pub const CKR_DEVICE_REMOVED: CK_RV = 50; pub const CKR_ENCRYPTED_DATA_INVALID: CK_RV = 64; pub const CKR_ENCRYPTED_DATA_LEN_RANGE: CK_RV = 65; pub const CKR_FUNCTION_CANCELED: CK_RV = 80; pub const CKR_FUNCTION_NOT_PARALLEL: CK_RV = 81; pub const CKR_FUNCTION_NOT_SUPPORTED: CK_RV = 84; pub const CKR_KEY_HANDLE_INVALID: CK_RV = 96; pub const CKR_KEY_SIZE_RANGE: CK_RV = 98; pub const CKR_KEY_TYPE_INCONSISTENT: CK_RV = 99; pub const CKR_KEY_NOT_NEEDED: CK_RV = 100; pub const CKR_KEY_CHANGED: CK_RV = 101; pub const CKR_KEY_NEEDED: CK_RV = 102; pub const CKR_KEY_INDIGESTIBLE: CK_RV = 103; pub const CKR_KEY_FUNCTION_NOT_PERMITTED: CK_RV = 104; pub const CKR_KEY_NOT_WRAPPABLE: CK_RV = 105; pub const CKR_KEY_UNEXTRACTABLE: CK_RV = 106; pub const CKR_MECHANISM_INVALID: CK_RV = 112; pub const CKR_MECHANISM_PARAM_INVALID: CK_RV = 113; pub const CKR_OBJECT_HANDLE_INVALID: CK_RV = 130; pub const CKR_OPERATION_ACTIVE: CK_RV = 144; pub const CKR_OPERATION_NOT_INITIALIZED: CK_RV = 145; pub const CKR_PIN_INCORRECT: CK_RV = 160; pub const CKR_PIN_INVALID: CK_RV = 161; pub const CKR_PIN_LEN_RANGE: CK_RV = 162; pub const CKR_PIN_EXPIRED: CK_RV = 163; pub const CKR_PIN_LOCKED: CK_RV = 164; pub const CKR_SESSION_CLOSED: CK_RV = 176; pub const CKR_SESSION_COUNT: CK_RV = 177; pub const CKR_SESSION_HANDLE_INVALID: CK_RV = 179; pub const CKR_SESSION_PARALLEL_NOT_SUPPORTED: CK_RV = 180; pub const CKR_SESSION_READ_ONLY: CK_RV = 181; pub const CKR_SESSION_EXISTS: CK_RV = 182; pub const CKR_SESSION_READ_ONLY_EXISTS: CK_RV = 183; pub const CKR_SESSION_READ_WRITE_SO_EXISTS: CK_RV = 184; pub const CKR_SIGNATURE_INVALID: CK_RV = 192; pub const CKR_SIGNATURE_LEN_RANGE: CK_RV = 193; pub const CKR_TEMPLATE_INCOMPLETE: CK_RV = 208; pub const CKR_TEMPLATE_INCONSISTENT: CK_RV = 209; pub const CKR_TOKEN_NOT_PRESENT: CK_RV = 224; pub const CKR_TOKEN_NOT_RECOGNIZED: CK_RV = 225; pub const CKR_TOKEN_WRITE_PROTECTED: CK_RV = 226; pub const CKR_UNWRAPPING_KEY_HANDLE_INVALID: CK_RV = 240; pub const CKR_UNWRAPPING_KEY_SIZE_RANGE: CK_RV = 241; pub const CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 242; pub const CKR_USER_ALREADY_LOGGED_IN: CK_RV = 256; pub const CKR_USER_NOT_LOGGED_IN: CK_RV = 257; pub const CKR_USER_PIN_NOT_INITIALIZED: CK_RV = 258; pub const CKR_USER_TYPE_INVALID: CK_RV = 259; pub const CKR_USER_ANOTHER_ALREADY_LOGGED_IN: CK_RV = 260; pub const CKR_USER_TOO_MANY_TYPES: CK_RV = 261; pub const CKR_WRAPPED_KEY_INVALID: CK_RV = 272; pub const CKR_WRAPPED_KEY_LEN_RANGE: CK_RV = 274; pub const CKR_WRAPPING_KEY_HANDLE_INVALID: CK_RV = 275; pub const CKR_WRAPPING_KEY_SIZE_RANGE: CK_RV = 276; pub const CKR_WRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 277; pub const CKR_RANDOM_SEED_NOT_SUPPORTED: CK_RV = 288; pub const CKR_RANDOM_NO_RNG: CK_RV = 289; pub const CKR_DOMAIN_PARAMS_INVALID: CK_RV = 304; pub const CKR_BUFFER_TOO_SMALL: CK_RV = 336; pub const CKR_SAVED_STATE_INVALID: CK_RV = 352; pub const CKR_INFORMATION_SENSITIVE: CK_RV = 368; pub const CKR_STATE_UNSAVEABLE: CK_RV = 384; pub const CKR_CRYPTOKI_NOT_INITIALIZED: CK_RV = 400; pub const CKR_CRYPTOKI_ALREADY_INITIALIZED: CK_RV = 401; pub const CKR_MUTEX_BAD: CK_RV = 416; pub const CKR_MUTEX_NOT_LOCKED: CK_RV = 417; pub const CKR_NEW_PIN_MODE: CK_RV = 432; pub const CKR_NEXT_OTP: CK_RV = 433; pub const CKR_EXCEEDED_MAX_ITERATIONS: CK_RV = 448; pub const CKR_FIPS_SELF_TEST_FAILED: CK_RV = 449; pub const CKR_LIBRARY_LOAD_FAILED: CK_RV = 450; pub const CKR_PIN_TOO_WEAK: CK_RV = 451; pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 452; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CK_FALSE: CK_BBOOL = 0; pub const CK_TRUE: CK_BBOOL = 1; pub const FALSE: u32 = 0; pub const TRUE: u32 = 1; pub type CK_FLAGS = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_VERSION { pub major: ::std::os::raw::c_uchar, pub minor: ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout__CK_VERSION() { const UNINIT: ::std::mem::MaybeUninit<_CK_VERSION> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_VERSION>(), 2usize, concat!("Size of: ", stringify!(_CK_VERSION)) ); assert_eq!( ::std::mem::align_of::<_CK_VERSION>(), 1usize, concat!("Alignment of ", stringify!(_CK_VERSION)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).major) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(major) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).minor) as usize - ptr as usize }, 1usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(minor) ) ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_INFO { pub cryptokiVersion: _CK_VERSION, pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub libraryDescription: [::std::os::raw::c_uchar; 32usize], pub libraryVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_INFO>(), 88usize, concat!("Size of: ", stringify!(_CK_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cryptokiVersion) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(cryptokiVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 2usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryDescription) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryVersion) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryVersion) ) ); } pub type CK_NOTIFICATION = ::std::os::raw::c_ulong; pub const CKN_SURRENDER: ::std::os::raw::c_ulong = 0; pub type CK_SLOT_ID = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_SLOT_INFO { pub slotDescription: [::std::os::raw::c_uchar; 64usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_SLOT_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SLOT_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SLOT_INFO>(), 112usize, concat!("Size of: ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SLOT_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotDescription) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(slotDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 106usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(firmwareVersion) ) ); } impl Default for _CK_SLOT_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub const CKF_TOKEN_PRESENT: ::std::os::raw::c_ulong = 1; pub const CKF_REMOVABLE_DEVICE: ::std::os::raw::c_ulong = 2; pub const CKF_HW_SLOT: ::std::os::raw::c_ulong = 4; pub const CKF_ARRAY_ATTRIBUTE: ::std::os::raw::c_ulong = 1073741824; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_TOKEN_INFO { pub label: [::std::os::raw::c_uchar; 32usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub model: [::std::os::raw::c_uchar; 16usize], pub serialNumber: [::std::os::raw::c_uchar; 16usize], pub flags: CK_FLAGS, pub ulMaxSessionCount: ::std::os::raw::c_ulong, pub ulSessionCount: ::std::os::raw::c_ulong, pub ulMaxRwSessionCount: ::std::os::raw::c_ulong, pub ulRwSessionCount: ::std::os::raw::c_ulong, pub ulMaxPinLen: ::std::os::raw::c_ulong, pub ulMinPinLen: ::std::os::raw::c_ulong, pub ulTotalPublicMemory: ::std::os::raw::c_ulong, pub ulFreePublicMemory: ::std::os::raw::c_ulong, pub ulTotalPrivateMemory: ::std::os::raw::c_ulong, pub ulFreePrivateMemory: ::std::os::raw::c_ulong, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, pub utcTime: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout__CK_TOKEN_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_TOKEN_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_TOKEN_INFO>(), 208usize, concat!("Size of: ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_TOKEN_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(label) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).model) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(model) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).serialNumber) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(serialNumber) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxSessionCount) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSessionCount) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxRwSessionCount) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulRwSessionCount) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxPinLen) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinPinLen) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMinPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPublicMemory) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePublicMemory) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPrivateMemory) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePrivateMemory) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 186usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(firmwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).utcTime) as usize - ptr as usize }, 188usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(utcTime) ) ); } pub type CK_SESSION_HANDLE = ::std::os::raw::c_ulong; pub type CK_USER_TYPE = ::std::os::raw::c_ulong; pub type CK_STATE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_SESSION_INFO { pub slotID: CK_SLOT_ID, pub state: CK_STATE, pub flags: CK_FLAGS, pub ulDeviceError: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_SESSION_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SESSION_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SESSION_INFO>(), 32usize, concat!("Size of: ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SESSION_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotID) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(slotID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(state) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulDeviceError) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(ulDeviceError) ) ); } pub type CK_OBJECT_HANDLE = ::std::os::raw::c_ulong; pub type CK_OBJECT_CLASS = ::std::os::raw::c_ulong; pub type CK_HW_FEATURE_TYPE = ::std::os::raw::c_ulong; pub type CK_KEY_TYPE = ::std::os::raw::c_ulong; pub type CK_CERTIFICATE_TYPE = ::std::os::raw::c_ulong; pub type CK_ATTRIBUTE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_ATTRIBUTE { pub type_: CK_ATTRIBUTE_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_ATTRIBUTE() { const UNINIT: ::std::mem::MaybeUninit<_CK_ATTRIBUTE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_ATTRIBUTE>(), 24usize, concat!("Size of: ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( ::std::mem::align_of::<_CK_ATTRIBUTE>(), 8usize, concat!("Alignment of ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(ulValueLen) ) ); } impl Default for _CK_ATTRIBUTE { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_DATE { pub year: [::std::os::raw::c_uchar; 4usize], pub month: [::std::os::raw::c_uchar; 2usize], pub day: [::std::os::raw::c_uchar; 2usize], } #[test] fn bindgen_test_layout__CK_DATE() { const UNINIT: ::std::mem::MaybeUninit<_CK_DATE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_DATE>(), 8usize, concat!("Size of: ", stringify!(_CK_DATE)) ); assert_eq!( ::std::mem::align_of::<_CK_DATE>(), 1usize, concat!("Alignment of ", stringify!(_CK_DATE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).year) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(year) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).month) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(month) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).day) as usize - ptr as usize }, 6usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(day) ) ); } pub type CK_MECHANISM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_MECHANISM { pub mechanism: CK_MECHANISM_TYPE, pub pParameter: *mut ::std::os::raw::c_void, pub ulParameterLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_MECHANISM() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM>(), 24usize, concat!("Size of: ", stringify!(_CK_MECHANISM)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM>(), 8usize, concat!("Alignment of ", stringify!(_CK_MECHANISM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mechanism) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(mechanism) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParameter) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(pParameter) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulParameterLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(ulParameterLen) ) ); } impl Default for _CK_MECHANISM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_MECHANISM_INFO { pub ulMinKeySize: ::std::os::raw::c_ulong, pub ulMaxKeySize: ::std::os::raw::c_ulong, pub flags: CK_FLAGS, } #[test] fn bindgen_test_layout__CK_MECHANISM_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM_INFO>(), 24usize, concat!("Size of: ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinKeySize) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMinKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxKeySize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMaxKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(flags) ) ); } pub type CK_PARAM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAM { pub type_: CK_PARAM_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAM() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(CK_OTP_PARAM)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_PARAM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(ulValueLen) ) ); } impl Default for CK_OTP_PARAM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAMS { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAMS() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_PARAMS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_SIGNATURE_INFO { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_SIGNATURE_INFO() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_SIGNATURE_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RSA_PKCS_MGF_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_rsa_pkcs_pss_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub sLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_pss_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).sLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(sLen) ) ); } pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_rsa_pkcs_oaep_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub source: CK_RSA_PKCS_OAEP_SOURCE_TYPE, pub pSourceData: *mut ::std::os::raw::c_void, pub ulSourceDataLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_oaep_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(source) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSourceData) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(pSourceData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSourceDataLen) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(ulSourceDataLen) ) ); } impl Default for ck_rsa_pkcs_oaep_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_aes_ctr_params { pub ulCounterBits: ::std::os::raw::c_ulong, pub cb: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout_ck_aes_ctr_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_aes_ctr_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_aes_ctr_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCounterBits) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(ulCounterBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cb) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(cb) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_gcm_params { pub pIv: *mut ::std::os::raw::c_uchar, pub ulIvLen: ::std::os::raw::c_ulong, pub ulIvBits: ::std::os::raw::c_ulong, pub pAAD: *mut ::std::os::raw::c_uchar, pub ulAADLen: ::std::os::raw::c_ulong, pub ulTagBits: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_gcm_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 48usize, concat!("Size of: ", stringify!(ck_gcm_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_gcm_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pIv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pIv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvBits) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pAAD) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pAAD) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulAADLen) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulAADLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTagBits) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulTagBits) ) ); } impl Default for ck_gcm_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type ck_ec_kdf_t = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_ecdh1_derive_params { pub kdf: ck_ec_kdf_t, pub ulSharedDataLen: ::std::os::raw::c_ulong, pub pSharedData: *mut ::std::os::raw::c_uchar, pub ulPublicDataLen: ::std::os::raw::c_ulong, pub pPublicData: *mut ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout_ck_ecdh1_derive_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(kdf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSharedDataLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulSharedDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSharedData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pSharedData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulPublicDataLen) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulPublicDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pPublicData) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pPublicData) ) ); } impl Default for ck_ecdh1_derive_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_key_derivation_string_data { pub pData: *mut ::std::os::raw::c_uchar, pub ulLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_key_derivation_string_data() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(ulLen) ) ); } impl Default for ck_key_derivation_string_data { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_des_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 8usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_des_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_des_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_aes_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 16usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_aes_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 32usize, concat!("Size of: ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_aes_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RV = ::std::os::raw::c_ulong; pub type CK_NOTIFY = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, event: CK_NOTIFICATION, application: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_Initialize = ::std::option::Option CK_RV>; pub type CK_C_Finalize = ::std::option::Option CK_RV>; pub type CK_C_GetInfo = ::std::option::Option CK_RV>; pub type CK_C_GetFunctionList = ::std::option::Option< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, >; pub type CK_C_GetSlotList = ::std::option::Option< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetSlotInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, >; pub type CK_C_GetTokenInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, >; pub type CK_C_WaitForSlotEvent = ::std::option::Option< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_GetMechanismList = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetMechanismInfo = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, >; pub type CK_C_InitToken = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, >; pub type CK_C_InitPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_OpenSession = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, >; pub type CK_C_CloseSession = ::std::option::Option CK_RV>; pub type CK_C_CloseAllSessions = ::std::option::Option CK_RV>; pub type CK_C_GetSessionInfo = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, >; pub type CK_C_GetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Login = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_Logout = ::std::option::Option CK_RV>; pub type CK_C_CreateObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_CopyObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DestroyObject = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_GetObjectSize = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjects = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsFinal = ::std::option::Option CK_RV>; pub type CK_C_EncryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Encrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Decrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestInit = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, >; pub type CK_C_Digest = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestKey = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_DigestFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Sign = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SignRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Verify = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_VerifyRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptDigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptVerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_GenerateKeyPair = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_WrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_UnwrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DeriveKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SeedRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetFunctionStatus = ::std::option::Option CK_RV>; pub type CK_C_CancelFunction = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_FUNCTION_LIST { pub version: _CK_VERSION, pub C_Initialize: CK_C_Initialize, pub C_Finalize: CK_C_Finalize, pub C_GetInfo: CK_C_GetInfo, pub C_GetFunctionList: CK_C_GetFunctionList, pub C_GetSlotList: CK_C_GetSlotList, pub C_GetSlotInfo: CK_C_GetSlotInfo, pub C_GetTokenInfo: CK_C_GetTokenInfo, pub C_GetMechanismList: CK_C_GetMechanismList, pub C_GetMechanismInfo: CK_C_GetMechanismInfo, pub C_InitToken: CK_C_InitToken, pub C_InitPIN: CK_C_InitPIN, pub C_SetPIN: CK_C_SetPIN, pub C_OpenSession: CK_C_OpenSession, pub C_CloseSession: CK_C_CloseSession, pub C_CloseAllSessions: CK_C_CloseAllSessions, pub C_GetSessionInfo: CK_C_GetSessionInfo, pub C_GetOperationState: CK_C_GetOperationState, pub C_SetOperationState: CK_C_SetOperationState, pub C_Login: CK_C_Login, pub C_Logout: CK_C_Logout, pub C_CreateObject: CK_C_CreateObject, pub C_CopyObject: CK_C_CopyObject, pub C_DestroyObject: CK_C_DestroyObject, pub C_GetObjectSize: CK_C_GetObjectSize, pub C_GetAttributeValue: CK_C_GetAttributeValue, pub C_SetAttributeValue: CK_C_SetAttributeValue, pub C_FindObjectsInit: CK_C_FindObjectsInit, pub C_FindObjects: CK_C_FindObjects, pub C_FindObjectsFinal: CK_C_FindObjectsFinal, pub C_EncryptInit: CK_C_EncryptInit, pub C_Encrypt: CK_C_Encrypt, pub C_EncryptUpdate: CK_C_EncryptUpdate, pub C_EncryptFinal: CK_C_EncryptFinal, pub C_DecryptInit: CK_C_DecryptInit, pub C_Decrypt: CK_C_Decrypt, pub C_DecryptUpdate: CK_C_DecryptUpdate, pub C_DecryptFinal: CK_C_DecryptFinal, pub C_DigestInit: CK_C_DigestInit, pub C_Digest: CK_C_Digest, pub C_DigestUpdate: CK_C_DigestUpdate, pub C_DigestKey: CK_C_DigestKey, pub C_DigestFinal: CK_C_DigestFinal, pub C_SignInit: CK_C_SignInit, pub C_Sign: CK_C_Sign, pub C_SignUpdate: CK_C_SignUpdate, pub C_SignFinal: CK_C_SignFinal, pub C_SignRecoverInit: CK_C_SignRecoverInit, pub C_SignRecover: CK_C_SignRecover, pub C_VerifyInit: CK_C_VerifyInit, pub C_Verify: CK_C_Verify, pub C_VerifyUpdate: CK_C_VerifyUpdate, pub C_VerifyFinal: CK_C_VerifyFinal, pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, pub C_VerifyRecover: CK_C_VerifyRecover, pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, pub C_GenerateKey: CK_C_GenerateKey, pub C_GenerateKeyPair: CK_C_GenerateKeyPair, pub C_WrapKey: CK_C_WrapKey, pub C_UnwrapKey: CK_C_UnwrapKey, pub C_DeriveKey: CK_C_DeriveKey, pub C_SeedRandom: CK_C_SeedRandom, pub C_GenerateRandom: CK_C_GenerateRandom, pub C_GetFunctionStatus: CK_C_GetFunctionStatus, pub C_CancelFunction: CK_C_CancelFunction, pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, } #[test] fn bindgen_test_layout__CK_FUNCTION_LIST() { const UNINIT: ::std::mem::MaybeUninit<_CK_FUNCTION_LIST> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_FUNCTION_LIST>(), 552usize, concat!("Size of: ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( ::std::mem::align_of::<_CK_FUNCTION_LIST>(), 8usize, concat!("Alignment of ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(version) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Initialize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Initialize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Finalize) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Finalize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetInfo) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionList) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotList) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotInfo) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetTokenInfo) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetTokenInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismList) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismInfo) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitToken) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitToken) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitPIN) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetPIN) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_OpenSession) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_OpenSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseSession) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseAllSessions) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseAllSessions) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSessionInfo) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSessionInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetOperationState) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetOperationState) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Login) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Login) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Logout) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Logout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CreateObject) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CreateObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CopyObject) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CopyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DestroyObject) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DestroyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetObjectSize) as usize - ptr as usize }, 192usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetObjectSize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetAttributeValue) as usize - ptr as usize }, 200usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetAttributeValue) as usize - ptr as usize }, 208usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsInit) as usize - ptr as usize }, 216usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjects) as usize - ptr as usize }, 224usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjects) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsFinal) as usize - ptr as usize }, 232usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptInit) as usize - ptr as usize }, 240usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Encrypt) as usize - ptr as usize }, 248usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Encrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptUpdate) as usize - ptr as usize }, 256usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptFinal) as usize - ptr as usize }, 264usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptInit) as usize - ptr as usize }, 272usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Decrypt) as usize - ptr as usize }, 280usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Decrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptUpdate) as usize - ptr as usize }, 288usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptFinal) as usize - ptr as usize }, 296usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestInit) as usize - ptr as usize }, 304usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Digest) as usize - ptr as usize }, 312usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Digest) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestUpdate) as usize - ptr as usize }, 320usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestKey) as usize - ptr as usize }, 328usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestFinal) as usize - ptr as usize }, 336usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignInit) as usize - ptr as usize }, 344usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Sign) as usize - ptr as usize }, 352usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Sign) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignUpdate) as usize - ptr as usize }, 360usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignFinal) as usize - ptr as usize }, 368usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecoverInit) as usize - ptr as usize }, 376usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecover) as usize - ptr as usize }, 384usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyInit) as usize - ptr as usize }, 392usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Verify) as usize - ptr as usize }, 400usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Verify) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyUpdate) as usize - ptr as usize }, 408usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyFinal) as usize - ptr as usize }, 416usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecoverInit) as usize - ptr as usize }, 424usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecover) as usize - ptr as usize }, 432usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestEncryptUpdate) as usize - ptr as usize }, 440usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptDigestUpdate) as usize - ptr as usize }, 448usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptDigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignEncryptUpdate) as usize - ptr as usize }, 456usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptVerifyUpdate) as usize - ptr as usize }, 464usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptVerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKey) as usize - ptr as usize }, 472usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKeyPair) as usize - ptr as usize }, 480usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKeyPair) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WrapKey) as usize - ptr as usize }, 488usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_UnwrapKey) as usize - ptr as usize }, 496usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_UnwrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DeriveKey) as usize - ptr as usize }, 504usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DeriveKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SeedRandom) as usize - ptr as usize }, 512usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SeedRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateRandom) as usize - ptr as usize }, 520usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionStatus) as usize - ptr as usize }, 528usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionStatus) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CancelFunction) as usize - ptr as usize }, 536usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CancelFunction) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WaitForSlotEvent) as usize - ptr as usize }, 544usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WaitForSlotEvent) ) ); } pub type CK_CREATEMUTEX = ::std::option::Option CK_RV>; pub type CK_DESTROYMUTEX = ::std::option::Option CK_RV>; pub type CK_LOCKMUTEX = ::std::option::Option CK_RV>; pub type CK_UNLOCKMUTEX = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_C_INITIALIZE_ARGS { pub CreateMutex: CK_CREATEMUTEX, pub DestroyMutex: CK_DESTROYMUTEX, pub LockMutex: CK_LOCKMUTEX, pub UnlockMutex: CK_UNLOCKMUTEX, pub flags: CK_FLAGS, pub pReserved: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout__CK_C_INITIALIZE_ARGS() { const UNINIT: ::std::mem::MaybeUninit<_CK_C_INITIALIZE_ARGS> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_C_INITIALIZE_ARGS>(), 48usize, concat!("Size of: ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( ::std::mem::align_of::<_CK_C_INITIALIZE_ARGS>(), 8usize, concat!("Alignment of ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).CreateMutex) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(CreateMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).DestroyMutex) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(DestroyMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).LockMutex) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(LockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).UnlockMutex) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(UnlockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pReserved) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(pReserved) ) ); } impl Default for _CK_C_INITIALIZE_ARGS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_BYTE = ::std::os::raw::c_uchar; pub type CK_CHAR = ::std::os::raw::c_uchar; pub type CK_UTF8CHAR = ::std::os::raw::c_uchar; pub type CK_BBOOL = ::std::os::raw::c_uchar; pub type CK_ULONG = ::std::os::raw::c_ulong; pub type CK_LONG = ::std::os::raw::c_long; pub type CK_BYTE_PTR = *mut CK_BYTE; pub type CK_CHAR_PTR = *mut CK_CHAR; pub type CK_UTF8CHAR_PTR = *mut CK_UTF8CHAR; pub type CK_ULONG_PTR = *mut CK_ULONG; pub type CK_VOID_PTR = *mut ::std::os::raw::c_void; pub type CK_VOID_PTR_PTR = *mut *mut ::std::os::raw::c_void; pub type CK_VERSION = _CK_VERSION; pub type CK_VERSION_PTR = *mut _CK_VERSION; pub type CK_INFO = _CK_INFO; pub type CK_INFO_PTR = *mut _CK_INFO; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SLOT_INFO = _CK_SLOT_INFO; pub type CK_SLOT_INFO_PTR = *mut _CK_SLOT_INFO; pub type CK_TOKEN_INFO = _CK_TOKEN_INFO; pub type CK_TOKEN_INFO_PTR = *mut _CK_TOKEN_INFO; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; pub type CK_SESSION_INFO = _CK_SESSION_INFO; pub type CK_SESSION_INFO_PTR = *mut _CK_SESSION_INFO; pub type CK_OBJECT_HANDLE_PTR = *mut CK_OBJECT_HANDLE; pub type CK_OBJECT_CLASS_PTR = *mut CK_OBJECT_CLASS; pub type CK_ATTRIBUTE = _CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR = *mut _CK_ATTRIBUTE; pub type CK_DATE = _CK_DATE; pub type CK_DATE_PTR = *mut _CK_DATE; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; pub type CK_MECHANISM = _CK_MECHANISM; pub type CK_MECHANISM_PTR = *mut _CK_MECHANISM; pub type CK_MECHANISM_INFO = _CK_MECHANISM_INFO; pub type CK_MECHANISM_INFO_PTR = *mut _CK_MECHANISM_INFO; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_otp_mechanism_info { _unused: [u8; 0], } pub type CK_OTP_MECHANISM_INFO = ck_otp_mechanism_info; pub type CK_OTP_MECHANISM_INFO_PTR = *mut ck_otp_mechanism_info; pub type CK_FUNCTION_LIST = _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR = *mut _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut _CK_FUNCTION_LIST; pub type CK_C_INITIALIZE_ARGS = _CK_C_INITIALIZE_ARGS; pub type CK_C_INITIALIZE_ARGS_PTR = *mut _CK_C_INITIALIZE_ARGS; pub type CK_RSA_PKCS_PSS_PARAMS = ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_PSS_PARAMS_PTR = *mut ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_OAEP_PARAMS = ck_rsa_pkcs_oaep_params; pub type CK_RSA_PKCS_OAEP_PARAMS_PTR = *mut ck_rsa_pkcs_oaep_params; pub type CK_AES_CTR_PARAMS = ck_aes_ctr_params; pub type CK_AES_CTR_PARAMS_PTR = *mut ck_aes_ctr_params; pub type CK_GCM_PARAMS = ck_gcm_params; pub type CK_GCM_PARAMS_PTR = *mut ck_gcm_params; pub type CK_ECDH1_DERIVE_PARAMS = ck_ecdh1_derive_params; pub type CK_ECDH1_DERIVE_PARAMS_PTR = *mut ck_ecdh1_derive_params; pub type CK_KEY_DERIVATION_STRING_DATA = ck_key_derivation_string_data; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut ck_key_derivation_string_data; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS = ck_des_cbc_encrypt_data_params; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_des_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS = ck_aes_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_aes_cbc_encrypt_data_params; extern crate libloading; pub struct Pkcs11 { __library: ::libloading::Library, pub C_Initialize: Result< unsafe extern "C" fn(init_args: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_Finalize: Result< unsafe extern "C" fn(pReserved: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_GetInfo: Result CK_RV, ::libloading::Error>, pub C_GetFunctionList: Result< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, ::libloading::Error, >, pub C_GetSlotList: Result< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetSlotInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetTokenInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, ::libloading::Error, >, pub C_WaitForSlotEvent: Result< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismList: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismInfo: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, ::libloading::Error, >, pub C_InitToken: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, ::libloading::Error, >, pub C_InitPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_OpenSession: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CloseSession: Result CK_RV, ::libloading::Error>, pub C_CloseAllSessions: Result CK_RV, ::libloading::Error>, pub C_GetSessionInfo: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Login: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_Logout: Result CK_RV, ::libloading::Error>, pub C_CreateObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CopyObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DestroyObject: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_GetObjectSize: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjects: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsFinal: Result CK_RV, ::libloading::Error>, pub C_EncryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Encrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Decrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestInit: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, ::libloading::Error, >, pub C_Digest: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestKey: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_DigestFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Sign: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Verify: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptDigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptVerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKeyPair: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_WrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_UnwrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DeriveKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SeedRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetFunctionStatus: Result CK_RV, ::libloading::Error>, pub C_CancelFunction: Result CK_RV, ::libloading::Error>, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result where P: AsRef<::std::ffi::OsStr>, { let library = ::libloading::Library::new(path)?; Self::from_library(library) } pub unsafe fn from_library(library: L) -> Result where L: Into<::libloading::Library>, { let __library = library.into(); let C_Initialize = __library.get(b"C_Initialize\0").map(|sym| *sym); let C_Finalize = __library.get(b"C_Finalize\0").map(|sym| *sym); let C_GetInfo = __library.get(b"C_GetInfo\0").map(|sym| *sym); let C_GetFunctionList = __library.get(b"C_GetFunctionList\0").map(|sym| *sym); let C_GetSlotList = __library.get(b"C_GetSlotList\0").map(|sym| *sym); let C_GetSlotInfo = __library.get(b"C_GetSlotInfo\0").map(|sym| *sym); let C_GetTokenInfo = __library.get(b"C_GetTokenInfo\0").map(|sym| *sym); let C_WaitForSlotEvent = __library.get(b"C_WaitForSlotEvent\0").map(|sym| *sym); let C_GetMechanismList = __library.get(b"C_GetMechanismList\0").map(|sym| *sym); let C_GetMechanismInfo = __library.get(b"C_GetMechanismInfo\0").map(|sym| *sym); let C_InitToken = __library.get(b"C_InitToken\0").map(|sym| *sym); let C_InitPIN = __library.get(b"C_InitPIN\0").map(|sym| *sym); let C_SetPIN = __library.get(b"C_SetPIN\0").map(|sym| *sym); let C_OpenSession = __library.get(b"C_OpenSession\0").map(|sym| *sym); let C_CloseSession = __library.get(b"C_CloseSession\0").map(|sym| *sym); let C_CloseAllSessions = __library.get(b"C_CloseAllSessions\0").map(|sym| *sym); let C_GetSessionInfo = __library.get(b"C_GetSessionInfo\0").map(|sym| *sym); let C_GetOperationState = __library.get(b"C_GetOperationState\0").map(|sym| *sym); let C_SetOperationState = __library.get(b"C_SetOperationState\0").map(|sym| *sym); let C_Login = __library.get(b"C_Login\0").map(|sym| *sym); let C_Logout = __library.get(b"C_Logout\0").map(|sym| *sym); let C_CreateObject = __library.get(b"C_CreateObject\0").map(|sym| *sym); let C_CopyObject = __library.get(b"C_CopyObject\0").map(|sym| *sym); let C_DestroyObject = __library.get(b"C_DestroyObject\0").map(|sym| *sym); let C_GetObjectSize = __library.get(b"C_GetObjectSize\0").map(|sym| *sym); let C_GetAttributeValue = __library.get(b"C_GetAttributeValue\0").map(|sym| *sym); let C_SetAttributeValue = __library.get(b"C_SetAttributeValue\0").map(|sym| *sym); let C_FindObjectsInit = __library.get(b"C_FindObjectsInit\0").map(|sym| *sym); let C_FindObjects = __library.get(b"C_FindObjects\0").map(|sym| *sym); let C_FindObjectsFinal = __library.get(b"C_FindObjectsFinal\0").map(|sym| *sym); let C_EncryptInit = __library.get(b"C_EncryptInit\0").map(|sym| *sym); let C_Encrypt = __library.get(b"C_Encrypt\0").map(|sym| *sym); let C_EncryptUpdate = __library.get(b"C_EncryptUpdate\0").map(|sym| *sym); let C_EncryptFinal = __library.get(b"C_EncryptFinal\0").map(|sym| *sym); let C_DecryptInit = __library.get(b"C_DecryptInit\0").map(|sym| *sym); let C_Decrypt = __library.get(b"C_Decrypt\0").map(|sym| *sym); let C_DecryptUpdate = __library.get(b"C_DecryptUpdate\0").map(|sym| *sym); let C_DecryptFinal = __library.get(b"C_DecryptFinal\0").map(|sym| *sym); let C_DigestInit = __library.get(b"C_DigestInit\0").map(|sym| *sym); let C_Digest = __library.get(b"C_Digest\0").map(|sym| *sym); let C_DigestUpdate = __library.get(b"C_DigestUpdate\0").map(|sym| *sym); let C_DigestKey = __library.get(b"C_DigestKey\0").map(|sym| *sym); let C_DigestFinal = __library.get(b"C_DigestFinal\0").map(|sym| *sym); let C_SignInit = __library.get(b"C_SignInit\0").map(|sym| *sym); let C_Sign = __library.get(b"C_Sign\0").map(|sym| *sym); let C_SignUpdate = __library.get(b"C_SignUpdate\0").map(|sym| *sym); let C_SignFinal = __library.get(b"C_SignFinal\0").map(|sym| *sym); let C_SignRecoverInit = __library.get(b"C_SignRecoverInit\0").map(|sym| *sym); let C_SignRecover = __library.get(b"C_SignRecover\0").map(|sym| *sym); let C_VerifyInit = __library.get(b"C_VerifyInit\0").map(|sym| *sym); let C_Verify = __library.get(b"C_Verify\0").map(|sym| *sym); let C_VerifyUpdate = __library.get(b"C_VerifyUpdate\0").map(|sym| *sym); let C_VerifyFinal = __library.get(b"C_VerifyFinal\0").map(|sym| *sym); let C_VerifyRecoverInit = __library.get(b"C_VerifyRecoverInit\0").map(|sym| *sym); let C_VerifyRecover = __library.get(b"C_VerifyRecover\0").map(|sym| *sym); let C_DigestEncryptUpdate = __library.get(b"C_DigestEncryptUpdate\0").map(|sym| *sym); let C_DecryptDigestUpdate = __library.get(b"C_DecryptDigestUpdate\0").map(|sym| *sym); let C_SignEncryptUpdate = __library.get(b"C_SignEncryptUpdate\0").map(|sym| *sym); let C_DecryptVerifyUpdate = __library.get(b"C_DecryptVerifyUpdate\0").map(|sym| *sym); let C_GenerateKey = __library.get(b"C_GenerateKey\0").map(|sym| *sym); let C_GenerateKeyPair = __library.get(b"C_GenerateKeyPair\0").map(|sym| *sym); let C_WrapKey = __library.get(b"C_WrapKey\0").map(|sym| *sym); let C_UnwrapKey = __library.get(b"C_UnwrapKey\0").map(|sym| *sym); let C_DeriveKey = __library.get(b"C_DeriveKey\0").map(|sym| *sym); let C_SeedRandom = __library.get(b"C_SeedRandom\0").map(|sym| *sym); let C_GenerateRandom = __library.get(b"C_GenerateRandom\0").map(|sym| *sym); let C_GetFunctionStatus = __library.get(b"C_GetFunctionStatus\0").map(|sym| *sym); let C_CancelFunction = __library.get(b"C_CancelFunction\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, C_Finalize, C_GetInfo, C_GetFunctionList, C_GetSlotList, C_GetSlotInfo, C_GetTokenInfo, C_WaitForSlotEvent, C_GetMechanismList, C_GetMechanismInfo, C_InitToken, C_InitPIN, C_SetPIN, C_OpenSession, C_CloseSession, C_CloseAllSessions, C_GetSessionInfo, C_GetOperationState, C_SetOperationState, C_Login, C_Logout, C_CreateObject, C_CopyObject, C_DestroyObject, C_GetObjectSize, C_GetAttributeValue, C_SetAttributeValue, C_FindObjectsInit, C_FindObjects, C_FindObjectsFinal, C_EncryptInit, C_Encrypt, C_EncryptUpdate, C_EncryptFinal, C_DecryptInit, C_Decrypt, C_DecryptUpdate, C_DecryptFinal, C_DigestInit, C_Digest, C_DigestUpdate, C_DigestKey, C_DigestFinal, C_SignInit, C_Sign, C_SignUpdate, C_SignFinal, C_SignRecoverInit, C_SignRecover, C_VerifyInit, C_Verify, C_VerifyUpdate, C_VerifyFinal, C_VerifyRecoverInit, C_VerifyRecover, C_DigestEncryptUpdate, C_DecryptDigestUpdate, C_SignEncryptUpdate, C_DecryptVerifyUpdate, C_GenerateKey, C_GenerateKeyPair, C_WrapKey, C_UnwrapKey, C_DeriveKey, C_SeedRandom, C_GenerateRandom, C_GetFunctionStatus, C_CancelFunction, }) } pub unsafe fn C_Initialize(&self, init_args: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Initialize .as_ref() .expect("Expected function, got error."))(init_args) } pub unsafe fn C_Finalize(&self, pReserved: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Finalize .as_ref() .expect("Expected function, got error."))(pReserved) } pub unsafe fn C_GetInfo(&self, info: *mut _CK_INFO) -> CK_RV { (self .C_GetInfo .as_ref() .expect("Expected function, got error."))(info) } pub unsafe fn C_GetFunctionList(&self, function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV { (self .C_GetFunctionList .as_ref() .expect("Expected function, got error."))(function_list) } pub unsafe fn C_GetSlotList( &self, token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetSlotList .as_ref() .expect("Expected function, got error."))(token_present, slot_list, ulCount) } pub unsafe fn C_GetSlotInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV { (self .C_GetSlotInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_GetTokenInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV { (self .C_GetTokenInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_WaitForSlotEvent( &self, flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV { (self .C_WaitForSlotEvent .as_ref() .expect("Expected function, got error."))(flags, slot, pReserved) } pub unsafe fn C_GetMechanismList( &self, slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetMechanismList .as_ref() .expect("Expected function, got error."))(slotID, mechanism_list, ulCount) } pub unsafe fn C_GetMechanismInfo( &self, slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV { (self .C_GetMechanismInfo .as_ref() .expect("Expected function, got error."))(slotID, type_, info) } pub unsafe fn C_InitToken( &self, slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV { (self .C_InitToken .as_ref() .expect("Expected function, got error."))(slotID, pin, pin_len, label) } pub unsafe fn C_InitPIN( &self, session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_InitPIN .as_ref() .expect("Expected function, got error."))(session, pin, pin_len) } pub unsafe fn C_SetPIN( &self, session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetPIN .as_ref() .expect("Expected function, got error."))( session, old_pin, old_len, new_pin, new_len ) } pub unsafe fn C_OpenSession( &self, slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV { (self .C_OpenSession .as_ref() .expect("Expected function, got error."))( slotID, flags, application, notify, session ) } pub unsafe fn C_CloseSession(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CloseSession .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CloseAllSessions(&self, slotID: CK_SLOT_ID) -> CK_RV { (self .C_CloseAllSessions .as_ref() .expect("Expected function, got error."))(slotID) } pub unsafe fn C_GetSessionInfo( &self, session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO, ) -> CK_RV { (self .C_GetSessionInfo .as_ref() .expect("Expected function, got error."))(session, info) } pub unsafe fn C_GetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len ) } pub unsafe fn C_SetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len, encryption_key, authentiation_key, ) } pub unsafe fn C_Login( &self, session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Login .as_ref() .expect("Expected function, got error."))(session, user_type, pin, pin_len) } pub unsafe fn C_Logout(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_Logout .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CreateObject( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CreateObject .as_ref() .expect("Expected function, got error."))(session, templ, ulCount, object) } pub unsafe fn C_CopyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CopyObject .as_ref() .expect("Expected function, got error."))( session, object, templ, ulCount, new_object ) } pub unsafe fn C_DestroyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DestroyObject .as_ref() .expect("Expected function, got error."))(session, object) } pub unsafe fn C_GetObjectSize( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetObjectSize .as_ref() .expect("Expected function, got error."))(session, object, size) } pub unsafe fn C_GetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_SetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_FindObjectsInit( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjectsInit .as_ref() .expect("Expected function, got error."))(session, templ, ulCount) } pub unsafe fn C_FindObjects( &self, session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjects .as_ref() .expect("Expected function, got error."))( session, object, max_object_count, object_count, ) } pub unsafe fn C_FindObjectsFinal(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_FindObjectsFinal .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_EncryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_EncryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Encrypt( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Encrypt .as_ref() .expect("Expected function, got error."))( session, data, data_len, encrypted_data, encrypted_data_len, ) } pub unsafe fn C_EncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_EncryptFinal( &self, session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptFinal .as_ref() .expect("Expected function, got error."))( session, last_encrypted_part, last_encrypted_part_len, ) } pub unsafe fn C_DecryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DecryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Decrypt( &self, session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Decrypt .as_ref() .expect("Expected function, got error."))( session, encrypted_data, encrypted_data_len, data, data_len, ) } pub unsafe fn C_DecryptUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_DecryptFinal( &self, session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptFinal .as_ref() .expect("Expected function, got error."))(session, last_part, last_part_len) } pub unsafe fn C_DigestInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, ) -> CK_RV { (self .C_DigestInit .as_ref() .expect("Expected function, got error."))(session, mechanism) } pub unsafe fn C_Digest( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Digest .as_ref() .expect("Expected function, got error."))( session, data, data_len, digest, digest_len ) } pub unsafe fn C_DigestUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_DigestKey(&self, session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV { (self .C_DigestKey .as_ref() .expect("Expected function, got error."))(session, key) } pub unsafe fn C_DigestFinal( &self, session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestFinal .as_ref() .expect("Expected function, got error."))(session, digest, digest_len) } pub unsafe fn C_SignInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Sign( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self.C_Sign.as_ref().expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_SignUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_SignFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_SignRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_SignRecover( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignRecover .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Verify( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Verify .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_VerifyFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_VerifyRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_VerifyRecover( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyRecover .as_ref() .expect("Expected function, got error."))( session, signature, signature_len, data, data_len, ) } pub unsafe fn C_DigestEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptDigestUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptDigestUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_SignEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptVerifyUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptVerifyUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_GenerateKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKey .as_ref() .expect("Expected function, got error."))( session, mechanism, templ, ulCount, key ) } pub unsafe fn C_GenerateKeyPair( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKeyPair .as_ref() .expect("Expected function, got error."))( session, mechanism, public_key_template, public_key_attribute_count, private_key_template, private_key_attribute_count, public_key, private_key, ) } pub unsafe fn C_WrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_WrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, wrapping_key, key, wrapped_key, wrapped_key_len, ) } pub unsafe fn C_UnwrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_UnwrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, unwrapping_key, wrapped_key, wrapped_key_len, templ, attribute_count, key, ) } pub unsafe fn C_DeriveKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DeriveKey .as_ref() .expect("Expected function, got error."))( session, mechanism, base_key, templ, attribute_count, key, ) } pub unsafe fn C_SeedRandom( &self, session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SeedRandom .as_ref() .expect("Expected function, got error."))(session, seed, seed_len) } pub unsafe fn C_GenerateRandom( &self, session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GenerateRandom .as_ref() .expect("Expected function, got error."))(session, random_data, random_len) } pub unsafe fn C_GetFunctionStatus(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_GetFunctionStatus .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CancelFunction(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CancelFunction .as_ref() .expect("Expected function, got error."))(session) } } cryptoki-sys-0.1.7/src/bindings/x86_64-unknown-linux-gnu.rs000064400000000000000000005276021046102023000216360ustar 00000000000000/* automatically generated by rust-bindgen 0.66.1 */ pub const PKCS11_H: u32 = 1; pub const CRYPTOKI_VERSION_MAJOR: CK_BYTE = 2; pub const CRYPTOKI_VERSION_MINOR: CK_BYTE = 40; pub const P11_KIT_CRYPTOKI_VERSION_REVISION: u32 = 0; pub const CRYPTOKI_COMPAT: u32 = 1; pub const CKF_RNG: CK_FLAGS = 1; pub const CKF_WRITE_PROTECTED: CK_FLAGS = 2; pub const CKF_LOGIN_REQUIRED: CK_FLAGS = 4; pub const CKF_USER_PIN_INITIALIZED: CK_FLAGS = 8; pub const CKF_RESTORE_KEY_NOT_NEEDED: CK_FLAGS = 32; pub const CKF_CLOCK_ON_TOKEN: CK_FLAGS = 64; pub const CKF_PROTECTED_AUTHENTICATION_PATH: CK_FLAGS = 256; pub const CKF_DUAL_CRYPTO_OPERATIONS: CK_FLAGS = 512; pub const CKF_TOKEN_INITIALIZED: CK_FLAGS = 1024; pub const CKF_SECONDARY_AUTHENTICATION: CK_FLAGS = 2048; pub const CKF_USER_PIN_COUNT_LOW: CK_FLAGS = 65536; pub const CKF_USER_PIN_FINAL_TRY: CK_FLAGS = 131072; pub const CKF_USER_PIN_LOCKED: CK_FLAGS = 262144; pub const CKF_USER_PIN_TO_BE_CHANGED: CK_FLAGS = 524288; pub const CKF_SO_PIN_COUNT_LOW: CK_FLAGS = 1048576; pub const CKF_SO_PIN_FINAL_TRY: CK_FLAGS = 2097152; pub const CKF_SO_PIN_LOCKED: CK_FLAGS = 4194304; pub const CKF_SO_PIN_TO_BE_CHANGED: CK_FLAGS = 8388608; pub const CKF_ERROR_STATE: CK_FLAGS = 16777216; pub const CK_EFFECTIVELY_INFINITE: CK_ULONG = 0; pub const CK_INVALID_HANDLE: CK_ULONG = 0; pub const CKU_SO: CK_USER_TYPE = 0; pub const CKU_USER: CK_USER_TYPE = 1; pub const CKU_CONTEXT_SPECIFIC: CK_USER_TYPE = 2; pub const CKS_RO_PUBLIC_SESSION: CK_STATE = 0; pub const CKS_RO_USER_FUNCTIONS: CK_STATE = 1; pub const CKS_RW_PUBLIC_SESSION: CK_STATE = 2; pub const CKS_RW_USER_FUNCTIONS: CK_STATE = 3; pub const CKS_RW_SO_FUNCTIONS: CK_STATE = 4; pub const CKF_RW_SESSION: CK_FLAGS = 2; pub const CKF_SERIAL_SESSION: CK_FLAGS = 4; pub const CKO_DATA: CK_OBJECT_CLASS = 0; pub const CKO_CERTIFICATE: CK_OBJECT_CLASS = 1; pub const CKO_PUBLIC_KEY: CK_OBJECT_CLASS = 2; pub const CKO_PRIVATE_KEY: CK_OBJECT_CLASS = 3; pub const CKO_SECRET_KEY: CK_OBJECT_CLASS = 4; pub const CKO_HW_FEATURE: CK_OBJECT_CLASS = 5; pub const CKO_DOMAIN_PARAMETERS: CK_OBJECT_CLASS = 6; pub const CKO_MECHANISM: CK_OBJECT_CLASS = 7; pub const CKO_OTP_KEY: CK_OBJECT_CLASS = 8; pub const CKH_MONOTONIC_COUNTER: CK_HW_FEATURE_TYPE = 1; pub const CKH_CLOCK: CK_HW_FEATURE_TYPE = 2; pub const CKH_USER_INTERFACE: CK_HW_FEATURE_TYPE = 3; pub const CKK_RSA: CK_KEY_TYPE = 0; pub const CKK_DSA: CK_KEY_TYPE = 1; pub const CKK_DH: CK_KEY_TYPE = 2; pub const CKK_ECDSA: CK_KEY_TYPE = 3; pub const CKK_EC: CK_KEY_TYPE = 3; pub const CKK_X9_42_DH: CK_KEY_TYPE = 4; pub const CKK_KEA: CK_KEY_TYPE = 5; pub const CKK_GENERIC_SECRET: CK_KEY_TYPE = 16; pub const CKK_RC2: CK_KEY_TYPE = 17; pub const CKK_RC4: CK_KEY_TYPE = 18; pub const CKK_DES: CK_KEY_TYPE = 19; pub const CKK_DES2: CK_KEY_TYPE = 20; pub const CKK_DES3: CK_KEY_TYPE = 21; pub const CKK_CAST: CK_KEY_TYPE = 22; pub const CKK_CAST3: CK_KEY_TYPE = 23; pub const CKK_CAST128: CK_KEY_TYPE = 24; pub const CKK_RC5: CK_KEY_TYPE = 25; pub const CKK_IDEA: CK_KEY_TYPE = 26; pub const CKK_SKIPJACK: CK_KEY_TYPE = 27; pub const CKK_BATON: CK_KEY_TYPE = 28; pub const CKK_JUNIPER: CK_KEY_TYPE = 29; pub const CKK_CDMF: CK_KEY_TYPE = 30; pub const CKK_AES: CK_KEY_TYPE = 31; pub const CKK_BLOWFISH: CK_KEY_TYPE = 32; pub const CKK_TWOFISH: CK_KEY_TYPE = 33; pub const CKK_SECURID: CK_KEY_TYPE = 34; pub const CKK_HOTP: CK_KEY_TYPE = 35; pub const CKK_ACTI: CK_KEY_TYPE = 36; pub const CKK_CAMELLIA: CK_KEY_TYPE = 37; pub const CKK_ARIA: CK_KEY_TYPE = 38; pub const CKK_MD5_HMAC: CK_KEY_TYPE = 39; pub const CKK_SHA_1_HMAC: CK_KEY_TYPE = 40; pub const CKK_RIPEMD128_HMAC: CK_KEY_TYPE = 41; pub const CKK_RIPEMD160_HMAC: CK_KEY_TYPE = 42; pub const CKK_SHA256_HMAC: CK_KEY_TYPE = 43; pub const CKK_SHA384_HMAC: CK_KEY_TYPE = 44; pub const CKK_SHA512_HMAC: CK_KEY_TYPE = 45; pub const CKK_SHA224_HMAC: CK_KEY_TYPE = 46; pub const CKK_SEED: CK_KEY_TYPE = 47; pub const CKK_GOSTR3410: CK_KEY_TYPE = 48; pub const CKK_GOSTR3411: CK_KEY_TYPE = 49; pub const CKK_GOST28147: CK_KEY_TYPE = 50; pub const CKK_EC_EDWARDS: CK_KEY_TYPE = 64; pub const CKC_X_509: CK_CERTIFICATE_TYPE = 0; pub const CKC_X_509_ATTR_CERT: CK_CERTIFICATE_TYPE = 1; pub const CKC_WTLS: CK_CERTIFICATE_TYPE = 2; pub const CKA_CLASS: CK_ATTRIBUTE_TYPE = 0; pub const CKA_TOKEN: CK_ATTRIBUTE_TYPE = 1; pub const CKA_PRIVATE: CK_ATTRIBUTE_TYPE = 2; pub const CKA_LABEL: CK_ATTRIBUTE_TYPE = 3; pub const CKA_APPLICATION: CK_ATTRIBUTE_TYPE = 16; pub const CKA_VALUE: CK_ATTRIBUTE_TYPE = 17; pub const CKA_OBJECT_ID: CK_ATTRIBUTE_TYPE = 18; pub const CKA_CERTIFICATE_TYPE: CK_ATTRIBUTE_TYPE = 128; pub const CKA_ISSUER: CK_ATTRIBUTE_TYPE = 129; pub const CKA_SERIAL_NUMBER: CK_ATTRIBUTE_TYPE = 130; pub const CKA_AC_ISSUER: CK_ATTRIBUTE_TYPE = 131; pub const CKA_OWNER: CK_ATTRIBUTE_TYPE = 132; pub const CKA_ATTR_TYPES: CK_ATTRIBUTE_TYPE = 133; pub const CKA_TRUSTED: CK_ATTRIBUTE_TYPE = 134; pub const CKA_CERTIFICATE_CATEGORY: CK_ATTRIBUTE_TYPE = 135; pub const CKA_JAVA_MIDP_SECURITY_DOMAIN: CK_ATTRIBUTE_TYPE = 136; pub const CKA_URL: CK_ATTRIBUTE_TYPE = 137; pub const CKA_HASH_OF_SUBJECT_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 138; pub const CKA_HASH_OF_ISSUER_PUBLIC_KEY: CK_ATTRIBUTE_TYPE = 139; pub const CKA_NAME_HASH_ALGORITHM: CK_ATTRIBUTE_TYPE = 140; pub const CKA_CHECK_VALUE: CK_ATTRIBUTE_TYPE = 144; pub const CKA_KEY_TYPE: CK_ATTRIBUTE_TYPE = 256; pub const CKA_SUBJECT: CK_ATTRIBUTE_TYPE = 257; pub const CKA_ID: CK_ATTRIBUTE_TYPE = 258; pub const CKA_SENSITIVE: CK_ATTRIBUTE_TYPE = 259; pub const CKA_ENCRYPT: CK_ATTRIBUTE_TYPE = 260; pub const CKA_DECRYPT: CK_ATTRIBUTE_TYPE = 261; pub const CKA_WRAP: CK_ATTRIBUTE_TYPE = 262; pub const CKA_UNWRAP: CK_ATTRIBUTE_TYPE = 263; pub const CKA_SIGN: CK_ATTRIBUTE_TYPE = 264; pub const CKA_SIGN_RECOVER: CK_ATTRIBUTE_TYPE = 265; pub const CKA_VERIFY: CK_ATTRIBUTE_TYPE = 266; pub const CKA_VERIFY_RECOVER: CK_ATTRIBUTE_TYPE = 267; pub const CKA_DERIVE: CK_ATTRIBUTE_TYPE = 268; pub const CKA_START_DATE: CK_ATTRIBUTE_TYPE = 272; pub const CKA_END_DATE: CK_ATTRIBUTE_TYPE = 273; pub const CKA_MODULUS: CK_ATTRIBUTE_TYPE = 288; pub const CKA_MODULUS_BITS: CK_ATTRIBUTE_TYPE = 289; pub const CKA_PUBLIC_EXPONENT: CK_ATTRIBUTE_TYPE = 290; pub const CKA_PRIVATE_EXPONENT: CK_ATTRIBUTE_TYPE = 291; pub const CKA_PRIME_1: CK_ATTRIBUTE_TYPE = 292; pub const CKA_PRIME_2: CK_ATTRIBUTE_TYPE = 293; pub const CKA_EXPONENT_1: CK_ATTRIBUTE_TYPE = 294; pub const CKA_EXPONENT_2: CK_ATTRIBUTE_TYPE = 295; pub const CKA_COEFFICIENT: CK_ATTRIBUTE_TYPE = 296; pub const CKA_PUBLIC_KEY_INFO: CK_ATTRIBUTE_TYPE = 297; pub const CKA_PRIME: CK_ATTRIBUTE_TYPE = 304; pub const CKA_SUBPRIME: CK_ATTRIBUTE_TYPE = 305; pub const CKA_BASE: CK_ATTRIBUTE_TYPE = 306; pub const CKA_PRIME_BITS: CK_ATTRIBUTE_TYPE = 307; pub const CKA_SUB_PRIME_BITS: CK_ATTRIBUTE_TYPE = 308; pub const CKA_VALUE_BITS: CK_ATTRIBUTE_TYPE = 352; pub const CKA_VALUE_LEN: CK_ATTRIBUTE_TYPE = 353; pub const CKA_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 354; pub const CKA_LOCAL: CK_ATTRIBUTE_TYPE = 355; pub const CKA_NEVER_EXTRACTABLE: CK_ATTRIBUTE_TYPE = 356; pub const CKA_ALWAYS_SENSITIVE: CK_ATTRIBUTE_TYPE = 357; pub const CKA_KEY_GEN_MECHANISM: CK_ATTRIBUTE_TYPE = 358; pub const CKA_MODIFIABLE: CK_ATTRIBUTE_TYPE = 368; pub const CKA_COPYABLE: CK_ATTRIBUTE_TYPE = 369; pub const CKA_DESTROYABLE: CK_ATTRIBUTE_TYPE = 370; pub const CKA_ECDSA_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_PARAMS: CK_ATTRIBUTE_TYPE = 384; pub const CKA_EC_POINT: CK_ATTRIBUTE_TYPE = 385; pub const CKA_SECONDARY_AUTH: CK_ATTRIBUTE_TYPE = 512; pub const CKA_AUTH_PIN_FLAGS: CK_ATTRIBUTE_TYPE = 513; pub const CKA_ALWAYS_AUTHENTICATE: CK_ATTRIBUTE_TYPE = 514; pub const CKA_WRAP_WITH_TRUSTED: CK_ATTRIBUTE_TYPE = 528; pub const CKA_OTP_FORMAT: CK_ATTRIBUTE_TYPE = 544; pub const CKA_OTP_LENGTH: CK_ATTRIBUTE_TYPE = 545; pub const CKA_OTP_TIME_INTERVAL: CK_ATTRIBUTE_TYPE = 546; pub const CKA_OTP_USER_FRIENDLY_MODE: CK_ATTRIBUTE_TYPE = 547; pub const CKA_OTP_CHALLENGE_REQUIREMENT: CK_ATTRIBUTE_TYPE = 548; pub const CKA_OTP_TIME_REQUIREMENT: CK_ATTRIBUTE_TYPE = 549; pub const CKA_OTP_COUNTER_REQUIREMENT: CK_ATTRIBUTE_TYPE = 550; pub const CKA_OTP_PIN_REQUIREMENT: CK_ATTRIBUTE_TYPE = 551; pub const CKA_OTP_USER_IDENTIFIER: CK_ATTRIBUTE_TYPE = 554; pub const CKA_OTP_SERVICE_IDENTIFIER: CK_ATTRIBUTE_TYPE = 555; pub const CKA_OTP_SERVICE_LOGO: CK_ATTRIBUTE_TYPE = 556; pub const CKA_OTP_SERVICE_LOGO_TYPE: CK_ATTRIBUTE_TYPE = 557; pub const CKA_OTP_COUNTER: CK_ATTRIBUTE_TYPE = 558; pub const CKA_OTP_TIME: CK_ATTRIBUTE_TYPE = 559; pub const CKA_GOSTR3410_PARAMS: CK_ATTRIBUTE_TYPE = 592; pub const CKA_GOSTR3411_PARAMS: CK_ATTRIBUTE_TYPE = 593; pub const CKA_GOST28147_PARAMS: CK_ATTRIBUTE_TYPE = 594; pub const CKA_HW_FEATURE_TYPE: CK_ATTRIBUTE_TYPE = 768; pub const CKA_RESET_ON_INIT: CK_ATTRIBUTE_TYPE = 769; pub const CKA_HAS_RESET: CK_ATTRIBUTE_TYPE = 770; pub const CKA_PIXEL_X: CK_ATTRIBUTE_TYPE = 1024; pub const CKA_PIXEL_Y: CK_ATTRIBUTE_TYPE = 1025; pub const CKA_RESOLUTION: CK_ATTRIBUTE_TYPE = 1026; pub const CKA_CHAR_ROWS: CK_ATTRIBUTE_TYPE = 1027; pub const CKA_CHAR_COLUMNS: CK_ATTRIBUTE_TYPE = 1028; pub const CKA_COLOR: CK_ATTRIBUTE_TYPE = 1029; pub const CKA_BITS_PER_PIXEL: CK_ATTRIBUTE_TYPE = 1030; pub const CKA_CHAR_SETS: CK_ATTRIBUTE_TYPE = 1152; pub const CKA_ENCODING_METHODS: CK_ATTRIBUTE_TYPE = 1153; pub const CKA_MIME_TYPES: CK_ATTRIBUTE_TYPE = 1154; pub const CKA_MECHANISM_TYPE: CK_ATTRIBUTE_TYPE = 1280; pub const CKA_REQUIRED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1281; pub const CKA_DEFAULT_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1282; pub const CKA_SUPPORTED_CMS_ATTRIBUTES: CK_ATTRIBUTE_TYPE = 1283; pub const CKM_RSA_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 0; pub const CKM_RSA_PKCS: CK_MECHANISM_TYPE = 1; pub const CKM_RSA_9796: CK_MECHANISM_TYPE = 2; pub const CKM_RSA_X_509: CK_MECHANISM_TYPE = 3; pub const CKM_MD2_RSA_PKCS: CK_MECHANISM_TYPE = 4; pub const CKM_MD5_RSA_PKCS: CK_MECHANISM_TYPE = 5; pub const CKM_SHA1_RSA_PKCS: CK_MECHANISM_TYPE = 6; pub const CKM_RIPEMD128_RSA_PKCS: CK_MECHANISM_TYPE = 7; pub const CKM_RIPEMD160_RSA_PKCS: CK_MECHANISM_TYPE = 8; pub const CKM_RSA_PKCS_OAEP: CK_MECHANISM_TYPE = 9; pub const CKM_RSA_X9_31_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 10; pub const CKM_RSA_X9_31: CK_MECHANISM_TYPE = 11; pub const CKM_SHA1_RSA_X9_31: CK_MECHANISM_TYPE = 12; pub const CKM_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 13; pub const CKM_SHA1_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 14; pub const CKM_DSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 16; pub const CKM_DSA: CK_MECHANISM_TYPE = 17; pub const CKM_DSA_SHA1: CK_MECHANISM_TYPE = 18; pub const CKM_DSA_SHA224: CK_MECHANISM_TYPE = 19; pub const CKM_DSA_SHA256: CK_MECHANISM_TYPE = 20; pub const CKM_DSA_SHA384: CK_MECHANISM_TYPE = 21; pub const CKM_DSA_SHA512: CK_MECHANISM_TYPE = 22; pub const CKM_DH_PKCS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 32; pub const CKM_DH_PKCS_DERIVE: CK_MECHANISM_TYPE = 33; pub const CKM_X9_42_DH_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 48; pub const CKM_X9_42_DH_DERIVE: CK_MECHANISM_TYPE = 49; pub const CKM_X9_42_DH_HYBRID_DERIVE: CK_MECHANISM_TYPE = 50; pub const CKM_X9_42_MQV_DERIVE: CK_MECHANISM_TYPE = 51; pub const CKM_SHA256_RSA_PKCS: CK_MECHANISM_TYPE = 64; pub const CKM_SHA384_RSA_PKCS: CK_MECHANISM_TYPE = 65; pub const CKM_SHA512_RSA_PKCS: CK_MECHANISM_TYPE = 66; pub const CKM_SHA256_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 67; pub const CKM_SHA384_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 68; pub const CKM_SHA512_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 69; pub const CKM_SHA512_224: CK_MECHANISM_TYPE = 72; pub const CKM_SHA512_224_HMAC: CK_MECHANISM_TYPE = 73; pub const CKM_SHA512_224_HMAC_GENERAL: CK_MECHANISM_TYPE = 74; pub const CKM_SHA512_224_KEY_DERIVATION: CK_MECHANISM_TYPE = 75; pub const CKM_SHA512_256: CK_MECHANISM_TYPE = 76; pub const CKM_SHA512_256_HMAC: CK_MECHANISM_TYPE = 77; pub const CKM_SHA512_256_HMAC_GENERAL: CK_MECHANISM_TYPE = 78; pub const CKM_SHA512_256_KEY_DERIVATION: CK_MECHANISM_TYPE = 79; pub const CKM_SHA512_T: CK_MECHANISM_TYPE = 80; pub const CKM_SHA512_T_HMAC: CK_MECHANISM_TYPE = 81; pub const CKM_SHA512_T_HMAC_GENERAL: CK_MECHANISM_TYPE = 82; pub const CKM_SHA512_T_KEY_DERIVATION: CK_MECHANISM_TYPE = 83; pub const CKM_RC2_KEY_GEN: CK_MECHANISM_TYPE = 256; pub const CKM_RC2_ECB: CK_MECHANISM_TYPE = 257; pub const CKM_RC2_CBC: CK_MECHANISM_TYPE = 258; pub const CKM_RC2_MAC: CK_MECHANISM_TYPE = 259; pub const CKM_RC2_MAC_GENERAL: CK_MECHANISM_TYPE = 260; pub const CKM_RC2_CBC_PAD: CK_MECHANISM_TYPE = 261; pub const CKM_RC4_KEY_GEN: CK_MECHANISM_TYPE = 272; pub const CKM_RC4: CK_MECHANISM_TYPE = 273; pub const CKM_DES_KEY_GEN: CK_MECHANISM_TYPE = 288; pub const CKM_DES_ECB: CK_MECHANISM_TYPE = 289; pub const CKM_DES_CBC: CK_MECHANISM_TYPE = 290; pub const CKM_DES_MAC: CK_MECHANISM_TYPE = 291; pub const CKM_DES_MAC_GENERAL: CK_MECHANISM_TYPE = 292; pub const CKM_DES_CBC_PAD: CK_MECHANISM_TYPE = 293; pub const CKM_DES2_KEY_GEN: CK_MECHANISM_TYPE = 304; pub const CKM_DES3_KEY_GEN: CK_MECHANISM_TYPE = 305; pub const CKM_DES3_ECB: CK_MECHANISM_TYPE = 306; pub const CKM_DES3_CBC: CK_MECHANISM_TYPE = 307; pub const CKM_DES3_MAC: CK_MECHANISM_TYPE = 308; pub const CKM_DES3_MAC_GENERAL: CK_MECHANISM_TYPE = 309; pub const CKM_DES3_CBC_PAD: CK_MECHANISM_TYPE = 310; pub const CKM_DES3_CMAC_GENERAL: CK_MECHANISM_TYPE = 311; pub const CKM_DES3_CMAC: CK_MECHANISM_TYPE = 312; pub const CKM_CDMF_KEY_GEN: CK_MECHANISM_TYPE = 320; pub const CKM_CDMF_ECB: CK_MECHANISM_TYPE = 321; pub const CKM_CDMF_CBC: CK_MECHANISM_TYPE = 322; pub const CKM_CDMF_MAC: CK_MECHANISM_TYPE = 323; pub const CKM_CDMF_MAC_GENERAL: CK_MECHANISM_TYPE = 324; pub const CKM_CDMF_CBC_PAD: CK_MECHANISM_TYPE = 325; pub const CKM_DES_OFB64: CK_MECHANISM_TYPE = 336; pub const CKM_DES_OFB8: CK_MECHANISM_TYPE = 337; pub const CKM_DES_CFB64: CK_MECHANISM_TYPE = 338; pub const CKM_DES_CFB8: CK_MECHANISM_TYPE = 339; pub const CKM_MD2: CK_MECHANISM_TYPE = 512; pub const CKM_MD2_HMAC: CK_MECHANISM_TYPE = 513; pub const CKM_MD2_HMAC_GENERAL: CK_MECHANISM_TYPE = 514; pub const CKM_MD5: CK_MECHANISM_TYPE = 528; pub const CKM_MD5_HMAC: CK_MECHANISM_TYPE = 529; pub const CKM_MD5_HMAC_GENERAL: CK_MECHANISM_TYPE = 530; pub const CKM_SHA_1: CK_MECHANISM_TYPE = 544; pub const CKM_SHA_1_HMAC: CK_MECHANISM_TYPE = 545; pub const CKM_SHA_1_HMAC_GENERAL: CK_MECHANISM_TYPE = 546; pub const CKM_RIPEMD128: CK_MECHANISM_TYPE = 560; pub const CKM_RIPEMD128_HMAC: CK_MECHANISM_TYPE = 561; pub const CKM_RIPEMD128_HMAC_GENERAL: CK_MECHANISM_TYPE = 562; pub const CKM_RIPEMD160: CK_MECHANISM_TYPE = 576; pub const CKM_RIPEMD160_HMAC: CK_MECHANISM_TYPE = 577; pub const CKM_RIPEMD160_HMAC_GENERAL: CK_MECHANISM_TYPE = 578; pub const CKM_SHA256: CK_MECHANISM_TYPE = 592; pub const CKM_SHA256_HMAC: CK_MECHANISM_TYPE = 593; pub const CKM_SHA256_HMAC_GENERAL: CK_MECHANISM_TYPE = 594; pub const CKM_SHA384: CK_MECHANISM_TYPE = 608; pub const CKM_SHA384_HMAC: CK_MECHANISM_TYPE = 609; pub const CKM_SHA384_HMAC_GENERAL: CK_MECHANISM_TYPE = 610; pub const CKM_SHA512: CK_MECHANISM_TYPE = 624; pub const CKM_SHA512_HMAC: CK_MECHANISM_TYPE = 625; pub const CKM_SHA512_HMAC_GENERAL: CK_MECHANISM_TYPE = 626; pub const CKM_SECURID_KEY_GEN: CK_MECHANISM_TYPE = 640; pub const CKM_SECURID: CK_MECHANISM_TYPE = 642; pub const CKM_HOTP_KEY_GEN: CK_MECHANISM_TYPE = 656; pub const CKM_HOTP: CK_MECHANISM_TYPE = 657; pub const CKM_ACTI: CK_MECHANISM_TYPE = 672; pub const CKM_ACTI_KEY_GEN: CK_MECHANISM_TYPE = 673; pub const CKM_CAST_KEY_GEN: CK_MECHANISM_TYPE = 768; pub const CKM_CAST_ECB: CK_MECHANISM_TYPE = 769; pub const CKM_CAST_CBC: CK_MECHANISM_TYPE = 770; pub const CKM_CAST_MAC: CK_MECHANISM_TYPE = 771; pub const CKM_CAST_MAC_GENERAL: CK_MECHANISM_TYPE = 772; pub const CKM_CAST_CBC_PAD: CK_MECHANISM_TYPE = 773; pub const CKM_CAST3_KEY_GEN: CK_MECHANISM_TYPE = 784; pub const CKM_CAST3_ECB: CK_MECHANISM_TYPE = 785; pub const CKM_CAST3_CBC: CK_MECHANISM_TYPE = 786; pub const CKM_CAST3_MAC: CK_MECHANISM_TYPE = 787; pub const CKM_CAST3_MAC_GENERAL: CK_MECHANISM_TYPE = 788; pub const CKM_CAST3_CBC_PAD: CK_MECHANISM_TYPE = 789; pub const CKM_CAST5_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST128_KEY_GEN: CK_MECHANISM_TYPE = 800; pub const CKM_CAST5_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST128_ECB: CK_MECHANISM_TYPE = 801; pub const CKM_CAST5_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST128_CBC: CK_MECHANISM_TYPE = 802; pub const CKM_CAST5_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST128_MAC: CK_MECHANISM_TYPE = 803; pub const CKM_CAST5_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST128_MAC_GENERAL: CK_MECHANISM_TYPE = 804; pub const CKM_CAST5_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_CAST128_CBC_PAD: CK_MECHANISM_TYPE = 805; pub const CKM_RC5_KEY_GEN: CK_MECHANISM_TYPE = 816; pub const CKM_RC5_ECB: CK_MECHANISM_TYPE = 817; pub const CKM_RC5_CBC: CK_MECHANISM_TYPE = 818; pub const CKM_RC5_MAC: CK_MECHANISM_TYPE = 819; pub const CKM_RC5_MAC_GENERAL: CK_MECHANISM_TYPE = 820; pub const CKM_RC5_CBC_PAD: CK_MECHANISM_TYPE = 821; pub const CKM_IDEA_KEY_GEN: CK_MECHANISM_TYPE = 832; pub const CKM_IDEA_ECB: CK_MECHANISM_TYPE = 833; pub const CKM_IDEA_CBC: CK_MECHANISM_TYPE = 834; pub const CKM_IDEA_MAC: CK_MECHANISM_TYPE = 835; pub const CKM_IDEA_MAC_GENERAL: CK_MECHANISM_TYPE = 836; pub const CKM_IDEA_CBC_PAD: CK_MECHANISM_TYPE = 837; pub const CKM_GENERIC_SECRET_KEY_GEN: CK_MECHANISM_TYPE = 848; pub const CKM_CONCATENATE_BASE_AND_KEY: CK_MECHANISM_TYPE = 864; pub const CKM_CONCATENATE_BASE_AND_DATA: CK_MECHANISM_TYPE = 866; pub const CKM_CONCATENATE_DATA_AND_BASE: CK_MECHANISM_TYPE = 867; pub const CKM_XOR_BASE_AND_DATA: CK_MECHANISM_TYPE = 868; pub const CKM_EXTRACT_KEY_FROM_KEY: CK_MECHANISM_TYPE = 869; pub const CKM_SSL3_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 880; pub const CKM_SSL3_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 881; pub const CKM_SSL3_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 882; pub const CKM_SSL3_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 883; pub const CKM_TLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 884; pub const CKM_TLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 885; pub const CKM_TLS_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 886; pub const CKM_TLS_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 887; pub const CKM_TLS_PRF: CK_MECHANISM_TYPE = 888; pub const CKM_SSL3_MD5_MAC: CK_MECHANISM_TYPE = 896; pub const CKM_SSL3_SHA1_MAC: CK_MECHANISM_TYPE = 897; pub const CKM_MD5_KEY_DERIVATION: CK_MECHANISM_TYPE = 912; pub const CKM_MD2_KEY_DERIVATION: CK_MECHANISM_TYPE = 913; pub const CKM_SHA1_KEY_DERIVATION: CK_MECHANISM_TYPE = 914; pub const CKM_SHA256_KEY_DERIVATION: CK_MECHANISM_TYPE = 915; pub const CKM_SHA384_KEY_DERIVATION: CK_MECHANISM_TYPE = 916; pub const CKM_SHA512_KEY_DERIVATION: CK_MECHANISM_TYPE = 917; pub const CKM_PBE_MD2_DES_CBC: CK_MECHANISM_TYPE = 928; pub const CKM_PBE_MD5_DES_CBC: CK_MECHANISM_TYPE = 929; pub const CKM_PBE_MD5_CAST_CBC: CK_MECHANISM_TYPE = 930; pub const CKM_PBE_MD5_CAST3_CBC: CK_MECHANISM_TYPE = 931; pub const CKM_PBE_MD5_CAST5_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_MD5_CAST128_CBC: CK_MECHANISM_TYPE = 932; pub const CKM_PBE_SHA1_CAST5_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_CAST128_CBC: CK_MECHANISM_TYPE = 933; pub const CKM_PBE_SHA1_RC4_128: CK_MECHANISM_TYPE = 934; pub const CKM_PBE_SHA1_RC4_40: CK_MECHANISM_TYPE = 935; pub const CKM_PBE_SHA1_DES3_EDE_CBC: CK_MECHANISM_TYPE = 936; pub const CKM_PBE_SHA1_DES2_EDE_CBC: CK_MECHANISM_TYPE = 937; pub const CKM_PBE_SHA1_RC2_128_CBC: CK_MECHANISM_TYPE = 938; pub const CKM_PBE_SHA1_RC2_40_CBC: CK_MECHANISM_TYPE = 939; pub const CKM_PKCS5_PBKD2: CK_MECHANISM_TYPE = 944; pub const CKM_PBA_SHA1_WITH_SHA1_HMAC: CK_MECHANISM_TYPE = 960; pub const CKM_WTLS_PRE_MASTER_KEY_GEN: CK_MECHANISM_TYPE = 976; pub const CKM_WTLS_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 977; pub const CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC: CK_MECHANISM_TYPE = 978; pub const CKM_WTLS_PRF: CK_MECHANISM_TYPE = 979; pub const CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 980; pub const CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 981; pub const CKM_TLS10_MAC_SERVER: CK_MECHANISM_TYPE = 982; pub const CKM_TLS10_MAC_CLIENT: CK_MECHANISM_TYPE = 983; pub const CKM_TLS12_MAC: CK_MECHANISM_TYPE = 984; pub const CKM_TLS12_KDF: CK_MECHANISM_TYPE = 985; pub const CKM_TLS12_MASTER_KEY_DERIVE: CK_MECHANISM_TYPE = 992; pub const CKM_TLS12_KEY_AND_MAC_DERIVE: CK_MECHANISM_TYPE = 993; pub const CKM_TLS12_MASTER_KEY_DERIVE_DH: CK_MECHANISM_TYPE = 994; pub const CKM_TLS12_KEY_SAFE_DERIVE: CK_MECHANISM_TYPE = 995; pub const CKM_TLS_MAC: CK_MECHANISM_TYPE = 996; pub const CKM_TLS_KDF: CK_MECHANISM_TYPE = 997; pub const CKM_KEY_WRAP_LYNKS: CK_MECHANISM_TYPE = 1024; pub const CKM_KEY_WRAP_SET_OAEP: CK_MECHANISM_TYPE = 1025; pub const CKM_CMS_SIG: CK_MECHANISM_TYPE = 1280; pub const CKM_KIP_DERIVE: CK_MECHANISM_TYPE = 1296; pub const CKM_KIP_WRAP: CK_MECHANISM_TYPE = 1297; pub const CKM_KIP_MAC: CK_MECHANISM_TYPE = 1298; pub const CKM_CAMELLIA_KEY_GEN: CK_MECHANISM_TYPE = 1360; pub const CKM_CAMELLIA_CTR: CK_MECHANISM_TYPE = 1368; pub const CKM_ARIA_KEY_GEN: CK_MECHANISM_TYPE = 1376; pub const CKM_ARIA_ECB: CK_MECHANISM_TYPE = 1377; pub const CKM_ARIA_CBC: CK_MECHANISM_TYPE = 1378; pub const CKM_ARIA_MAC: CK_MECHANISM_TYPE = 1379; pub const CKM_ARIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1380; pub const CKM_ARIA_CBC_PAD: CK_MECHANISM_TYPE = 1381; pub const CKM_ARIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1382; pub const CKM_ARIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1383; pub const CKM_SEED_KEY_GEN: CK_MECHANISM_TYPE = 1616; pub const CKM_SEED_ECB: CK_MECHANISM_TYPE = 1617; pub const CKM_SEED_CBC: CK_MECHANISM_TYPE = 1618; pub const CKM_SEED_MAC: CK_MECHANISM_TYPE = 1619; pub const CKM_SEED_MAC_GENERAL: CK_MECHANISM_TYPE = 1620; pub const CKM_SEED_CBC_PAD: CK_MECHANISM_TYPE = 1621; pub const CKM_SEED_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1622; pub const CKM_SEED_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1623; pub const CKM_SKIPJACK_KEY_GEN: CK_MECHANISM_TYPE = 4096; pub const CKM_SKIPJACK_ECB64: CK_MECHANISM_TYPE = 4097; pub const CKM_SKIPJACK_CBC64: CK_MECHANISM_TYPE = 4098; pub const CKM_SKIPJACK_OFB64: CK_MECHANISM_TYPE = 4099; pub const CKM_SKIPJACK_CFB64: CK_MECHANISM_TYPE = 4100; pub const CKM_SKIPJACK_CFB32: CK_MECHANISM_TYPE = 4101; pub const CKM_SKIPJACK_CFB16: CK_MECHANISM_TYPE = 4102; pub const CKM_SKIPJACK_CFB8: CK_MECHANISM_TYPE = 4103; pub const CKM_SKIPJACK_WRAP: CK_MECHANISM_TYPE = 4104; pub const CKM_SKIPJACK_PRIVATE_WRAP: CK_MECHANISM_TYPE = 4105; pub const CKM_SKIPJACK_RELAYX: CK_MECHANISM_TYPE = 4106; pub const CKM_KEA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4112; pub const CKM_KEA_KEY_DERIVE: CK_MECHANISM_TYPE = 4113; pub const CKM_FORTEZZA_TIMESTAMP: CK_MECHANISM_TYPE = 4128; pub const CKM_BATON_KEY_GEN: CK_MECHANISM_TYPE = 4144; pub const CKM_BATON_ECB128: CK_MECHANISM_TYPE = 4145; pub const CKM_BATON_ECB96: CK_MECHANISM_TYPE = 4146; pub const CKM_BATON_CBC128: CK_MECHANISM_TYPE = 4147; pub const CKM_BATON_COUNTER: CK_MECHANISM_TYPE = 4148; pub const CKM_BATON_SHUFFLE: CK_MECHANISM_TYPE = 4149; pub const CKM_BATON_WRAP: CK_MECHANISM_TYPE = 4150; pub const CKM_ECDSA_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_EC_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4160; pub const CKM_ECDSA: CK_MECHANISM_TYPE = 4161; pub const CKM_ECDSA_SHA1: CK_MECHANISM_TYPE = 4162; pub const CKM_ECDSA_SHA224: CK_MECHANISM_TYPE = 4163; pub const CKM_ECDSA_SHA256: CK_MECHANISM_TYPE = 4164; pub const CKM_ECDSA_SHA384: CK_MECHANISM_TYPE = 4165; pub const CKM_ECDSA_SHA512: CK_MECHANISM_TYPE = 4166; pub const CKM_ECDH1_DERIVE: CK_MECHANISM_TYPE = 4176; pub const CKM_ECDH1_COFACTOR_DERIVE: CK_MECHANISM_TYPE = 4177; pub const CKM_ECMQV_DERIVE: CK_MECHANISM_TYPE = 4178; pub const CKM_ECDH_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4179; pub const CKM_RSA_AES_KEY_WRAP: CK_MECHANISM_TYPE = 4180; pub const CKM_JUNIPER_KEY_GEN: CK_MECHANISM_TYPE = 4192; pub const CKM_JUNIPER_ECB128: CK_MECHANISM_TYPE = 4193; pub const CKM_JUNIPER_CBC128: CK_MECHANISM_TYPE = 4194; pub const CKM_JUNIPER_COUNTER: CK_MECHANISM_TYPE = 4195; pub const CKM_JUNIPER_SHUFFLE: CK_MECHANISM_TYPE = 4196; pub const CKM_JUNIPER_WRAP: CK_MECHANISM_TYPE = 4197; pub const CKM_FASTHASH: CK_MECHANISM_TYPE = 4208; pub const CKM_AES_KEY_GEN: CK_MECHANISM_TYPE = 4224; pub const CKM_AES_ECB: CK_MECHANISM_TYPE = 4225; pub const CKM_AES_CBC: CK_MECHANISM_TYPE = 4226; pub const CKM_AES_MAC: CK_MECHANISM_TYPE = 4227; pub const CKM_AES_MAC_GENERAL: CK_MECHANISM_TYPE = 4228; pub const CKM_AES_CBC_PAD: CK_MECHANISM_TYPE = 4229; pub const CKM_AES_CTR: CK_MECHANISM_TYPE = 4230; pub const CKM_AES_GCM: CK_MECHANISM_TYPE = 4231; pub const CKM_AES_CCM: CK_MECHANISM_TYPE = 4232; pub const CKM_AES_CTS: CK_MECHANISM_TYPE = 4233; pub const CKM_AES_CMAC: CK_MECHANISM_TYPE = 4234; pub const CKM_AES_CMAC_GENERAL: CK_MECHANISM_TYPE = 4235; pub const CKM_AES_XCBC_MAC: CK_MECHANISM_TYPE = 4236; pub const CKM_AES_XCBC_MAC_96: CK_MECHANISM_TYPE = 4237; pub const CKM_AES_GMAC: CK_MECHANISM_TYPE = 4238; pub const CKM_BLOWFISH_KEY_GEN: CK_MECHANISM_TYPE = 4240; pub const CKM_BLOWFISH_CBC: CK_MECHANISM_TYPE = 4241; pub const CKM_TWOFISH_KEY_GEN: CK_MECHANISM_TYPE = 4242; pub const CKM_TWOFISH_CBC: CK_MECHANISM_TYPE = 4243; pub const CKM_BLOWFISH_CBC_PAD: CK_MECHANISM_TYPE = 4244; pub const CKM_TWOFISH_CBC_PAD: CK_MECHANISM_TYPE = 4245; pub const CKM_DES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4352; pub const CKM_DES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4353; pub const CKM_DES3_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4354; pub const CKM_DES3_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4355; pub const CKM_AES_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4356; pub const CKM_AES_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 4357; pub const CKM_GOSTR3410_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4608; pub const CKM_GOSTR3410: CK_MECHANISM_TYPE = 4609; pub const CKM_GOSTR3410_WITH_GOSTR3411: CK_MECHANISM_TYPE = 4610; pub const CKM_GOSTR3410_KEY_WRAP: CK_MECHANISM_TYPE = 4611; pub const CKM_GOSTR3410_DERIVE: CK_MECHANISM_TYPE = 4612; pub const CKM_GOSTR3411: CK_MECHANISM_TYPE = 4624; pub const CKM_GOSTR3411_HMAC: CK_MECHANISM_TYPE = 4625; pub const CKM_GOST28147_KEY_GEN: CK_MECHANISM_TYPE = 4640; pub const CKM_GOST28147_ECB: CK_MECHANISM_TYPE = 4641; pub const CKM_GOST28147: CK_MECHANISM_TYPE = 4642; pub const CKM_GOST28147_MAC: CK_MECHANISM_TYPE = 4643; pub const CKM_GOST28147_KEY_WRAP: CK_MECHANISM_TYPE = 4644; pub const CKM_DSA_PARAMETER_GEN: CK_MECHANISM_TYPE = 8192; pub const CKM_DH_PKCS_PARAMETER_GEN: CK_MECHANISM_TYPE = 8193; pub const CKM_X9_42_DH_PARAMETER_GEN: CK_MECHANISM_TYPE = 8194; pub const CKM_DSA_PROBABLISTIC_PARAMETER_GEN: CK_MECHANISM_TYPE = 8195; pub const CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN: CK_MECHANISM_TYPE = 8196; pub const CKM_AES_OFB: CK_MECHANISM_TYPE = 8452; pub const CKM_AES_CFB64: CK_MECHANISM_TYPE = 8453; pub const CKM_AES_CFB8: CK_MECHANISM_TYPE = 8454; pub const CKM_AES_CFB128: CK_MECHANISM_TYPE = 8455; pub const CKM_AES_CFB1: CK_MECHANISM_TYPE = 8456; pub const CKM_SHA224: CK_MECHANISM_TYPE = 597; pub const CKM_SHA224_HMAC: CK_MECHANISM_TYPE = 598; pub const CKM_SHA224_HMAC_GENERAL: CK_MECHANISM_TYPE = 599; pub const CKM_SHA224_RSA_PKCS: CK_MECHANISM_TYPE = 70; pub const CKM_SHA224_RSA_PKCS_PSS: CK_MECHANISM_TYPE = 71; pub const CKM_SHA224_KEY_DERIVATION: CK_MECHANISM_TYPE = 918; pub const CKM_CAMELLIA_ECB: CK_MECHANISM_TYPE = 1361; pub const CKM_CAMELLIA_CBC: CK_MECHANISM_TYPE = 1362; pub const CKM_CAMELLIA_MAC: CK_MECHANISM_TYPE = 1363; pub const CKM_CAMELLIA_MAC_GENERAL: CK_MECHANISM_TYPE = 1364; pub const CKM_CAMELLIA_CBC_PAD: CK_MECHANISM_TYPE = 1365; pub const CKM_CAMELLIA_ECB_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1366; pub const CKM_CAMELLIA_CBC_ENCRYPT_DATA: CK_MECHANISM_TYPE = 1367; pub const CKM_AES_KEY_WRAP: CK_MECHANISM_TYPE = 8457; pub const CKM_AES_KEY_WRAP_PAD: CK_MECHANISM_TYPE = 8458; pub const CKM_RSA_PKCS_TPM_1_1: CK_MECHANISM_TYPE = 16385; pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386; pub const CKM_EC_EDWARDS_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4181; pub const CKM_EC_MONTGOMERY_KEY_PAIR_GEN: CK_MECHANISM_TYPE = 4182; pub const CKM_EDDSA: CK_MECHANISM_TYPE = 4183; pub const CK_OTP_FORMAT_DECIMAL: CK_ULONG = 0; pub const CK_OTP_FORMAT_HEXADECIMAL: CK_ULONG = 1; pub const CK_OTP_FORMAT_ALPHANUMERIC: CK_ULONG = 2; pub const CK_OTP_FORMAT_BINARY: CK_ULONG = 3; pub const CK_OTP_PARAM_IGNORED: CK_ULONG = 0; pub const CK_OTP_PARAM_OPTIONAL: CK_ULONG = 1; pub const CK_OTP_PARAM_MANDATORY: CK_ULONG = 2; pub const CK_OTP_VALUE: CK_ULONG = 0; pub const CK_OTP_PIN: CK_ULONG = 1; pub const CK_OTP_CHALLENGE: CK_ULONG = 2; pub const CK_OTP_TIME: CK_ULONG = 3; pub const CK_OTP_COUNTER: CK_ULONG = 4; pub const CK_OTP_FLAGS: CK_ULONG = 5; pub const CK_OTP_OUTPUT_LENGTH: CK_ULONG = 6; pub const CK_OTP_FORMAT: CK_ULONG = 7; pub const CKF_NEXT_OTP: CK_FLAGS = 1; pub const CKF_EXCLUDE_TIME: CK_FLAGS = 2; pub const CKF_EXCLUDE_COUNTER: CK_FLAGS = 4; pub const CKF_EXCLUDE_CHALLENGE: CK_FLAGS = 8; pub const CKF_EXCLUDE_PIN: CK_FLAGS = 16; pub const CKF_USER_FRIENDLY_OTP: CK_FLAGS = 32; pub const CKN_OTP_CHANGED: CK_NOTIFICATION = 1; pub const CKG_MGF1_SHA1: CK_RSA_PKCS_MGF_TYPE = 1; pub const CKG_MGF1_SHA224: CK_RSA_PKCS_MGF_TYPE = 5; pub const CKG_MGF1_SHA256: CK_RSA_PKCS_MGF_TYPE = 2; pub const CKG_MGF1_SHA384: CK_RSA_PKCS_MGF_TYPE = 3; pub const CKG_MGF1_SHA512: CK_RSA_PKCS_MGF_TYPE = 4; pub const CKD_NULL: CK_EC_KDF_TYPE = 1; pub const CKD_SHA1_KDF: CK_EC_KDF_TYPE = 2; pub const CKD_SHA1_KDF_ASN1: CK_EC_KDF_TYPE = 3; pub const CKD_SHA1_KDF_CONCATENATE: CK_EC_KDF_TYPE = 4; pub const CKD_SHA224_KDF: CK_EC_KDF_TYPE = 5; pub const CKD_SHA256_KDF: CK_EC_KDF_TYPE = 6; pub const CKD_SHA384_KDF: CK_EC_KDF_TYPE = 7; pub const CKD_SHA512_KDF: CK_EC_KDF_TYPE = 8; pub const CKD_CPDIVERSIFY_KDF: CK_EC_KDF_TYPE = 9; pub const CKF_HW: CK_FLAGS = 1; pub const CKF_ENCRYPT: CK_FLAGS = 256; pub const CKF_DECRYPT: CK_FLAGS = 512; pub const CKF_DIGEST: CK_FLAGS = 1024; pub const CKF_SIGN: CK_FLAGS = 2048; pub const CKF_SIGN_RECOVER: CK_FLAGS = 4096; pub const CKF_VERIFY: CK_FLAGS = 8192; pub const CKF_VERIFY_RECOVER: CK_FLAGS = 16384; pub const CKF_GENERATE: CK_FLAGS = 32768; pub const CKF_GENERATE_KEY_PAIR: CK_FLAGS = 65536; pub const CKF_WRAP: CK_FLAGS = 131072; pub const CKF_UNWRAP: CK_FLAGS = 262144; pub const CKF_DERIVE: CK_FLAGS = 524288; pub const CKF_EC_F_P: CK_FLAGS = 1048576; pub const CKF_EC_F_2M: CK_FLAGS = 2097152; pub const CKF_EC_ECPARAMETERS: CK_FLAGS = 4194304; pub const CKF_EC_NAMEDCURVE: CK_FLAGS = 8388608; pub const CKF_EC_UNCOMPRESS: CK_FLAGS = 16777216; pub const CKF_EC_COMPRESS: CK_FLAGS = 33554432; pub const CKF_DONT_BLOCK: CK_FLAGS = 1; pub const CKF_LIBRARY_CANT_CREATE_OS_THREADS: CK_FLAGS = 1; pub const CKF_OS_LOCKING_OK: CK_FLAGS = 2; pub const CKR_OK: CK_RV = 0; pub const CKR_CANCEL: CK_RV = 1; pub const CKR_HOST_MEMORY: CK_RV = 2; pub const CKR_SLOT_ID_INVALID: CK_RV = 3; pub const CKR_GENERAL_ERROR: CK_RV = 5; pub const CKR_FUNCTION_FAILED: CK_RV = 6; pub const CKR_ARGUMENTS_BAD: CK_RV = 7; pub const CKR_NO_EVENT: CK_RV = 8; pub const CKR_NEED_TO_CREATE_THREADS: CK_RV = 9; pub const CKR_CANT_LOCK: CK_RV = 10; pub const CKR_ATTRIBUTE_READ_ONLY: CK_RV = 16; pub const CKR_ATTRIBUTE_SENSITIVE: CK_RV = 17; pub const CKR_ATTRIBUTE_TYPE_INVALID: CK_RV = 18; pub const CKR_ATTRIBUTE_VALUE_INVALID: CK_RV = 19; pub const CKR_ACTION_PROHIBITED: CK_RV = 27; pub const CKR_DATA_INVALID: CK_RV = 32; pub const CKR_DATA_LEN_RANGE: CK_RV = 33; pub const CKR_DEVICE_ERROR: CK_RV = 48; pub const CKR_DEVICE_MEMORY: CK_RV = 49; pub const CKR_DEVICE_REMOVED: CK_RV = 50; pub const CKR_ENCRYPTED_DATA_INVALID: CK_RV = 64; pub const CKR_ENCRYPTED_DATA_LEN_RANGE: CK_RV = 65; pub const CKR_FUNCTION_CANCELED: CK_RV = 80; pub const CKR_FUNCTION_NOT_PARALLEL: CK_RV = 81; pub const CKR_FUNCTION_NOT_SUPPORTED: CK_RV = 84; pub const CKR_KEY_HANDLE_INVALID: CK_RV = 96; pub const CKR_KEY_SIZE_RANGE: CK_RV = 98; pub const CKR_KEY_TYPE_INCONSISTENT: CK_RV = 99; pub const CKR_KEY_NOT_NEEDED: CK_RV = 100; pub const CKR_KEY_CHANGED: CK_RV = 101; pub const CKR_KEY_NEEDED: CK_RV = 102; pub const CKR_KEY_INDIGESTIBLE: CK_RV = 103; pub const CKR_KEY_FUNCTION_NOT_PERMITTED: CK_RV = 104; pub const CKR_KEY_NOT_WRAPPABLE: CK_RV = 105; pub const CKR_KEY_UNEXTRACTABLE: CK_RV = 106; pub const CKR_MECHANISM_INVALID: CK_RV = 112; pub const CKR_MECHANISM_PARAM_INVALID: CK_RV = 113; pub const CKR_OBJECT_HANDLE_INVALID: CK_RV = 130; pub const CKR_OPERATION_ACTIVE: CK_RV = 144; pub const CKR_OPERATION_NOT_INITIALIZED: CK_RV = 145; pub const CKR_PIN_INCORRECT: CK_RV = 160; pub const CKR_PIN_INVALID: CK_RV = 161; pub const CKR_PIN_LEN_RANGE: CK_RV = 162; pub const CKR_PIN_EXPIRED: CK_RV = 163; pub const CKR_PIN_LOCKED: CK_RV = 164; pub const CKR_SESSION_CLOSED: CK_RV = 176; pub const CKR_SESSION_COUNT: CK_RV = 177; pub const CKR_SESSION_HANDLE_INVALID: CK_RV = 179; pub const CKR_SESSION_PARALLEL_NOT_SUPPORTED: CK_RV = 180; pub const CKR_SESSION_READ_ONLY: CK_RV = 181; pub const CKR_SESSION_EXISTS: CK_RV = 182; pub const CKR_SESSION_READ_ONLY_EXISTS: CK_RV = 183; pub const CKR_SESSION_READ_WRITE_SO_EXISTS: CK_RV = 184; pub const CKR_SIGNATURE_INVALID: CK_RV = 192; pub const CKR_SIGNATURE_LEN_RANGE: CK_RV = 193; pub const CKR_TEMPLATE_INCOMPLETE: CK_RV = 208; pub const CKR_TEMPLATE_INCONSISTENT: CK_RV = 209; pub const CKR_TOKEN_NOT_PRESENT: CK_RV = 224; pub const CKR_TOKEN_NOT_RECOGNIZED: CK_RV = 225; pub const CKR_TOKEN_WRITE_PROTECTED: CK_RV = 226; pub const CKR_UNWRAPPING_KEY_HANDLE_INVALID: CK_RV = 240; pub const CKR_UNWRAPPING_KEY_SIZE_RANGE: CK_RV = 241; pub const CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 242; pub const CKR_USER_ALREADY_LOGGED_IN: CK_RV = 256; pub const CKR_USER_NOT_LOGGED_IN: CK_RV = 257; pub const CKR_USER_PIN_NOT_INITIALIZED: CK_RV = 258; pub const CKR_USER_TYPE_INVALID: CK_RV = 259; pub const CKR_USER_ANOTHER_ALREADY_LOGGED_IN: CK_RV = 260; pub const CKR_USER_TOO_MANY_TYPES: CK_RV = 261; pub const CKR_WRAPPED_KEY_INVALID: CK_RV = 272; pub const CKR_WRAPPED_KEY_LEN_RANGE: CK_RV = 274; pub const CKR_WRAPPING_KEY_HANDLE_INVALID: CK_RV = 275; pub const CKR_WRAPPING_KEY_SIZE_RANGE: CK_RV = 276; pub const CKR_WRAPPING_KEY_TYPE_INCONSISTENT: CK_RV = 277; pub const CKR_RANDOM_SEED_NOT_SUPPORTED: CK_RV = 288; pub const CKR_RANDOM_NO_RNG: CK_RV = 289; pub const CKR_DOMAIN_PARAMS_INVALID: CK_RV = 304; pub const CKR_BUFFER_TOO_SMALL: CK_RV = 336; pub const CKR_SAVED_STATE_INVALID: CK_RV = 352; pub const CKR_INFORMATION_SENSITIVE: CK_RV = 368; pub const CKR_STATE_UNSAVEABLE: CK_RV = 384; pub const CKR_CRYPTOKI_NOT_INITIALIZED: CK_RV = 400; pub const CKR_CRYPTOKI_ALREADY_INITIALIZED: CK_RV = 401; pub const CKR_MUTEX_BAD: CK_RV = 416; pub const CKR_MUTEX_NOT_LOCKED: CK_RV = 417; pub const CKR_NEW_PIN_MODE: CK_RV = 432; pub const CKR_NEXT_OTP: CK_RV = 433; pub const CKR_EXCEEDED_MAX_ITERATIONS: CK_RV = 448; pub const CKR_FIPS_SELF_TEST_FAILED: CK_RV = 449; pub const CKR_LIBRARY_LOAD_FAILED: CK_RV = 450; pub const CKR_PIN_TOO_WEAK: CK_RV = 451; pub const CKR_PUBLIC_KEY_INVALID: CK_RV = 452; pub const CKR_FUNCTION_REJECTED: CK_RV = 512; pub const CKZ_DATA_SPECIFIED: CK_RSA_PKCS_OAEP_SOURCE_TYPE = 1; pub const CK_FALSE: CK_BBOOL = 0; pub const CK_TRUE: CK_BBOOL = 1; pub const FALSE: u32 = 0; pub const TRUE: u32 = 1; pub type CK_FLAGS = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_VERSION { pub major: ::std::os::raw::c_uchar, pub minor: ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout__CK_VERSION() { const UNINIT: ::std::mem::MaybeUninit<_CK_VERSION> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_VERSION>(), 2usize, concat!("Size of: ", stringify!(_CK_VERSION)) ); assert_eq!( ::std::mem::align_of::<_CK_VERSION>(), 1usize, concat!("Alignment of ", stringify!(_CK_VERSION)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).major) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(major) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).minor) as usize - ptr as usize }, 1usize, concat!( "Offset of field: ", stringify!(_CK_VERSION), "::", stringify!(minor) ) ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_INFO { pub cryptokiVersion: _CK_VERSION, pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub libraryDescription: [::std::os::raw::c_uchar; 32usize], pub libraryVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_INFO>(), 88usize, concat!("Size of: ", stringify!(_CK_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cryptokiVersion) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(cryptokiVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 2usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryDescription) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).libraryVersion) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_INFO), "::", stringify!(libraryVersion) ) ); } pub type CK_NOTIFICATION = ::std::os::raw::c_ulong; pub const CKN_SURRENDER: ::std::os::raw::c_ulong = 0; pub type CK_SLOT_ID = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_SLOT_INFO { pub slotDescription: [::std::os::raw::c_uchar; 64usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub flags: CK_FLAGS, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, } #[test] fn bindgen_test_layout__CK_SLOT_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SLOT_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SLOT_INFO>(), 112usize, concat!("Size of: ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SLOT_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_SLOT_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotDescription) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(slotDescription) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 106usize, concat!( "Offset of field: ", stringify!(_CK_SLOT_INFO), "::", stringify!(firmwareVersion) ) ); } impl Default for _CK_SLOT_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub const CKF_TOKEN_PRESENT: ::std::os::raw::c_ulong = 1; pub const CKF_REMOVABLE_DEVICE: ::std::os::raw::c_ulong = 2; pub const CKF_HW_SLOT: ::std::os::raw::c_ulong = 4; pub const CKF_ARRAY_ATTRIBUTE: ::std::os::raw::c_ulong = 1073741824; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_TOKEN_INFO { pub label: [::std::os::raw::c_uchar; 32usize], pub manufacturerID: [::std::os::raw::c_uchar; 32usize], pub model: [::std::os::raw::c_uchar; 16usize], pub serialNumber: [::std::os::raw::c_uchar; 16usize], pub flags: CK_FLAGS, pub ulMaxSessionCount: ::std::os::raw::c_ulong, pub ulSessionCount: ::std::os::raw::c_ulong, pub ulMaxRwSessionCount: ::std::os::raw::c_ulong, pub ulRwSessionCount: ::std::os::raw::c_ulong, pub ulMaxPinLen: ::std::os::raw::c_ulong, pub ulMinPinLen: ::std::os::raw::c_ulong, pub ulTotalPublicMemory: ::std::os::raw::c_ulong, pub ulFreePublicMemory: ::std::os::raw::c_ulong, pub ulTotalPrivateMemory: ::std::os::raw::c_ulong, pub ulFreePrivateMemory: ::std::os::raw::c_ulong, pub hardwareVersion: _CK_VERSION, pub firmwareVersion: _CK_VERSION, pub utcTime: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout__CK_TOKEN_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_TOKEN_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_TOKEN_INFO>(), 208usize, concat!("Size of: ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_TOKEN_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_TOKEN_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(label) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).manufacturerID) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(manufacturerID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).model) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(model) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).serialNumber) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(serialNumber) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxSessionCount) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSessionCount) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxRwSessionCount) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulRwSessionCount) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulRwSessionCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxPinLen) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMaxPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinPinLen) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulMinPinLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPublicMemory) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePublicMemory) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePublicMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTotalPrivateMemory) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulTotalPrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulFreePrivateMemory) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(ulFreePrivateMemory) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hardwareVersion) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(hardwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).firmwareVersion) as usize - ptr as usize }, 186usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(firmwareVersion) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).utcTime) as usize - ptr as usize }, 188usize, concat!( "Offset of field: ", stringify!(_CK_TOKEN_INFO), "::", stringify!(utcTime) ) ); } pub type CK_SESSION_HANDLE = ::std::os::raw::c_ulong; pub type CK_USER_TYPE = ::std::os::raw::c_ulong; pub type CK_STATE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_SESSION_INFO { pub slotID: CK_SLOT_ID, pub state: CK_STATE, pub flags: CK_FLAGS, pub ulDeviceError: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_SESSION_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_SESSION_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_SESSION_INFO>(), 32usize, concat!("Size of: ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_SESSION_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_SESSION_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).slotID) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(slotID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(state) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulDeviceError) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_SESSION_INFO), "::", stringify!(ulDeviceError) ) ); } pub type CK_OBJECT_HANDLE = ::std::os::raw::c_ulong; pub type CK_OBJECT_CLASS = ::std::os::raw::c_ulong; pub type CK_HW_FEATURE_TYPE = ::std::os::raw::c_ulong; pub type CK_KEY_TYPE = ::std::os::raw::c_ulong; pub type CK_CERTIFICATE_TYPE = ::std::os::raw::c_ulong; pub type CK_ATTRIBUTE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_ATTRIBUTE { pub type_: CK_ATTRIBUTE_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_ATTRIBUTE() { const UNINIT: ::std::mem::MaybeUninit<_CK_ATTRIBUTE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_ATTRIBUTE>(), 24usize, concat!("Size of: ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( ::std::mem::align_of::<_CK_ATTRIBUTE>(), 8usize, concat!("Alignment of ", stringify!(_CK_ATTRIBUTE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_ATTRIBUTE), "::", stringify!(ulValueLen) ) ); } impl Default for _CK_ATTRIBUTE { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_DATE { pub year: [::std::os::raw::c_uchar; 4usize], pub month: [::std::os::raw::c_uchar; 2usize], pub day: [::std::os::raw::c_uchar; 2usize], } #[test] fn bindgen_test_layout__CK_DATE() { const UNINIT: ::std::mem::MaybeUninit<_CK_DATE> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_DATE>(), 8usize, concat!("Size of: ", stringify!(_CK_DATE)) ); assert_eq!( ::std::mem::align_of::<_CK_DATE>(), 1usize, concat!("Alignment of ", stringify!(_CK_DATE)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).year) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(year) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).month) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(month) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).day) as usize - ptr as usize }, 6usize, concat!( "Offset of field: ", stringify!(_CK_DATE), "::", stringify!(day) ) ); } pub type CK_MECHANISM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_MECHANISM { pub mechanism: CK_MECHANISM_TYPE, pub pParameter: *mut ::std::os::raw::c_void, pub ulParameterLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout__CK_MECHANISM() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM>(), 24usize, concat!("Size of: ", stringify!(_CK_MECHANISM)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM>(), 8usize, concat!("Alignment of ", stringify!(_CK_MECHANISM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mechanism) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(mechanism) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParameter) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(pParameter) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulParameterLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM), "::", stringify!(ulParameterLen) ) ); } impl Default for _CK_MECHANISM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_MECHANISM_INFO { pub ulMinKeySize: ::std::os::raw::c_ulong, pub ulMaxKeySize: ::std::os::raw::c_ulong, pub flags: CK_FLAGS, } #[test] fn bindgen_test_layout__CK_MECHANISM_INFO() { const UNINIT: ::std::mem::MaybeUninit<_CK_MECHANISM_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_MECHANISM_INFO>(), 24usize, concat!("Size of: ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( ::std::mem::align_of::<_CK_MECHANISM_INFO>(), 8usize, concat!("Alignment of ", stringify!(_CK_MECHANISM_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMinKeySize) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMinKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulMaxKeySize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(ulMaxKeySize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_MECHANISM_INFO), "::", stringify!(flags) ) ); } pub type CK_PARAM_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAM { pub type_: CK_PARAM_TYPE, pub pValue: *mut ::std::os::raw::c_void, pub ulValueLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAM() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(CK_OTP_PARAM)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_PARAM)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(type_) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pValue) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(pValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulValueLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAM), "::", stringify!(ulValueLen) ) ); } impl Default for CK_OTP_PARAM { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_PARAMS { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_PARAMS() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_PARAMS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_PARAMS), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_PARAMS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct CK_OTP_SIGNATURE_INFO { pub pParams: *mut CK_OTP_PARAM, pub ulCount: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_CK_OTP_SIGNATURE_INFO() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(CK_OTP_SIGNATURE_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pParams) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(pParams) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(CK_OTP_SIGNATURE_INFO), "::", stringify!(ulCount) ) ); } impl Default for CK_OTP_SIGNATURE_INFO { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RSA_PKCS_MGF_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_rsa_pkcs_pss_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub sLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_pss_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_pss_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).sLen) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_pss_params), "::", stringify!(sLen) ) ); } pub type CK_RSA_PKCS_OAEP_SOURCE_TYPE = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_rsa_pkcs_oaep_params { pub hashAlg: CK_MECHANISM_TYPE, pub mgf: CK_RSA_PKCS_MGF_TYPE, pub source: CK_RSA_PKCS_OAEP_SOURCE_TYPE, pub pSourceData: *mut ::std::os::raw::c_void, pub ulSourceDataLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_rsa_pkcs_oaep_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_rsa_pkcs_oaep_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).hashAlg) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(hashAlg) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).mgf) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(mgf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(source) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSourceData) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(pSourceData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSourceDataLen) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_rsa_pkcs_oaep_params), "::", stringify!(ulSourceDataLen) ) ); } impl Default for ck_rsa_pkcs_oaep_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct ck_aes_ctr_params { pub ulCounterBits: ::std::os::raw::c_ulong, pub cb: [::std::os::raw::c_uchar; 16usize], } #[test] fn bindgen_test_layout_ck_aes_ctr_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_aes_ctr_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_aes_ctr_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulCounterBits) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(ulCounterBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).cb) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_aes_ctr_params), "::", stringify!(cb) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_gcm_params { pub pIv: *mut ::std::os::raw::c_uchar, pub ulIvLen: ::std::os::raw::c_ulong, pub ulIvBits: ::std::os::raw::c_ulong, pub pAAD: *mut ::std::os::raw::c_uchar, pub ulAADLen: ::std::os::raw::c_ulong, pub ulTagBits: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_gcm_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 48usize, concat!("Size of: ", stringify!(ck_gcm_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_gcm_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pIv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pIv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulIvBits) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulIvBits) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pAAD) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(pAAD) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulAADLen) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulAADLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulTagBits) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(ck_gcm_params), "::", stringify!(ulTagBits) ) ); } impl Default for ck_gcm_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type ck_ec_kdf_t = ::std::os::raw::c_ulong; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_ecdh1_derive_params { pub kdf: ck_ec_kdf_t, pub ulSharedDataLen: ::std::os::raw::c_ulong, pub pSharedData: *mut ::std::os::raw::c_uchar, pub ulPublicDataLen: ::std::os::raw::c_ulong, pub pPublicData: *mut ::std::os::raw::c_uchar, } #[test] fn bindgen_test_layout_ck_ecdh1_derive_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_ecdh1_derive_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(kdf) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulSharedDataLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulSharedDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pSharedData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pSharedData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulPublicDataLen) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(ulPublicDataLen) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pPublicData) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(ck_ecdh1_derive_params), "::", stringify!(pPublicData) ) ); } impl Default for ck_ecdh1_derive_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_key_derivation_string_data { pub pData: *mut ::std::os::raw::c_uchar, pub ulLen: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_key_derivation_string_data() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_key_derivation_string_data)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ulLen) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_key_derivation_string_data), "::", stringify!(ulLen) ) ); } impl Default for ck_key_derivation_string_data { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_des_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 8usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_des_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_des_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_des_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_des_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_aes_cbc_encrypt_data_params { pub iv: [::std::os::raw::c_uchar; 16usize], pub pData: *mut ::std::os::raw::c_uchar, pub length: ::std::os::raw::c_ulong, } #[test] fn bindgen_test_layout_ck_aes_cbc_encrypt_data_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 32usize, concat!("Size of: ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(ck_aes_cbc_encrypt_data_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(iv) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(pData) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(ck_aes_cbc_encrypt_data_params), "::", stringify!(length) ) ); } impl Default for ck_aes_cbc_encrypt_data_params { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_RV = ::std::os::raw::c_ulong; pub type CK_NOTIFY = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, event: CK_NOTIFICATION, application: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_Initialize = ::std::option::Option CK_RV>; pub type CK_C_Finalize = ::std::option::Option CK_RV>; pub type CK_C_GetInfo = ::std::option::Option CK_RV>; pub type CK_C_GetFunctionList = ::std::option::Option< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, >; pub type CK_C_GetSlotList = ::std::option::Option< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetSlotInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, >; pub type CK_C_GetTokenInfo = ::std::option::Option< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, >; pub type CK_C_WaitForSlotEvent = ::std::option::Option< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, >; pub type CK_C_GetMechanismList = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetMechanismInfo = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, >; pub type CK_C_InitToken = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, >; pub type CK_C_InitPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetPIN = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_OpenSession = ::std::option::Option< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, >; pub type CK_C_CloseSession = ::std::option::Option CK_RV>; pub type CK_C_CloseAllSessions = ::std::option::Option CK_RV>; pub type CK_C_GetSessionInfo = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, >; pub type CK_C_GetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetOperationState = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Login = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_Logout = ::std::option::Option CK_RV>; pub type CK_C_CreateObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_CopyObject = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DestroyObject = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_GetObjectSize = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SetAttributeValue = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjects = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_FindObjectsFinal = ::std::option::Option CK_RV>; pub type CK_C_EncryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Encrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_EncryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Decrypt = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestInit = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, >; pub type CK_C_Digest = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestKey = ::std::option::Option< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, >; pub type CK_C_DigestFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Sign = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SignRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_Verify = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyFinal = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_VerifyRecoverInit = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_VerifyRecover = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DigestEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptDigestUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_SignEncryptUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_DecryptVerifyUpdate = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_GenerateKeyPair = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_WrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_UnwrapKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_DeriveKey = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, >; pub type CK_C_SeedRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GenerateRandom = ::std::option::Option< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, >; pub type CK_C_GetFunctionStatus = ::std::option::Option CK_RV>; pub type CK_C_CancelFunction = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct _CK_FUNCTION_LIST { pub version: _CK_VERSION, pub C_Initialize: CK_C_Initialize, pub C_Finalize: CK_C_Finalize, pub C_GetInfo: CK_C_GetInfo, pub C_GetFunctionList: CK_C_GetFunctionList, pub C_GetSlotList: CK_C_GetSlotList, pub C_GetSlotInfo: CK_C_GetSlotInfo, pub C_GetTokenInfo: CK_C_GetTokenInfo, pub C_GetMechanismList: CK_C_GetMechanismList, pub C_GetMechanismInfo: CK_C_GetMechanismInfo, pub C_InitToken: CK_C_InitToken, pub C_InitPIN: CK_C_InitPIN, pub C_SetPIN: CK_C_SetPIN, pub C_OpenSession: CK_C_OpenSession, pub C_CloseSession: CK_C_CloseSession, pub C_CloseAllSessions: CK_C_CloseAllSessions, pub C_GetSessionInfo: CK_C_GetSessionInfo, pub C_GetOperationState: CK_C_GetOperationState, pub C_SetOperationState: CK_C_SetOperationState, pub C_Login: CK_C_Login, pub C_Logout: CK_C_Logout, pub C_CreateObject: CK_C_CreateObject, pub C_CopyObject: CK_C_CopyObject, pub C_DestroyObject: CK_C_DestroyObject, pub C_GetObjectSize: CK_C_GetObjectSize, pub C_GetAttributeValue: CK_C_GetAttributeValue, pub C_SetAttributeValue: CK_C_SetAttributeValue, pub C_FindObjectsInit: CK_C_FindObjectsInit, pub C_FindObjects: CK_C_FindObjects, pub C_FindObjectsFinal: CK_C_FindObjectsFinal, pub C_EncryptInit: CK_C_EncryptInit, pub C_Encrypt: CK_C_Encrypt, pub C_EncryptUpdate: CK_C_EncryptUpdate, pub C_EncryptFinal: CK_C_EncryptFinal, pub C_DecryptInit: CK_C_DecryptInit, pub C_Decrypt: CK_C_Decrypt, pub C_DecryptUpdate: CK_C_DecryptUpdate, pub C_DecryptFinal: CK_C_DecryptFinal, pub C_DigestInit: CK_C_DigestInit, pub C_Digest: CK_C_Digest, pub C_DigestUpdate: CK_C_DigestUpdate, pub C_DigestKey: CK_C_DigestKey, pub C_DigestFinal: CK_C_DigestFinal, pub C_SignInit: CK_C_SignInit, pub C_Sign: CK_C_Sign, pub C_SignUpdate: CK_C_SignUpdate, pub C_SignFinal: CK_C_SignFinal, pub C_SignRecoverInit: CK_C_SignRecoverInit, pub C_SignRecover: CK_C_SignRecover, pub C_VerifyInit: CK_C_VerifyInit, pub C_Verify: CK_C_Verify, pub C_VerifyUpdate: CK_C_VerifyUpdate, pub C_VerifyFinal: CK_C_VerifyFinal, pub C_VerifyRecoverInit: CK_C_VerifyRecoverInit, pub C_VerifyRecover: CK_C_VerifyRecover, pub C_DigestEncryptUpdate: CK_C_DigestEncryptUpdate, pub C_DecryptDigestUpdate: CK_C_DecryptDigestUpdate, pub C_SignEncryptUpdate: CK_C_SignEncryptUpdate, pub C_DecryptVerifyUpdate: CK_C_DecryptVerifyUpdate, pub C_GenerateKey: CK_C_GenerateKey, pub C_GenerateKeyPair: CK_C_GenerateKeyPair, pub C_WrapKey: CK_C_WrapKey, pub C_UnwrapKey: CK_C_UnwrapKey, pub C_DeriveKey: CK_C_DeriveKey, pub C_SeedRandom: CK_C_SeedRandom, pub C_GenerateRandom: CK_C_GenerateRandom, pub C_GetFunctionStatus: CK_C_GetFunctionStatus, pub C_CancelFunction: CK_C_CancelFunction, pub C_WaitForSlotEvent: CK_C_WaitForSlotEvent, } #[test] fn bindgen_test_layout__CK_FUNCTION_LIST() { const UNINIT: ::std::mem::MaybeUninit<_CK_FUNCTION_LIST> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_FUNCTION_LIST>(), 552usize, concat!("Size of: ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( ::std::mem::align_of::<_CK_FUNCTION_LIST>(), 8usize, concat!("Alignment of ", stringify!(_CK_FUNCTION_LIST)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(version) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Initialize) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Initialize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Finalize) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Finalize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetInfo) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionList) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotList) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSlotInfo) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSlotInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetTokenInfo) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetTokenInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismList) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismList) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetMechanismInfo) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetMechanismInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitToken) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitToken) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_InitPIN) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_InitPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetPIN) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetPIN) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_OpenSession) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_OpenSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseSession) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseSession) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CloseAllSessions) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CloseAllSessions) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetSessionInfo) as usize - ptr as usize }, 128usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetSessionInfo) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetOperationState) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetOperationState) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetOperationState) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Login) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Login) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Logout) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Logout) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CreateObject) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CreateObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CopyObject) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CopyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DestroyObject) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DestroyObject) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetObjectSize) as usize - ptr as usize }, 192usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetObjectSize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetAttributeValue) as usize - ptr as usize }, 200usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SetAttributeValue) as usize - ptr as usize }, 208usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SetAttributeValue) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsInit) as usize - ptr as usize }, 216usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjects) as usize - ptr as usize }, 224usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjects) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_FindObjectsFinal) as usize - ptr as usize }, 232usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_FindObjectsFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptInit) as usize - ptr as usize }, 240usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Encrypt) as usize - ptr as usize }, 248usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Encrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptUpdate) as usize - ptr as usize }, 256usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_EncryptFinal) as usize - ptr as usize }, 264usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_EncryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptInit) as usize - ptr as usize }, 272usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Decrypt) as usize - ptr as usize }, 280usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Decrypt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptUpdate) as usize - ptr as usize }, 288usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptFinal) as usize - ptr as usize }, 296usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestInit) as usize - ptr as usize }, 304usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Digest) as usize - ptr as usize }, 312usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Digest) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestUpdate) as usize - ptr as usize }, 320usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestKey) as usize - ptr as usize }, 328usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestFinal) as usize - ptr as usize }, 336usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignInit) as usize - ptr as usize }, 344usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Sign) as usize - ptr as usize }, 352usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Sign) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignUpdate) as usize - ptr as usize }, 360usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignFinal) as usize - ptr as usize }, 368usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecoverInit) as usize - ptr as usize }, 376usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignRecover) as usize - ptr as usize }, 384usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyInit) as usize - ptr as usize }, 392usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_Verify) as usize - ptr as usize }, 400usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_Verify) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyUpdate) as usize - ptr as usize }, 408usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyFinal) as usize - ptr as usize }, 416usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyFinal) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecoverInit) as usize - ptr as usize }, 424usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecoverInit) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_VerifyRecover) as usize - ptr as usize }, 432usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_VerifyRecover) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DigestEncryptUpdate) as usize - ptr as usize }, 440usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DigestEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptDigestUpdate) as usize - ptr as usize }, 448usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptDigestUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SignEncryptUpdate) as usize - ptr as usize }, 456usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SignEncryptUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DecryptVerifyUpdate) as usize - ptr as usize }, 464usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DecryptVerifyUpdate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKey) as usize - ptr as usize }, 472usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateKeyPair) as usize - ptr as usize }, 480usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateKeyPair) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WrapKey) as usize - ptr as usize }, 488usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_UnwrapKey) as usize - ptr as usize }, 496usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_UnwrapKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_DeriveKey) as usize - ptr as usize }, 504usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_DeriveKey) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_SeedRandom) as usize - ptr as usize }, 512usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_SeedRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GenerateRandom) as usize - ptr as usize }, 520usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GenerateRandom) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_GetFunctionStatus) as usize - ptr as usize }, 528usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_GetFunctionStatus) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_CancelFunction) as usize - ptr as usize }, 536usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_CancelFunction) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).C_WaitForSlotEvent) as usize - ptr as usize }, 544usize, concat!( "Offset of field: ", stringify!(_CK_FUNCTION_LIST), "::", stringify!(C_WaitForSlotEvent) ) ); } pub type CK_CREATEMUTEX = ::std::option::Option CK_RV>; pub type CK_DESTROYMUTEX = ::std::option::Option CK_RV>; pub type CK_LOCKMUTEX = ::std::option::Option CK_RV>; pub type CK_UNLOCKMUTEX = ::std::option::Option CK_RV>; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _CK_C_INITIALIZE_ARGS { pub CreateMutex: CK_CREATEMUTEX, pub DestroyMutex: CK_DESTROYMUTEX, pub LockMutex: CK_LOCKMUTEX, pub UnlockMutex: CK_UNLOCKMUTEX, pub flags: CK_FLAGS, pub pReserved: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout__CK_C_INITIALIZE_ARGS() { const UNINIT: ::std::mem::MaybeUninit<_CK_C_INITIALIZE_ARGS> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_CK_C_INITIALIZE_ARGS>(), 48usize, concat!("Size of: ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( ::std::mem::align_of::<_CK_C_INITIALIZE_ARGS>(), 8usize, concat!("Alignment of ", stringify!(_CK_C_INITIALIZE_ARGS)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).CreateMutex) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(CreateMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).DestroyMutex) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(DestroyMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).LockMutex) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(LockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).UnlockMutex) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(UnlockMutex) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(flags) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pReserved) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(_CK_C_INITIALIZE_ARGS), "::", stringify!(pReserved) ) ); } impl Default for _CK_C_INITIALIZE_ARGS { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type CK_BYTE = ::std::os::raw::c_uchar; pub type CK_CHAR = ::std::os::raw::c_uchar; pub type CK_UTF8CHAR = ::std::os::raw::c_uchar; pub type CK_BBOOL = ::std::os::raw::c_uchar; pub type CK_ULONG = ::std::os::raw::c_ulong; pub type CK_LONG = ::std::os::raw::c_long; pub type CK_BYTE_PTR = *mut CK_BYTE; pub type CK_CHAR_PTR = *mut CK_CHAR; pub type CK_UTF8CHAR_PTR = *mut CK_UTF8CHAR; pub type CK_ULONG_PTR = *mut CK_ULONG; pub type CK_VOID_PTR = *mut ::std::os::raw::c_void; pub type CK_VOID_PTR_PTR = *mut *mut ::std::os::raw::c_void; pub type CK_VERSION = _CK_VERSION; pub type CK_VERSION_PTR = *mut _CK_VERSION; pub type CK_INFO = _CK_INFO; pub type CK_INFO_PTR = *mut _CK_INFO; pub type CK_SLOT_ID_PTR = *mut CK_SLOT_ID; pub type CK_SLOT_INFO = _CK_SLOT_INFO; pub type CK_SLOT_INFO_PTR = *mut _CK_SLOT_INFO; pub type CK_TOKEN_INFO = _CK_TOKEN_INFO; pub type CK_TOKEN_INFO_PTR = *mut _CK_TOKEN_INFO; pub type CK_SESSION_HANDLE_PTR = *mut CK_SESSION_HANDLE; pub type CK_SESSION_INFO = _CK_SESSION_INFO; pub type CK_SESSION_INFO_PTR = *mut _CK_SESSION_INFO; pub type CK_OBJECT_HANDLE_PTR = *mut CK_OBJECT_HANDLE; pub type CK_OBJECT_CLASS_PTR = *mut CK_OBJECT_CLASS; pub type CK_ATTRIBUTE = _CK_ATTRIBUTE; pub type CK_ATTRIBUTE_PTR = *mut _CK_ATTRIBUTE; pub type CK_DATE = _CK_DATE; pub type CK_DATE_PTR = *mut _CK_DATE; pub type CK_MECHANISM_TYPE_PTR = *mut CK_MECHANISM_TYPE; pub type CK_MECHANISM = _CK_MECHANISM; pub type CK_MECHANISM_PTR = *mut _CK_MECHANISM; pub type CK_MECHANISM_INFO = _CK_MECHANISM_INFO; pub type CK_MECHANISM_INFO_PTR = *mut _CK_MECHANISM_INFO; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ck_otp_mechanism_info { _unused: [u8; 0], } pub type CK_OTP_MECHANISM_INFO = ck_otp_mechanism_info; pub type CK_OTP_MECHANISM_INFO_PTR = *mut ck_otp_mechanism_info; pub type CK_FUNCTION_LIST = _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR = *mut _CK_FUNCTION_LIST; pub type CK_FUNCTION_LIST_PTR_PTR = *mut *mut _CK_FUNCTION_LIST; pub type CK_C_INITIALIZE_ARGS = _CK_C_INITIALIZE_ARGS; pub type CK_C_INITIALIZE_ARGS_PTR = *mut _CK_C_INITIALIZE_ARGS; pub type CK_RSA_PKCS_PSS_PARAMS = ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_PSS_PARAMS_PTR = *mut ck_rsa_pkcs_pss_params; pub type CK_RSA_PKCS_OAEP_PARAMS = ck_rsa_pkcs_oaep_params; pub type CK_RSA_PKCS_OAEP_PARAMS_PTR = *mut ck_rsa_pkcs_oaep_params; pub type CK_AES_CTR_PARAMS = ck_aes_ctr_params; pub type CK_AES_CTR_PARAMS_PTR = *mut ck_aes_ctr_params; pub type CK_GCM_PARAMS = ck_gcm_params; pub type CK_GCM_PARAMS_PTR = *mut ck_gcm_params; pub type CK_ECDH1_DERIVE_PARAMS = ck_ecdh1_derive_params; pub type CK_ECDH1_DERIVE_PARAMS_PTR = *mut ck_ecdh1_derive_params; pub type CK_KEY_DERIVATION_STRING_DATA = ck_key_derivation_string_data; pub type CK_KEY_DERIVATION_STRING_DATA_PTR = *mut ck_key_derivation_string_data; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS = ck_des_cbc_encrypt_data_params; pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_des_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS = ck_aes_cbc_encrypt_data_params; pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR = *mut ck_aes_cbc_encrypt_data_params; extern crate libloading; pub struct Pkcs11 { __library: ::libloading::Library, pub C_Initialize: Result< unsafe extern "C" fn(init_args: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_Finalize: Result< unsafe extern "C" fn(pReserved: *mut ::std::os::raw::c_void) -> CK_RV, ::libloading::Error, >, pub C_GetInfo: Result CK_RV, ::libloading::Error>, pub C_GetFunctionList: Result< unsafe extern "C" fn(function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV, ::libloading::Error, >, pub C_GetSlotList: Result< unsafe extern "C" fn( token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetSlotInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetTokenInfo: Result< unsafe extern "C" fn(slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV, ::libloading::Error, >, pub C_WaitForSlotEvent: Result< unsafe extern "C" fn( flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismList: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetMechanismInfo: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV, ::libloading::Error, >, pub C_InitToken: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV, ::libloading::Error, >, pub C_InitPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetPIN: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_OpenSession: Result< unsafe extern "C" fn( slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CloseSession: Result CK_RV, ::libloading::Error>, pub C_CloseAllSessions: Result CK_RV, ::libloading::Error>, pub C_GetSessionInfo: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO) -> CK_RV, ::libloading::Error, >, pub C_GetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetOperationState: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Login: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_Logout: Result CK_RV, ::libloading::Error>, pub C_CreateObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_CopyObject: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DestroyObject: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_GetObjectSize: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SetAttributeValue: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjects: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_FindObjectsFinal: Result CK_RV, ::libloading::Error>, pub C_EncryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Encrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_EncryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Decrypt: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestInit: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM) -> CK_RV, ::libloading::Error, >, pub C_Digest: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestKey: Result< unsafe extern "C" fn(session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV, ::libloading::Error, >, pub C_DigestFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Sign: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SignRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_Verify: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyFinal: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecoverInit: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_VerifyRecover: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DigestEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptDigestUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_SignEncryptUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_DecryptVerifyUpdate: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateKeyPair: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_WrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_UnwrapKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_DeriveKey: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV, ::libloading::Error, >, pub C_SeedRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GenerateRandom: Result< unsafe extern "C" fn( session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV, ::libloading::Error, >, pub C_GetFunctionStatus: Result CK_RV, ::libloading::Error>, pub C_CancelFunction: Result CK_RV, ::libloading::Error>, } impl Pkcs11 { pub unsafe fn new

(path: P) -> Result where P: AsRef<::std::ffi::OsStr>, { let library = ::libloading::Library::new(path)?; Self::from_library(library) } pub unsafe fn from_library(library: L) -> Result where L: Into<::libloading::Library>, { let __library = library.into(); let C_Initialize = __library.get(b"C_Initialize\0").map(|sym| *sym); let C_Finalize = __library.get(b"C_Finalize\0").map(|sym| *sym); let C_GetInfo = __library.get(b"C_GetInfo\0").map(|sym| *sym); let C_GetFunctionList = __library.get(b"C_GetFunctionList\0").map(|sym| *sym); let C_GetSlotList = __library.get(b"C_GetSlotList\0").map(|sym| *sym); let C_GetSlotInfo = __library.get(b"C_GetSlotInfo\0").map(|sym| *sym); let C_GetTokenInfo = __library.get(b"C_GetTokenInfo\0").map(|sym| *sym); let C_WaitForSlotEvent = __library.get(b"C_WaitForSlotEvent\0").map(|sym| *sym); let C_GetMechanismList = __library.get(b"C_GetMechanismList\0").map(|sym| *sym); let C_GetMechanismInfo = __library.get(b"C_GetMechanismInfo\0").map(|sym| *sym); let C_InitToken = __library.get(b"C_InitToken\0").map(|sym| *sym); let C_InitPIN = __library.get(b"C_InitPIN\0").map(|sym| *sym); let C_SetPIN = __library.get(b"C_SetPIN\0").map(|sym| *sym); let C_OpenSession = __library.get(b"C_OpenSession\0").map(|sym| *sym); let C_CloseSession = __library.get(b"C_CloseSession\0").map(|sym| *sym); let C_CloseAllSessions = __library.get(b"C_CloseAllSessions\0").map(|sym| *sym); let C_GetSessionInfo = __library.get(b"C_GetSessionInfo\0").map(|sym| *sym); let C_GetOperationState = __library.get(b"C_GetOperationState\0").map(|sym| *sym); let C_SetOperationState = __library.get(b"C_SetOperationState\0").map(|sym| *sym); let C_Login = __library.get(b"C_Login\0").map(|sym| *sym); let C_Logout = __library.get(b"C_Logout\0").map(|sym| *sym); let C_CreateObject = __library.get(b"C_CreateObject\0").map(|sym| *sym); let C_CopyObject = __library.get(b"C_CopyObject\0").map(|sym| *sym); let C_DestroyObject = __library.get(b"C_DestroyObject\0").map(|sym| *sym); let C_GetObjectSize = __library.get(b"C_GetObjectSize\0").map(|sym| *sym); let C_GetAttributeValue = __library.get(b"C_GetAttributeValue\0").map(|sym| *sym); let C_SetAttributeValue = __library.get(b"C_SetAttributeValue\0").map(|sym| *sym); let C_FindObjectsInit = __library.get(b"C_FindObjectsInit\0").map(|sym| *sym); let C_FindObjects = __library.get(b"C_FindObjects\0").map(|sym| *sym); let C_FindObjectsFinal = __library.get(b"C_FindObjectsFinal\0").map(|sym| *sym); let C_EncryptInit = __library.get(b"C_EncryptInit\0").map(|sym| *sym); let C_Encrypt = __library.get(b"C_Encrypt\0").map(|sym| *sym); let C_EncryptUpdate = __library.get(b"C_EncryptUpdate\0").map(|sym| *sym); let C_EncryptFinal = __library.get(b"C_EncryptFinal\0").map(|sym| *sym); let C_DecryptInit = __library.get(b"C_DecryptInit\0").map(|sym| *sym); let C_Decrypt = __library.get(b"C_Decrypt\0").map(|sym| *sym); let C_DecryptUpdate = __library.get(b"C_DecryptUpdate\0").map(|sym| *sym); let C_DecryptFinal = __library.get(b"C_DecryptFinal\0").map(|sym| *sym); let C_DigestInit = __library.get(b"C_DigestInit\0").map(|sym| *sym); let C_Digest = __library.get(b"C_Digest\0").map(|sym| *sym); let C_DigestUpdate = __library.get(b"C_DigestUpdate\0").map(|sym| *sym); let C_DigestKey = __library.get(b"C_DigestKey\0").map(|sym| *sym); let C_DigestFinal = __library.get(b"C_DigestFinal\0").map(|sym| *sym); let C_SignInit = __library.get(b"C_SignInit\0").map(|sym| *sym); let C_Sign = __library.get(b"C_Sign\0").map(|sym| *sym); let C_SignUpdate = __library.get(b"C_SignUpdate\0").map(|sym| *sym); let C_SignFinal = __library.get(b"C_SignFinal\0").map(|sym| *sym); let C_SignRecoverInit = __library.get(b"C_SignRecoverInit\0").map(|sym| *sym); let C_SignRecover = __library.get(b"C_SignRecover\0").map(|sym| *sym); let C_VerifyInit = __library.get(b"C_VerifyInit\0").map(|sym| *sym); let C_Verify = __library.get(b"C_Verify\0").map(|sym| *sym); let C_VerifyUpdate = __library.get(b"C_VerifyUpdate\0").map(|sym| *sym); let C_VerifyFinal = __library.get(b"C_VerifyFinal\0").map(|sym| *sym); let C_VerifyRecoverInit = __library.get(b"C_VerifyRecoverInit\0").map(|sym| *sym); let C_VerifyRecover = __library.get(b"C_VerifyRecover\0").map(|sym| *sym); let C_DigestEncryptUpdate = __library.get(b"C_DigestEncryptUpdate\0").map(|sym| *sym); let C_DecryptDigestUpdate = __library.get(b"C_DecryptDigestUpdate\0").map(|sym| *sym); let C_SignEncryptUpdate = __library.get(b"C_SignEncryptUpdate\0").map(|sym| *sym); let C_DecryptVerifyUpdate = __library.get(b"C_DecryptVerifyUpdate\0").map(|sym| *sym); let C_GenerateKey = __library.get(b"C_GenerateKey\0").map(|sym| *sym); let C_GenerateKeyPair = __library.get(b"C_GenerateKeyPair\0").map(|sym| *sym); let C_WrapKey = __library.get(b"C_WrapKey\0").map(|sym| *sym); let C_UnwrapKey = __library.get(b"C_UnwrapKey\0").map(|sym| *sym); let C_DeriveKey = __library.get(b"C_DeriveKey\0").map(|sym| *sym); let C_SeedRandom = __library.get(b"C_SeedRandom\0").map(|sym| *sym); let C_GenerateRandom = __library.get(b"C_GenerateRandom\0").map(|sym| *sym); let C_GetFunctionStatus = __library.get(b"C_GetFunctionStatus\0").map(|sym| *sym); let C_CancelFunction = __library.get(b"C_CancelFunction\0").map(|sym| *sym); Ok(Pkcs11 { __library, C_Initialize, C_Finalize, C_GetInfo, C_GetFunctionList, C_GetSlotList, C_GetSlotInfo, C_GetTokenInfo, C_WaitForSlotEvent, C_GetMechanismList, C_GetMechanismInfo, C_InitToken, C_InitPIN, C_SetPIN, C_OpenSession, C_CloseSession, C_CloseAllSessions, C_GetSessionInfo, C_GetOperationState, C_SetOperationState, C_Login, C_Logout, C_CreateObject, C_CopyObject, C_DestroyObject, C_GetObjectSize, C_GetAttributeValue, C_SetAttributeValue, C_FindObjectsInit, C_FindObjects, C_FindObjectsFinal, C_EncryptInit, C_Encrypt, C_EncryptUpdate, C_EncryptFinal, C_DecryptInit, C_Decrypt, C_DecryptUpdate, C_DecryptFinal, C_DigestInit, C_Digest, C_DigestUpdate, C_DigestKey, C_DigestFinal, C_SignInit, C_Sign, C_SignUpdate, C_SignFinal, C_SignRecoverInit, C_SignRecover, C_VerifyInit, C_Verify, C_VerifyUpdate, C_VerifyFinal, C_VerifyRecoverInit, C_VerifyRecover, C_DigestEncryptUpdate, C_DecryptDigestUpdate, C_SignEncryptUpdate, C_DecryptVerifyUpdate, C_GenerateKey, C_GenerateKeyPair, C_WrapKey, C_UnwrapKey, C_DeriveKey, C_SeedRandom, C_GenerateRandom, C_GetFunctionStatus, C_CancelFunction, }) } pub unsafe fn C_Initialize(&self, init_args: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Initialize .as_ref() .expect("Expected function, got error."))(init_args) } pub unsafe fn C_Finalize(&self, pReserved: *mut ::std::os::raw::c_void) -> CK_RV { (self .C_Finalize .as_ref() .expect("Expected function, got error."))(pReserved) } pub unsafe fn C_GetInfo(&self, info: *mut _CK_INFO) -> CK_RV { (self .C_GetInfo .as_ref() .expect("Expected function, got error."))(info) } pub unsafe fn C_GetFunctionList(&self, function_list: *mut *mut _CK_FUNCTION_LIST) -> CK_RV { (self .C_GetFunctionList .as_ref() .expect("Expected function, got error."))(function_list) } pub unsafe fn C_GetSlotList( &self, token_present: ::std::os::raw::c_uchar, slot_list: *mut CK_SLOT_ID, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetSlotList .as_ref() .expect("Expected function, got error."))(token_present, slot_list, ulCount) } pub unsafe fn C_GetSlotInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_SLOT_INFO) -> CK_RV { (self .C_GetSlotInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_GetTokenInfo(&self, slotID: CK_SLOT_ID, info: *mut _CK_TOKEN_INFO) -> CK_RV { (self .C_GetTokenInfo .as_ref() .expect("Expected function, got error."))(slotID, info) } pub unsafe fn C_WaitForSlotEvent( &self, flags: CK_FLAGS, slot: *mut CK_SLOT_ID, pReserved: *mut ::std::os::raw::c_void, ) -> CK_RV { (self .C_WaitForSlotEvent .as_ref() .expect("Expected function, got error."))(flags, slot, pReserved) } pub unsafe fn C_GetMechanismList( &self, slotID: CK_SLOT_ID, mechanism_list: *mut CK_MECHANISM_TYPE, ulCount: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetMechanismList .as_ref() .expect("Expected function, got error."))(slotID, mechanism_list, ulCount) } pub unsafe fn C_GetMechanismInfo( &self, slotID: CK_SLOT_ID, type_: CK_MECHANISM_TYPE, info: *mut _CK_MECHANISM_INFO, ) -> CK_RV { (self .C_GetMechanismInfo .as_ref() .expect("Expected function, got error."))(slotID, type_, info) } pub unsafe fn C_InitToken( &self, slotID: CK_SLOT_ID, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, label: *mut ::std::os::raw::c_uchar, ) -> CK_RV { (self .C_InitToken .as_ref() .expect("Expected function, got error."))(slotID, pin, pin_len, label) } pub unsafe fn C_InitPIN( &self, session: CK_SESSION_HANDLE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_InitPIN .as_ref() .expect("Expected function, got error."))(session, pin, pin_len) } pub unsafe fn C_SetPIN( &self, session: CK_SESSION_HANDLE, old_pin: *mut ::std::os::raw::c_uchar, old_len: ::std::os::raw::c_ulong, new_pin: *mut ::std::os::raw::c_uchar, new_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetPIN .as_ref() .expect("Expected function, got error."))( session, old_pin, old_len, new_pin, new_len ) } pub unsafe fn C_OpenSession( &self, slotID: CK_SLOT_ID, flags: CK_FLAGS, application: *mut ::std::os::raw::c_void, notify: CK_NOTIFY, session: *mut CK_SESSION_HANDLE, ) -> CK_RV { (self .C_OpenSession .as_ref() .expect("Expected function, got error."))( slotID, flags, application, notify, session ) } pub unsafe fn C_CloseSession(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CloseSession .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CloseAllSessions(&self, slotID: CK_SLOT_ID) -> CK_RV { (self .C_CloseAllSessions .as_ref() .expect("Expected function, got error."))(slotID) } pub unsafe fn C_GetSessionInfo( &self, session: CK_SESSION_HANDLE, info: *mut _CK_SESSION_INFO, ) -> CK_RV { (self .C_GetSessionInfo .as_ref() .expect("Expected function, got error."))(session, info) } pub unsafe fn C_GetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len ) } pub unsafe fn C_SetOperationState( &self, session: CK_SESSION_HANDLE, operation_state: *mut ::std::os::raw::c_uchar, operation_state_len: ::std::os::raw::c_ulong, encryption_key: CK_OBJECT_HANDLE, authentiation_key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SetOperationState .as_ref() .expect("Expected function, got error."))( session, operation_state, operation_state_len, encryption_key, authentiation_key, ) } pub unsafe fn C_Login( &self, session: CK_SESSION_HANDLE, user_type: CK_USER_TYPE, pin: *mut ::std::os::raw::c_uchar, pin_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Login .as_ref() .expect("Expected function, got error."))(session, user_type, pin, pin_len) } pub unsafe fn C_Logout(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_Logout .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CreateObject( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CreateObject .as_ref() .expect("Expected function, got error."))(session, templ, ulCount, object) } pub unsafe fn C_CopyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, new_object: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_CopyObject .as_ref() .expect("Expected function, got error."))( session, object, templ, ulCount, new_object ) } pub unsafe fn C_DestroyObject( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DestroyObject .as_ref() .expect("Expected function, got error."))(session, object) } pub unsafe fn C_GetObjectSize( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, size: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetObjectSize .as_ref() .expect("Expected function, got error."))(session, object, size) } pub unsafe fn C_GetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_SetAttributeValue( &self, session: CK_SESSION_HANDLE, object: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SetAttributeValue .as_ref() .expect("Expected function, got error."))(session, object, templ, ulCount) } pub unsafe fn C_FindObjectsInit( &self, session: CK_SESSION_HANDLE, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjectsInit .as_ref() .expect("Expected function, got error."))(session, templ, ulCount) } pub unsafe fn C_FindObjects( &self, session: CK_SESSION_HANDLE, object: *mut CK_OBJECT_HANDLE, max_object_count: ::std::os::raw::c_ulong, object_count: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_FindObjects .as_ref() .expect("Expected function, got error."))( session, object, max_object_count, object_count, ) } pub unsafe fn C_FindObjectsFinal(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_FindObjectsFinal .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_EncryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_EncryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Encrypt( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Encrypt .as_ref() .expect("Expected function, got error."))( session, data, data_len, encrypted_data, encrypted_data_len, ) } pub unsafe fn C_EncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_EncryptFinal( &self, session: CK_SESSION_HANDLE, last_encrypted_part: *mut ::std::os::raw::c_uchar, last_encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_EncryptFinal .as_ref() .expect("Expected function, got error."))( session, last_encrypted_part, last_encrypted_part_len, ) } pub unsafe fn C_DecryptInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DecryptInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Decrypt( &self, session: CK_SESSION_HANDLE, encrypted_data: *mut ::std::os::raw::c_uchar, encrypted_data_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Decrypt .as_ref() .expect("Expected function, got error."))( session, encrypted_data, encrypted_data_len, data, data_len, ) } pub unsafe fn C_DecryptUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_DecryptFinal( &self, session: CK_SESSION_HANDLE, last_part: *mut ::std::os::raw::c_uchar, last_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptFinal .as_ref() .expect("Expected function, got error."))(session, last_part, last_part_len) } pub unsafe fn C_DigestInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, ) -> CK_RV { (self .C_DigestInit .as_ref() .expect("Expected function, got error."))(session, mechanism) } pub unsafe fn C_Digest( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Digest .as_ref() .expect("Expected function, got error."))( session, data, data_len, digest, digest_len ) } pub unsafe fn C_DigestUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_DigestKey(&self, session: CK_SESSION_HANDLE, key: CK_OBJECT_HANDLE) -> CK_RV { (self .C_DigestKey .as_ref() .expect("Expected function, got error."))(session, key) } pub unsafe fn C_DigestFinal( &self, session: CK_SESSION_HANDLE, digest: *mut ::std::os::raw::c_uchar, digest_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestFinal .as_ref() .expect("Expected function, got error."))(session, digest, digest_len) } pub unsafe fn C_SignInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Sign( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self.C_Sign.as_ref().expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_SignUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_SignFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_SignRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_SignRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_SignRecover( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignRecover .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_Verify( &self, session: CK_SESSION_HANDLE, data: *mut ::std::os::raw::c_uchar, data_len: ::std::os::raw::c_ulong, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_Verify .as_ref() .expect("Expected function, got error."))( session, data, data_len, signature, signature_len, ) } pub unsafe fn C_VerifyUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyUpdate .as_ref() .expect("Expected function, got error."))(session, part, part_len) } pub unsafe fn C_VerifyFinal( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyFinal .as_ref() .expect("Expected function, got error."))(session, signature, signature_len) } pub unsafe fn C_VerifyRecoverInit( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, key: CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_VerifyRecoverInit .as_ref() .expect("Expected function, got error."))(session, mechanism, key) } pub unsafe fn C_VerifyRecover( &self, session: CK_SESSION_HANDLE, signature: *mut ::std::os::raw::c_uchar, signature_len: ::std::os::raw::c_ulong, data: *mut ::std::os::raw::c_uchar, data_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_VerifyRecover .as_ref() .expect("Expected function, got error."))( session, signature, signature_len, data, data_len, ) } pub unsafe fn C_DigestEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DigestEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptDigestUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptDigestUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_SignEncryptUpdate( &self, session: CK_SESSION_HANDLE, part: *mut ::std::os::raw::c_uchar, part_len: ::std::os::raw::c_ulong, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SignEncryptUpdate .as_ref() .expect("Expected function, got error."))( session, part, part_len, encrypted_part, encrypted_part_len, ) } pub unsafe fn C_DecryptVerifyUpdate( &self, session: CK_SESSION_HANDLE, encrypted_part: *mut ::std::os::raw::c_uchar, encrypted_part_len: ::std::os::raw::c_ulong, part: *mut ::std::os::raw::c_uchar, part_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_DecryptVerifyUpdate .as_ref() .expect("Expected function, got error."))( session, encrypted_part, encrypted_part_len, part, part_len, ) } pub unsafe fn C_GenerateKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, templ: *mut _CK_ATTRIBUTE, ulCount: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKey .as_ref() .expect("Expected function, got error."))( session, mechanism, templ, ulCount, key ) } pub unsafe fn C_GenerateKeyPair( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, public_key_template: *mut _CK_ATTRIBUTE, public_key_attribute_count: ::std::os::raw::c_ulong, private_key_template: *mut _CK_ATTRIBUTE, private_key_attribute_count: ::std::os::raw::c_ulong, public_key: *mut CK_OBJECT_HANDLE, private_key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_GenerateKeyPair .as_ref() .expect("Expected function, got error."))( session, mechanism, public_key_template, public_key_attribute_count, private_key_template, private_key_attribute_count, public_key, private_key, ) } pub unsafe fn C_WrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, wrapping_key: CK_OBJECT_HANDLE, key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: *mut ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_WrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, wrapping_key, key, wrapped_key, wrapped_key_len, ) } pub unsafe fn C_UnwrapKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, unwrapping_key: CK_OBJECT_HANDLE, wrapped_key: *mut ::std::os::raw::c_uchar, wrapped_key_len: ::std::os::raw::c_ulong, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_UnwrapKey .as_ref() .expect("Expected function, got error."))( session, mechanism, unwrapping_key, wrapped_key, wrapped_key_len, templ, attribute_count, key, ) } pub unsafe fn C_DeriveKey( &self, session: CK_SESSION_HANDLE, mechanism: *mut _CK_MECHANISM, base_key: CK_OBJECT_HANDLE, templ: *mut _CK_ATTRIBUTE, attribute_count: ::std::os::raw::c_ulong, key: *mut CK_OBJECT_HANDLE, ) -> CK_RV { (self .C_DeriveKey .as_ref() .expect("Expected function, got error."))( session, mechanism, base_key, templ, attribute_count, key, ) } pub unsafe fn C_SeedRandom( &self, session: CK_SESSION_HANDLE, seed: *mut ::std::os::raw::c_uchar, seed_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_SeedRandom .as_ref() .expect("Expected function, got error."))(session, seed, seed_len) } pub unsafe fn C_GenerateRandom( &self, session: CK_SESSION_HANDLE, random_data: *mut ::std::os::raw::c_uchar, random_len: ::std::os::raw::c_ulong, ) -> CK_RV { (self .C_GenerateRandom .as_ref() .expect("Expected function, got error."))(session, random_data, random_len) } pub unsafe fn C_GetFunctionStatus(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_GetFunctionStatus .as_ref() .expect("Expected function, got error."))(session) } pub unsafe fn C_CancelFunction(&self, session: CK_SESSION_HANDLE) -> CK_RV { (self .C_CancelFunction .as_ref() .expect("Expected function, got error."))(session) } } cryptoki-sys-0.1.7/src/lib.rs000064400000000000000000000106361046102023000142220ustar 00000000000000// Copyright 2021,2023 Contributors to the Parsec project. // SPDX-License-Identifier: Apache-2.0 #![allow(non_upper_case_globals)] #![allow(non_camel_case_types)] #![allow(non_snake_case)] #![allow(clippy::redundant_field_names)] #![allow(clippy::missing_safety_doc)] #![allow(clippy::string_lit_as_bytes)] #![allow(clippy::too_many_arguments)] // Public items exportedby this crate should match the C style #![allow(clippy::upper_case_acronyms)] // Suppress warnings from bindgen-generated code // Remove on resolution of // https://github.com/rust-lang/rust-bindgen/issues/1651 #![allow(deref_nullptr)] // For supported targets: use the generated and committed bindings. #[cfg(all( not(feature = "generate-bindings"), target_arch = "x86_64", target_os = "linux" ))] include!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/bindings/x86_64-unknown-linux-gnu.rs" )); #[cfg(all( not(feature = "generate-bindings"), target_arch = "x86", target_os = "linux" ))] include!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/bindings/i686-unknown-linux-gnu.rs" )); #[cfg(all( not(feature = "generate-bindings"), target_arch = "powerpc64", target_os = "linux" ))] include!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/bindings/powerpc64-unknown-linux-gnu.rs" )); #[cfg(all( not(feature = "generate-bindings"), target_arch = "aarch64", target_os = "linux" ))] include!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/bindings/aarch64-unknown-linux-gnu.rs" )); #[cfg(all( not(feature = "generate-bindings"), target_arch = "arm", target_os = "linux" ))] include!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/bindings/arm-unknown-linux-gnueabi.rs" )); #[cfg(all( not(feature = "generate-bindings"), target_arch = "x86_64", target_os = "macos" ))] include!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/bindings/x86_64-apple-darwin.rs" )); #[cfg(all( not(feature = "generate-bindings"), target_arch = "aarch64", target_os = "macos" ))] include!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/bindings/aarch64-apple-darwin.rs" )); #[cfg(all( not(feature = "generate-bindings"), target_arch = "x86_64", target_os = "windows" ))] include!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/bindings/x86_64-pc-windows-msvc.rs" )); #[cfg(all( not(feature = "generate-bindings"), target_arch = "x86_64", target_os = "freebsd" ))] include!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/bindings/x86_64-unknown-freebsd.rs" )); // For supported targets: use the generated and committed bindings. #[cfg(not(any( feature = "generate-bindings", all(target_arch = "x86_64", target_os = "linux"), all(target_arch = "x86", target_os = "linux"), all(target_arch = "powerpc64", target_os = "linux"), all(target_arch = "aarch64", target_os = "linux"), all(target_arch = "arm", target_os = "linux"), all(target_arch = "x86_64", target_os = "macos"), all(target_arch = "aarch64", target_os = "macos"), all(target_arch = "x86_64", target_os = "windows"), all(target_arch = "x86_64", target_os = "freebsd"), )))] include!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/bindings/generic.rs" )); // If the "generate-bindings" feature is on, use the generated bindings. #[cfg(feature = "generate-bindings")] include!(concat!(env!("OUT_DIR"), "/pkcs11_bindings.rs")); /// Typedefs and defines for the CKM_X9_42_DH_KEY_PAIR_GEN and the /// CKM_X9_42_DH_PARAMETER_GEN mechanisms pub type CK_X9_42_DH_KDF_TYPE = CK_ULONG; pub type CK_X9_42_DH_KDF_TYPE_PTR = *mut CK_X9_42_DH_KDF_TYPE; pub type CK_EC_KDF_TYPE = CK_ULONG; // The values below are defined in pkcs11.h with `#define` macros. As a result, bindgen cannot // generate bindings for them. They are included here for completeness. pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = CKF_ARRAY_ATTRIBUTE | 0x00000211; pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = CKF_ARRAY_ATTRIBUTE | 0x00000212; pub const CKA_DERIVE_TEMPLATE: CK_ATTRIBUTE_TYPE = CKF_ARRAY_ATTRIBUTE | 0x00000213; pub const CKA_ALLOWED_MECHANISMS: CK_ATTRIBUTE_TYPE = CKF_ARRAY_ATTRIBUTE | 0x00000600; pub const CK_UNAVAILABLE_INFORMATION: CK_ULONG = !0; pub const CKF_EXTENSION: CK_FLAGS = 0x80000000; pub const CKK_EC_MONTGOMERY: CK_KEY_TYPE = 0x00000041; pub const CKR_VENDOR_DEFINED: CK_RV = 0x80000000; pub const CKR_CURVE_NOT_SUPPORTED: CK_RV = 0x00000140; pub const CKM_VENDOR_DEFINED: CK_MECHANISM_TYPE = 0x80000000;