13#include <botan/exceptn.h>
14#include <botan/secmem.h>
25 #pragma pack(push, cryptoki, 1)
28#define PKCS11_DEPRECATED
32 #pragma pack(pop, cryptoki)
37 "The Botan PKCS #11 module was implemented against PKCS #11 v3.2. Please use the correct PKCS #11 headers.");
41class Dynamically_Loaded_Library;
1296 std::span<const Utf8Char> name()
const;
1318 static Utf8Char* p11_interface_name_ptr();
1325 BOTAN_DEPRECATED(
"Use LowLevel(InterfaceWrapper::latest_p11_interface(module.library()))")
1450 const Utf8Char* interface_name_ptr,
1489 std::vector<SlotId>& slot_ids,
1574 std::vector<MechanismType>& mechanisms,
1636 template <
typename TAlloc>
1638 const std::vector<uint8_t, TAlloc>& so_pin,
1639 std::string_view label,
1641 std::string padded_label(label);
1642 if(label.size() < 32) {
1643 padded_label.insert(padded_label.end(), 32 - label.size(),
' ');
1647 reinterpret_cast<Utf8Char*
>(
const_cast<uint8_t*
>(so_pin.data())),
1648 static_cast<Ulong>(so_pin.size()),
1649 reinterpret_cast<Utf8Char*
>(
const_cast<char*
>(padded_label.c_str())),
1689 template <
typename TAlloc>
1691 const std::vector<uint8_t, TAlloc>& pin,
1694 reinterpret_cast<Utf8Char*
>(
const_cast<uint8_t*
>(pin.data())),
1695 static_cast<Ulong>(pin.size()),
1740 template <
typename TAlloc>
1742 const std::vector<uint8_t, TAlloc>& old_pin,
1743 const std::vector<uint8_t, TAlloc>& new_pin,
1746 reinterpret_cast<Utf8Char*
>(
const_cast<uint8_t*
>(old_pin.data())),
1747 static_cast<Ulong>(old_pin.size()),
1748 reinterpret_cast<Utf8Char*
>(
const_cast<uint8_t*
>(new_pin.data())),
1749 static_cast<Ulong>(new_pin.size()),
1851 Byte* operation_state_ptr,
1852 Ulong* operation_state_len_ptr,
1873 const Byte* operation_state_ptr,
1874 Ulong operation_state_len,
1920 template <
typename TAlloc>
1923 const std::vector<uint8_t, TAlloc>& pin,
1927 reinterpret_cast<Utf8Char*
>(
const_cast<uint8_t*
>(pin.data())),
1928 static_cast<Ulong>(pin.size()),
2111 template <
typename TAlloc>
2114 std::map<
AttributeType, std::vector<uint8_t, TAlloc>>& attribute_values,
2116 std::vector<Attribute> getter_template;
2118 getter_template.reserve(attribute_values.size());
2119 for(
const auto& entry : attribute_values) {
2125 const_cast<Attribute*
>(getter_template.data()),
2126 static_cast<Ulong>(getter_template.size()),
2134 for(
auto& entry : attribute_values) {
2135 entry.second.clear();
2136 entry.second.resize(getter_template.at(i).ulValueLen);
2137 getter_template.at(i).pValue =
const_cast<uint8_t*
>(entry.second.data());
2143 const_cast<Attribute*
>(getter_template.data()),
2144 static_cast<Ulong>(getter_template.size()),
2189 template <
typename TAlloc>
2192 std::map<
AttributeType, std::vector<uint8_t, TAlloc>>& attribute_values,
2194 std::vector<Attribute> setter_template;
2196 setter_template.reserve(attribute_values.size());
2197 for(
auto& entry : attribute_values) {
2199 entry.second.data(),
2200 static_cast<CK_ULONG>(entry.second.size())});
2205 const_cast<Attribute*
>(setter_template.data()),
2206 static_cast<Ulong>(setter_template.size()),
2247 Ulong max_object_count,
2248 Ulong* object_count_ptr,
2308 const Byte* data_ptr,
2310 Byte* encrypted_data,
2311 Ulong* encrypted_data_len_ptr,
2330 template <
typename TAllocA,
typename TAllocB>
2332 const std::vector<uint8_t, TAllocA>& plaintext_data,
2333 std::vector<uint8_t, TAllocB>& encrypted_data,
2335 Ulong encrypted_size = 0;
2337 const_cast<Byte*
>((plaintext_data.data())),
2338 static_cast<Ulong>(plaintext_data.size()),
2345 encrypted_data.resize(encrypted_size);
2347 const_cast<Byte*
>(plaintext_data.data()),
2348 static_cast<Ulong>(plaintext_data.size()),
2349 encrypted_data.data(),
2354 encrypted_data.resize(encrypted_size);
2376 const Byte* part_ptr,
2378 Byte* encrypted_part_ptr,
2379 Ulong* encrypted_part_len_ptr,
2398 Byte* last_encrypted_part_ptr,
2399 Ulong* last_encrypted_part_len_ptr,
2436 const void* parameter_ptr,
2437 Ulong parameter_len,
2438 const Byte* associated_data_ptr,
2439 Ulong associated_data_len,
2440 const Byte* plaintext_ptr,
2441 Ulong plaintext_len,
2442 Byte* ciphertext_ptr,
2443 Ulong* ciphertext_len_ptr,
2458 const void* parameter_ptr,
2459 Ulong parameter_len,
2460 const Byte* associated_data_ptr,
2461 Ulong associated_data_len,
2480 const void* parameter_ptr,
2481 Ulong parameter_len,
2482 const Byte* plaintext_part_ptr,
2483 Ulong plaintext_part_len,
2484 Byte* ciphertext_ptr,
2485 Ulong* ciphertext_part_len_ptr,
2541 const Byte* encrypted_data_ptr,
2542 Ulong encrypted_data_len,
2544 Ulong* data_len_ptr,
2563 template <
typename TAllocA,
typename TAllocB>
2565 const std::vector<uint8_t, TAllocA>& encrypted_data,
2566 std::vector<uint8_t, TAllocB>& decrypted_data,
2568 Ulong decrypted_size = 0;
2570 const_cast<Byte*
>((encrypted_data.data())),
2571 static_cast<Ulong>(encrypted_data.size()),
2578 decrypted_data.resize(decrypted_size);
2580 const_cast<Byte*
>(encrypted_data.data()),
2581 static_cast<Ulong>(encrypted_data.size()),
2582 decrypted_data.data(),
2587 decrypted_data.resize(decrypted_size);
2610 const Byte* encrypted_part_ptr,
2611 Ulong encrypted_part_len,
2613 Ulong* part_len_ptr,
2633 Byte* last_part_ptr,
2634 Ulong* last_part_len_ptr,
2671 const void* parameter_ptr,
2672 Ulong parameter_len,
2673 const Byte* associated_data_ptr,
2674 Ulong associated_data_len,
2675 const Byte* ciphertext_ptr,
2676 Ulong ciphertext_len,
2677 Byte* plaintext_ptr,
2678 Ulong* plaintext_len_ptr,
2693 const void* parameter_ptr,
2694 Ulong parameter_len,
2695 const Byte* associated_data_ptr,
2696 Ulong associated_data_len,
2715 const void* parameter_ptr,
2716 Ulong parameter_len,
2717 const Byte* ciphertext_part_ptr,
2718 Ulong ciphertext_part_len,
2719 Byte* plaintext_ptr,
2720 Ulong* plaintext_part_len_ptr,
2772 const Byte* data_ptr,
2775 Ulong* digest_len_ptr,
2794 const Byte* part_ptr,
2831 Ulong* digest_len_ptr,
2877 const Byte* data_ptr,
2879 Byte* signature_ptr,
2880 Ulong* signature_len_ptr,
2899 template <
typename TAllocA,
typename TAllocB>
2901 const std::vector<uint8_t, TAllocA>& data,
2902 std::vector<uint8_t, TAllocB>& signature,
2904 Ulong signature_size = 0;
2905 if(!
C_Sign(session, data.data(),
static_cast<Ulong>(data.size()),
nullptr, &signature_size, return_value)) {
2909 signature.resize(signature_size);
2912 static_cast<Ulong>(data.size()),
2918 signature.resize(signature_size);
2938 const Byte* part_ptr,
2956 template <
typename TAlloc>
2958 const std::vector<uint8_t, TAlloc>& part,
2960 return C_SignUpdate(session, part.data(),
static_cast<Ulong>(part.size()), return_value);
2980 Byte* signature_ptr,
2981 Ulong* signature_len_ptr,
2999 template <
typename TAlloc>
3001 std::vector<uint8_t, TAlloc>& signature,
3003 Ulong signature_size = 0;
3004 if(!
C_SignFinal(session,
nullptr, &signature_size, return_value)) {
3008 signature.resize(signature_size);
3009 if(!
C_SignFinal(session, signature.data(), &signature_size, return_value)) {
3012 signature.resize(signature_size);
3057 const Byte* data_ptr,
3059 Byte* signature_ptr,
3060 Ulong* signature_len_ptr,
3098 const void* parameter_ptr,
3099 Ulong parameter_len,
3100 const Byte* data_ptr,
3102 Byte* signature_ptr,
3103 Ulong* signature_len_ptr,
3118 const void* parameter_ptr,
3119 Ulong parameter_len,
3138 const void* parameter_ptr,
3139 Ulong parameter_len,
3140 const Byte* data_ptr,
3142 Byte* signature_ptr,
3143 Ulong* signature_len_ptr,
3198 const Byte* data_ptr,
3200 const Byte* signature_ptr,
3201 Ulong signature_len,
3220 template <
typename TAllocA,
typename TAllocB>
3222 const std::vector<uint8_t, TAllocA>& data,
3223 std::vector<uint8_t, TAllocB>& signature,
3227 static_cast<Ulong>(data.size()),
3229 static_cast<Ulong>(signature.size()),
3249 const Byte* part_ptr,
3267 template <
typename TAlloc>
3269 std::vector<uint8_t, TAlloc> part,
3271 return C_VerifyUpdate(session, part.data(),
static_cast<Ulong>(part.size()), return_value);
3291 const Byte* signature_ptr,
3292 Ulong signature_len,
3336 const Byte* signature_ptr,
3337 Ulong signature_len,
3339 Ulong* data_len_ptr,
3357 const Byte* signature_ptr,
3358 Ulong signature_len,
3372 const Byte* data_ptr,
3387 const Byte* part_ptr,
3436 const void* parameter_ptr,
3437 Ulong parameter_len,
3438 const Byte* data_ptr,
3440 const Byte* signature_ptr,
3441 Ulong signature_len,
3456 const void* parameter_ptr,
3457 Ulong parameter_len,
3476 const void* parameter_ptr,
3477 Ulong parameter_len,
3478 const Byte* data_ptr,
3480 const Byte* signature_ptr,
3481 Ulong signature_len,
3513 const Byte* part_ptr,
3515 Byte* encrypted_part_ptr,
3516 Ulong* encrypted_part_len_ptr,
3538 const Byte* encrypted_part_ptr,
3539 Ulong encrypted_part_len,
3541 Ulong* part_len_ptr,
3563 const Byte* part_ptr,
3565 Byte* encrypted_part_ptr,
3566 Ulong* encrypted_part_len_ptr,
3588 const Byte* encrypted_part_ptr,
3589 Ulong encrypted_part_len,
3591 Ulong* part_len_ptr,
3651 Ulong public_key_attribute_count,
3653 Ulong private_key_attribute_count,
3684 Byte* wrapped_key_ptr,
3685 Ulong* wrapped_key_len_ptr,
3717 const Byte* wrapped_key_ptr,
3718 Ulong wrapped_key_len,
3720 Ulong attribute_count,
3751 Ulong attribute_count,
3773 const Byte* associated_data_ptr,
3774 Ulong associated_data_len,
3775 Byte* wrapped_key_ptr,
3776 Ulong* wrapped_key_len_ptr,
3799 const Byte* wrapped_key_ptr,
3800 Ulong wrapped_key_len,
3802 Ulong attribute_count,
3803 const Byte* associated_data_ptr,
3804 Ulong associated_data_len,
3827 Ulong attribute_count,
3828 Byte* ciphertext_ptr,
3829 Ulong* ciphertext_len_ptr,
3856 Ulong attribute_count,
3857 const Byte* ciphertext_ptr,
3858 Ulong ciphertext_len,
3881 const Byte* seed_ptr,
3901 Byte* random_data_ptr,
4007 static bool handle_return_value(
CK_RV function_result,
ReturnValue* return_value);
4026 int error_code() const noexcept
override {
return static_cast<int>(m_return_val); }
#define BOTAN_PUBLIC_API(maj, min)
#define BOTAN_DEPRECATED(msg)
const char * what() const noexcept override
Exception(std::string_view msg)
Wraps a PKCS #11 Interface object.
InterfaceWrapper(const InterfaceWrapper &)=default
InterfaceWrapper & operator=(const InterfaceWrapper &)=default
InterfaceWrapper & operator=(InterfaceWrapper &&)=default
~InterfaceWrapper()=default
InterfaceWrapper(Interface raw_interface)
Basic constructor using an interface.
const Interface & raw_interface() const
Access the underlying interface object.
InterfaceWrapper(InterfaceWrapper &&)=default
bool C_InitPIN(SessionHandle session, const std::vector< uint8_t, TAlloc > &pin, ReturnValue *return_value=ThrowException) const
bool C_SetAttributeValue(SessionHandle session, ObjectHandle object, std::map< AttributeType, std::vector< uint8_t, TAlloc > > &attribute_values, ReturnValue *return_value=ThrowException) const
bool C_Sign(SessionHandle session, const std::vector< uint8_t, TAllocA > &data, std::vector< uint8_t, TAllocB > &signature, ReturnValue *return_value=ThrowException) const
bool C_SetPIN(SessionHandle session, const std::vector< uint8_t, TAlloc > &old_pin, const std::vector< uint8_t, TAlloc > &new_pin, ReturnValue *return_value=ThrowException) const
bool C_SignUpdate(SessionHandle session, const std::vector< uint8_t, TAlloc > &part, ReturnValue *return_value=ThrowException) const
bool C_InitToken(SlotId slot_id, const std::vector< uint8_t, TAlloc > &so_pin, std::string_view label, ReturnValue *return_value=ThrowException) const
bool C_Login(SessionHandle session, UserType user_type, const std::vector< uint8_t, TAlloc > &pin, ReturnValue *return_value=ThrowException) const
LowLevel(FunctionList *ptr)
const InterfaceWrapper & get_interface()
bool C_Encrypt(SessionHandle session, const std::vector< uint8_t, TAllocA > &plaintext_data, std::vector< uint8_t, TAllocB > &encrypted_data, ReturnValue *return_value=ThrowException) const
bool C_Verify(SessionHandle session, const std::vector< uint8_t, TAllocA > &data, std::vector< uint8_t, TAllocB > &signature, ReturnValue *return_value=ThrowException) const
bool C_Decrypt(SessionHandle session, const std::vector< uint8_t, TAllocA > &encrypted_data, std::vector< uint8_t, TAllocB > &decrypted_data, ReturnValue *return_value=ThrowException) const
bool C_VerifyUpdate(SessionHandle session, std::vector< uint8_t, TAlloc > part, ReturnValue *return_value=ThrowException) const
bool C_SignFinal(SessionHandle session, std::vector< uint8_t, TAlloc > &signature, ReturnValue *return_value=ThrowException) const
bool C_GetAttributeValue(SessionHandle session, ObjectHandle object, std::map< AttributeType, std::vector< uint8_t, TAlloc > > &attribute_values, ReturnValue *return_value=ThrowException) const
ErrorType error_type() const noexcept override
PKCS11_Error(std::string_view what)
int error_code() const noexcept override
ReturnValue get_return_value() const
PKCS11_ReturnError(ReturnValue return_val)
CK_RSA_PKCS_OAEP_PARAMS RsaPkcsOaepParams
CK_DESTROYMUTEX DestroyMutex
@ Pkcs5Pbkd2HmacSha512256
@ Pkcs5Pbkd2HmacGostr3411
@ Pkcs5Pbkd2HmacSha512224
ReturnValue * ThrowException
CK_CREATEMUTEX CreateMutex
@ SecurityDomainUnspecified
@ SecurityDomainManufacturer
@ SecurityDomainThirdParty
secure_vector< uint8_t > secure_string
CK_FUNCTION_LIST FunctionList
@ ValidationCertificateUri
@ ValidationCertificateIdentifier
CK_C_INITIALIZE_ARGS C_InitializeArgs
void change_pin(Slot &slot, const secure_string &old_pin, const secure_string &new_pin)
CK_ECDH1_DERIVE_PARAMS Ecdh1DeriveParams
CK_OBJECT_HANDLE ObjectHandle
void change_so_pin(Slot &slot, const secure_string &old_so_pin, const secure_string &new_so_pin)
@ PublicCertificatesToken
@ Tls12ExtendedMasterKeyDerive
@ DsaProbabilisticParameterGen
@ Sp800_108DoublePipelineKdf
@ DsaShaweTaylorParameterGen
@ Tls12ExtendedMasterKeyDeriveDh
@ WtlsServerKeyAndMacDerive
@ WtlsClientKeyAndMacDerive
@ DsaProbablisticParameterGen
@ WtlsMasterKeyDeriveDhEcc
CK_UNLOCKMUTEX UnlockMutex
@ Sp800_108IterationVariable
@ LibraryCantCreateOsThreads
@ ProtectedAuthenticationPath
@ SecondaryAuthentication
@ Sp800_108DkmLengthSumOfSegments
@ Sp800_108DkmLengthSumOfKeys
CK_FUNCTION_LIST_PTR FunctionListPtr
CK_FUNCTION_LIST_3_0 FunctionList30
Flag operator|(Flag a, Flag b)
CK_SESSION_INFO SessionInfo
@ AuthorityTypeCommonCriteria
@ AuthorityTypeUnspecified
CK_FUNCTION_LIST_3_2 FunctionList32
CK_RSA_PKCS_PSS_PARAMS RsaPkcsPssParams
void set_pin(Slot &slot, const secure_string &so_pin, const secure_string &pin)
SessionValidationFlagsType
CK_MECHANISM_INFO MechanismInfo
@ SessionReadWriteSoExists
@ SessionParallelNotSupported
@ UnwrappingKeyHandleInvalid
@ UserAnotherAlreadyLoggedIn
@ ParameterSetNotSupported
@ UnwrappingKeyTypeInconsistent
@ KeyFunctionNotPermitted
@ SessionAsyncNotSupported
@ CryptokiAlreadyInitialized
@ WrappingKeyTypeInconsistent
@ OperationNotInitialized
@ WrappingKeyHandleInvalid
void initialize_token(Slot &slot, std::string_view label, const secure_string &so_pin, const secure_string &pin)
CK_SESSION_HANDLE SessionHandle
std::vector< T, secure_allocator< T > > secure_vector
#define CKM_HASH_ML_DSA_SHA3_512
CK_RV C_SignMessage(CK_SESSION_HANDLE, void *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
CK_RV C_SignUpdate(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG)
#define CKK_BLAKE2B_160_HMAC
#define CKA_NEVER_EXTRACTABLE
#define CKM_HASH_ML_DSA_SHA3_256
#define CKM_AES_XTS_KEY_GEN
#define CKM_TLS_MASTER_KEY_DERIVE
CK_RV C_FindObjects(CK_SESSION_HANDLE, CK_OBJECT_HANDLE *, CK_ULONG, CK_ULONG *)
#define CKA_PUBLIC_CRC64_VALUE
#define CKM_DSA_PARAMETER_GEN
#define CKR_SESSION_COUNT
#define CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE
#define CKM_CONCATENATE_BASE_AND_DATA
CK_ULONG CK_ML_KEM_PARAMETER_SET_TYPE
#define CKR_DEVICE_MEMORY
#define CKM_SHAKE_128_KEY_DERIVATION
#define CKA_JAVA_MIDP_SECURITY_DOMAIN
#define CKM_SSL3_SHA1_MAC
#define CKA_OTP_TIME_INTERVAL
#define CKK_SHA3_256_HMAC
#define CKR_GENERAL_ERROR
#define CKR_MECHANISM_INVALID
#define CKR_SLOT_ID_INVALID
#define CKC_VENDOR_DEFINED
#define CKM_SSL3_MASTER_KEY_DERIVE
#define CKM_CHACHA20_KEY_GEN
CK_RV C_VerifyRecoverInit(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE)
#define CKA_TRUST_CODE_SIGNING
#define CKR_ATTRIBUTE_TYPE_INVALID
#define CKA_OTP_SERVICE_IDENTIFIER
CK_RV C_DecryptVerifyUpdate(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
CK_RV C_DecryptMessageNext(CK_SESSION_HANDLE, void *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *, CK_FLAGS)
#define CKM_GOSTR3411_HMAC
CK_RV(* CK_UNLOCKMUTEX)(void *)
CK_RV C_GetFunctionStatus(CK_SESSION_HANDLE)
#define CKK_BLAKE2B_256_HMAC
CK_RV C_GetSessionInfo(CK_SESSION_HANDLE, CK_SESSION_INFO *)
#define CKM_WTLS_PRE_MASTER_KEY_GEN
CK_RV C_DecryptMessageBegin(CK_SESSION_HANDLE, void *, CK_ULONG, CK_BYTE *, CK_ULONG)
#define CKM_BLAKE2B_512_HMAC
#define CKM_SHA3_384_HMAC
#define CKM_SHA256_KEY_DERIVATION
#define CKA_SERIAL_NUMBER
#define CKF_LOGIN_REQUIRED
#define CKM_SHA3_512_HMAC
#define CKV_TYPE_FIRMWARE
#define CKF_EC_UNCOMPRESS
#define CKA_SUB_PRIME_BITS
#define CKF_LIBRARY_CANT_CREATE_OS_THREADS
#define CKM_SEED_MAC_GENERAL
#define CKF_PROTECTED_AUTHENTICATION_PATH
CK_RV C_MessageVerifyInit(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE)
#define CKA_HASH_OF_SUBJECT_PUBLIC_KEY
#define CKM_EC_KEY_PAIR_GEN_W_EXTRA_BITS
#define CKR_FUNCTION_CANCELED
CK_ULONG CK_GENERATOR_FUNCTION
#define CKA_TRUST_IPSEC_IKE
#define CKP_COMPLETE_PROVIDER
#define CKG_GENERATE_COUNTER_XOR
#define CKM_HASH_ML_DSA_SHA256
#define CKM_IKE2_PRF_PLUS_DERIVE
#define CKG_MGF1_SHA3_224
#define CKM_TWOFISH_CBC_PAD
CK_RV C_MessageSignFinal(CK_SESSION_HANDLE)
#define CKM_SP800_108_FEEDBACK_KDF
#define CKM_BLAKE2B_256_KEY_GEN
#define CKM_SKIPJACK_CFB8
#define CKM_RSA_X9_31_KEY_PAIR_GEN
CK_ULONG CK_SESSION_VALIDATION_FLAGS_TYPE
#define CKR_KEY_UNEXTRACTABLE
#define CKR_UNWRAPPING_KEY_HANDLE_INVALID
#define CKM_CONCATENATE_BASE_AND_KEY
#define CKR_NEED_TO_CREATE_THREADS
#define CKA_X2RATCHET_HKS
#define CKM_SHA_1_KEY_GEN
CK_RV C_DigestKey(CK_SESSION_HANDLE, CK_OBJECT_HANDLE)
#define CKA_VALIDATION_MODULE_ID
#define CKK_SHA512_T_HMAC
#define CKP_SLH_DSA_SHA2_192F
#define CKM_SEED_ECB_ENCRYPT_DATA
#define CKR_WRAPPING_KEY_SIZE_RANGE
#define CKM_FORTEZZA_TIMESTAMP
#define CKS_RW_PUBLIC_SESSION
#define CKR_MECHANISM_PARAM_INVALID
#define CKA_SUPPORTED_CMS_ATTRIBUTES
#define CKF_TOKEN_INITIALIZED
#define CKR_TOKEN_NOT_RECOGNIZED
#define CKF_MESSAGE_ENCRYPT
CK_RV C_GetSlotInfo(CK_SLOT_ID, CK_SLOT_INFO *)
#define CKM_SHA512_HMAC_GENERAL
#define CKM_SHA3_256_RSA_PKCS
#define CKM_X2RATCHET_DECRYPT
#define CKM_SKIPJACK_CFB64
#define CKM_DES_CBC_ENCRYPT_DATA
#define CKD_SHA1_KDF_ASN1
#define CKM_SHA3_224_HMAC_GENERAL
#define CKR_ATTRIBUTE_SENSITIVE
#define CKM_HASH_SLH_DSA_SHA512
#define CKA_VALIDATION_LEVEL
#define CKA_HSS_KEYS_REMAINING
CK_RV C_VerifySignature(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG)
#define CKM_ECDH1_COFACTOR_DERIVE
#define CKR_RANDOM_NO_RNG
#define CKR_PARAMETER_SET_NOT_SUPPORTED
#define CKM_ARIA_CBC_ENCRYPT_DATA
#define CKM_SALSA20_KEY_GEN
#define CKM_CAMELLIA_KEY_GEN
#define CKR_PIN_LEN_RANGE
#define CKM_BLAKE2B_384_HMAC
#define CKM_SHA3_512_HMAC_GENERAL
#define CKF_USER_PIN_FINAL_TRY
#define CKM_BATON_KEY_GEN
CK_RV C_CreateObject(CK_SESSION_HANDLE, CK_ATTRIBUTE *, CK_ULONG, CK_OBJECT_HANDLE *)
#define CKA_PRIVATE_EXPONENT
#define CKR_RANDOM_SEED_NOT_SUPPORTED
#define CKK_SHA3_384_HMAC
CK_RV C_WrapKey(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE, CK_OBJECT_HANDLE, CK_BYTE *, CK_ULONG *)
#define CKR_SESSION_PARALLEL_NOT_SUPPORTED
CK_RV C_DigestEncryptUpdate(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
#define CKR_KEY_EXHAUSTED
CK_RV C_Sign(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
#define CKM_HASH_SLH_DSA_SHA224
CK_RV C_EncryptMessageBegin(CK_SESSION_HANDLE, void *, CK_ULONG, CK_BYTE *, CK_ULONG)
#define CKA_HSS_LMOTS_TYPES
CK_RV C_DeriveKey(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE, CK_ATTRIBUTE *, CK_ULONG, CK_OBJECT_HANDLE *)
#define CKF_END_OF_MESSAGE
CK_RV C_Initialize(void *)
#define CKA_X2RATCHET_NHKR
#define CKH_DETERMINISTIC_REQUIRED
#define CKA_X2RATCHET_PNS
#define CKM_VENDOR_DEFINED
#define CKR_ATTRIBUTE_READ_ONLY
#define CKR_KEY_FUNCTION_NOT_PERMITTED
#define CKA_HW_FEATURE_TYPE
#define CKM_TWOFISH_KEY_GEN
#define CKR_WRAPPING_KEY_TYPE_INCONSISTENT
#define CKM_HASH_SLH_DSA_SHA384
#define CK_OTP_OUTPUT_LENGTH
#define CKA_VERIFY_RECOVER
#define CKP_SLH_DSA_SHA2_128F
#define CK_OTP_PARAM_IGNORED
#define CKA_TRUST_EMAIL_PROTECTION
#define CKM_SHA512_224_HMAC_GENERAL
#define CKP_PUBLIC_CERTIFICATES_TOKEN
#define CKD_SHA512_KDF_SP800
#define CKM_SKIPJACK_RELAYX
#define CKM_SHA512_224_HMAC
#define CKA_VALIDATION_AUTHORITY_TYPE
#define CKR_SESSION_EXISTS
#define CKM_MD5_HMAC_GENERAL
#define CKR_FUNCTION_REJECTED
#define CKM_SHA_1_HMAC_GENERAL
#define CKM_TLS10_MAC_CLIENT
unsigned long int CK_ULONG
#define CKM_JUNIPER_ECB128
#define CKA_PUBLIC_EXPONENT
#define CKM_SKIPJACK_CBC64
#define CKS_LAST_VALIDATION_OK
CK_RV C_InitPIN(CK_SESSION_HANDLE, CK_UTF8CHAR *, CK_ULONG)
#define CKA_VALIDATION_COUNTRY
#define CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE
CK_RV C_EncryptUpdate(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
#define CKM_PBE_SHA1_DES2_EDE_CBC
#define CKM_X9_42_DH_KEY_PAIR_GEN
#define CRYPTOKI_VERSION_MINOR
#define CKP_SLH_DSA_SHAKE_128F
CK_RV C_MessageEncryptFinal(CK_SESSION_HANDLE)
#define CKM_RSA_PKCS_KEY_PAIR_GEN
#define CKR_SESSION_READ_ONLY
#define CKA_OTP_TIME_REQUIREMENT
#define CKA_X2RATCHET_BAGSIZE
#define CKM_IKE1_PRF_DERIVE
#define CKM_KEA_KEY_DERIVE
#define CKR_OPERATION_CANCEL_FAILED
#define CKD_BLAKE2B_384_KDF
#define CKR_TOKEN_RESOURCE_EXCEEDED
#define CKC_X_509_ATTR_CERT
#define CKM_JUNIPER_KEY_GEN
#define CK_OTP_PARAM_OPTIONAL
CK_ULONG CK_VALIDATION_AUTHORITY_TYPE
#define CKF_ASYNC_SESSION
#define CKM_HSS_KEY_PAIR_GEN
#define CKA_VALIDATION_PROFILE
#define CKR_ENCRYPTED_DATA_LEN_RANGE
#define CKM_SHA512_KEY_DERIVATION
#define CKP_BASELINE_PROVIDER
#define CKA_BITS_PER_PIXEL
#define CKR_SIGNATURE_INVALID
CK_RV C_AsyncJoin(CK_SESSION_HANDLE, CK_UTF8CHAR *, CK_ULONG, CK_BYTE *, CK_ULONG)
#define CKM_AES_MAC_GENERAL
#define CKM_X2RATCHET_INITIALIZE
#define CKM_CAST128_CBC_PAD
#define CKA_OTP_USER_IDENTIFIER
#define CKP_AUTHENTICATION_TOKEN
#define CKA_DECAPSULATE_TEMPLATE
#define CKM_SHA3_256_RSA_PKCS_PSS
#define CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE_DH
#define CKR_SESSION_HANDLE_INVALID
#define CKP_VENDOR_DEFINED
#define CKM_HASH_ML_DSA_SHAKE128
CK_RV C_DecapsulateKey(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE, CK_ATTRIBUTE *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_OBJECT_HANDLE *)
#define CK_CERTIFICATE_CATEGORY_OTHER_ENTITY
CK_RV C_UnwrapKeyAuthenticated(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE, CK_BYTE *, CK_ULONG, CK_ATTRIBUTE *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_OBJECT_HANDLE *)
#define CKF_USER_PIN_INITIALIZED
CK_RV C_Login(CK_SESSION_HANDLE, CK_USER_TYPE, CK_UTF8CHAR *, CK_ULONG)
#define CKA_PUBLIC_KEY_INFO
CK_RV C_VerifyUpdate(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG)
#define CKA_X2RATCHET_HKR
#define CKA_OTP_USER_FRIENDLY_MODE
#define CKM_SHA384_HMAC_GENERAL
#define CKK_SHA512_224_HMAC
#define CKR_USER_ANOTHER_ALREADY_LOGGED_IN
#define CKM_SECURID_KEY_GEN
#define CKM_IDEA_MAC_GENERAL
#define CKS_RO_USER_FUNCTIONS
#define CKM_TLS_KEY_AND_MAC_DERIVE
#define CKM_GOST28147_ECB
#define CKR_ARGUMENTS_BAD
CK_RV C_MessageEncryptInit(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE)
CK_RV C_GetTokenInfo(CK_SLOT_ID, CK_TOKEN_INFO *)
#define CKM_SHA512_224_KEY_DERIVATION
#define CKV_TYPE_UNSPECIFIED
#define CKM_DSA_FIPS_G_GEN
#define CKM_SHA512_T_HMAC_GENERAL
#define CKG_MGF1_SHA3_256
#define CKV_AUTHORITY_TYPE_UNSPECIFIED
#define CKM_TLS_MASTER_KEY_DERIVE_DH
CK_RV C_MessageDecryptFinal(CK_SESSION_HANDLE)
#define CKM_HASH_ML_DSA_SHA384
#define CKP_SLH_DSA_SHA2_192S
#define CKM_CAST3_MAC_GENERAL
CK_RV C_GetSessionValidationFlags(CK_SESSION_HANDLE, CK_SESSION_VALIDATION_FLAGS_TYPE, CK_FLAGS *)
#define CKM_PBE_SHA1_RC2_128_CBC
#define CKM_AES_KEY_WRAP_KWP
#define CKA_NAME_HASH_ALGORITHM
#define CKM_SSL3_PRE_MASTER_KEY_GEN
#define CKM_SSL3_MASTER_KEY_DERIVE_DH
#define CK_SP800_108_ITERATION_VARIABLE
#define CKR_LIBRARY_LOAD_FAILED
#define CKT_TRUST_MUST_VERIFY_TRUST
#define CKM_RIPEMD128_HMAC_GENERAL
#define CKP_SLH_DSA_SHA2_256S
#define CKM_ECDH_X_AES_KEY_WRAP
#define CKM_PUB_KEY_FROM_PRIV_KEY
#define CKP_SLH_DSA_SHAKE_192F
CK_RV C_CopyObject(CK_SESSION_HANDLE, CK_OBJECT_HANDLE, CK_ATTRIBUTE *, CK_ULONG, CK_OBJECT_HANDLE *)
#define CKM_PBA_SHA1_WITH_SHA1_HMAC
#define CKA_TRUST_OCSP_SIGNING
#define CKA_OTP_SERVICE_LOGO_TYPE
CK_ULONG CK_SESSION_HANDLE
#define CKA_OTP_CHALLENGE_REQUIREMENT
#define CKR_TOKEN_NOT_PRESENT
#define CK_OTP_FORMAT_DECIMAL
#define CKM_BLAKE2B_160_KEY_DERIVE
#define CKM_BLAKE2B_256_HMAC
#define CKM_SHA512_T_KEY_DERIVATION
#define CKH_HEDGE_REQUIRED
#define CKA_HSS_LMS_TYPES
#define CKR_CRYPTOKI_NOT_INITIALIZED
#define CKG_MGF1_SHA3_384
#define CKM_DH_PKCS_DERIVE
#define CKM_CAMELLIA_MAC_GENERAL
#define CKM_MD2_HMAC_GENERAL
#define CKM_SHA3_512_KEY_DERIVATION
#define CKM_SEED_CBC_ENCRYPT_DATA
#define CKM_DES3_CMAC_GENERAL
#define CKR_PIN_INCORRECT
#define CKM_CAST128_MAC_GENERAL
CK_ULONG CK_OTP_PARAM_TYPE
#define CK_CERTIFICATE_CATEGORY_TOKEN_USER
#define CK_SP800_108_KEY_HANDLE
#define CKR_TOKEN_NOT_INITIALIZED
#define CKM_PBE_SHA1_RC4_40
#define CKF_SEED_RANDOM_REQUIRED
#define CKM_TLS10_MAC_SERVER
#define CKF_MULTI_MESSAGE
#define CKM_X9_42_DH_DERIVE
#define CKF_GENERATE_KEY_PAIR
#define CKM_SKIPJACK_PRIVATE_WRAP
#define CKM_KEY_WRAP_LYNKS
#define CKM_SHA512_RSA_PKCS_PSS
#define CKM_SHA3_384_RSA_PKCS
#define CKA_X2RATCHET_CKS
#define CKF_REMOVABLE_DEVICE
#define CKP_PKCS5_PBKD2_HMAC_SHA512_256
#define CKM_RSA_PKCS_OAEP
#define CK_SECURITY_DOMAIN_MANUFACTURER
#define CKP_SLH_DSA_SHA2_256F
#define CKM_HASH_SLH_DSA_SHA3_224
#define CKR_WRAPPED_KEY_INVALID
#define CKF_SECONDARY_AUTHENTICATION
CK_RV C_GetObjectSize(CK_SESSION_HANDLE, CK_OBJECT_HANDLE, CK_ULONG *)
#define CKM_PBE_SHA1_RC4_128
#define CKM_RSA_PKCS_OAEP_TPM_1_1
#define CKM_SHA512_RSA_PKCS
#define CKA_X2RATCHET_BOBS1STMSG
#define CKD_BLAKE2B_512_KDF
#define CKM_DES3_MAC_GENERAL
#define CKM_SP800_108_COUNTER_KDF
CK_RV C_SignRecoverInit(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE)
#define CKF_HKDF_SALT_DATA
#define CKP_PKCS5_PBKD2_HMAC_SHA224
#define CKM_EXTRACT_KEY_FROM_KEY
CK_RV C_AsyncComplete(CK_SESSION_HANDLE, CK_UTF8CHAR *, CK_ASYNC_DATA *)
CK_RV C_SignInit(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE)
#define CKM_SKIPJACK_CFB32
#define CKM_ECDSA_SHA3_224
#define CKF_USER_FRIENDLY_OTP
#define CKR_WRAPPING_KEY_HANDLE_INVALID
#define CKM_SHA3_384_HMAC_GENERAL
#define CKR_MUTEX_NOT_LOCKED
#define CKR_USER_TOO_MANY_TYPES
#define CKM_CAST_MAC_GENERAL
CK_RV C_GetFunctionList(CK_FUNCTION_LIST **)
#define CKA_X2RATCHET_NHKS
CK_RV C_WrapKeyAuthenticated(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE, CK_OBJECT_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
#define CKM_SP800_108_DOUBLE_PIPELINE_KDF
CK_RV C_SignRecover(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
#define CKM_BLAKE2B_512_HMAC_GENERAL
#define CKM_SHA3_512_KEY_GEN
#define CKF_USER_PIN_COUNT_LOW
#define CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC
#define CKR_SESSION_CLOSED
CK_RV C_SignMessageNext(CK_SESSION_HANDLE, void *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
#define CKR_AEAD_DECRYPT_FAILED
#define CKM_BLAKE2B_384_KEY_GEN
#define CK_SECURITY_DOMAIN_THIRD_PARTY
#define CKK_RIPEMD160_HMAC
CK_RV C_FindObjectsInit(CK_SESSION_HANDLE, CK_ATTRIBUTE *, CK_ULONG)
#define CKM_DSA_KEY_PAIR_GEN
CK_RV C_VerifyMessageBegin(CK_SESSION_HANDLE, void *, CK_ULONG)
#define CKM_SHA1_RSA_X9_31
#define CKM_AES_CBC_ENCRYPT_DATA
CK_RV C_GetInterfaceList(CK_INTERFACE *, CK_ULONG *)
#define CKM_CAMELLIA_CBC_PAD
#define CKM_SHA3_384_KEY_GEN
#define CKP_HKDF_TLS_TOKEN
#define CKM_HASH_SLH_DSA_SHA3_256
#define CKF_EXCLUDE_COUNTER
CK_RV C_DigestUpdate(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG)
#define CKM_CAMELLIA_ECB_ENCRYPT_DATA
#define CKM_SKIPJACK_CFB16
#define CKM_WTLS_MASTER_KEY_DERIVE
#define CKM_SKIPJACK_KEY_GEN
#define CKH_MONOTONIC_COUNTER
#define CKM_SHA3_384_RSA_PKCS_PSS
#define CKF_OS_LOCKING_OK
#define CKM_GOST28147_KEY_WRAP
#define CKM_SHA224_RSA_PKCS_PSS
CK_ULONG CK_ML_DSA_PARAMETER_SET_TYPE
CK_RV C_Digest(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
#define CKM_EC_EDWARDS_KEY_PAIR_GEN
#define CKM_MD5_KEY_DERIVATION
#define CKP_PKCS5_PBKD2_HMAC_SHA384
#define CKD_SHA384_KDF_SP800
#define CKR_OBJECT_HANDLE_INVALID
struct CK_FUNCTION_LIST * CK_FUNCTION_LIST_PTR
#define CKF_EC_ECPARAMETERS
CK_ULONG CK_PRF_DATA_TYPE
#define CKD_SHA256_KDF_SP800
CK_RV C_CloseAllSessions(CK_SLOT_ID)
#define CKM_KEA_KEY_PAIR_GEN
#define CKG_MGF1_SHA3_512
#define CKA_RESET_ON_INIT
CK_RV C_VerifyFinal(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG)
#define CKA_OTP_PIN_REQUIREMENT
CK_ULONG CK_RSA_PKCS_MGF_TYPE
#define CKR_UNWRAPPING_KEY_SIZE_RANGE
#define CKM_HASH_SLH_DSA_SHA256
#define CKM_X9_42_MQV_DERIVE
CK_RV C_DecryptFinal(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG *)
#define CKM_TLS12_EXTENDED_MASTER_KEY_DERIVE
CK_RV C_EncryptInit(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE)
CK_RV C_MessageSignInit(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE)
CK_RV C_GenerateKey(CK_SESSION_HANDLE, CK_MECHANISM *, CK_ATTRIBUTE *, CK_ULONG, CK_OBJECT_HANDLE *)
#define CKD_CPDIVERSIFY_KDF
#define CKM_POLY1305_KEY_GEN
#define CKM_TLS12_MASTER_KEY_DERIVE
#define CKM_BLAKE2B_384_HMAC_GENERAL
CK_RV C_Logout(CK_SESSION_HANDLE)
#define CKM_SHA256_KEY_GEN
#define CKM_SHA3_224_RSA_PKCS
#define CKM_BATON_SHUFFLE
#define CKM_HASH_SLH_DSA_SHAKE256
#define CKM_SHA512_256_HMAC_GENERAL
CK_RV C_EncryptMessageNext(CK_SESSION_HANDLE, void *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *, CK_FLAGS)
#define CKM_RC5_MAC_GENERAL
CK_RV C_GetInfo(CK_INFO *)
#define CKR_ENCRYPTED_DATA_INVALID
CK_ULONG CK_SLH_DSA_PARAMETER_SET_TYPE
#define CKP_PKCS5_PBKD2_HMAC_GOSTR3411
#define CKR_CRYPTOKI_ALREADY_INITIALIZED
#define CKM_GENERIC_SECRET_KEY_GEN
#define CKM_DH_PKCS_KEY_PAIR_GEN
#define CKM_DES3_ECB_ENCRYPT_DATA
CK_RV(* CK_LOCKMUTEX)(void *)
#define CKP_SLH_DSA_SHAKE_256S
#define CKA_ALLOWED_MECHANISMS
#define CKF_SERIAL_SESSION
#define CKR_FUNCTION_FAILED
#define CKA_VALIDATION_CERTIFICATE_URI
#define CKM_CDMF_MAC_GENERAL
#define CKA_OTP_COUNTER_REQUIREMENT
#define CKM_SHA512_KEY_GEN
#define CKF_DUAL_CRYPTO_OPERATIONS
#define CKR_OPERATION_NOT_INITIALIZED
CK_ULONG CK_CERTIFICATE_CATEGORY
#define CKR_ACTION_PROHIBITED
#define CKF_SO_PIN_TO_BE_CHANGED
CK_RV C_SetAttributeValue(CK_SESSION_HANDLE, CK_OBJECT_HANDLE, CK_ATTRIBUTE *, CK_ULONG)
#define CKR_SESSION_READ_ONLY_EXISTS
#define CKM_TLS_PRE_MASTER_KEY_GEN
#define CKM_EC_KEY_PAIR_GEN
#define CKM_SHA384_KEY_GEN
#define CKR_SESSION_READ_WRITE_SO_EXISTS
#define CKR_KEY_SIZE_RANGE
#define CKA_X2RATCHET_ISALICE
#define CKM_DH_PKCS_PARAMETER_GEN
#define CKM_PBE_MD5_CAST128_CBC
#define CKM_BLAKE2B_160_KEY_GEN
CK_RV C_AsyncGetID(CK_SESSION_HANDLE, CK_UTF8CHAR *, CK_ULONG *)
#define CKR_TEMPLATE_INCONSISTENT
#define CKA_TRUST_SERVER_AUTH
CK_RV C_SessionCancel(CK_SESSION_HANDLE, CK_FLAGS)
#define CKR_OPERATION_ACTIVE
#define CKR_DATA_LEN_RANGE
CK_RV C_CancelFunction(CK_SESSION_HANDLE)
#define CKM_SHA1_RSA_PKCS
#define CKF_ARRAY_ATTRIBUTE
#define CKM_MD2_KEY_DERIVATION
#define CKM_DSA_SHAWE_TAYLOR_PARAMETER_GEN
#define CKM_SHA512_224_KEY_GEN
CK_RV C_InitToken(CK_SLOT_ID, CK_UTF8CHAR *, CK_ULONG, CK_UTF8CHAR *)
#define CKA_WRAP_WITH_TRUSTED
CK_ULONG CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE
#define CKR_BUFFER_TOO_SMALL
#define CKM_ARIA_MAC_GENERAL
#define CKM_X2RATCHET_RESPOND
#define CKM_CAMELLIA_CBC_ENCRYPT_DATA
CK_RV C_DestroyObject(CK_SESSION_HANDLE, CK_OBJECT_HANDLE)
CK_RV C_GetOperationState(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG *)
#define CKS_RW_USER_FUNCTIONS
#define CKM_AES_CMAC_GENERAL
#define CKS_RO_PUBLIC_SESSION
CK_RV C_DecryptUpdate(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
#define CK_OTP_FORMAT_BINARY
#define CK_SP800_108_COUNTER
#define CKF_HKDF_SALT_KEY
#define CKM_HASH_SLH_DSA_SHA3_512
#define CKM_XMSSMT_KEY_PAIR_GEN
#define CKM_PBE_MD5_CAST_CBC
CK_RV C_GenerateKeyPair(CK_SESSION_HANDLE, CK_MECHANISM *, CK_ATTRIBUTE *, CK_ULONG, CK_ATTRIBUTE *, CK_ULONG, CK_OBJECT_HANDLE *, CK_OBJECT_HANDLE *)
#define CKK_BLAKE2B_384_HMAC
#define CKM_SHA1_KEY_DERIVATION
#define CKF_EXCLUDE_CHALLENGE
#define CKP_SLH_DSA_SHA2_128S
#define CKO_VENDOR_DEFINED
#define CKP_PKCS5_PBKD2_HMAC_SHA512
CK_RV C_SetOperationState(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_OBJECT_HANDLE, CK_OBJECT_HANDLE)
#define CKR_USER_PIN_NOT_INITIALIZED
#define CKA_ALWAYS_AUTHENTICATE
#define CKM_SLH_DSA_KEY_PAIR_GEN
#define CKH_HEDGE_PREFERRED
#define CKM_EC_MONTGOMERY_KEY_PAIR_GEN
#define CKM_HASH_SLH_DSA_SHAKE128
#define CKM_BATON_COUNTER
#define CKM_CAST3_KEY_GEN
#define CKM_JUNIPER_CBC128
#define CKM_SHA224_RSA_PKCS
#define CKM_PBE_SHA1_DES3_EDE_CBC
#define CKR_USER_ALREADY_LOGGED_IN
#define CKA_PARAMETER_SET
#define CK_OTP_FORMAT_HEXADECIMAL
#define CKR_STATE_UNSAVEABLE
#define CKM_RIPEMD160_RSA_PKCS
#define CKP_PKCS5_PBKD2_HMAC_SHA1
#define CKA_GOST28147_PARAMS
#define CKM_X9_42_DH_PARAMETER_GEN
#define CKF_HKDF_SALT_NULL
#define CKK_RIPEMD128_HMAC
#define CKM_JUNIPER_COUNTER
#define CKA_TRUST_CLIENT_AUTH
#define CKD_SHA1_KDF_CONCATENATE
#define CKM_SHA512_256_HMAC
#define CKA_VALIDATION_FLAG
#define CKA_HSS_LMOTS_TYPE
CK_ULONG CK_MECHANISM_TYPE
CK_ULONG CK_SP800_108_DKM_LENGTH_METHOD
#define CKK_GENERIC_SECRET
#define CKM_TLS12_KEY_SAFE_DERIVE
#define CKM_PBE_SHA1_CAST128_CBC
#define CKU_CONTEXT_SPECIFIC
#define CKD_SHA3_512_KDF_SP800
#define CKP_PKCS5_PBKD2_HMAC_SHA512_224
#define CKM_SHA3_512_RSA_PKCS
#define CKF_SO_PIN_FINAL_TRY
CK_RV C_Decrypt(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
#define CKR_INFORMATION_SENSITIVE
#define CKM_SHA3_384_KEY_DERIVATION
#define CKG_GENERATE_COUNTER
#define CKM_AES_KEY_WRAP_PAD
#define CKM_CONCATENATE_DATA_AND_BASE
#define CKD_SHA3_384_KDF_SP800
#define CKM_GOSTR3410_KEY_WRAP
#define CKV_TYPE_SOFTWARE
#define CKM_BLAKE2B_160_HMAC_GENERAL
CK_RV C_DigestInit(CK_SESSION_HANDLE, CK_MECHANISM *)
#define CKM_XOR_BASE_AND_DATA
CK_RV(* CK_NOTIFY)(CK_SESSION_HANDLE, CK_NOTIFICATION, void *)
#define CKM_XMSS_KEY_PAIR_GEN
#define CKM_GOST28147_KEY_GEN
#define CKM_HASH_ML_DSA_SHA224
#define CKF_MESSAGE_DECRYPT
#define CKR_OPERATION_NOT_VALIDATED
#define CKK_SHA3_512_HMAC
#define CKR_ATTRIBUTE_VALUE_INVALID
#define CK_SP800_108_DKM_LENGTH_SUM_OF_SEGMENTS
#define CKA_REQUIRED_CMS_ATTRIBUTES
#define CKM_DSA_PROBABILISTIC_PARAMETER_GEN
#define CKP_EXTENDED_PROVIDER
#define CK_CERTIFICATE_CATEGORY_AUTHORITY
CK_RV C_UnwrapKey(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE, CK_BYTE *, CK_ULONG, CK_ATTRIBUTE *, CK_ULONG, CK_OBJECT_HANDLE *)
CK_ULONG CK_VALIDATION_TYPE
CK_RV C_GetMechanismInfo(CK_SLOT_ID, CK_MECHANISM_TYPE, CK_MECHANISM_INFO *)
#define CKM_PBE_MD2_DES_CBC
#define CKM_RIPEMD160_HMAC
#define CKA_VALIDATION_TYPE
#define CKM_KEY_WRAP_SET_OAEP
CK_RV C_EncapsulateKey(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE, CK_ATTRIBUTE *, CK_ULONG, CK_BYTE *, CK_ULONG *, CK_OBJECT_HANDLE *)
#define CKP_SLH_DSA_SHAKE_128S
#define CKM_CAST3_CBC_PAD
CK_RV C_Verify(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG)
#define CKM_ECDSA_SHA3_256
CK_RV C_SeedRandom(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG)
#define CKA_CERTIFICATE_CATEGORY
#define CKK_VENDOR_DEFINED
#define CKA_X2RATCHET_BAG
#define CKM_CHACHA20_POLY1305
#define CKR_FUNCTION_NOT_SUPPORTED
CK_RV C_EncryptFinal(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG *)
#define CKF_RESTORE_KEY_NOT_NEEDED
#define CKD_SHA3_224_KDF_SP800
CK_RV C_VerifyInit(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE)
#define CK_SP800_108_BYTE_ARRAY
#define CKA_GOSTR3410_PARAMS
#define CKD_SHA1_KDF_SP800
#define CKR_USER_NOT_LOGGED_IN
CK_RV C_SetPIN(CK_SESSION_HANDLE, CK_UTF8CHAR *, CK_ULONG, CK_UTF8CHAR *, CK_ULONG)
#define CKA_ALWAYS_SENSITIVE
CK_RV C_VerifySignatureInit(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE, CK_BYTE *, CK_ULONG)
#define CKM_SHA3_256_HMAC
#define CKM_DES_ECB_ENCRYPT_DATA
#define CKM_BLAKE2B_384_KEY_DERIVE
#define CKM_BLAKE2B_256_HMAC_GENERAL
#define CKR_DEVICE_REMOVED
#define CKK_EC_MONTGOMERY
CK_RV C_GetMechanismList(CK_SLOT_ID, CK_MECHANISM_TYPE *, CK_ULONG *)
#define CKA_VENDOR_DEFINED
#define CKA_TRUST_TIME_STAMPING
#define CKM_PBE_SHA1_RC2_40_CBC
#define CKM_GOSTR3410_DERIVE
CK_RV C_EncryptMessage(CK_SESSION_HANDLE, void *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
#define CKR_SEED_RANDOM_REQUIRED
#define CKM_SHAKE_256_KEY_DERIVATION
#define CKP_PKCS5_PBKD2_HMAC_SHA256
#define CKM_SHA256_HMAC_GENERAL
#define CKF_USER_PIN_TO_BE_CHANGED
#define CKM_AES_ECB_ENCRYPT_DATA
#define CKM_RIPEMD128_RSA_PKCS
#define CK_CERTIFICATE_CATEGORY_UNSPECIFIED
#define CKR_DOMAIN_PARAMS_INVALID
#define CKA_CERTIFICATE_TYPE
CK_RV C_SignEncryptUpdate(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
#define CKF_SO_PIN_LOCKED
#define CKM_ECDSA_SHA3_512
CK_ULONG CK_CERTIFICATE_TYPE
#define CKR_TOKEN_WRITE_PROTECTED
#define CKA_HASH_OF_ISSUER_PUBLIC_KEY
CK_RV C_FindObjectsFinal(CK_SESSION_HANDLE)
#define CKM_SHA512_T_KEY_GEN
#define CKM_ML_KEM_KEY_PAIR_GEN
CK_RV C_VerifySignatureFinal(CK_SESSION_HANDLE)
#define CKA_X2RATCHET_DHP
#define CKH_VENDOR_DEFINED
#define CKM_SHA512_256_KEY_GEN
CK_RV C_DecryptDigestUpdate(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
#define CKV_AUTHORITY_TYPE_COMMON_CRITERIA
CK_RV C_DecryptInit(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE)
CK_RV(* CK_CREATEMUTEX)(void **)
#define CKM_SHA3_224_RSA_PKCS_PSS
CK_RV C_SignFinal(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG *)
#define CKM_IKE_PRF_DERIVE
#define CKM_RIPEMD128_HMAC
CK_RV C_DigestFinal(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG *)
#define CKM_HASH_ML_DSA_SHA3_224
CK_RV C_OpenSession(CK_SLOT_ID, CK_FLAGS, void *, CK_NOTIFY, CK_SESSION_HANDLE *)
#define CKM_SHA3_256_KEY_GEN
#define CKM_ML_DSA_KEY_PAIR_GEN
#define CKR_TEMPLATE_INCOMPLETE
CK_RV C_VerifySignatureUpdate(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG)
#define CKM_DES3_CBC_ENCRYPT_DATA
#define CKF_SO_PIN_COUNT_LOW
CK_ULONG CK_OBJECT_HANDLE
#define CKA_ENCODING_METHODS
#define CKA_HASH_OF_CERTIFICATE
CK_ULONG CK_HW_FEATURE_TYPE
CK_RV C_SignMessageBegin(CK_SESSION_HANDLE, void *, CK_ULONG)
#define CKM_SHA256_RSA_PKCS_PSS
#define CKR_KEY_NOT_NEEDED
#define CKM_SKIPJACK_WRAP
#define CKR_VENDOR_DEFINED
#define CKM_SKIPJACK_ECB64
#define CKM_SHA384_KEY_DERIVATION
#define CKA_SUBPRIME_BITS
#define CKM_X3DH_INITIALIZE
CK_RV C_WaitForSlotEvent(CK_FLAGS, CK_SLOT_ID *, void *)
#define CKM_SKIPJACK_OFB64
#define CKM_GOSTR3410_WITH_GOSTR3411
#define CKM_SHA1_RSA_PKCS_PSS
#define CKP_SLH_DSA_SHAKE_192S
#define CKM_GOSTR3410_KEY_PAIR_GEN
#define CKA_DEFAULT_CMS_ATTRIBUTES
#define CKM_SHA512_256_KEY_DERIVATION
#define CKA_GOSTR3411_PARAMS
#define CKM_ECDSA_SHA3_384
#define CKM_SHA384_RSA_PKCS
CK_RV C_GetAttributeValue(CK_SESSION_HANDLE, CK_OBJECT_HANDLE, CK_ATTRIBUTE *, CK_ULONG)
CK_ULONG CK_ATTRIBUTE_TYPE
#define CKR_FUNCTION_NOT_PARALLEL
#define CKK_SHA512_256_HMAC
#define CKR_SESSION_ASYNC_NOT_SUPPORTED
CK_RV C_Encrypt(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
#define CKA_UNWRAP_TEMPLATE
#define CKR_SIGNATURE_LEN_RANGE
CK_RV C_LoginUser(CK_SESSION_HANDLE, CK_USER_TYPE, CK_UTF8CHAR *, CK_ULONG, CK_UTF8CHAR *, CK_ULONG)
#define CKR_CURVE_NOT_SUPPORTED
#define CKD_BLAKE2B_256_KDF
#define CKM_SHA224_KEY_DERIVATION
#define CKA_KEY_GEN_MECHANISM
#define CKM_HASH_SLH_DSA_SHA3_384
#define CKR_FIPS_SELF_TEST_FAILED
#define CKM_JUNIPER_SHUFFLE
#define CKM_HASH_ML_DSA_SHAKE256
#define CKR_USER_TYPE_INVALID
#define CKK_BLAKE2B_512_HMAC
#define CKM_BLAKE2B_160_HMAC
#define CKM_AES_KEY_WRAP_PKCS7
#define CKM_ECDH_AES_KEY_WRAP
#define CRYPTOKI_VERSION_MAJOR
#define CKO_DOMAIN_PARAMETERS
#define CKM_PBE_MD5_CAST3_CBC
#define CKM_RSA_AES_KEY_WRAP
#define CKF_USER_PIN_LOCKED
#define CKK_SHA3_224_HMAC
#define CKM_IKE1_EXTENDED_DERIVE
#define CKM_PBE_MD5_DES_CBC
#define CKM_SHA512_T_HMAC
#define CKM_RIPEMD160_HMAC_GENERAL
CK_ULONG CK_JAVA_MIDP_SECURITY_DOMAIN
#define CKM_SHA256_RSA_PKCS
#define CKR_KEY_HANDLE_INVALID
#define CKM_RC2_MAC_GENERAL
#define CKA_OBJECT_VALIDATION_FLAGS
#define CKM_CAST128_KEY_GEN
#define CKF_TOKEN_PRESENT
#define CKA_ENCAPSULATE_TEMPLATE
#define CKM_BLAKE2B_512_KEY_GEN
#define CKM_BLAKE2B_512_KEY_DERIVE
#define CKM_SHA384_RSA_PKCS_PSS
CK_RV C_VerifyRecover(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
CK_RV(* CK_DESTROYMUTEX)(void *)
#define CKM_RSA_PKCS_TPM_1_1
#define CKP_SLH_DSA_SHAKE_256F
#define CKM_SSL3_KEY_AND_MAC_DERIVE
#define CKV_AUTHORITY_TYPE_NIST_CMVP
#define CKM_DES_MAC_GENERAL
#define CKR_SAVED_STATE_INVALID
#define CKF_INTERFACE_FORK_SAFE
#define CKM_ARIA_ECB_ENCRYPT_DATA
unsigned char CK_UTF8CHAR
#define CKM_X2RATCHET_ENCRYPT
#define CKA_WRAP_TEMPLATE
#define CKR_WRAPPED_KEY_LEN_RANGE
#define CKM_X9_42_DH_HYBRID_DERIVE
#define CKM_SHA3_224_HMAC
#define CKR_EXCEEDED_MAX_ITERATIONS
#define CKM_BLOWFISH_KEY_GEN
#define CKM_GOST28147_MAC
#define CKR_KEY_INDIGESTIBLE
CK_RV C_GetSlotList(CK_BBOOL, CK_SLOT_ID *, CK_ULONG *)
#define CKH_USER_INTERFACE
#define CKA_VALIDATION_VENDOR_URI
#define CKF_VERIFY_RECOVER
#define CKA_MECHANISM_TYPE
#define CKM_SHA3_224_KEY_DERIVATION
CK_RV C_DecryptMessage(CK_SESSION_HANDLE, void *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *)
CK_RV C_GetInterface(CK_UTF8CHAR *, CK_VERSION *, CK_INTERFACE **, CK_FLAGS)
#define CKF_CLOCK_ON_TOKEN
#define CKS_RW_SO_FUNCTIONS
#define CK_SP800_108_DKM_LENGTH
#define CKA_VALIDATION_CERTIFICATE_IDENTIFIER
#define CKM_SHA3_512_RSA_PKCS_PSS
#define CK_OTP_FORMAT_ALPHANUMERIC
#define CKM_HASH_ML_DSA_SHA3_384
#define CKM_BLOWFISH_CBC_PAD
#define CKM_SHA3_224_KEY_GEN
CK_RV C_GenerateRandom(CK_SESSION_HANDLE, CK_BYTE *, CK_ULONG)
#define CKR_PUBLIC_KEY_INVALID
#define CKG_GENERATE_RANDOM
#define CKR_KEY_TYPE_INCONSISTENT
#define CKA_VALIDATION_VERSION
CK_RV C_VerifyMessage(CK_SESSION_HANDLE, void *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG)
#define CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT
#define CK_SECURITY_DOMAIN_UNSPECIFIED
#define CKA_X2RATCHET_CKR
#define CKM_AES_XCBC_MAC_96
CK_RV C_MessageDecryptInit(CK_SESSION_HANDLE, CK_MECHANISM *, CK_OBJECT_HANDLE)
#define CKF_MESSAGE_VERIFY
#define CKF_WRITE_PROTECTED
#define CKD_BLAKE2B_160_KDF
#define CKA_X2RATCHET_DHS
#define CKA_X2RATCHET_DHR
#define CKM_BLAKE2B_256_KEY_DERIVE
#define CKV_TYPE_HARDWARE
#define CK_OTP_OUTPUT_FORMAT
#define CKF_ASYNC_SESSION_SUPPORTED
#define CKM_TLS12_KEY_AND_MAC_DERIVE
#define CK_SP800_108_DKM_LENGTH_SUM_OF_KEYS
CK_RV C_MessageVerifyFinal(CK_SESSION_HANDLE)
CK_RV C_CloseSession(CK_SESSION_HANDLE)
#define CKD_SHA3_256_KDF_SP800
#define CKR_KEY_NOT_WRAPPABLE
#define CKA_DERIVE_TEMPLATE
#define CKT_TRUST_UNKNOWN
#define CKM_HASH_ML_DSA_SHA512
#define CKM_TLS12_MASTER_KEY_DERIVE_DH
#define CKM_SHA3_256_HMAC_GENERAL
#define CKM_SHA224_HMAC_GENERAL
#define CKM_ECDH_COF_AES_KEY_WRAP
#define CK_SECURITY_DOMAIN_OPERATOR
#define CKM_SHA3_256_KEY_DERIVATION
#define CK_OTP_PARAM_MANDATORY
#define CKD_SHA224_KDF_SP800
#define CKA_OTP_SERVICE_LOGO
CK_RV C_VerifyMessageNext(CK_SESSION_HANDLE, void *, CK_ULONG, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG)
#define CKM_SHA224_KEY_GEN
#define CKM_SALSA20_POLY1305