1 /*
2  * Copyright (c) 2013, Red Hat Inc.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  *     * Redistributions of source code must retain the above
9  *       copyright notice, this list of conditions and the
10  *       following disclaimer.
11  *     * Redistributions in binary form must reproduce the
12  *       above copyright notice, this list of conditions and
13  *       the following disclaimer in the documentation and/or
14  *       other materials provided with the distribution.
15  *     * The names of contributors to this software may not be
16  *       used to endorse or promote products derived from this
17  *       software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
25  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
26  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
29  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
30  * DAMAGE.
31  *
32  * Author: Stef Walter <stefw@redhat.com>
33  */
34 
35 #ifndef __MOCK_H__
36 #define __MOCK_H__
37 
38 #include "compat.h"
39 #include "pkcs11.h"
40 #include "pkcs11i.h"
41 
42 enum {
43 	MOCK_DATA_OBJECT = 2,
44 	MOCK_PRIVATE_KEY_CAPITALIZE = 3,
45 	MOCK_PUBLIC_KEY_CAPITALIZE = 4,
46 	MOCK_PRIVATE_KEY_PREFIX = 5,
47 	MOCK_PUBLIC_KEY_PREFIX = 6,
48 
49 	/*
50 	 * CKM_MOCK_CAPITALIZE (encrypt/decrypt)
51 	 * - Capitalizes to encrypt
52 	 * - Lowercase to decrypt
53 	 */
54 	CKM_MOCK_CAPITALIZE = (CKM_VENDOR_DEFINED | 1),
55 
56 	/*
57 	 * CKM_MOCK_PREFIX (sign/verify)
58 	 * - Sign prefixes the data with a key label
59 	 * - Verify unprefixes data using key label
60 	 */
61 	CKM_MOCK_PREFIX = (CKM_VENDOR_DEFINED | 2),
62 
63 	/*
64 	 * CKM_MOCK_GENERATE (generate-pair)
65 	 * - Generates a pair of keys, mechanism parameter should be 'generate'
66 	 */
67 	CKM_MOCK_GENERATE = (CKM_VENDOR_DEFINED | 3),
68 
69 	/*
70 	 * CKM_MOCK_WRAP (wrap key)
71 	 * - Wraps key by returning value, mechanism parameter should be 'wrap'
72 	 */
73 	CKM_MOCK_WRAP = (CKM_VENDOR_DEFINED | 4),
74 
75 	/*
76 	 * CKM_MOCK_DERIVE (derive-key)
77 	 * - Derives key by setting value to 'derived'
78 	 * - Mechanism param should be 'derive'
79 	 */
80 	CKM_MOCK_DERIVE = (CKM_VENDOR_DEFINED | 5),
81 
82 	/*
83 	 * CKM_MOCK_COUNT (digest)
84 	 * - Counts the number of bytes, and returns a CK_ULONG 'hash' value
85 	 */
86 	CKM_MOCK_COUNT = (CKM_VENDOR_DEFINED | 6),
87 
88 	MOCK_SLOT_ONE_ID = 52,
89 	MOCK_SLOT_TWO_ID = 134,
90 
91 	MOCK_SLOTS_PRESENT = 1,
92 	MOCK_SLOTS_ALL = 2,
93 };
94 
95 static const CK_INFO MOCK_INFO = {
96 	{ CRYPTOKI_VERSION_MAJOR, CRYPTOKI_VERSION_MINOR },
97 	"MOCK MANUFACTURER               ",
98 	0,
99 	"MOCK LIBRARY                    ",
100 	{ 45, 145 }
101 };
102 
103 extern       CK_FUNCTION_LIST                            mock_module;
104 
105 extern       CK_FUNCTION_LIST                            mock_module_no_slots;
106 
107 extern       CK_X_FUNCTION_LIST                          mock_x_module_no_slots;
108 
109 void         mock_module_init                            (void);
110 
111 typedef bool (* mock_enumerator)                         (CK_OBJECT_HANDLE handle,
112                                                           CK_ATTRIBUTE *attrs,
113                                                           void *user_data);
114 
115 void         mock_module_enumerate_objects               (CK_SESSION_HANDLE session,
116                                                           mock_enumerator func,
117                                                           void *user_data);
118 
119 void         mock_module_add_object                      (CK_SLOT_ID slot_id,
120                                                           const CK_ATTRIBUTE *attrs);
121 
122 void         mock_module_reset                           (void);
123 
124 bool         mock_module_initialized                     (void);
125 
126 void         mock_module_take_object                     (CK_SLOT_ID slot_id,
127                                                           CK_ATTRIBUTE *attrs);
128 
129 CK_RV        mock_C_Initialize                           (CK_VOID_PTR init_args);
130 
131 CK_RV        mock_C_Initialize__fails                    (CK_VOID_PTR init_args);
132 
133 CK_RV        mock_X_Initialize                           (CK_X_FUNCTION_LIST *self,
134                                                           CK_VOID_PTR init_args);
135 
136 CK_RV        mock_X_Initialize__fails                    (CK_X_FUNCTION_LIST *self,
137                                                           CK_VOID_PTR init_args);
138 
139 CK_RV        mock_C_Finalize                             (CK_VOID_PTR reserved);
140 
141 CK_RV        mock_X_Finalize                             (CK_X_FUNCTION_LIST *self,
142                                                           CK_VOID_PTR reserved);
143 
144 CK_RV        mock_C_GetInfo                              (CK_INFO_PTR info);
145 
146 CK_RV        mock_X_GetInfo                              (CK_X_FUNCTION_LIST *self,
147                                                           CK_INFO_PTR info);
148 
149 CK_RV        mock_C_GetFunctionList_not_supported        (CK_FUNCTION_LIST_PTR_PTR list);
150 
151 CK_RV        mock_C_GetSlotList                          (CK_BBOOL token_present,
152                                                           CK_SLOT_ID_PTR slot_list,
153                                                           CK_ULONG_PTR count);
154 
155 CK_RV        mock_C_GetSlotList__no_tokens               (CK_BBOOL token_present,
156                                                           CK_SLOT_ID_PTR slot_list,
157                                                           CK_ULONG_PTR count);
158 
159 CK_RV        mock_C_GetSlotList__fail_first              (CK_BBOOL token_present,
160                                                           CK_SLOT_ID_PTR slot_list,
161                                                           CK_ULONG_PTR count);
162 
163 CK_RV        mock_C_GetSlotList__fail_late               (CK_BBOOL token_present,
164                                                           CK_SLOT_ID_PTR slot_list,
165                                                           CK_ULONG_PTR count);
166 
167 CK_RV        mock_C_GetSlotInfo                          (CK_SLOT_ID slot_id,
168                                                           CK_SLOT_INFO_PTR info);
169 
170 CK_RV        mock_X_GetSlotList__no_tokens               (CK_X_FUNCTION_LIST *self,
171                                                           CK_BBOOL token_present,
172                                                           CK_SLOT_ID_PTR slot_list,
173                                                           CK_ULONG_PTR count);
174 
175 CK_RV        mock_C_GetSlotInfo__invalid_slotid          (CK_SLOT_ID slot_id,
176                                                           CK_SLOT_INFO_PTR info);
177 
178 CK_RV        mock_X_GetSlotInfo__invalid_slotid          (CK_X_FUNCTION_LIST *self,
179                                                           CK_SLOT_ID slot_id,
180                                                           CK_SLOT_INFO_PTR info);
181 
182 CK_RV        mock_C_GetTokenInfo                         (CK_SLOT_ID slot_id,
183                                                           CK_TOKEN_INFO_PTR info);
184 
185 CK_RV        mock_C_GetTokenInfo__invalid_slotid         (CK_SLOT_ID slot_id,
186                                                           CK_TOKEN_INFO_PTR info);
187 
188 CK_RV        mock_X_GetTokenInfo__invalid_slotid         (CK_X_FUNCTION_LIST *self,
189                                                           CK_SLOT_ID slot_id,
190                                                           CK_TOKEN_INFO_PTR info);
191 
192 CK_RV        mock_C_GetTokenInfo__not_initialized        (CK_SLOT_ID slot_id,
193                                                           CK_TOKEN_INFO_PTR info);
194 
195 CK_RV        mock_C_GetMechanismList                     (CK_SLOT_ID slot_id,
196                                                           CK_MECHANISM_TYPE_PTR mechanism_list,
197                                                           CK_ULONG_PTR count);
198 
199 CK_RV        mock_C_GetMechanismList__invalid_slotid     (CK_SLOT_ID slot_id,
200                                                           CK_MECHANISM_TYPE_PTR mechanism_list,
201                                                           CK_ULONG_PTR count);
202 
203 CK_RV        mock_X_GetMechanismList__invalid_slotid     (CK_X_FUNCTION_LIST *self,
204                                                           CK_SLOT_ID slot_id,
205                                                           CK_MECHANISM_TYPE_PTR mechanism_list,
206                                                           CK_ULONG_PTR count);
207 
208 CK_RV        mock_C_GetMechanismInfo                     (CK_SLOT_ID slot_id,
209                                                           CK_MECHANISM_TYPE type,
210                                                           CK_MECHANISM_INFO_PTR info);
211 
212 CK_RV        mock_C_GetMechanismInfo__invalid_slotid     (CK_SLOT_ID slot_id,
213                                                           CK_MECHANISM_TYPE type,
214                                                           CK_MECHANISM_INFO_PTR info);
215 
216 CK_RV        mock_X_GetMechanismInfo__invalid_slotid     (CK_X_FUNCTION_LIST *self,
217                                                           CK_SLOT_ID slot_id,
218                                                           CK_MECHANISM_TYPE type,
219                                                           CK_MECHANISM_INFO_PTR info);
220 
221 CK_RV        mock_C_InitToken__specific_args             (CK_SLOT_ID slot_id,
222                                                           CK_UTF8CHAR_PTR pin,
223                                                           CK_ULONG pin_len,
224                                                           CK_UTF8CHAR_PTR label);
225 
226 CK_RV        mock_C_InitToken__invalid_slotid            (CK_SLOT_ID slot_id,
227                                                           CK_UTF8CHAR_PTR pin,
228                                                           CK_ULONG pin_len,
229                                                           CK_UTF8CHAR_PTR label);
230 
231 CK_RV        mock_X_InitToken__invalid_slotid            (CK_X_FUNCTION_LIST *self,
232                                                           CK_SLOT_ID slot_id,
233                                                           CK_UTF8CHAR_PTR pin,
234                                                           CK_ULONG pin_len,
235                                                           CK_UTF8CHAR_PTR label);
236 
237 
238 CK_RV        mock_C_WaitForSlotEvent                     (CK_FLAGS flags,
239                                                           CK_SLOT_ID_PTR slot,
240                                                           CK_VOID_PTR reserved);
241 
242 CK_RV        mock_C_WaitForSlotEvent__no_event           (CK_FLAGS flags,
243                                                           CK_SLOT_ID_PTR slot,
244                                                           CK_VOID_PTR reserved);
245 
246 CK_RV        mock_X_WaitForSlotEvent__no_event           (CK_X_FUNCTION_LIST *self,
247                                                           CK_FLAGS flags,
248                                                           CK_SLOT_ID_PTR slot,
249                                                           CK_VOID_PTR reserved);
250 
251 CK_RV        mock_C_OpenSession__invalid_slotid          (CK_SLOT_ID slot_id,
252                                                           CK_FLAGS flags,
253                                                           CK_VOID_PTR user_data,
254                                                           CK_NOTIFY callback,
255                                                           CK_SESSION_HANDLE_PTR session);
256 
257 CK_RV        mock_X_OpenSession__invalid_slotid          (CK_X_FUNCTION_LIST *self,
258                                                           CK_SLOT_ID slot_id,
259                                                           CK_FLAGS flags,
260                                                           CK_VOID_PTR user_data,
261                                                           CK_NOTIFY callback,
262                                                           CK_SESSION_HANDLE_PTR session);
263 
264 CK_RV        mock_C_OpenSession__fails                   (CK_SLOT_ID slot_id,
265                                                           CK_FLAGS flags,
266                                                           CK_VOID_PTR user_data,
267                                                           CK_NOTIFY callback,
268                                                           CK_SESSION_HANDLE_PTR session);
269 
270 CK_RV        mock_C_OpenSession                          (CK_SLOT_ID slot_id,
271                                                           CK_FLAGS flags,
272                                                           CK_VOID_PTR user_data,
273                                                           CK_NOTIFY callback,
274                                                           CK_SESSION_HANDLE_PTR session);
275 
276 CK_RV        mock_C_CloseSession                         (CK_SESSION_HANDLE session);
277 
278 CK_RV        mock_C_CloseSession__invalid_handle         (CK_SESSION_HANDLE session);
279 
280 CK_RV        mock_X_CloseSession__invalid_handle         (CK_X_FUNCTION_LIST *self,
281                                                           CK_SESSION_HANDLE session);
282 
283 CK_RV        mock_C_CloseAllSessions                     (CK_SLOT_ID slot_id);
284 
285 CK_RV        mock_C_CloseAllSessions__invalid_slotid     (CK_SLOT_ID slot_id);
286 
287 CK_RV        mock_X_CloseAllSessions__invalid_slotid     (CK_X_FUNCTION_LIST *self,
288                                                          CK_SLOT_ID slot_id);
289 
290 CK_RV        mock_C_GetFunctionStatus                    (CK_SESSION_HANDLE session);
291 
292 CK_RV        mock_C_GetFunctionStatus__not_parallel      (CK_SESSION_HANDLE session);
293 
294 CK_RV        mock_C_CancelFunction                       (CK_SESSION_HANDLE session);
295 
296 CK_RV        mock_C_CancelFunction__not_parallel         (CK_SESSION_HANDLE session);
297 
298 CK_RV        mock_C_GetSessionInfo                       (CK_SESSION_HANDLE session,
299                                                           CK_SESSION_INFO_PTR info);
300 
301 CK_RV        mock_C_GetSessionInfo__invalid_handle       (CK_SESSION_HANDLE session,
302                                                           CK_SESSION_INFO_PTR info);
303 
304 CK_RV        mock_X_GetSessionInfo__invalid_handle       (CK_X_FUNCTION_LIST *self,
305                                                           CK_SESSION_HANDLE session,
306                                                           CK_SESSION_INFO_PTR info);
307 
308 CK_RV        mock_C_InitPIN__specific_args               (CK_SESSION_HANDLE session,
309                                                           CK_UTF8CHAR_PTR pin,
310                                                           CK_ULONG pin_len);
311 
312 CK_RV        mock_C_InitPIN__invalid_handle              (CK_SESSION_HANDLE session,
313                                                           CK_UTF8CHAR_PTR pin,
314                                                           CK_ULONG pin_len);
315 
316 CK_RV        mock_X_InitPIN__invalid_handle              (CK_X_FUNCTION_LIST *self,
317                                                           CK_SESSION_HANDLE session,
318                                                           CK_UTF8CHAR_PTR pin,
319                                                           CK_ULONG pin_len);
320 
321 CK_RV        mock_C_SetPIN__specific_args                (CK_SESSION_HANDLE session,
322                                                           CK_UTF8CHAR_PTR old_pin,
323                                                           CK_ULONG old_pin_len,
324                                                           CK_UTF8CHAR_PTR new_pin,
325                                                           CK_ULONG new_pin_len);
326 
327 CK_RV        mock_C_SetPIN__invalid_handle               (CK_SESSION_HANDLE session,
328                                                           CK_UTF8CHAR_PTR old_pin,
329                                                           CK_ULONG old_pin_len,
330                                                           CK_UTF8CHAR_PTR new_pin,
331                                                           CK_ULONG new_pin_len);
332 
333 CK_RV        mock_X_SetPIN__invalid_handle               (CK_X_FUNCTION_LIST *self,
334                                                           CK_SESSION_HANDLE session,
335                                                           CK_UTF8CHAR_PTR old_pin,
336                                                           CK_ULONG old_pin_len,
337                                                           CK_UTF8CHAR_PTR new_pin,
338                                                           CK_ULONG new_pin_len);
339 
340 CK_RV        mock_C_GetOperationState                    (CK_SESSION_HANDLE session,
341                                                           CK_BYTE_PTR operation_state,
342                                                           CK_ULONG_PTR operation_state_len);
343 
344 CK_RV        mock_C_GetOperationState__invalid_handle    (CK_SESSION_HANDLE session,
345                                                           CK_BYTE_PTR operation_state,
346                                                           CK_ULONG_PTR operation_state_len);
347 
348 CK_RV        mock_X_GetOperationState__invalid_handle    (CK_X_FUNCTION_LIST *self,
349                                                           CK_SESSION_HANDLE session,
350                                                           CK_BYTE_PTR operation_state,
351                                                           CK_ULONG_PTR operation_state_len);
352 
353 CK_RV        mock_C_SetOperationState                    (CK_SESSION_HANDLE session,
354                                                           CK_BYTE_PTR operation_state,
355                                                           CK_ULONG operation_state_len,
356                                                           CK_OBJECT_HANDLE encryption_key,
357                                                           CK_OBJECT_HANDLE authentication_key);
358 
359 CK_RV        mock_C_SetOperationState__invalid_handle    (CK_SESSION_HANDLE session,
360                                                           CK_BYTE_PTR operation_state,
361                                                           CK_ULONG operation_state_len,
362                                                           CK_OBJECT_HANDLE encryption_key,
363                                                           CK_OBJECT_HANDLE authentication_key);
364 
365 CK_RV        mock_X_SetOperationState__invalid_handle    (CK_X_FUNCTION_LIST *self,
366                                                           CK_SESSION_HANDLE session,
367                                                           CK_BYTE_PTR operation_state,
368                                                           CK_ULONG operation_state_len,
369                                                           CK_OBJECT_HANDLE encryption_key,
370                                                           CK_OBJECT_HANDLE authentication_key);
371 
372 CK_RV        mock_C_Login                                (CK_SESSION_HANDLE session,
373                                                           CK_USER_TYPE user_type,
374                                                           CK_UTF8CHAR_PTR pin,
375                                                           CK_ULONG pin_len);
376 
377 CK_RV        mock_C_Login__invalid_handle                (CK_SESSION_HANDLE session,
378                                                           CK_USER_TYPE user_type,
379                                                           CK_UTF8CHAR_PTR pin,
380                                                           CK_ULONG pin_len);
381 
382 CK_RV        mock_X_Login__invalid_handle                (CK_X_FUNCTION_LIST *self,
383                                                           CK_SESSION_HANDLE session,
384                                                           CK_USER_TYPE user_type,
385                                                           CK_UTF8CHAR_PTR pin,
386                                                           CK_ULONG pin_len);
387 
388 CK_RV        mock_C_Logout                               (CK_SESSION_HANDLE session);
389 
390 CK_RV        mock_C_Logout__invalid_handle               (CK_SESSION_HANDLE session);
391 
392 CK_RV        mock_X_Logout__invalid_handle               (CK_X_FUNCTION_LIST *self,
393                                                           CK_SESSION_HANDLE session);
394 
395 CK_RV        mock_C_CreateObject                         (CK_SESSION_HANDLE session,
396                                                           CK_ATTRIBUTE_PTR template,
397                                                           CK_ULONG count,
398                                                           CK_OBJECT_HANDLE_PTR object);
399 
400 CK_RV        mock_C_CreateObject__invalid_handle         (CK_SESSION_HANDLE session,
401                                                           CK_ATTRIBUTE_PTR template,
402                                                           CK_ULONG count,
403                                                           CK_OBJECT_HANDLE_PTR new_object);
404 
405 CK_RV        mock_X_CreateObject__invalid_handle         (CK_X_FUNCTION_LIST *self,
406                                                           CK_SESSION_HANDLE session,
407                                                           CK_ATTRIBUTE_PTR template,
408                                                           CK_ULONG count,
409                                                           CK_OBJECT_HANDLE_PTR new_object);
410 
411 CK_RV        mock_C_CopyObject                           (CK_SESSION_HANDLE session,
412                                                           CK_OBJECT_HANDLE object,
413                                                           CK_ATTRIBUTE_PTR template,
414                                                           CK_ULONG count,
415                                                           CK_OBJECT_HANDLE_PTR new_object);
416 
417 CK_RV        mock_C_CopyObject__invalid_handle           (CK_SESSION_HANDLE session,
418                                                           CK_OBJECT_HANDLE object,
419                                                           CK_ATTRIBUTE_PTR template,
420                                                           CK_ULONG count,
421                                                           CK_OBJECT_HANDLE_PTR new_object);
422 
423 CK_RV        mock_X_CopyObject__invalid_handle           (CK_X_FUNCTION_LIST *self,
424                                                           CK_SESSION_HANDLE session,
425                                                           CK_OBJECT_HANDLE object,
426                                                           CK_ATTRIBUTE_PTR template,
427                                                           CK_ULONG count,
428                                                           CK_OBJECT_HANDLE_PTR new_object);
429 
430 CK_RV        mock_C_DestroyObject                        (CK_SESSION_HANDLE session,
431                                                           CK_OBJECT_HANDLE object);
432 
433 CK_RV        mock_C_DestroyObject__invalid_handle        (CK_SESSION_HANDLE session,
434                                                           CK_OBJECT_HANDLE object);
435 
436 CK_RV        mock_X_DestroyObject__invalid_handle        (CK_X_FUNCTION_LIST *self,
437                                                           CK_SESSION_HANDLE session,
438                                                           CK_OBJECT_HANDLE object);
439 
440 CK_RV        mock_C_GetObjectSize                        (CK_SESSION_HANDLE session,
441                                                           CK_OBJECT_HANDLE object,
442                                                           CK_ULONG_PTR size);
443 
444 CK_RV        mock_C_GetObjectSize__invalid_handle        (CK_SESSION_HANDLE session,
445                                                           CK_OBJECT_HANDLE object,
446                                                           CK_ULONG_PTR size);
447 
448 CK_RV        mock_X_GetObjectSize__invalid_handle        (CK_X_FUNCTION_LIST *self,
449                                                           CK_SESSION_HANDLE session,
450                                                           CK_OBJECT_HANDLE object,
451                                                           CK_ULONG_PTR size);
452 
453 CK_RV        mock_C_GetAttributeValue                    (CK_SESSION_HANDLE session,
454                                                           CK_OBJECT_HANDLE object,
455                                                           CK_ATTRIBUTE_PTR template,
456                                                           CK_ULONG count);
457 
458 CK_RV        mock_C_GetAttributeValue__invalid_handle    (CK_SESSION_HANDLE session,
459                                                           CK_OBJECT_HANDLE object,
460                                                           CK_ATTRIBUTE_PTR template,
461                                                           CK_ULONG count);
462 
463 CK_RV        mock_X_GetAttributeValue__invalid_handle    (CK_X_FUNCTION_LIST *self,
464                                                           CK_SESSION_HANDLE session,
465                                                           CK_OBJECT_HANDLE object,
466                                                           CK_ATTRIBUTE_PTR template,
467                                                           CK_ULONG count);
468 
469 CK_RV        mock_C_GetAttributeValue__fail_first        (CK_SESSION_HANDLE session,
470                                                           CK_OBJECT_HANDLE object,
471                                                           CK_ATTRIBUTE_PTR template,
472                                                           CK_ULONG count);
473 
474 CK_RV        mock_C_GetAttributeValue__fail_late         (CK_SESSION_HANDLE session,
475                                                           CK_OBJECT_HANDLE object,
476                                                           CK_ATTRIBUTE_PTR template,
477                                                           CK_ULONG count);
478 
479 CK_RV        mock_C_SetAttributeValue                    (CK_SESSION_HANDLE session,
480                                                           CK_OBJECT_HANDLE object,
481                                                           CK_ATTRIBUTE_PTR template,
482                                                           CK_ULONG count);
483 
484 CK_RV        mock_C_SetAttributeValue__invalid_handle    (CK_SESSION_HANDLE session,
485                                                           CK_OBJECT_HANDLE object,
486                                                           CK_ATTRIBUTE_PTR template,
487                                                           CK_ULONG count);
488 
489 CK_RV        mock_X_SetAttributeValue__invalid_handle    (CK_X_FUNCTION_LIST *self,
490                                                           CK_SESSION_HANDLE session,
491                                                           CK_OBJECT_HANDLE object,
492                                                           CK_ATTRIBUTE_PTR template,
493                                                           CK_ULONG count);
494 
495 CK_RV        mock_C_FindObjectsInit                      (CK_SESSION_HANDLE session,
496                                                           CK_ATTRIBUTE_PTR template,
497                                                           CK_ULONG count);
498 
499 CK_RV        mock_C_FindObjectsInit__invalid_handle      (CK_SESSION_HANDLE session,
500                                                           CK_ATTRIBUTE_PTR template,
501                                                           CK_ULONG count);
502 
503 CK_RV        mock_X_FindObjectsInit__invalid_handle      (CK_X_FUNCTION_LIST *self,
504                                                           CK_SESSION_HANDLE session,
505                                                           CK_ATTRIBUTE_PTR template,
506                                                           CK_ULONG count);
507 
508 CK_RV        mock_C_FindObjectsInit__fails               (CK_SESSION_HANDLE session,
509                                                           CK_ATTRIBUTE_PTR template,
510                                                           CK_ULONG count);
511 
512 CK_RV        mock_C_FindObjects                          (CK_SESSION_HANDLE session,
513                                                           CK_OBJECT_HANDLE_PTR objects,
514                                                           CK_ULONG max_object_count,
515                                                           CK_ULONG_PTR object_count);
516 
517 CK_RV        mock_C_FindObjects__invalid_handle          (CK_SESSION_HANDLE session,
518                                                           CK_OBJECT_HANDLE_PTR objects,
519                                                           CK_ULONG max_count,
520                                                           CK_ULONG_PTR count);
521 
522 CK_RV        mock_X_FindObjects__invalid_handle          (CK_X_FUNCTION_LIST *self,
523                                                           CK_SESSION_HANDLE session,
524                                                           CK_OBJECT_HANDLE_PTR objects,
525                                                           CK_ULONG max_count,
526                                                           CK_ULONG_PTR count);
527 
528 CK_RV        mock_C_FindObjects__fails                   (CK_SESSION_HANDLE session,
529                                                           CK_OBJECT_HANDLE_PTR objects,
530                                                           CK_ULONG max_count,
531                                                           CK_ULONG_PTR count);
532 
533 CK_RV        mock_C_FindObjectsFinal                     (CK_SESSION_HANDLE session);
534 
535 CK_RV        mock_C_FindObjectsFinal__invalid_handle     (CK_SESSION_HANDLE session);
536 
537 CK_RV        mock_X_FindObjectsFinal__invalid_handle     (CK_X_FUNCTION_LIST *self,
538                                                           CK_SESSION_HANDLE session);
539 
540 CK_RV        mock_C_EncryptInit                          (CK_SESSION_HANDLE session,
541                                                           CK_MECHANISM_PTR mechanism,
542                                                           CK_OBJECT_HANDLE key);
543 
544 CK_RV        mock_C_EncryptInit__invalid_handle          (CK_SESSION_HANDLE session,
545                                                           CK_MECHANISM_PTR mechanism,
546                                                           CK_OBJECT_HANDLE key);
547 
548 CK_RV        mock_X_EncryptInit__invalid_handle          (CK_X_FUNCTION_LIST *self,
549                                                           CK_SESSION_HANDLE session,
550                                                           CK_MECHANISM_PTR mechanism,
551                                                           CK_OBJECT_HANDLE key);
552 
553 CK_RV        mock_C_Encrypt                              (CK_SESSION_HANDLE session,
554                                                           CK_BYTE_PTR data,
555                                                           CK_ULONG data_len,
556                                                           CK_BYTE_PTR encrypted_data,
557                                                           CK_ULONG_PTR encrypted_data_len);
558 
559 CK_RV        mock_C_Encrypt__invalid_handle              (CK_SESSION_HANDLE session,
560                                                           CK_BYTE_PTR data,
561                                                           CK_ULONG data_len,
562                                                           CK_BYTE_PTR encrypted_data,
563                                                           CK_ULONG_PTR encrypted_data_len);
564 
565 CK_RV        mock_X_Encrypt__invalid_handle              (CK_X_FUNCTION_LIST *self,
566                                                           CK_SESSION_HANDLE session,
567                                                           CK_BYTE_PTR data,
568                                                           CK_ULONG data_len,
569                                                           CK_BYTE_PTR encrypted_data,
570                                                           CK_ULONG_PTR encrypted_data_len);
571 
572 CK_RV        mock_C_EncryptUpdate                        (CK_SESSION_HANDLE session,
573                                                           CK_BYTE_PTR part,
574                                                           CK_ULONG part_len,
575                                                           CK_BYTE_PTR encrypted_part,
576                                                           CK_ULONG_PTR encrypted_part_len);
577 
578 CK_RV        mock_C_EncryptUpdate__invalid_handle        (CK_SESSION_HANDLE session,
579                                                           CK_BYTE_PTR part,
580                                                           CK_ULONG part_len,
581                                                           CK_BYTE_PTR encrypted_part,
582                                                           CK_ULONG_PTR encrypted_part_len);
583 
584 CK_RV        mock_X_EncryptUpdate__invalid_handle        (CK_X_FUNCTION_LIST *self,
585                                                           CK_SESSION_HANDLE session,
586                                                           CK_BYTE_PTR part,
587                                                           CK_ULONG part_len,
588                                                           CK_BYTE_PTR encrypted_part,
589                                                           CK_ULONG_PTR encrypted_part_len);
590 
591 CK_RV        mock_C_EncryptFinal                         (CK_SESSION_HANDLE session,
592                                                           CK_BYTE_PTR last_encrypted_part,
593                                                           CK_ULONG_PTR last_encrypted_part_len);
594 
595 CK_RV        mock_C_EncryptFinal__invalid_handle         (CK_SESSION_HANDLE session,
596                                                           CK_BYTE_PTR last_part,
597                                                           CK_ULONG_PTR last_part_len);
598 
599 CK_RV        mock_X_EncryptFinal__invalid_handle         (CK_X_FUNCTION_LIST *self,
600                                                           CK_SESSION_HANDLE session,
601                                                           CK_BYTE_PTR last_part,
602                                                           CK_ULONG_PTR last_part_len);
603 
604 CK_RV        mock_C_DecryptInit                          (CK_SESSION_HANDLE session,
605                                                           CK_MECHANISM_PTR mechanism,
606                                                           CK_OBJECT_HANDLE key);
607 
608 CK_RV        mock_C_DecryptInit__invalid_handle          (CK_SESSION_HANDLE session,
609                                                           CK_MECHANISM_PTR mechanism,
610                                                           CK_OBJECT_HANDLE key);
611 
612 CK_RV        mock_X_DecryptInit__invalid_handle          (CK_X_FUNCTION_LIST *self,
613                                                           CK_SESSION_HANDLE session,
614                                                           CK_MECHANISM_PTR mechanism,
615                                                           CK_OBJECT_HANDLE key);
616 
617 CK_RV        mock_C_Decrypt                              (CK_SESSION_HANDLE session,
618                                                           CK_BYTE_PTR encrypted_data,
619                                                           CK_ULONG encrypted_data_len,
620                                                           CK_BYTE_PTR data,
621                                                           CK_ULONG_PTR data_len);
622 
623 CK_RV        mock_C_Decrypt__invalid_handle              (CK_SESSION_HANDLE session,
624                                                           CK_BYTE_PTR enc_data,
625                                                           CK_ULONG enc_data_len,
626                                                           CK_BYTE_PTR data,
627                                                           CK_ULONG_PTR data_len);
628 
629 CK_RV        mock_X_Decrypt__invalid_handle              (CK_X_FUNCTION_LIST *self,
630                                                           CK_SESSION_HANDLE session,
631                                                           CK_BYTE_PTR enc_data,
632                                                           CK_ULONG enc_data_len,
633                                                           CK_BYTE_PTR data,
634                                                           CK_ULONG_PTR data_len);
635 
636 CK_RV        mock_C_DecryptUpdate                        (CK_SESSION_HANDLE session,
637                                                           CK_BYTE_PTR encrypted_part,
638                                                           CK_ULONG encrypted_part_len,
639                                                           CK_BYTE_PTR part,
640                                                           CK_ULONG_PTR part_len);
641 
642 CK_RV        mock_C_DecryptUpdate__invalid_handle        (CK_SESSION_HANDLE session,
643                                                           CK_BYTE_PTR enc_part,
644                                                           CK_ULONG enc_part_len,
645                                                           CK_BYTE_PTR part,
646                                                           CK_ULONG_PTR part_len);
647 
648 CK_RV        mock_X_DecryptUpdate__invalid_handle        (CK_X_FUNCTION_LIST *self,
649                                                           CK_SESSION_HANDLE session,
650                                                           CK_BYTE_PTR enc_part,
651                                                           CK_ULONG enc_part_len,
652                                                           CK_BYTE_PTR part,
653                                                           CK_ULONG_PTR part_len);
654 
655 CK_RV        mock_C_DecryptFinal                         (CK_SESSION_HANDLE session,
656                                                           CK_BYTE_PTR last_part,
657                                                           CK_ULONG_PTR last_part_len);
658 
659 CK_RV        mock_C_DecryptFinal__invalid_handle         (CK_SESSION_HANDLE session,
660                                                           CK_BYTE_PTR last_part,
661                                                           CK_ULONG_PTR last_part_len);
662 
663 CK_RV        mock_X_DecryptFinal__invalid_handle         (CK_X_FUNCTION_LIST *self,
664                                                           CK_SESSION_HANDLE session,
665                                                           CK_BYTE_PTR last_part,
666                                                           CK_ULONG_PTR last_part_len);
667 
668 CK_RV        mock_C_DigestInit                           (CK_SESSION_HANDLE session,
669                                                           CK_MECHANISM_PTR mechanism);
670 
671 CK_RV        mock_C_DigestInit__invalid_handle           (CK_SESSION_HANDLE session,
672                                                           CK_MECHANISM_PTR mechanism);
673 
674 CK_RV        mock_X_DigestInit__invalid_handle           (CK_X_FUNCTION_LIST *self,
675                                                           CK_SESSION_HANDLE session,
676                                                           CK_MECHANISM_PTR mechanism);
677 
678 CK_RV        mock_C_Digest                               (CK_SESSION_HANDLE session,
679                                                           CK_BYTE_PTR data,
680                                                           CK_ULONG data_len,
681                                                           CK_BYTE_PTR digest,
682                                                           CK_ULONG_PTR digest_len);
683 
684 CK_RV        mock_C_Digest__invalid_handle               (CK_SESSION_HANDLE session,
685                                                           CK_BYTE_PTR data,
686                                                           CK_ULONG data_len,
687                                                           CK_BYTE_PTR digest,
688                                                           CK_ULONG_PTR digest_len);
689 
690 CK_RV        mock_X_Digest__invalid_handle               (CK_X_FUNCTION_LIST *self,
691                                                           CK_SESSION_HANDLE session,
692                                                           CK_BYTE_PTR data,
693                                                           CK_ULONG data_len,
694                                                           CK_BYTE_PTR digest,
695                                                           CK_ULONG_PTR digest_len);
696 
697 CK_RV        mock_C_DigestUpdate                         (CK_SESSION_HANDLE session,
698                                                           CK_BYTE_PTR part,
699                                                           CK_ULONG part_len);
700 
701 CK_RV        mock_C_DigestUpdate__invalid_handle         (CK_SESSION_HANDLE session,
702                                                           CK_BYTE_PTR part,
703                                                           CK_ULONG part_len);
704 
705 CK_RV        mock_X_DigestUpdate__invalid_handle         (CK_X_FUNCTION_LIST *self,
706                                                           CK_SESSION_HANDLE session,
707                                                           CK_BYTE_PTR part,
708                                                           CK_ULONG part_len);
709 
710 CK_RV        mock_C_DigestKey                            (CK_SESSION_HANDLE session,
711                                                           CK_OBJECT_HANDLE key);
712 
713 CK_RV        mock_C_DigestKey__invalid_handle            (CK_SESSION_HANDLE session,
714                                                           CK_OBJECT_HANDLE key);
715 
716 CK_RV        mock_X_DigestKey__invalid_handle            (CK_X_FUNCTION_LIST *self,
717                                                           CK_SESSION_HANDLE session,
718                                                           CK_OBJECT_HANDLE key);
719 
720 CK_RV        mock_C_DigestFinal                          (CK_SESSION_HANDLE session,
721                                                           CK_BYTE_PTR digest,
722                                                           CK_ULONG_PTR digest_len);
723 
724 CK_RV        mock_C_DigestFinal__invalid_handle          (CK_SESSION_HANDLE session,
725                                                           CK_BYTE_PTR digest,
726                                                           CK_ULONG_PTR digest_len);
727 
728 CK_RV        mock_X_DigestFinal__invalid_handle          (CK_X_FUNCTION_LIST *self,
729                                                           CK_SESSION_HANDLE session,
730                                                           CK_BYTE_PTR digest,
731                                                           CK_ULONG_PTR digest_len);
732 
733 CK_RV        mock_C_SignInit                             (CK_SESSION_HANDLE session,
734                                                           CK_MECHANISM_PTR mechanism,
735                                                           CK_OBJECT_HANDLE key);
736 
737 CK_RV        mock_C_SignInit__invalid_handle             (CK_SESSION_HANDLE session,
738                                                           CK_MECHANISM_PTR mechanism,
739                                                           CK_OBJECT_HANDLE key);
740 
741 CK_RV        mock_X_SignInit__invalid_handle             (CK_X_FUNCTION_LIST *self,
742                                                           CK_SESSION_HANDLE session,
743                                                           CK_MECHANISM_PTR mechanism,
744                                                           CK_OBJECT_HANDLE key);
745 
746 CK_RV        mock_C_Sign                                 (CK_SESSION_HANDLE session,
747                                                           CK_BYTE_PTR data,
748                                                           CK_ULONG data_len,
749                                                           CK_BYTE_PTR signature,
750                                                           CK_ULONG_PTR signature_len);
751 
752 CK_RV        mock_C_Sign__invalid_handle                 (CK_SESSION_HANDLE session,
753                                                           CK_BYTE_PTR data,
754                                                           CK_ULONG data_len,
755                                                           CK_BYTE_PTR signature,
756                                                           CK_ULONG_PTR signature_len);
757 
758 CK_RV        mock_X_Sign__invalid_handle                 (CK_X_FUNCTION_LIST *self,
759                                                           CK_SESSION_HANDLE session,
760                                                           CK_BYTE_PTR data,
761                                                           CK_ULONG data_len,
762                                                           CK_BYTE_PTR signature,
763                                                           CK_ULONG_PTR signature_len);
764 
765 CK_RV        mock_C_SignUpdate                           (CK_SESSION_HANDLE session,
766                                                           CK_BYTE_PTR part,
767                                                           CK_ULONG part_len);
768 
769 CK_RV        mock_C_SignUpdate__invalid_handle           (CK_SESSION_HANDLE session,
770                                                           CK_BYTE_PTR part,
771                                                           CK_ULONG part_len);
772 
773 CK_RV        mock_X_SignUpdate__invalid_handle           (CK_X_FUNCTION_LIST *self,
774                                                           CK_SESSION_HANDLE session,
775                                                           CK_BYTE_PTR part,
776                                                           CK_ULONG part_len);
777 
778 CK_RV        mock_C_SignFinal                            (CK_SESSION_HANDLE session,
779                                                           CK_BYTE_PTR signature,
780                                                           CK_ULONG_PTR signature_len);
781 
782 CK_RV        mock_C_SignFinal__invalid_handle            (CK_SESSION_HANDLE session,
783                                                           CK_BYTE_PTR signature,
784                                                           CK_ULONG_PTR signature_len);
785 
786 CK_RV        mock_X_SignFinal__invalid_handle            (CK_X_FUNCTION_LIST *self,
787                                                           CK_SESSION_HANDLE session,
788                                                           CK_BYTE_PTR signature,
789                                                           CK_ULONG_PTR signature_len);
790 
791 CK_RV        mock_C_SignRecoverInit                      (CK_SESSION_HANDLE session,
792                                                           CK_MECHANISM_PTR mechanism,
793                                                           CK_OBJECT_HANDLE key);
794 
795 CK_RV        mock_C_SignRecoverInit__invalid_handle      (CK_SESSION_HANDLE session,
796                                                           CK_MECHANISM_PTR mechanism,
797                                                           CK_OBJECT_HANDLE key);
798 
799 CK_RV        mock_X_SignRecoverInit__invalid_handle      (CK_X_FUNCTION_LIST *self,
800                                                           CK_SESSION_HANDLE session,
801                                                           CK_MECHANISM_PTR mechanism,
802                                                           CK_OBJECT_HANDLE key);
803 
804 CK_RV        mock_C_SignRecover                          (CK_SESSION_HANDLE session,
805                                                           CK_BYTE_PTR data,
806                                                           CK_ULONG data_len,
807                                                           CK_BYTE_PTR signature,
808                                                           CK_ULONG_PTR signature_len);
809 
810 CK_RV        mock_C_SignRecover__invalid_handle          (CK_SESSION_HANDLE session,
811                                                           CK_BYTE_PTR data,
812                                                           CK_ULONG data_len,
813                                                           CK_BYTE_PTR signature,
814                                                           CK_ULONG_PTR signature_len);
815 
816 CK_RV        mock_X_SignRecover__invalid_handle          (CK_X_FUNCTION_LIST *self,
817                                                           CK_SESSION_HANDLE session,
818                                                           CK_BYTE_PTR data,
819                                                           CK_ULONG data_len,
820                                                           CK_BYTE_PTR signature,
821                                                           CK_ULONG_PTR signature_len);
822 
823 CK_RV        mock_C_VerifyInit                           (CK_SESSION_HANDLE session,
824                                                           CK_MECHANISM_PTR mechanism,
825                                                           CK_OBJECT_HANDLE key);
826 
827 CK_RV        mock_C_VerifyInit__invalid_handle           (CK_SESSION_HANDLE session,
828                                                           CK_MECHANISM_PTR mechanism,
829                                                           CK_OBJECT_HANDLE key);
830 
831 CK_RV        mock_X_VerifyInit__invalid_handle           (CK_X_FUNCTION_LIST *self,
832                                                           CK_SESSION_HANDLE session,
833                                                           CK_MECHANISM_PTR mechanism,
834                                                           CK_OBJECT_HANDLE key);
835 
836 CK_RV        mock_C_Verify                               (CK_SESSION_HANDLE session,
837                                                           CK_BYTE_PTR data,
838                                                           CK_ULONG data_len,
839                                                           CK_BYTE_PTR signature,
840                                                           CK_ULONG signature_len);
841 
842 CK_RV        mock_C_Verify__invalid_handle               (CK_SESSION_HANDLE session,
843                                                           CK_BYTE_PTR data,
844                                                           CK_ULONG data_len,
845                                                           CK_BYTE_PTR signature,
846                                                           CK_ULONG signature_len);
847 
848 CK_RV        mock_X_Verify__invalid_handle               (CK_X_FUNCTION_LIST *self,
849                                                           CK_SESSION_HANDLE session,
850                                                           CK_BYTE_PTR data,
851                                                           CK_ULONG data_len,
852                                                           CK_BYTE_PTR signature,
853                                                           CK_ULONG signature_len);
854 
855 CK_RV        mock_C_VerifyUpdate                         (CK_SESSION_HANDLE session,
856                                                           CK_BYTE_PTR part,
857                                                           CK_ULONG part_len);
858 
859 CK_RV        mock_C_VerifyUpdate__invalid_handle         (CK_SESSION_HANDLE session,
860                                                           CK_BYTE_PTR part,
861                                                           CK_ULONG part_len);
862 
863 CK_RV        mock_X_VerifyUpdate__invalid_handle         (CK_X_FUNCTION_LIST *self,
864                                                           CK_SESSION_HANDLE session,
865                                                           CK_BYTE_PTR part,
866                                                           CK_ULONG part_len);
867 
868 CK_RV        mock_C_VerifyFinal                          (CK_SESSION_HANDLE session,
869                                                           CK_BYTE_PTR signature,
870                                                           CK_ULONG signature_len);
871 
872 CK_RV        mock_C_VerifyFinal__invalid_handle          (CK_SESSION_HANDLE session,
873                                                           CK_BYTE_PTR signature,
874                                                           CK_ULONG signature_len);
875 
876 CK_RV        mock_X_VerifyFinal__invalid_handle          (CK_X_FUNCTION_LIST *self,
877                                                           CK_SESSION_HANDLE session,
878                                                           CK_BYTE_PTR signature,
879                                                           CK_ULONG signature_len);
880 
881 CK_RV        mock_C_VerifyRecoverInit                    (CK_SESSION_HANDLE session,
882                                                           CK_MECHANISM_PTR mechanism,
883                                                           CK_OBJECT_HANDLE key);
884 
885 CK_RV        mock_C_VerifyRecoverInit__invalid_handle    (CK_SESSION_HANDLE session,
886                                                           CK_MECHANISM_PTR mechanism,
887                                                           CK_OBJECT_HANDLE key);
888 
889 CK_RV        mock_X_VerifyRecoverInit__invalid_handle    (CK_X_FUNCTION_LIST *self,
890                                                           CK_SESSION_HANDLE session,
891                                                           CK_MECHANISM_PTR mechanism,
892                                                           CK_OBJECT_HANDLE key);
893 
894 CK_RV        mock_C_VerifyRecover                        (CK_SESSION_HANDLE session,
895                                                           CK_BYTE_PTR signature,
896                                                           CK_ULONG signature_len,
897                                                           CK_BYTE_PTR data,
898                                                           CK_ULONG_PTR data_len);
899 
900 CK_RV        mock_C_VerifyRecover__invalid_handle        (CK_SESSION_HANDLE session,
901                                                           CK_BYTE_PTR signature,
902                                                           CK_ULONG signature_len,
903                                                           CK_BYTE_PTR data,
904                                                           CK_ULONG_PTR data_len);
905 
906 CK_RV        mock_X_VerifyRecover__invalid_handle        (CK_X_FUNCTION_LIST *self,
907                                                           CK_SESSION_HANDLE session,
908                                                           CK_BYTE_PTR signature,
909                                                           CK_ULONG signature_len,
910                                                           CK_BYTE_PTR data,
911                                                           CK_ULONG_PTR data_len);
912 
913 CK_RV        mock_C_DigestEncryptUpdate                  (CK_SESSION_HANDLE session,
914                                                           CK_BYTE_PTR part,
915                                                           CK_ULONG part_len,
916                                                           CK_BYTE_PTR encrypted_part,
917                                                           CK_ULONG_PTR encrypted_part_len);
918 
919 CK_RV        mock_C_DigestEncryptUpdate__invalid_handle  (CK_SESSION_HANDLE session,
920                                                           CK_BYTE_PTR part,
921                                                           CK_ULONG part_len,
922                                                           CK_BYTE_PTR enc_part,
923                                                           CK_ULONG_PTR enc_part_len);
924 
925 CK_RV        mock_X_DigestEncryptUpdate__invalid_handle  (CK_X_FUNCTION_LIST *self,
926                                                           CK_SESSION_HANDLE session,
927                                                           CK_BYTE_PTR part,
928                                                           CK_ULONG part_len,
929                                                           CK_BYTE_PTR enc_part,
930                                                           CK_ULONG_PTR enc_part_len);
931 
932 CK_RV        mock_C_DecryptDigestUpdate                  (CK_SESSION_HANDLE session,
933                                                           CK_BYTE_PTR encrypted_part,
934                                                           CK_ULONG encrypted_part_len,
935                                                           CK_BYTE_PTR part,
936                                                           CK_ULONG_PTR part_len);
937 
938 CK_RV        mock_C_DecryptDigestUpdate__invalid_handle  (CK_SESSION_HANDLE session,
939                                                           CK_BYTE_PTR enc_part,
940                                                           CK_ULONG enc_part_len,
941                                                           CK_BYTE_PTR part,
942                                                           CK_ULONG_PTR part_len);
943 
944 CK_RV        mock_X_DecryptDigestUpdate__invalid_handle  (CK_X_FUNCTION_LIST *self,
945                                                           CK_SESSION_HANDLE session,
946                                                           CK_BYTE_PTR enc_part,
947                                                           CK_ULONG enc_part_len,
948                                                           CK_BYTE_PTR part,
949                                                           CK_ULONG_PTR part_len);
950 
951 CK_RV        mock_C_SignEncryptUpdate                    (CK_SESSION_HANDLE session,
952                                                           CK_BYTE_PTR part,
953                                                           CK_ULONG part_len,
954                                                           CK_BYTE_PTR encrypted_part,
955                                                           CK_ULONG_PTR encrypted_part_len);
956 
957 CK_RV        mock_C_SignEncryptUpdate__invalid_handle    (CK_SESSION_HANDLE session,
958                                                           CK_BYTE_PTR part,
959                                                           CK_ULONG part_len,
960                                                           CK_BYTE_PTR enc_part,
961                                                           CK_ULONG_PTR enc_part_len);
962 
963 CK_RV        mock_X_SignEncryptUpdate__invalid_handle    (CK_X_FUNCTION_LIST *self,
964                                                           CK_SESSION_HANDLE session,
965                                                           CK_BYTE_PTR part,
966                                                           CK_ULONG part_len,
967                                                           CK_BYTE_PTR enc_part,
968                                                           CK_ULONG_PTR enc_part_len);
969 
970 CK_RV        mock_C_DecryptVerifyUpdate                  (CK_SESSION_HANDLE session,
971                                                           CK_BYTE_PTR encrypted_part,
972                                                           CK_ULONG encrypted_part_len,
973                                                           CK_BYTE_PTR part,
974                                                           CK_ULONG_PTR part_len);
975 
976 CK_RV        mock_C_DecryptVerifyUpdate__invalid_handle  (CK_SESSION_HANDLE session,
977                                                           CK_BYTE_PTR enc_part,
978                                                           CK_ULONG enc_part_len,
979                                                           CK_BYTE_PTR part,
980                                                           CK_ULONG_PTR part_len);
981 
982 CK_RV        mock_X_DecryptVerifyUpdate__invalid_handle  (CK_X_FUNCTION_LIST *self,
983                                                           CK_SESSION_HANDLE session,
984                                                           CK_BYTE_PTR enc_part,
985                                                           CK_ULONG enc_part_len,
986                                                           CK_BYTE_PTR part,
987                                                           CK_ULONG_PTR part_len);
988 
989 CK_RV        mock_C_GenerateKey                          (CK_SESSION_HANDLE session,
990                                                           CK_MECHANISM_PTR mechanism,
991                                                           CK_ATTRIBUTE_PTR template,
992                                                           CK_ULONG count,
993                                                           CK_OBJECT_HANDLE_PTR key);
994 
995 CK_RV        mock_C_GenerateKey__invalid_handle          (CK_SESSION_HANDLE session,
996                                                           CK_MECHANISM_PTR mechanism,
997                                                           CK_ATTRIBUTE_PTR template,
998                                                           CK_ULONG count,
999                                                           CK_OBJECT_HANDLE_PTR key);
1000 
1001 CK_RV        mock_X_GenerateKey__invalid_handle          (CK_X_FUNCTION_LIST *self,
1002                                                           CK_SESSION_HANDLE session,
1003                                                           CK_MECHANISM_PTR mechanism,
1004                                                           CK_ATTRIBUTE_PTR template,
1005                                                           CK_ULONG count,
1006                                                           CK_OBJECT_HANDLE_PTR key);
1007 
1008 CK_RV        mock_C_GenerateKeyPair                      (CK_SESSION_HANDLE session,
1009                                                           CK_MECHANISM_PTR mechanism,
1010                                                           CK_ATTRIBUTE_PTR public_key_template,
1011                                                           CK_ULONG public_key_count,
1012                                                           CK_ATTRIBUTE_PTR private_key_template,
1013                                                           CK_ULONG private_key_count,
1014                                                           CK_OBJECT_HANDLE_PTR public_key,
1015                                                           CK_OBJECT_HANDLE_PTR private_key);
1016 
1017 CK_RV        mock_C_GenerateKeyPair__invalid_handle      (CK_SESSION_HANDLE session,
1018                                                           CK_MECHANISM_PTR mechanism,
1019                                                           CK_ATTRIBUTE_PTR pub_template,
1020                                                           CK_ULONG pub_count,
1021                                                           CK_ATTRIBUTE_PTR priv_template,
1022                                                           CK_ULONG priv_count,
1023                                                           CK_OBJECT_HANDLE_PTR pub_key,
1024                                                           CK_OBJECT_HANDLE_PTR priv_key);
1025 
1026 CK_RV        mock_X_GenerateKeyPair__invalid_handle      (CK_X_FUNCTION_LIST *self,
1027                                                           CK_SESSION_HANDLE session,
1028                                                           CK_MECHANISM_PTR mechanism,
1029                                                           CK_ATTRIBUTE_PTR pub_template,
1030                                                           CK_ULONG pub_count,
1031                                                           CK_ATTRIBUTE_PTR priv_template,
1032                                                           CK_ULONG priv_count,
1033                                                           CK_OBJECT_HANDLE_PTR pub_key,
1034                                                           CK_OBJECT_HANDLE_PTR priv_key);
1035 
1036 CK_RV        mock_C_WrapKey                              (CK_SESSION_HANDLE session,
1037                                                           CK_MECHANISM_PTR mechanism,
1038                                                           CK_OBJECT_HANDLE wrapping_key,
1039                                                           CK_OBJECT_HANDLE key,
1040                                                           CK_BYTE_PTR wrapped_key,
1041                                                           CK_ULONG_PTR wrapped_key_len);
1042 
1043 CK_RV        mock_C_WrapKey__invalid_handle              (CK_SESSION_HANDLE session,
1044                                                           CK_MECHANISM_PTR mechanism,
1045                                                           CK_OBJECT_HANDLE wrapping_key,
1046                                                           CK_OBJECT_HANDLE key,
1047                                                           CK_BYTE_PTR wrapped_key,
1048                                                           CK_ULONG_PTR wrapped_key_len);
1049 
1050 CK_RV        mock_X_WrapKey__invalid_handle              (CK_X_FUNCTION_LIST *self,
1051                                                           CK_SESSION_HANDLE session,
1052                                                           CK_MECHANISM_PTR mechanism,
1053                                                           CK_OBJECT_HANDLE wrapping_key,
1054                                                           CK_OBJECT_HANDLE key,
1055                                                           CK_BYTE_PTR wrapped_key,
1056                                                           CK_ULONG_PTR wrapped_key_len);
1057 
1058 CK_RV        mock_C_UnwrapKey                            (CK_SESSION_HANDLE session,
1059                                                           CK_MECHANISM_PTR mechanism,
1060                                                           CK_OBJECT_HANDLE unwrapping_key,
1061                                                           CK_BYTE_PTR wrapped_key,
1062                                                           CK_ULONG wrapped_key_len,
1063                                                           CK_ATTRIBUTE_PTR template,
1064                                                           CK_ULONG count,
1065                                                           CK_OBJECT_HANDLE_PTR key);
1066 
1067 CK_RV        mock_C_UnwrapKey__invalid_handle            (CK_SESSION_HANDLE session,
1068                                                           CK_MECHANISM_PTR mechanism,
1069                                                           CK_OBJECT_HANDLE unwrapping_key,
1070                                                           CK_BYTE_PTR wrapped_key,
1071                                                           CK_ULONG wrapped_key_len,
1072                                                           CK_ATTRIBUTE_PTR template,
1073                                                           CK_ULONG count,
1074                                                           CK_OBJECT_HANDLE_PTR key);
1075 
1076 CK_RV        mock_X_UnwrapKey__invalid_handle            (CK_X_FUNCTION_LIST *self,
1077                                                           CK_SESSION_HANDLE session,
1078                                                           CK_MECHANISM_PTR mechanism,
1079                                                           CK_OBJECT_HANDLE unwrapping_key,
1080                                                           CK_BYTE_PTR wrapped_key,
1081                                                           CK_ULONG wrapped_key_len,
1082                                                           CK_ATTRIBUTE_PTR template,
1083                                                           CK_ULONG count,
1084                                                           CK_OBJECT_HANDLE_PTR key);
1085 
1086 CK_RV        mock_C_DeriveKey                            (CK_SESSION_HANDLE session,
1087                                                           CK_MECHANISM_PTR mechanism,
1088                                                           CK_OBJECT_HANDLE base_key,
1089                                                           CK_ATTRIBUTE_PTR template,
1090                                                           CK_ULONG count,
1091                                                           CK_OBJECT_HANDLE_PTR key);
1092 
1093 CK_RV        mock_C_DeriveKey__invalid_handle            (CK_SESSION_HANDLE session,
1094                                                           CK_MECHANISM_PTR mechanism,
1095                                                           CK_OBJECT_HANDLE base_key,
1096                                                           CK_ATTRIBUTE_PTR template,
1097                                                           CK_ULONG count,
1098                                                           CK_OBJECT_HANDLE_PTR key);
1099 
1100 CK_RV        mock_X_DeriveKey__invalid_handle            (CK_X_FUNCTION_LIST *self,
1101                                                           CK_SESSION_HANDLE session,
1102                                                           CK_MECHANISM_PTR mechanism,
1103                                                           CK_OBJECT_HANDLE base_key,
1104                                                           CK_ATTRIBUTE_PTR template,
1105                                                           CK_ULONG count,
1106                                                           CK_OBJECT_HANDLE_PTR key);
1107 
1108 CK_RV        mock_C_SeedRandom                           (CK_SESSION_HANDLE session,
1109                                                           CK_BYTE_PTR seed,
1110                                                           CK_ULONG seed_len);
1111 
1112 CK_RV        mock_C_SeedRandom__invalid_handle           (CK_SESSION_HANDLE session,
1113                                                           CK_BYTE_PTR seed,
1114                                                           CK_ULONG seed_len);
1115 
1116 CK_RV        mock_X_SeedRandom__invalid_handle           (CK_X_FUNCTION_LIST *self,
1117                                                           CK_SESSION_HANDLE session,
1118                                                           CK_BYTE_PTR seed,
1119                                                           CK_ULONG seed_len);
1120 
1121 CK_RV        mock_C_GenerateRandom                       (CK_SESSION_HANDLE session,
1122                                                           CK_BYTE_PTR random_data,
1123                                                           CK_ULONG random_len);
1124 
1125 CK_RV        mock_C_GenerateRandom__invalid_handle       (CK_SESSION_HANDLE session,
1126                                                           CK_BYTE_PTR random_data,
1127                                                           CK_ULONG random_len);
1128 
1129 CK_RV        mock_X_GenerateRandom__invalid_handle       (CK_X_FUNCTION_LIST *self,
1130                                                           CK_SESSION_HANDLE session,
1131                                                           CK_BYTE_PTR random_data,
1132                                                           CK_ULONG random_len);
1133 
1134 #endif /* __MOCK_H__ */
1135