return ret;
}
+CK_RV
+mock_X_Initialize (CK_X_FUNCTION_LIST *self,
+ CK_VOID_PTR init_args)
+{
+ return mock_C_Initialize (init_args);
+}
+
CK_RV
mock_C_Initialize__fails (CK_VOID_PTR init_args)
{
return CKR_OK;
}
+CK_RV
+mock_X_Finalize (CK_X_FUNCTION_LIST *self,
+ CK_VOID_PTR reserved)
+{
+ return mock_C_Finalize (reserved);
+}
+
static const CK_INFO MOCK_INFO = {
{ CRYPTOKI_VERSION_MAJOR, CRYPTOKI_VERSION_MINOR },
"MOCK MANUFACTURER ",
return CKR_OK;
}
+CK_RV
+mock_X_GetInfo (CK_X_FUNCTION_LIST *self,
+ CK_INFO_PTR info)
+{
+ return mock_C_GetInfo (info);
+}
+
CK_RV
mock_C_GetFunctionList_not_supported (CK_FUNCTION_LIST_PTR_PTR list)
{
return CKR_OK;
}
+CK_RV
+mock_X_GetSlotList__no_tokens (CK_X_FUNCTION_LIST *self,
+ CK_BBOOL token_present,
+ CK_SLOT_ID_PTR slot_list,
+ CK_ULONG_PTR count)
+{
+ return mock_C_GetSlotList__no_tokens (token_present,
+ slot_list,
+ count);
+;
+}
+
/* Update mock-module.h URIs when updating this */
static const CK_SLOT_INFO MOCK_INFO_ONE = {
return CKR_SLOT_ID_INVALID;
}
+CK_RV
+mock_X_GetSlotInfo__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID id,
+ CK_SLOT_INFO_PTR info)
+{
+ return_val_if_fail (info, CKR_ARGUMENTS_BAD);
+
+ return CKR_SLOT_ID_INVALID;
+}
+
/* Update gck-mock.h URIs when updating this */
static const CK_TOKEN_INFO MOCK_TOKEN_ONE = {
return CKR_SLOT_ID_INVALID;
}
+CK_RV
+mock_X_GetTokenInfo__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID slot_id,
+ CK_TOKEN_INFO_PTR info)
+{
+ return_val_if_fail (info, CKR_ARGUMENTS_BAD);
+
+ return CKR_SLOT_ID_INVALID;
+}
+
/*
* TWO mechanisms:
* CKM_MOCK_CAPITALIZE
}
CK_RV
-mock_C_GetTokenInfo_not_initialized (CK_SLOT_ID slot_id,
- CK_TOKEN_INFO_PTR info)
+mock_C_GetTokenInfo__not_initialized (CK_SLOT_ID slot_id,
+ CK_TOKEN_INFO_PTR info)
{
CK_RV rv;
return CKR_SLOT_ID_INVALID;
}
+CK_RV
+mock_X_GetMechanismList__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID id,
+ CK_MECHANISM_TYPE_PTR mechanism_list,
+ CK_ULONG_PTR count)
+{
+ return_val_if_fail (count, CKR_ARGUMENTS_BAD);
+
+ return CKR_SLOT_ID_INVALID;
+}
+
static const CK_MECHANISM_INFO MOCK_MECH_CAPITALIZE = {
512, 4096, CKF_ENCRYPT | CKF_DECRYPT
};
return CKR_SLOT_ID_INVALID;
}
+CK_RV
+mock_X_GetMechanismInfo__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID slot_id,
+ CK_MECHANISM_TYPE type,
+ CK_MECHANISM_INFO_PTR info)
+{
+ return_val_if_fail (info, CKR_ARGUMENTS_BAD);
+
+ return CKR_SLOT_ID_INVALID;
+}
+
CK_RV
mock_C_InitToken__specific_args (CK_SLOT_ID slot_id,
CK_UTF8CHAR_PTR pin,
return CKR_SLOT_ID_INVALID;
}
+CK_RV
+mock_X_InitToken__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID slot_id,
+ CK_UTF8CHAR_PTR pin,
+ CK_ULONG pin_len,
+ CK_UTF8CHAR_PTR label)
+{
+ return CKR_SLOT_ID_INVALID;
+}
+
CK_RV
mock_C_WaitForSlotEvent (CK_FLAGS flags,
CK_SLOT_ID_PTR slot,
return CKR_NO_EVENT;
}
+CK_RV
+mock_X_WaitForSlotEvent__no_event (CK_X_FUNCTION_LIST *self,
+ CK_FLAGS flags,
+ CK_SLOT_ID_PTR slot,
+ CK_VOID_PTR reserved)
+{
+ return_val_if_fail (slot, CKR_ARGUMENTS_BAD);
+
+ return CKR_NO_EVENT;
+}
+
CK_RV
mock_C_OpenSession (CK_SLOT_ID slot_id,
CK_FLAGS flags,
return CKR_SLOT_ID_INVALID;
}
+CK_RV
+mock_X_OpenSession__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID slot_id,
+ CK_FLAGS flags,
+ CK_VOID_PTR user_data,
+ CK_NOTIFY callback,
+ CK_SESSION_HANDLE_PTR session)
+{
+ return_val_if_fail (session, CKR_ARGUMENTS_BAD);
+
+ return CKR_SLOT_ID_INVALID;
+}
+
CK_RV
mock_C_OpenSession__fails (CK_SLOT_ID slot_id,
CK_FLAGS flags,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_CloseSession__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_CloseAllSessions (CK_SLOT_ID slot_id)
{
return CKR_SLOT_ID_INVALID;
}
+CK_RV
+mock_X_CloseAllSessions__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID slot_id)
+{
+ return CKR_SLOT_ID_INVALID;
+}
+
CK_RV
mock_C_GetFunctionStatus (CK_SESSION_HANDLE session)
{
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_GetSessionInfo__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_SESSION_INFO_PTR info)
+{
+ return_val_if_fail (info, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_InitPIN__specific_args (CK_SESSION_HANDLE session,
CK_UTF8CHAR_PTR pin,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_InitPIN__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_UTF8CHAR_PTR pin,
+ CK_ULONG pin_len)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_SetPIN__specific_args (CK_SESSION_HANDLE session,
CK_UTF8CHAR_PTR old_pin,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_SetPIN__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_UTF8CHAR_PTR old_pin,
+ CK_ULONG old_pin_len,
+ CK_UTF8CHAR_PTR new_pin,
+ CK_ULONG new_pin_len)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_GetOperationState (CK_SESSION_HANDLE session,
CK_BYTE_PTR operation_state,
return CKR_FUNCTION_NOT_SUPPORTED;
}
+CK_RV
+mock_X_GetOperationState__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR operation_state,
+ CK_ULONG_PTR operation_state_len)
+{
+ return CKR_FUNCTION_NOT_SUPPORTED;
+}
+
CK_RV
mock_C_SetOperationState (CK_SESSION_HANDLE session,
CK_BYTE_PTR operation_state,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_SetOperationState__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR operation_state,
+ CK_ULONG operation_state_len,
+ CK_OBJECT_HANDLE encryption_key,
+ CK_OBJECT_HANDLE authentication_key)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_Login (CK_SESSION_HANDLE session,
CK_USER_TYPE user_type,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_Login__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_USER_TYPE user_type,
+ CK_UTF8CHAR_PTR pin,
+ CK_ULONG pin_len)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_Logout (CK_SESSION_HANDLE session)
{
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_Logout__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_CreateObject (CK_SESSION_HANDLE session,
CK_ATTRIBUTE_PTR template,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_CreateObject__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count,
+ CK_OBJECT_HANDLE_PTR new_object)
+{
+ return_val_if_fail (new_object, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_CopyObject (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE object,
}
+CK_RV
+mock_X_CopyObject__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE object,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count,
+ CK_OBJECT_HANDLE_PTR new_object)
+{
+ return_val_if_fail (new_object, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_DestroyObject (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE object)
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_DestroyObject__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE object)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_GetObjectSize (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE object,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_GetObjectSize__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE object,
+ CK_ULONG_PTR size)
+{
+ return_val_if_fail (size, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_GetAttributeValue (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE object,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_GetAttributeValue__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE object,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_GetAttributeValue__fail_first (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE object,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_SetAttributeValue__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE object,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
typedef struct _FindObjects {
CK_ATTRIBUTE *template;
CK_ULONG count;
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_FindObjectsInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_FindObjectsInit__fails (CK_SESSION_HANDLE session,
CK_ATTRIBUTE_PTR template,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_FindObjects__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE_PTR objects,
+ CK_ULONG max_count,
+ CK_ULONG_PTR count)
+{
+ return_val_if_fail (count, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_FindObjects__fails (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE_PTR objects,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_FindObjectsFinal__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_EncryptInit (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_EncryptInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE key)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_Encrypt (CK_SESSION_HANDLE session,
CK_BYTE_PTR data,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_Encrypt__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR data,
+ CK_ULONG data_len,
+ CK_BYTE_PTR encrypted_data,
+ CK_ULONG_PTR encrypted_data_len)
+{
+ return_val_if_fail (encrypted_data_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_EncryptUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR part,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_EncryptUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR part,
+ CK_ULONG part_len,
+ CK_BYTE_PTR encrypted_part,
+ CK_ULONG_PTR encrypted_part_len)
+{
+ return_val_if_fail (encrypted_part_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_EncryptFinal (CK_SESSION_HANDLE session,
CK_BYTE_PTR last_encrypted_part,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_EncryptFinal__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR last_part,
+ CK_ULONG_PTR last_part_len)
+{
+ return_val_if_fail (last_part_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_DecryptInit (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_DecryptInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE key)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_Decrypt (CK_SESSION_HANDLE session,
CK_BYTE_PTR encrypted_data,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_Decrypt__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR enc_data,
+ CK_ULONG enc_data_len,
+ CK_BYTE_PTR data,
+ CK_ULONG_PTR data_len)
+{
+ return_val_if_fail (data_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_DecryptUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR encrypted_part,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_DecryptUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR enc_part,
+ CK_ULONG enc_part_len,
+ CK_BYTE_PTR part,
+ CK_ULONG_PTR part_len)
+{
+ return_val_if_fail (part_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_DecryptFinal (CK_SESSION_HANDLE session,
CK_BYTE_PTR last_part,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_DecryptFinal__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR last_part,
+ CK_ULONG_PTR last_part_len)
+{
+ return_val_if_fail (last_part_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_DigestInit (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism)
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_DigestInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_Digest (CK_SESSION_HANDLE session,
CK_BYTE_PTR data,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_Digest__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR data,
+ CK_ULONG data_len,
+ CK_BYTE_PTR digest,
+ CK_ULONG_PTR digest_len)
+{
+ return_val_if_fail (digest_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_DigestUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR part,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_DigestUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR part,
+ CK_ULONG part_len)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_DigestKey (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE key)
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_DigestKey__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE key)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_DigestFinal (CK_SESSION_HANDLE session,
CK_BYTE_PTR digest,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_DigestFinal__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR digest,
+ CK_ULONG_PTR digest_len)
+{
+ return_val_if_fail (digest_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
static CK_RV
prefix_mechanism_init (CK_SESSION_HANDLE session,
CK_ATTRIBUTE_TYPE method,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_SignInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE key)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_Sign (CK_SESSION_HANDLE session,
CK_BYTE_PTR data,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_Sign__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR data,
+ CK_ULONG data_len,
+ CK_BYTE_PTR signature,
+ CK_ULONG_PTR signature_len)
+{
+ return_val_if_fail (signature_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_SignUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR part,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_SignUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR part,
+ CK_ULONG part_len)
+{
+ return_val_if_fail (part_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_SignFinal (CK_SESSION_HANDLE session,
CK_BYTE_PTR signature,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_SignFinal__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR signature,
+ CK_ULONG_PTR signature_len)
+{
+ return_val_if_fail (signature_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_SignRecoverInit (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_SignRecoverInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE key)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_SignRecover (CK_SESSION_HANDLE session,
CK_BYTE_PTR data,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_SignRecover__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR data,
+ CK_ULONG data_len,
+ CK_BYTE_PTR signature,
+ CK_ULONG_PTR signature_len)
+{
+ return_val_if_fail (signature_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_VerifyInit (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_VerifyInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE key)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_Verify (CK_SESSION_HANDLE session,
CK_BYTE_PTR data,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_Verify__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR data,
+ CK_ULONG data_len,
+ CK_BYTE_PTR signature,
+ CK_ULONG signature_len)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_VerifyUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR part,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_VerifyUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR part,
+ CK_ULONG part_len)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_VerifyFinal (CK_SESSION_HANDLE session,
CK_BYTE_PTR signature,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_VerifyFinal__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR signature,
+ CK_ULONG signature_len)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_VerifyRecoverInit (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_VerifyRecoverInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE key)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_VerifyRecover (CK_SESSION_HANDLE session,
CK_BYTE_PTR signature,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_VerifyRecover__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR signature,
+ CK_ULONG signature_len,
+ CK_BYTE_PTR data,
+ CK_ULONG_PTR data_len)
+{
+ return_val_if_fail (data_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_DigestEncryptUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR part,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_DigestEncryptUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR part,
+ CK_ULONG part_len,
+ CK_BYTE_PTR enc_part,
+ CK_ULONG_PTR enc_part_len)
+{
+ return_val_if_fail (enc_part_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_DecryptDigestUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR encrypted_part,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_DecryptDigestUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR enc_part,
+ CK_ULONG enc_part_len,
+ CK_BYTE_PTR part,
+ CK_ULONG_PTR part_len)
+{
+ return_val_if_fail (part_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_SignEncryptUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR part,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_SignEncryptUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR part,
+ CK_ULONG part_len,
+ CK_BYTE_PTR enc_part,
+ CK_ULONG_PTR enc_part_len)
+{
+ return_val_if_fail (enc_part_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_DecryptVerifyUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR encrypted_part,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_DecryptVerifyUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR enc_part,
+ CK_ULONG enc_part_len,
+ CK_BYTE_PTR part,
+ CK_ULONG_PTR part_len)
+{
+ return_val_if_fail (part_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_GenerateKey (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_GenerateKey__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count,
+ CK_OBJECT_HANDLE_PTR key)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_GenerateKeyPair (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_GenerateKeyPair__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_ATTRIBUTE_PTR pub_template,
+ CK_ULONG pub_count,
+ CK_ATTRIBUTE_PTR priv_template,
+ CK_ULONG priv_count,
+ CK_OBJECT_HANDLE_PTR pub_key,
+ CK_OBJECT_HANDLE_PTR priv_key)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_WrapKey (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_WrapKey__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE wrapping_key,
+ CK_OBJECT_HANDLE key,
+ CK_BYTE_PTR wrapped_key,
+ CK_ULONG_PTR wrapped_key_len)
+{
+ return_val_if_fail (wrapped_key_len, CKR_ARGUMENTS_BAD);
+
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_UnwrapKey (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_UnwrapKey__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE unwrapping_key,
+ CK_BYTE_PTR wrapped_key,
+ CK_ULONG wrapped_key_len,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count,
+ CK_OBJECT_HANDLE_PTR key)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_DeriveKey (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_DeriveKey__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE base_key,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count,
+ CK_OBJECT_HANDLE_PTR key)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_SeedRandom (CK_SESSION_HANDLE session,
CK_BYTE_PTR seed,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_SeedRandom__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR seed,
+ CK_ULONG seed_len)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_RV
mock_C_GenerateRandom (CK_SESSION_HANDLE session,
CK_BYTE_PTR random_data,
return CKR_SESSION_HANDLE_INVALID;
}
+CK_RV
+mock_X_GenerateRandom__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR random_data,
+ CK_ULONG random_len)
+{
+ return CKR_SESSION_HANDLE_INVALID;
+}
+
CK_FUNCTION_LIST mock_module_no_slots = {
{ CRYPTOKI_VERSION_MAJOR, CRYPTOKI_VERSION_MINOR }, /* version */
mock_C_Initialize,
mock_C_WaitForSlotEvent__no_event,
};
+CK_X_FUNCTION_LIST mock_x_module_no_slots = {
+ { CRYPTOKI_VERSION_MAJOR, CRYPTOKI_VERSION_MINOR }, /* version */
+ mock_X_Initialize,
+ mock_X_Finalize,
+ mock_X_GetInfo,
+ mock_X_GetSlotList__no_tokens,
+ mock_X_GetSlotInfo__invalid_slotid,
+ mock_X_GetTokenInfo__invalid_slotid,
+ mock_X_GetMechanismList__invalid_slotid,
+ mock_X_GetMechanismInfo__invalid_slotid,
+ mock_X_InitToken__invalid_slotid,
+ mock_X_InitPIN__invalid_handle,
+ mock_X_SetPIN__invalid_handle,
+ mock_X_OpenSession__invalid_slotid,
+ mock_X_CloseSession__invalid_handle,
+ mock_X_CloseAllSessions__invalid_slotid,
+ mock_X_GetSessionInfo__invalid_handle,
+ mock_X_GetOperationState__invalid_handle,
+ mock_X_SetOperationState__invalid_handle,
+ mock_X_Login__invalid_handle,
+ mock_X_Logout__invalid_handle,
+ mock_X_CreateObject__invalid_handle,
+ mock_X_CopyObject__invalid_handle,
+ mock_X_DestroyObject__invalid_handle,
+ mock_X_GetObjectSize__invalid_handle,
+ mock_X_GetAttributeValue__invalid_handle,
+ mock_X_SetAttributeValue__invalid_handle,
+ mock_X_FindObjectsInit__invalid_handle,
+ mock_X_FindObjects__invalid_handle,
+ mock_X_FindObjectsFinal__invalid_handle,
+ mock_X_EncryptInit__invalid_handle,
+ mock_X_Encrypt__invalid_handle,
+ mock_X_EncryptUpdate__invalid_handle,
+ mock_X_EncryptFinal__invalid_handle,
+ mock_X_DecryptInit__invalid_handle,
+ mock_X_Decrypt__invalid_handle,
+ mock_X_DecryptUpdate__invalid_handle,
+ mock_X_DecryptFinal__invalid_handle,
+ mock_X_DigestInit__invalid_handle,
+ mock_X_Digest__invalid_handle,
+ mock_X_DigestUpdate__invalid_handle,
+ mock_X_DigestKey__invalid_handle,
+ mock_X_DigestFinal__invalid_handle,
+ mock_X_SignInit__invalid_handle,
+ mock_X_Sign__invalid_handle,
+ mock_X_SignUpdate__invalid_handle,
+ mock_X_SignFinal__invalid_handle,
+ mock_X_SignRecoverInit__invalid_handle,
+ mock_X_SignRecover__invalid_handle,
+ mock_X_VerifyInit__invalid_handle,
+ mock_X_Verify__invalid_handle,
+ mock_X_VerifyUpdate__invalid_handle,
+ mock_X_VerifyFinal__invalid_handle,
+ mock_X_VerifyRecoverInit__invalid_handle,
+ mock_X_VerifyRecover__invalid_handle,
+ mock_X_DigestEncryptUpdate__invalid_handle,
+ mock_X_DecryptDigestUpdate__invalid_handle,
+ mock_X_SignEncryptUpdate__invalid_handle,
+ mock_X_DecryptVerifyUpdate__invalid_handle,
+ mock_X_GenerateKey__invalid_handle,
+ mock_X_GenerateKeyPair__invalid_handle,
+ mock_X_WrapKey__invalid_handle,
+ mock_X_UnwrapKey__invalid_handle,
+ mock_X_DeriveKey__invalid_handle,
+ mock_X_SeedRandom__invalid_handle,
+ mock_X_GenerateRandom__invalid_handle,
+ mock_X_WaitForSlotEvent__no_event,
+};
+
CK_FUNCTION_LIST mock_module = {
{ CRYPTOKI_VERSION_MAJOR, CRYPTOKI_VERSION_MINOR }, /* version */
mock_C_Initialize,
#include "compat.h"
#include "pkcs11.h"
+#include "pkcs11x.h"
enum {
MOCK_DATA_OBJECT = 2,
MOCK_SLOT_TWO_ID = 134,
};
-
extern CK_FUNCTION_LIST mock_module;
extern CK_FUNCTION_LIST mock_module_no_slots;
+extern CK_X_FUNCTION_LIST mock_x_module_no_slots;
+
void mock_module_init (void);
typedef bool (* mock_enumerator) (CK_OBJECT_HANDLE handle,
CK_RV mock_C_Initialize__fails (CK_VOID_PTR init_args);
+CK_RV mock_X_Initialize (CK_X_FUNCTION_LIST *self,
+ CK_VOID_PTR init_args);
+
CK_RV mock_C_Finalize (CK_VOID_PTR reserved);
+CK_RV mock_X_Finalize (CK_X_FUNCTION_LIST *self,
+ CK_VOID_PTR reserved);
+
CK_RV mock_C_GetInfo (CK_INFO_PTR info);
+CK_RV mock_X_GetInfo (CK_X_FUNCTION_LIST *self,
+ CK_INFO_PTR info);
+
CK_RV mock_C_GetFunctionList_not_supported (CK_FUNCTION_LIST_PTR_PTR list);
CK_RV mock_C_GetSlotList (CK_BBOOL token_present,
CK_RV mock_C_GetSlotInfo (CK_SLOT_ID slot_id,
CK_SLOT_INFO_PTR info);
+CK_RV mock_X_GetSlotList__no_tokens (CK_X_FUNCTION_LIST *self,
+ CK_BBOOL token_present,
+ CK_SLOT_ID_PTR slot_list,
+ CK_ULONG_PTR count);
+
CK_RV mock_C_GetSlotInfo__invalid_slotid (CK_SLOT_ID slot_id,
CK_SLOT_INFO_PTR info);
+CK_RV mock_X_GetSlotInfo__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID slot_id,
+ CK_SLOT_INFO_PTR info);
+
CK_RV mock_C_GetTokenInfo (CK_SLOT_ID slot_id,
CK_TOKEN_INFO_PTR info);
CK_RV mock_C_GetTokenInfo__invalid_slotid (CK_SLOT_ID slot_id,
CK_TOKEN_INFO_PTR info);
-CK_RV mock_C_GetTokenInfo_not_initialized (CK_SLOT_ID slot_id,
+CK_RV mock_X_GetTokenInfo__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID slot_id,
+ CK_TOKEN_INFO_PTR info);
+
+CK_RV mock_C_GetTokenInfo__not_initialized (CK_SLOT_ID slot_id,
CK_TOKEN_INFO_PTR info);
CK_RV mock_C_GetMechanismList (CK_SLOT_ID slot_id,
CK_MECHANISM_TYPE_PTR mechanism_list,
CK_ULONG_PTR count);
+CK_RV mock_X_GetMechanismList__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID slot_id,
+ CK_MECHANISM_TYPE_PTR mechanism_list,
+ CK_ULONG_PTR count);
+
CK_RV mock_C_GetMechanismInfo (CK_SLOT_ID slot_id,
CK_MECHANISM_TYPE type,
CK_MECHANISM_INFO_PTR info);
CK_MECHANISM_TYPE type,
CK_MECHANISM_INFO_PTR info);
+CK_RV mock_X_GetMechanismInfo__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID slot_id,
+ CK_MECHANISM_TYPE type,
+ CK_MECHANISM_INFO_PTR info);
+
CK_RV mock_C_InitToken__specific_args (CK_SLOT_ID slot_id,
CK_UTF8CHAR_PTR pin,
CK_ULONG pin_len,
CK_ULONG pin_len,
CK_UTF8CHAR_PTR label);
+CK_RV mock_X_InitToken__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID slot_id,
+ CK_UTF8CHAR_PTR pin,
+ CK_ULONG pin_len,
+ CK_UTF8CHAR_PTR label);
+
+
CK_RV mock_C_WaitForSlotEvent (CK_FLAGS flags,
CK_SLOT_ID_PTR slot,
CK_VOID_PTR reserved);
CK_SLOT_ID_PTR slot,
CK_VOID_PTR reserved);
+CK_RV mock_X_WaitForSlotEvent__no_event (CK_X_FUNCTION_LIST *self,
+ CK_FLAGS flags,
+ CK_SLOT_ID_PTR slot,
+ CK_VOID_PTR reserved);
+
CK_RV mock_C_OpenSession__invalid_slotid (CK_SLOT_ID slot_id,
CK_FLAGS flags,
CK_VOID_PTR user_data,
CK_NOTIFY callback,
CK_SESSION_HANDLE_PTR session);
+CK_RV mock_X_OpenSession__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID slot_id,
+ CK_FLAGS flags,
+ CK_VOID_PTR user_data,
+ CK_NOTIFY callback,
+ CK_SESSION_HANDLE_PTR session);
+
CK_RV mock_C_OpenSession__fails (CK_SLOT_ID slot_id,
CK_FLAGS flags,
CK_VOID_PTR user_data,
CK_RV mock_C_CloseSession__invalid_handle (CK_SESSION_HANDLE session);
+CK_RV mock_X_CloseSession__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session);
+
CK_RV mock_C_CloseAllSessions (CK_SLOT_ID slot_id);
CK_RV mock_C_CloseAllSessions__invalid_slotid (CK_SLOT_ID slot_id);
+CK_RV mock_X_CloseAllSessions__invalid_slotid (CK_X_FUNCTION_LIST *self,
+ CK_SLOT_ID slot_id);
+
CK_RV mock_C_GetFunctionStatus (CK_SESSION_HANDLE session);
CK_RV mock_C_GetFunctionStatus__not_parallel (CK_SESSION_HANDLE session);
CK_RV mock_C_GetSessionInfo__invalid_handle (CK_SESSION_HANDLE session,
CK_SESSION_INFO_PTR info);
+CK_RV mock_X_GetSessionInfo__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_SESSION_INFO_PTR info);
+
CK_RV mock_C_InitPIN__specific_args (CK_SESSION_HANDLE session,
CK_UTF8CHAR_PTR pin,
CK_ULONG pin_len);
CK_UTF8CHAR_PTR pin,
CK_ULONG pin_len);
+CK_RV mock_X_InitPIN__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_UTF8CHAR_PTR pin,
+ CK_ULONG pin_len);
+
CK_RV mock_C_SetPIN__specific_args (CK_SESSION_HANDLE session,
CK_UTF8CHAR_PTR old_pin,
CK_ULONG old_pin_len,
CK_UTF8CHAR_PTR new_pin,
CK_ULONG new_pin_len);
+CK_RV mock_X_SetPIN__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_UTF8CHAR_PTR old_pin,
+ CK_ULONG old_pin_len,
+ CK_UTF8CHAR_PTR new_pin,
+ CK_ULONG new_pin_len);
+
CK_RV mock_C_GetOperationState (CK_SESSION_HANDLE session,
CK_BYTE_PTR operation_state,
CK_ULONG_PTR operation_state_len);
CK_BYTE_PTR operation_state,
CK_ULONG_PTR operation_state_len);
+CK_RV mock_X_GetOperationState__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR operation_state,
+ CK_ULONG_PTR operation_state_len);
+
CK_RV mock_C_SetOperationState (CK_SESSION_HANDLE session,
CK_BYTE_PTR operation_state,
CK_ULONG operation_state_len,
CK_OBJECT_HANDLE encryption_key,
CK_OBJECT_HANDLE authentication_key);
+CK_RV mock_X_SetOperationState__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR operation_state,
+ CK_ULONG operation_state_len,
+ CK_OBJECT_HANDLE encryption_key,
+ CK_OBJECT_HANDLE authentication_key);
+
CK_RV mock_C_Login (CK_SESSION_HANDLE session,
CK_USER_TYPE user_type,
CK_UTF8CHAR_PTR pin,
CK_UTF8CHAR_PTR pin,
CK_ULONG pin_len);
+CK_RV mock_X_Login__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_USER_TYPE user_type,
+ CK_UTF8CHAR_PTR pin,
+ CK_ULONG pin_len);
+
CK_RV mock_C_Logout (CK_SESSION_HANDLE session);
CK_RV mock_C_Logout__invalid_handle (CK_SESSION_HANDLE session);
+CK_RV mock_X_Logout__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session);
+
CK_RV mock_C_CreateObject (CK_SESSION_HANDLE session,
CK_ATTRIBUTE_PTR template,
CK_ULONG count,
CK_ULONG count,
CK_OBJECT_HANDLE_PTR new_object);
+CK_RV mock_X_CreateObject__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count,
+ CK_OBJECT_HANDLE_PTR new_object);
+
CK_RV mock_C_CopyObject (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE object,
CK_ATTRIBUTE_PTR template,
CK_ULONG count,
CK_OBJECT_HANDLE_PTR new_object);
+CK_RV mock_X_CopyObject__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE object,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count,
+ CK_OBJECT_HANDLE_PTR new_object);
+
CK_RV mock_C_DestroyObject (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE object);
CK_RV mock_C_DestroyObject__invalid_handle (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE object);
+CK_RV mock_X_DestroyObject__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE object);
+
CK_RV mock_C_GetObjectSize (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE object,
CK_ULONG_PTR size);
CK_OBJECT_HANDLE object,
CK_ULONG_PTR size);
+CK_RV mock_X_GetObjectSize__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE object,
+ CK_ULONG_PTR size);
+
CK_RV mock_C_GetAttributeValue (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE object,
CK_ATTRIBUTE_PTR template,
CK_ATTRIBUTE_PTR template,
CK_ULONG count);
+CK_RV mock_X_GetAttributeValue__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE object,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count);
+
CK_RV mock_C_GetAttributeValue__fail_first (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE object,
CK_ATTRIBUTE_PTR template,
CK_ATTRIBUTE_PTR template,
CK_ULONG count);
+CK_RV mock_X_SetAttributeValue__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE object,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count);
+
CK_RV mock_C_FindObjectsInit (CK_SESSION_HANDLE session,
CK_ATTRIBUTE_PTR template,
CK_ULONG count);
CK_ATTRIBUTE_PTR template,
CK_ULONG count);
+CK_RV mock_X_FindObjectsInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count);
+
CK_RV mock_C_FindObjectsInit__fails (CK_SESSION_HANDLE session,
CK_ATTRIBUTE_PTR template,
CK_ULONG count);
CK_ULONG max_count,
CK_ULONG_PTR count);
+CK_RV mock_X_FindObjects__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE_PTR objects,
+ CK_ULONG max_count,
+ CK_ULONG_PTR count);
+
CK_RV mock_C_FindObjects__fails (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE_PTR objects,
CK_ULONG max_count,
CK_RV mock_C_FindObjectsFinal__invalid_handle (CK_SESSION_HANDLE session);
+CK_RV mock_X_FindObjectsFinal__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session);
+
CK_RV mock_C_EncryptInit (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE key);
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE key);
+CK_RV mock_X_EncryptInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE key);
+
CK_RV mock_C_Encrypt (CK_SESSION_HANDLE session,
CK_BYTE_PTR data,
CK_ULONG data_len,
CK_BYTE_PTR encrypted_data,
CK_ULONG_PTR encrypted_data_len);
+CK_RV mock_X_Encrypt__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR data,
+ CK_ULONG data_len,
+ CK_BYTE_PTR encrypted_data,
+ CK_ULONG_PTR encrypted_data_len);
+
CK_RV mock_C_EncryptUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR part,
CK_ULONG part_len,
CK_BYTE_PTR encrypted_part,
CK_ULONG_PTR encrypted_part_len);
+CK_RV mock_X_EncryptUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR part,
+ CK_ULONG part_len,
+ CK_BYTE_PTR encrypted_part,
+ CK_ULONG_PTR encrypted_part_len);
+
CK_RV mock_C_EncryptFinal (CK_SESSION_HANDLE session,
CK_BYTE_PTR last_encrypted_part,
CK_ULONG_PTR last_encrypted_part_len);
CK_BYTE_PTR last_part,
CK_ULONG_PTR last_part_len);
+CK_RV mock_X_EncryptFinal__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR last_part,
+ CK_ULONG_PTR last_part_len);
+
CK_RV mock_C_DecryptInit (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE key);
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE key);
+CK_RV mock_X_DecryptInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE key);
+
CK_RV mock_C_Decrypt (CK_SESSION_HANDLE session,
CK_BYTE_PTR encrypted_data,
CK_ULONG encrypted_data_len,
CK_BYTE_PTR data,
CK_ULONG_PTR data_len);
+CK_RV mock_X_Decrypt__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR enc_data,
+ CK_ULONG enc_data_len,
+ CK_BYTE_PTR data,
+ CK_ULONG_PTR data_len);
+
CK_RV mock_C_DecryptUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR encrypted_part,
CK_ULONG encrypted_part_len,
CK_BYTE_PTR part,
CK_ULONG_PTR part_len);
+CK_RV mock_X_DecryptUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR enc_part,
+ CK_ULONG enc_part_len,
+ CK_BYTE_PTR part,
+ CK_ULONG_PTR part_len);
+
CK_RV mock_C_DecryptFinal (CK_SESSION_HANDLE session,
CK_BYTE_PTR last_part,
CK_ULONG_PTR last_part_len);
CK_BYTE_PTR last_part,
CK_ULONG_PTR last_part_len);
+CK_RV mock_X_DecryptFinal__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR last_part,
+ CK_ULONG_PTR last_part_len);
+
CK_RV mock_C_DigestInit (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism);
CK_RV mock_C_DigestInit__invalid_handle (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism);
+CK_RV mock_X_DigestInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism);
+
CK_RV mock_C_Digest (CK_SESSION_HANDLE session,
CK_BYTE_PTR data,
CK_ULONG data_len,
CK_BYTE_PTR digest,
CK_ULONG_PTR digest_len);
+CK_RV mock_X_Digest__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR data,
+ CK_ULONG data_len,
+ CK_BYTE_PTR digest,
+ CK_ULONG_PTR digest_len);
+
CK_RV mock_C_DigestUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR part,
CK_ULONG part_len);
CK_BYTE_PTR part,
CK_ULONG part_len);
+CK_RV mock_X_DigestUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR part,
+ CK_ULONG part_len);
+
CK_RV mock_C_DigestKey (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE key);
CK_RV mock_C_DigestKey__invalid_handle (CK_SESSION_HANDLE session,
CK_OBJECT_HANDLE key);
+CK_RV mock_X_DigestKey__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_OBJECT_HANDLE key);
+
CK_RV mock_C_DigestFinal (CK_SESSION_HANDLE session,
CK_BYTE_PTR digest,
CK_ULONG_PTR digest_len);
CK_BYTE_PTR digest,
CK_ULONG_PTR digest_len);
+CK_RV mock_X_DigestFinal__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR digest,
+ CK_ULONG_PTR digest_len);
+
CK_RV mock_C_SignInit (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE key);
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE key);
+CK_RV mock_X_SignInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE key);
+
CK_RV mock_C_Sign (CK_SESSION_HANDLE session,
CK_BYTE_PTR data,
CK_ULONG data_len,
CK_BYTE_PTR signature,
CK_ULONG_PTR signature_len);
+CK_RV mock_X_Sign__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR data,
+ CK_ULONG data_len,
+ CK_BYTE_PTR signature,
+ CK_ULONG_PTR signature_len);
+
CK_RV mock_C_SignUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR part,
CK_ULONG part_len);
CK_BYTE_PTR part,
CK_ULONG part_len);
+CK_RV mock_X_SignUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR part,
+ CK_ULONG part_len);
+
CK_RV mock_C_SignFinal (CK_SESSION_HANDLE session,
CK_BYTE_PTR signature,
CK_ULONG_PTR signature_len);
CK_BYTE_PTR signature,
CK_ULONG_PTR signature_len);
+CK_RV mock_X_SignFinal__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR signature,
+ CK_ULONG_PTR signature_len);
+
CK_RV mock_C_SignRecoverInit (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE key);
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE key);
+CK_RV mock_X_SignRecoverInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE key);
+
CK_RV mock_C_SignRecover (CK_SESSION_HANDLE session,
CK_BYTE_PTR data,
CK_ULONG data_len,
CK_BYTE_PTR signature,
CK_ULONG_PTR signature_len);
+CK_RV mock_X_SignRecover__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR data,
+ CK_ULONG data_len,
+ CK_BYTE_PTR signature,
+ CK_ULONG_PTR signature_len);
+
CK_RV mock_C_VerifyInit (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE key);
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE key);
+CK_RV mock_X_VerifyInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE key);
+
CK_RV mock_C_Verify (CK_SESSION_HANDLE session,
CK_BYTE_PTR data,
CK_ULONG data_len,
CK_BYTE_PTR signature,
CK_ULONG signature_len);
+CK_RV mock_X_Verify__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR data,
+ CK_ULONG data_len,
+ CK_BYTE_PTR signature,
+ CK_ULONG signature_len);
+
CK_RV mock_C_VerifyUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR part,
CK_ULONG part_len);
CK_BYTE_PTR part,
CK_ULONG part_len);
+CK_RV mock_X_VerifyUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR part,
+ CK_ULONG part_len);
+
CK_RV mock_C_VerifyFinal (CK_SESSION_HANDLE session,
CK_BYTE_PTR signature,
CK_ULONG signature_len);
CK_BYTE_PTR signature,
CK_ULONG signature_len);
+CK_RV mock_X_VerifyFinal__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR signature,
+ CK_ULONG signature_len);
+
CK_RV mock_C_VerifyRecoverInit (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE key);
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE key);
+CK_RV mock_X_VerifyRecoverInit__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE key);
+
CK_RV mock_C_VerifyRecover (CK_SESSION_HANDLE session,
CK_BYTE_PTR signature,
CK_ULONG signature_len,
CK_BYTE_PTR data,
CK_ULONG_PTR data_len);
+CK_RV mock_X_VerifyRecover__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR signature,
+ CK_ULONG signature_len,
+ CK_BYTE_PTR data,
+ CK_ULONG_PTR data_len);
+
CK_RV mock_C_DigestEncryptUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR part,
CK_ULONG part_len,
CK_BYTE_PTR enc_part,
CK_ULONG_PTR enc_part_len);
+CK_RV mock_X_DigestEncryptUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR part,
+ CK_ULONG part_len,
+ CK_BYTE_PTR enc_part,
+ CK_ULONG_PTR enc_part_len);
+
CK_RV mock_C_DecryptDigestUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR encrypted_part,
CK_ULONG encrypted_part_len,
CK_BYTE_PTR part,
CK_ULONG_PTR part_len);
+CK_RV mock_X_DecryptDigestUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR enc_part,
+ CK_ULONG enc_part_len,
+ CK_BYTE_PTR part,
+ CK_ULONG_PTR part_len);
+
CK_RV mock_C_SignEncryptUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR part,
CK_ULONG part_len,
CK_BYTE_PTR enc_part,
CK_ULONG_PTR enc_part_len);
+CK_RV mock_X_SignEncryptUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR part,
+ CK_ULONG part_len,
+ CK_BYTE_PTR enc_part,
+ CK_ULONG_PTR enc_part_len);
+
CK_RV mock_C_DecryptVerifyUpdate (CK_SESSION_HANDLE session,
CK_BYTE_PTR encrypted_part,
CK_ULONG encrypted_part_len,
CK_BYTE_PTR part,
CK_ULONG_PTR part_len);
+CK_RV mock_X_DecryptVerifyUpdate__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR enc_part,
+ CK_ULONG enc_part_len,
+ CK_BYTE_PTR part,
+ CK_ULONG_PTR part_len);
+
CK_RV mock_C_GenerateKey (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
CK_ATTRIBUTE_PTR template,
CK_ULONG count,
CK_OBJECT_HANDLE_PTR key);
+CK_RV mock_X_GenerateKey__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count,
+ CK_OBJECT_HANDLE_PTR key);
+
CK_RV mock_C_GenerateKeyPair (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
CK_ATTRIBUTE_PTR public_key_template,
CK_OBJECT_HANDLE_PTR pub_key,
CK_OBJECT_HANDLE_PTR priv_key);
+CK_RV mock_X_GenerateKeyPair__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_ATTRIBUTE_PTR pub_template,
+ CK_ULONG pub_count,
+ CK_ATTRIBUTE_PTR priv_template,
+ CK_ULONG priv_count,
+ CK_OBJECT_HANDLE_PTR pub_key,
+ CK_OBJECT_HANDLE_PTR priv_key);
+
CK_RV mock_C_WrapKey (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE wrapping_key,
CK_BYTE_PTR wrapped_key,
CK_ULONG_PTR wrapped_key_len);
+CK_RV mock_X_WrapKey__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE wrapping_key,
+ CK_OBJECT_HANDLE key,
+ CK_BYTE_PTR wrapped_key,
+ CK_ULONG_PTR wrapped_key_len);
+
CK_RV mock_C_UnwrapKey (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE unwrapping_key,
CK_ULONG count,
CK_OBJECT_HANDLE_PTR key);
+CK_RV mock_X_UnwrapKey__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE unwrapping_key,
+ CK_BYTE_PTR wrapped_key,
+ CK_ULONG wrapped_key_len,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count,
+ CK_OBJECT_HANDLE_PTR key);
+
CK_RV mock_C_DeriveKey (CK_SESSION_HANDLE session,
CK_MECHANISM_PTR mechanism,
CK_OBJECT_HANDLE base_key,
CK_ULONG count,
CK_OBJECT_HANDLE_PTR key);
+CK_RV mock_X_DeriveKey__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_MECHANISM_PTR mechanism,
+ CK_OBJECT_HANDLE base_key,
+ CK_ATTRIBUTE_PTR template,
+ CK_ULONG count,
+ CK_OBJECT_HANDLE_PTR key);
+
CK_RV mock_C_SeedRandom (CK_SESSION_HANDLE session,
CK_BYTE_PTR seed,
CK_ULONG seed_len);
CK_BYTE_PTR seed,
CK_ULONG seed_len);
+CK_RV mock_X_SeedRandom__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR seed,
+ CK_ULONG seed_len);
+
CK_RV mock_C_GenerateRandom (CK_SESSION_HANDLE session,
CK_BYTE_PTR random_data,
CK_ULONG random_len);
CK_BYTE_PTR random_data,
CK_ULONG random_len);
+CK_RV mock_X_GenerateRandom__invalid_handle (CK_X_FUNCTION_LIST *self,
+ CK_SESSION_HANDLE session,
+ CK_BYTE_PTR random_data,
+ CK_ULONG random_len);
+
#endif /* __MOCK_H__ */
#endif /* CRYPTOKI_X_VENDOR_DEFINED */
+/* -------------------------------------------------------------------
+ * SUBCLASSABLE PKCS#11 FUNCTIONS
+ */
+
+typedef struct _CK_X_FUNCTION_LIST CK_X_FUNCTION_LIST;
+
+typedef CK_RV (* CK_X_Initialize) (CK_X_FUNCTION_LIST *,
+ CK_VOID_PTR);
+
+typedef CK_RV (* CK_X_Finalize) (CK_X_FUNCTION_LIST *,
+ CK_VOID_PTR);
+
+typedef CK_RV (* CK_X_GetInfo) (CK_X_FUNCTION_LIST *,
+ CK_INFO_PTR);
+
+typedef CK_RV (* CK_X_GetSlotList) (CK_X_FUNCTION_LIST *,
+ CK_BBOOL,
+ CK_SLOT_ID_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_GetSlotInfo) (CK_X_FUNCTION_LIST *,
+ CK_SLOT_ID,
+ CK_SLOT_INFO_PTR);
+
+typedef CK_RV (* CK_X_GetTokenInfo) (CK_X_FUNCTION_LIST *,
+ CK_SLOT_ID,
+ CK_TOKEN_INFO_PTR);
+
+typedef CK_RV (* CK_X_GetMechanismList) (CK_X_FUNCTION_LIST *,
+ CK_SLOT_ID,
+ CK_MECHANISM_TYPE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_GetMechanismInfo) (CK_X_FUNCTION_LIST *,
+ CK_SLOT_ID,
+ CK_MECHANISM_TYPE,
+ CK_MECHANISM_INFO_PTR);
+
+typedef CK_RV (* CK_X_InitToken) (CK_X_FUNCTION_LIST *,
+ CK_SLOT_ID,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR);
+
+typedef CK_RV (* CK_X_InitPIN) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG);
+
+typedef CK_RV (* CK_X_SetPIN) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG);
+
+typedef CK_RV (* CK_X_OpenSession) (CK_X_FUNCTION_LIST *,
+ CK_SLOT_ID,
+ CK_FLAGS,
+ CK_VOID_PTR,
+ CK_NOTIFY,
+ CK_SESSION_HANDLE_PTR);
+
+typedef CK_RV (* CK_X_CloseSession) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE);
+
+typedef CK_RV (* CK_X_CloseAllSessions) (CK_X_FUNCTION_LIST *,
+ CK_SLOT_ID);
+
+typedef CK_RV (* CK_X_GetSessionInfo) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_SESSION_INFO_PTR);
+
+typedef CK_RV (* CK_X_GetOperationState) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_SetOperationState) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_OBJECT_HANDLE,
+ CK_OBJECT_HANDLE);
+
+typedef CK_RV (* CK_X_Login) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_USER_TYPE,
+ CK_BYTE_PTR,
+ CK_ULONG);
+
+typedef CK_RV (* CK_X_Logout) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE);
+
+typedef CK_RV (* CK_X_CreateObject) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_ATTRIBUTE_PTR,
+ CK_ULONG,
+ CK_OBJECT_HANDLE_PTR);
+
+typedef CK_RV (* CK_X_CopyObject) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_OBJECT_HANDLE,
+ CK_ATTRIBUTE_PTR,
+ CK_ULONG,
+ CK_OBJECT_HANDLE_PTR);
+
+typedef CK_RV (* CK_X_DestroyObject) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_OBJECT_HANDLE);
+
+typedef CK_RV (* CK_X_GetObjectSize) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_OBJECT_HANDLE,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_GetAttributeValue) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_OBJECT_HANDLE,
+ CK_ATTRIBUTE_PTR,
+ CK_ULONG);
+
+typedef CK_RV (* CK_X_SetAttributeValue) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_OBJECT_HANDLE,
+ CK_ATTRIBUTE_PTR,
+ CK_ULONG);
+
+typedef CK_RV (* CK_X_FindObjectsInit) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_ATTRIBUTE_PTR,
+ CK_ULONG);
+
+typedef CK_RV (* CK_X_FindObjects) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_OBJECT_HANDLE_PTR,
+ CK_ULONG,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_FindObjectsFinal) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE);
+
+typedef CK_RV (* CK_X_EncryptInit) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_MECHANISM_PTR,
+ CK_OBJECT_HANDLE);
+
+typedef CK_RV (* CK_X_Encrypt) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_EncryptUpdate) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_EncryptFinal) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_DecryptInit) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_MECHANISM_PTR,
+ CK_OBJECT_HANDLE);
+
+typedef CK_RV (* CK_X_Decrypt) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_DecryptUpdate) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_DecryptFinal) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_DigestInit) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_MECHANISM_PTR);
+
+typedef CK_RV (* CK_X_Digest) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_DigestUpdate) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG);
+
+typedef CK_RV (* CK_X_DigestKey) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_OBJECT_HANDLE);
+
+typedef CK_RV (* CK_X_DigestFinal) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_SignInit) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_MECHANISM_PTR,
+ CK_OBJECT_HANDLE);
+
+typedef CK_RV (* CK_X_Sign) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_SignUpdate) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG);
+
+typedef CK_RV (* CK_X_SignFinal) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_SignRecoverInit) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_MECHANISM_PTR,
+ CK_OBJECT_HANDLE);
+
+typedef CK_RV (* CK_X_SignRecover) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_VerifyInit) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_MECHANISM_PTR,
+ CK_OBJECT_HANDLE);
+
+typedef CK_RV (* CK_X_Verify) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG);
+
+typedef CK_RV (* CK_X_VerifyUpdate) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG);
+
+typedef CK_RV (* CK_X_VerifyFinal) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG);
+
+typedef CK_RV (* CK_X_VerifyRecoverInit) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_MECHANISM_PTR,
+ CK_OBJECT_HANDLE);
+
+typedef CK_RV (* CK_X_VerifyRecover) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_DigestEncryptUpdate) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_DecryptDigestUpdate) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_SignEncryptUpdate) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_DecryptVerifyUpdate) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_GenerateKey) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_MECHANISM_PTR,
+ CK_ATTRIBUTE_PTR,
+ CK_ULONG,
+ CK_OBJECT_HANDLE_PTR);
+
+typedef CK_RV (* CK_X_GenerateKeyPair) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_MECHANISM_PTR,
+ CK_ATTRIBUTE_PTR,
+ CK_ULONG,
+ CK_ATTRIBUTE_PTR,
+ CK_ULONG,
+ CK_OBJECT_HANDLE_PTR,
+ CK_OBJECT_HANDLE_PTR);
+
+typedef CK_RV (* CK_X_WrapKey) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_MECHANISM_PTR,
+ CK_OBJECT_HANDLE,
+ CK_OBJECT_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG_PTR);
+
+typedef CK_RV (* CK_X_UnwrapKey) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_MECHANISM_PTR,
+ CK_OBJECT_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG,
+ CK_ATTRIBUTE_PTR,
+ CK_ULONG,
+ CK_OBJECT_HANDLE_PTR);
+
+typedef CK_RV (* CK_X_DeriveKey) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_MECHANISM_PTR,
+ CK_OBJECT_HANDLE,
+ CK_ATTRIBUTE_PTR,
+ CK_ULONG,
+ CK_OBJECT_HANDLE_PTR);
+
+typedef CK_RV (* CK_X_SeedRandom) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG);
+
+typedef CK_RV (* CK_X_GenerateRandom) (CK_X_FUNCTION_LIST *,
+ CK_SESSION_HANDLE,
+ CK_BYTE_PTR,
+ CK_ULONG);
+
+typedef CK_RV (* CK_X_WaitForSlotEvent) (CK_X_FUNCTION_LIST *,
+ CK_FLAGS,
+ CK_SLOT_ID_PTR,
+ CK_VOID_PTR);
+
+struct _CK_X_FUNCTION_LIST {
+ CK_VERSION version;
+ CK_X_Initialize C_Initialize;
+ CK_X_Finalize C_Finalize;
+ CK_X_GetInfo C_GetInfo;
+ CK_X_GetSlotList C_GetSlotList;
+ CK_X_GetSlotInfo C_GetSlotInfo;
+ CK_X_GetTokenInfo C_GetTokenInfo;
+ CK_X_GetMechanismList C_GetMechanismList;
+ CK_X_GetMechanismInfo C_GetMechanismInfo;
+ CK_X_InitToken C_InitToken;
+ CK_X_InitPIN C_InitPIN;
+ CK_X_SetPIN C_SetPIN;
+ CK_X_OpenSession C_OpenSession;
+ CK_X_CloseSession C_CloseSession;
+ CK_X_CloseAllSessions C_CloseAllSessions;
+ CK_X_GetSessionInfo C_GetSessionInfo;
+ CK_X_GetOperationState C_GetOperationState;
+ CK_X_SetOperationState C_SetOperationState;
+ CK_X_Login C_Login;
+ CK_X_Logout C_Logout;
+ CK_X_CreateObject C_CreateObject;
+ CK_X_CopyObject C_CopyObject;
+ CK_X_DestroyObject C_DestroyObject;
+ CK_X_GetObjectSize C_GetObjectSize;
+ CK_X_GetAttributeValue C_GetAttributeValue;
+ CK_X_SetAttributeValue C_SetAttributeValue;
+ CK_X_FindObjectsInit C_FindObjectsInit;
+ CK_X_FindObjects C_FindObjects;
+ CK_X_FindObjectsFinal C_FindObjectsFinal;
+ CK_X_EncryptInit C_EncryptInit;
+ CK_X_Encrypt C_Encrypt;
+ CK_X_EncryptUpdate C_EncryptUpdate;
+ CK_X_EncryptFinal C_EncryptFinal;
+ CK_X_DecryptInit C_DecryptInit;
+ CK_X_Decrypt C_Decrypt;
+ CK_X_DecryptUpdate C_DecryptUpdate;
+ CK_X_DecryptFinal C_DecryptFinal;
+ CK_X_DigestInit C_DigestInit;
+ CK_X_Digest C_Digest;
+ CK_X_DigestUpdate C_DigestUpdate;
+ CK_X_DigestKey C_DigestKey;
+ CK_X_DigestFinal C_DigestFinal;
+ CK_X_SignInit C_SignInit;
+ CK_X_Sign C_Sign;
+ CK_X_SignUpdate C_SignUpdate;
+ CK_X_SignFinal C_SignFinal;
+ CK_X_SignRecoverInit C_SignRecoverInit;
+ CK_X_SignRecover C_SignRecover;
+ CK_X_VerifyInit C_VerifyInit;
+ CK_X_Verify C_Verify;
+ CK_X_VerifyUpdate C_VerifyUpdate;
+ CK_X_VerifyFinal C_VerifyFinal;
+ CK_X_VerifyRecoverInit C_VerifyRecoverInit;
+ CK_X_VerifyRecover C_VerifyRecover;
+ CK_X_DigestEncryptUpdate C_DigestEncryptUpdate;
+ CK_X_DecryptDigestUpdate C_DecryptDigestUpdate;
+ CK_X_SignEncryptUpdate C_SignEncryptUpdate;
+ CK_X_DecryptVerifyUpdate C_DecryptVerifyUpdate;
+ CK_X_GenerateKey C_GenerateKey;
+ CK_X_GenerateKeyPair C_GenerateKeyPair;
+ CK_X_WrapKey C_WrapKey;
+ CK_X_UnwrapKey C_UnwrapKey;
+ CK_X_DeriveKey C_DeriveKey;
+ CK_X_SeedRandom C_SeedRandom;
+ CK_X_GenerateRandom C_GenerateRandom;
+ CK_X_WaitForSlotEvent C_WaitForSlotEvent;
+};
+
#if defined(__cplusplus)
}
#endif