/* * Copyright (c) 2013, Red Hat Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above * copyright notice, this list of conditions and the * following disclaimer. * * Redistributions in binary form must reproduce the * above copyright notice, this list of conditions and * the following disclaimer in the documentation and/or * other materials provided with the distribution. * * The names of contributors to this software may not be * used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. * * Author: Stef Walter */ #ifndef __MOCK_H__ #define __MOCK_H__ #include "compat.h" #include "pkcs11.h" #include "pkcs11i.h" enum { MOCK_DATA_OBJECT = 2, MOCK_PRIVATE_KEY_CAPITALIZE = 3, MOCK_PUBLIC_KEY_CAPITALIZE = 4, MOCK_PRIVATE_KEY_PREFIX = 5, MOCK_PUBLIC_KEY_PREFIX = 6, /* * CKM_MOCK_CAPITALIZE (encrypt/decrypt) * - Capitalizes to encrypt * - Lowercase to decrypt */ CKM_MOCK_CAPITALIZE = (CKM_VENDOR_DEFINED | 1), /* * CKM_MOCK_PREFIX (sign/verify) * - Sign prefixes the data with a key label * - Verify unprefixes data using key label */ CKM_MOCK_PREFIX = (CKM_VENDOR_DEFINED | 2), /* * CKM_MOCK_GENERATE (generate-pair) * - Generates a pair of keys, mechanism parameter should be 'generate' */ CKM_MOCK_GENERATE = (CKM_VENDOR_DEFINED | 3), /* * CKM_MOCK_WRAP (wrap key) * - Wraps key by returning value, mechanism parameter should be 'wrap' */ CKM_MOCK_WRAP = (CKM_VENDOR_DEFINED | 4), /* * CKM_MOCK_DERIVE (derive-key) * - Derives key by setting value to 'derived' * - Mechanism param should be 'derive' */ CKM_MOCK_DERIVE = (CKM_VENDOR_DEFINED | 5), /* * CKM_MOCK_COUNT (digest) * - Counts the number of bytes, and returns a CK_ULONG 'hash' value */ CKM_MOCK_COUNT = (CKM_VENDOR_DEFINED | 6), MOCK_SLOT_ONE_ID = 52, MOCK_SLOT_TWO_ID = 134, MOCK_SLOTS_PRESENT = 1, MOCK_SLOTS_ALL = 2, }; static const CK_INFO MOCK_INFO = { { CRYPTOKI_VERSION_MAJOR, CRYPTOKI_VERSION_MINOR }, "MOCK MANUFACTURER ", 0, "MOCK LIBRARY ", { 45, 145 } }; 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_ATTRIBUTE *attrs, void *user_data); void mock_module_enumerate_objects (CK_SESSION_HANDLE session, mock_enumerator func, void *user_data); void mock_module_add_object (CK_SLOT_ID slot_id, const CK_ATTRIBUTE *attrs); void mock_module_reset (void); bool mock_module_initialized (void); void mock_module_take_object (CK_SLOT_ID slot_id, CK_ATTRIBUTE *attrs); CK_RV mock_C_Initialize (CK_VOID_PTR init_args); 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_X_Initialize__fails (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_SLOT_ID_PTR slot_list, CK_ULONG_PTR count); CK_RV mock_C_GetSlotList__no_tokens (CK_BBOOL token_present, CK_SLOT_ID_PTR slot_list, CK_ULONG_PTR count); CK_RV mock_C_GetSlotList__fail_first (CK_BBOOL token_present, CK_SLOT_ID_PTR slot_list, CK_ULONG_PTR count); CK_RV mock_C_GetSlotList__fail_late (CK_BBOOL token_present, CK_SLOT_ID_PTR slot_list, CK_ULONG_PTR count); 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_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_C_GetMechanismList__invalid_slotid (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_RV mock_C_GetMechanismInfo__invalid_slotid (CK_SLOT_ID slot_id, 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_UTF8CHAR_PTR label); CK_RV mock_C_InitToken__invalid_slotid (CK_SLOT_ID slot_id, CK_UTF8CHAR_PTR pin, 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_RV mock_C_WaitForSlotEvent__no_event (CK_FLAGS flags, 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_NOTIFY callback, CK_SESSION_HANDLE_PTR session); CK_RV mock_C_OpenSession (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_CloseSession (CK_SESSION_HANDLE session); 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_CancelFunction (CK_SESSION_HANDLE session); CK_RV mock_C_CancelFunction__not_parallel (CK_SESSION_HANDLE session); CK_RV mock_C_GetSessionInfo (CK_SESSION_HANDLE session, CK_SESSION_INFO_PTR info); 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_RV mock_C_InitPIN__invalid_handle (CK_SESSION_HANDLE session, 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_C_SetPIN__invalid_handle (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_RV mock_C_GetOperationState__invalid_handle (CK_SESSION_HANDLE session, 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_C_SetOperationState__invalid_handle (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_ULONG pin_len); CK_RV mock_C_Login__invalid_handle (CK_SESSION_HANDLE session, CK_USER_TYPE user_type, 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_OBJECT_HANDLE_PTR object); CK_RV mock_C_CreateObject__invalid_handle (CK_SESSION_HANDLE session, CK_ATTRIBUTE_PTR template, 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_C_CopyObject__invalid_handle (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_RV mock_C_GetObjectSize__invalid_handle (CK_SESSION_HANDLE session, 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_ULONG count); CK_RV mock_C_GetAttributeValue__invalid_handle (CK_SESSION_HANDLE session, CK_OBJECT_HANDLE object, 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_ULONG count); CK_RV mock_C_GetAttributeValue__fail_late (CK_SESSION_HANDLE session, CK_OBJECT_HANDLE object, CK_ATTRIBUTE_PTR template, CK_ULONG count); CK_RV mock_C_SetAttributeValue (CK_SESSION_HANDLE session, CK_OBJECT_HANDLE object, CK_ATTRIBUTE_PTR template, CK_ULONG count); CK_RV mock_C_SetAttributeValue__invalid_handle (CK_SESSION_HANDLE session, CK_OBJECT_HANDLE object, 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_RV mock_C_FindObjectsInit__invalid_handle (CK_SESSION_HANDLE session, 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_RV mock_C_FindObjects (CK_SESSION_HANDLE session, CK_OBJECT_HANDLE_PTR objects, CK_ULONG max_object_count, CK_ULONG_PTR object_count); CK_RV mock_C_FindObjects__invalid_handle (CK_SESSION_HANDLE session, CK_OBJECT_HANDLE_PTR objects, 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_ULONG_PTR count); CK_RV mock_C_FindObjectsFinal (CK_SESSION_HANDLE session); 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_RV mock_C_EncryptInit__invalid_handle (CK_SESSION_HANDLE session, 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_C_Encrypt__invalid_handle (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_C_EncryptUpdate__invalid_handle (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_RV mock_C_EncryptFinal__invalid_handle (CK_SESSION_HANDLE session, 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_RV mock_C_DecryptInit__invalid_handle (CK_SESSION_HANDLE session, 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_C_Decrypt__invalid_handle (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_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_C_DecryptUpdate__invalid_handle (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_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_RV mock_C_DecryptFinal__invalid_handle (CK_SESSION_HANDLE session, 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_C_Digest__invalid_handle (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_RV mock_C_DigestUpdate__invalid_handle (CK_SESSION_HANDLE session, 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_RV mock_C_DigestFinal__invalid_handle (CK_SESSION_HANDLE session, 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_RV mock_C_SignInit__invalid_handle (CK_SESSION_HANDLE session, 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_C_Sign__invalid_handle (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_RV mock_C_SignUpdate__invalid_handle (CK_SESSION_HANDLE session, 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_RV mock_C_SignFinal__invalid_handle (CK_SESSION_HANDLE session, 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_RV mock_C_SignRecoverInit__invalid_handle (CK_SESSION_HANDLE session, 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_C_SignRecover__invalid_handle (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_RV mock_C_VerifyInit__invalid_handle (CK_SESSION_HANDLE session, 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_C_Verify__invalid_handle (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_RV mock_C_VerifyUpdate__invalid_handle (CK_SESSION_HANDLE session, 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_RV mock_C_VerifyFinal__invalid_handle (CK_SESSION_HANDLE session, 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_RV mock_C_VerifyRecoverInit__invalid_handle (CK_SESSION_HANDLE session, 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_C_VerifyRecover__invalid_handle (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 encrypted_part, CK_ULONG_PTR encrypted_part_len); CK_RV mock_C_DigestEncryptUpdate__invalid_handle (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_C_DecryptDigestUpdate__invalid_handle (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_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 encrypted_part, CK_ULONG_PTR encrypted_part_len); CK_RV mock_C_SignEncryptUpdate__invalid_handle (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_C_DecryptVerifyUpdate__invalid_handle (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_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_C_GenerateKey__invalid_handle (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_ULONG public_key_count, CK_ATTRIBUTE_PTR private_key_template, CK_ULONG private_key_count, CK_OBJECT_HANDLE_PTR public_key, CK_OBJECT_HANDLE_PTR private_key); CK_RV mock_C_GenerateKeyPair__invalid_handle (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_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_OBJECT_HANDLE key, CK_BYTE_PTR wrapped_key, CK_ULONG_PTR wrapped_key_len); CK_RV mock_C_WrapKey__invalid_handle (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_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_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_UnwrapKey__invalid_handle (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_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_ATTRIBUTE_PTR template, CK_ULONG count, CK_OBJECT_HANDLE_PTR key); CK_RV mock_C_DeriveKey__invalid_handle (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_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_RV mock_C_SeedRandom__invalid_handle (CK_SESSION_HANDLE session, 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_RV mock_C_GenerateRandom__invalid_handle (CK_SESSION_HANDLE session, 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__ */