13#include <botan/exceptn.h>
14#include <botan/secmem.h>
26 #pragma pack(push, cryptoki, 1)
29#define PKCS11_DEPRECATED
33 #pragma pack(pop, cryptoki)
38 "The Botan PKCS #11 module was implemented against PKCS #11 v3.2. Please use the correct PKCS #11 headers.");
42class Dynamically_Loaded_Library;
1229 if(v > std::numeric_limits<Ulong>::max()) {
1232 return static_cast<Ulong>(v);
1304 std::span<const Utf8Char> name()
const;
1326 static Utf8Char* p11_interface_name_ptr();
1333 BOTAN_DEPRECATED(
"Use LowLevel(InterfaceWrapper::latest_p11_interface(module.library()))")
1458 const Utf8Char* interface_name_ptr,
1497 std::vector<SlotId>& slot_ids,
1582 std::vector<MechanismType>& mechanisms,
1644 template <
typename TAlloc>
1646 const std::vector<uint8_t, TAlloc>& so_pin,
1647 std::string_view label,
1649 std::string padded_label(label);
1650 if(label.size() < 32) {
1651 padded_label.insert(padded_label.end(), 32 - label.size(),
' ');
1655 reinterpret_cast<Utf8Char*
>(
const_cast<uint8_t*
>(so_pin.data())),
1657 reinterpret_cast<Utf8Char*
>(
const_cast<char*
>(padded_label.c_str())),
1697 template <
typename TAlloc>
1699 const std::vector<uint8_t, TAlloc>& pin,
1702 reinterpret_cast<Utf8Char*
>(
const_cast<uint8_t*
>(pin.data())),
1748 template <
typename TAlloc>
1750 const std::vector<uint8_t, TAlloc>& old_pin,
1751 const std::vector<uint8_t, TAlloc>& new_pin,
1754 reinterpret_cast<Utf8Char*
>(
const_cast<uint8_t*
>(old_pin.data())),
1756 reinterpret_cast<Utf8Char*
>(
const_cast<uint8_t*
>(new_pin.data())),
1859 Byte* operation_state_ptr,
1860 Ulong* operation_state_len_ptr,
1881 const Byte* operation_state_ptr,
1882 Ulong operation_state_len,
1928 template <
typename TAlloc>
1931 const std::vector<uint8_t, TAlloc>& pin,
1935 reinterpret_cast<Utf8Char*
>(
const_cast<uint8_t*
>(pin.data())),
2119 template <
typename TAlloc>
2122 std::map<
AttributeType, std::vector<uint8_t, TAlloc>>& attribute_values,
2124 std::vector<Attribute> getter_template;
2126 getter_template.reserve(attribute_values.size());
2127 for(
const auto& entry : attribute_values) {
2133 const_cast<Attribute*
>(getter_template.data()),
2142 for(
auto& entry : attribute_values) {
2143 entry.second.clear();
2144 entry.second.resize(getter_template.at(i).ulValueLen);
2145 getter_template.at(i).pValue =
const_cast<uint8_t*
>(entry.second.data());
2151 const_cast<Attribute*
>(getter_template.data()),
2197 template <
typename TAlloc>
2200 std::map<
AttributeType, std::vector<uint8_t, TAlloc>>& attribute_values,
2202 std::vector<Attribute> setter_template;
2204 setter_template.reserve(attribute_values.size());
2205 for(
auto& entry : attribute_values) {
2207 entry.second.data(),
2213 const_cast<Attribute*
>(setter_template.data()),
2255 Ulong max_object_count,
2256 Ulong* object_count_ptr,
2316 const Byte* data_ptr,
2318 Byte* encrypted_data,
2319 Ulong* encrypted_data_len_ptr,
2338 template <
typename TAllocA,
typename TAllocB>
2340 const std::vector<uint8_t, TAllocA>& plaintext_data,
2341 std::vector<uint8_t, TAllocB>& encrypted_data,
2343 Ulong encrypted_size = 0;
2345 const_cast<Byte*
>((plaintext_data.data())),
2353 encrypted_data.resize(encrypted_size);
2355 const_cast<Byte*
>(plaintext_data.data()),
2357 encrypted_data.data(),
2362 encrypted_data.resize(encrypted_size);
2384 const Byte* part_ptr,
2386 Byte* encrypted_part_ptr,
2387 Ulong* encrypted_part_len_ptr,
2406 Byte* last_encrypted_part_ptr,
2407 Ulong* last_encrypted_part_len_ptr,
2444 const void* parameter_ptr,
2445 Ulong parameter_len,
2446 const Byte* associated_data_ptr,
2447 Ulong associated_data_len,
2448 const Byte* plaintext_ptr,
2449 Ulong plaintext_len,
2450 Byte* ciphertext_ptr,
2451 Ulong* ciphertext_len_ptr,
2466 const void* parameter_ptr,
2467 Ulong parameter_len,
2468 const Byte* associated_data_ptr,
2469 Ulong associated_data_len,
2488 const void* parameter_ptr,
2489 Ulong parameter_len,
2490 const Byte* plaintext_part_ptr,
2491 Ulong plaintext_part_len,
2492 Byte* ciphertext_ptr,
2493 Ulong* ciphertext_part_len_ptr,
2549 const Byte* encrypted_data_ptr,
2550 Ulong encrypted_data_len,
2552 Ulong* data_len_ptr,
2571 template <
typename TAllocA,
typename TAllocB>
2573 const std::vector<uint8_t, TAllocA>& encrypted_data,
2574 std::vector<uint8_t, TAllocB>& decrypted_data,
2576 Ulong decrypted_size = 0;
2578 const_cast<Byte*
>((encrypted_data.data())),
2586 decrypted_data.resize(decrypted_size);
2588 const_cast<Byte*
>(encrypted_data.data()),
2590 decrypted_data.data(),
2595 decrypted_data.resize(decrypted_size);
2618 const Byte* encrypted_part_ptr,
2619 Ulong encrypted_part_len,
2621 Ulong* part_len_ptr,
2641 Byte* last_part_ptr,
2642 Ulong* last_part_len_ptr,
2679 const void* parameter_ptr,
2680 Ulong parameter_len,
2681 const Byte* associated_data_ptr,
2682 Ulong associated_data_len,
2683 const Byte* ciphertext_ptr,
2684 Ulong ciphertext_len,
2685 Byte* plaintext_ptr,
2686 Ulong* plaintext_len_ptr,
2701 const void* parameter_ptr,
2702 Ulong parameter_len,
2703 const Byte* associated_data_ptr,
2704 Ulong associated_data_len,
2723 const void* parameter_ptr,
2724 Ulong parameter_len,
2725 const Byte* ciphertext_part_ptr,
2726 Ulong ciphertext_part_len,
2727 Byte* plaintext_ptr,
2728 Ulong* plaintext_part_len_ptr,
2780 const Byte* data_ptr,
2783 Ulong* digest_len_ptr,
2802 const Byte* part_ptr,
2839 Ulong* digest_len_ptr,
2885 const Byte* data_ptr,
2887 Byte* signature_ptr,
2888 Ulong* signature_len_ptr,
2907 template <
typename TAllocA,
typename TAllocB>
2909 const std::vector<uint8_t, TAllocA>& data,
2910 std::vector<uint8_t, TAllocB>& signature,
2912 Ulong signature_size = 0;
2917 signature.resize(signature_size);
2926 signature.resize(signature_size);
2946 const Byte* part_ptr,
2964 template <
typename TAlloc>
2966 const std::vector<uint8_t, TAlloc>& part,
2988 Byte* signature_ptr,
2989 Ulong* signature_len_ptr,
3007 template <
typename TAlloc>
3009 std::vector<uint8_t, TAlloc>& signature,
3011 Ulong signature_size = 0;
3012 if(!
C_SignFinal(session,
nullptr, &signature_size, return_value)) {
3016 signature.resize(signature_size);
3017 if(!
C_SignFinal(session, signature.data(), &signature_size, return_value)) {
3020 signature.resize(signature_size);
3065 const Byte* data_ptr,
3067 Byte* signature_ptr,
3068 Ulong* signature_len_ptr,
3106 const void* parameter_ptr,
3107 Ulong parameter_len,
3108 const Byte* data_ptr,
3110 Byte* signature_ptr,
3111 Ulong* signature_len_ptr,
3126 const void* parameter_ptr,
3127 Ulong parameter_len,
3146 const void* parameter_ptr,
3147 Ulong parameter_len,
3148 const Byte* data_ptr,
3150 Byte* signature_ptr,
3151 Ulong* signature_len_ptr,
3206 const Byte* data_ptr,
3208 const Byte* signature_ptr,
3209 Ulong signature_len,
3228 template <
typename TAllocA,
typename TAllocB>
3230 const std::vector<uint8_t, TAllocA>& data,
3231 std::vector<uint8_t, TAllocB>& signature,
3257 const Byte* part_ptr,
3275 template <
typename TAlloc>
3277 std::vector<uint8_t, TAlloc> part,
3299 const Byte* signature_ptr,
3300 Ulong signature_len,
3344 const Byte* signature_ptr,
3345 Ulong signature_len,
3347 Ulong* data_len_ptr,
3365 const Byte* signature_ptr,
3366 Ulong signature_len,
3380 const Byte* data_ptr,
3395 const Byte* part_ptr,
3444 const void* parameter_ptr,
3445 Ulong parameter_len,
3446 const Byte* data_ptr,
3448 const Byte* signature_ptr,
3449 Ulong signature_len,
3464 const void* parameter_ptr,
3465 Ulong parameter_len,
3484 const void* parameter_ptr,
3485 Ulong parameter_len,
3486 const Byte* data_ptr,
3488 const Byte* signature_ptr,
3489 Ulong signature_len,
3521 const Byte* part_ptr,
3523 Byte* encrypted_part_ptr,
3524 Ulong* encrypted_part_len_ptr,
3546 const Byte* encrypted_part_ptr,
3547 Ulong encrypted_part_len,
3549 Ulong* part_len_ptr,
3571 const Byte* part_ptr,
3573 Byte* encrypted_part_ptr,
3574 Ulong* encrypted_part_len_ptr,
3596 const Byte* encrypted_part_ptr,
3597 Ulong encrypted_part_len,
3599 Ulong* part_len_ptr,
3659 Ulong public_key_attribute_count,
3661 Ulong private_key_attribute_count,
3692 Byte* wrapped_key_ptr,
3693 Ulong* wrapped_key_len_ptr,
3725 const Byte* wrapped_key_ptr,
3726 Ulong wrapped_key_len,
3728 Ulong attribute_count,
3759 Ulong attribute_count,
3781 const Byte* associated_data_ptr,
3782 Ulong associated_data_len,
3783 Byte* wrapped_key_ptr,
3784 Ulong* wrapped_key_len_ptr,
3807 const Byte* wrapped_key_ptr,
3808 Ulong wrapped_key_len,
3810 Ulong attribute_count,
3811 const Byte* associated_data_ptr,
3812 Ulong associated_data_len,
3835 Ulong attribute_count,
3836 Byte* ciphertext_ptr,
3837 Ulong* ciphertext_len_ptr,
3864 Ulong attribute_count,
3865 const Byte* ciphertext_ptr,
3866 Ulong ciphertext_len,
3889 const Byte* seed_ptr,
3909 Byte* random_data_ptr,
4015 static bool handle_return_value(
CK_RV function_result,
ReturnValue* return_value);
4034 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 p11_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
Ulong checked_ulong_cast(size_t v)
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