]> git.0d.be Git - empathy.git/blob - tests/mock-pkcs11.h
sort contacts by most recent event
[empathy.git] / tests / mock-pkcs11.h
1 /*
2  * Copyright (C) 2010-2012 Stefan Walter
3  * Copyright (C) 2011 Collabora Ltd.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU Lesser General Public License as
7  * published by the Free Software Foundation; either version 2.1 of
8  * the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18  */
19
20 #include <gck/pkcs11x.h>
21 #include <gcr/gcr.h>
22
23 #ifndef MOCK_MODULE_H
24 #define MOCK_MODULE_H
25
26 extern CK_FUNCTION_LIST mock_default_functions;
27
28 CK_RV               mock_C_Initialize                          (CK_VOID_PTR pInitArgs);
29
30 CK_RV               mock_C_Finalize                            (CK_VOID_PTR pReserved);
31
32 CK_RV               mock_C_GetInfo                             (CK_INFO_PTR pInfo);
33
34 CK_RV               mock_C_GetFunctionList                     (CK_FUNCTION_LIST_PTR_PTR list);
35
36 CK_RV               mock_C_GetSlotList                         (CK_BBOOL tokenPresent,
37                                                                 CK_SLOT_ID_PTR pSlotList,
38                                                                 CK_ULONG_PTR pulCount);
39
40 CK_RV               mock_C_GetSlotInfo                         (CK_SLOT_ID slotID,
41                                                                 CK_SLOT_INFO_PTR pInfo);
42
43 CK_RV               mock_C_GetTokenInfo                        (CK_SLOT_ID slotID,
44                                                                 CK_TOKEN_INFO_PTR pInfo);
45
46 CK_RV               mock_C_GetMechanismList                    (CK_SLOT_ID slotID,
47                                                                 CK_MECHANISM_TYPE_PTR pMechanismList,
48                                                                 CK_ULONG_PTR pulCount);
49
50 CK_RV               mock_C_GetMechanismInfo                    (CK_SLOT_ID slotID,
51                                                                 CK_MECHANISM_TYPE type,
52                                                                 CK_MECHANISM_INFO_PTR pInfo);
53
54 CK_RV               mock_unsupported_C_InitToken               (CK_SLOT_ID slotID,
55                                                                 CK_UTF8CHAR_PTR pPin,
56                                                                 CK_ULONG ulPinLen,
57                                                                 CK_UTF8CHAR_PTR pLabel);
58
59 CK_RV               mock_unsupported_C_WaitForSlotEvent        (CK_FLAGS flags,
60                                                                 CK_SLOT_ID_PTR pSlot,
61                                                                 CK_VOID_PTR pReserved);
62
63 CK_RV               mock_C_OpenSession                         (CK_SLOT_ID slotID,
64                                                                 CK_FLAGS flags,
65                                                                 CK_VOID_PTR pApplication,
66                                                                 CK_NOTIFY Notify,
67                                                                 CK_SESSION_HANDLE_PTR phSession);
68
69 CK_RV               mock_C_CloseSession                        (CK_SESSION_HANDLE hSession);
70
71 CK_RV               mock_C_CloseAllSessions                    (CK_SLOT_ID slotID);
72
73 CK_RV               mock_C_GetFunctionStatus                   (CK_SESSION_HANDLE hSession);
74
75 CK_RV               mock_C_CancelFunction                      (CK_SESSION_HANDLE hSession);
76
77 CK_RV               mock_C_GetSessionInfo                      (CK_SESSION_HANDLE hSession,
78                                                                 CK_SESSION_INFO_PTR pInfo);
79
80 CK_RV               mock_unsupported_C_InitPIN                 (CK_SESSION_HANDLE hSession,
81                                                                 CK_UTF8CHAR_PTR pPin,
82                                                                 CK_ULONG ulPinLen);
83
84 CK_RV               mock_unsupported_C_SetPIN                  (CK_SESSION_HANDLE hSession,
85                                                                 CK_UTF8CHAR_PTR pOldPin,
86                                                                 CK_ULONG ulOldLen,
87                                                                 CK_UTF8CHAR_PTR pNewPin,
88                                                                 CK_ULONG ulNewLen);
89
90 CK_RV               mock_unsupported_C_GetOperationState       (CK_SESSION_HANDLE hSession,
91                                                                 CK_BYTE_PTR pOperationState,
92                                                                 CK_ULONG_PTR pulOperationStateLen);
93
94 CK_RV               mock_unsupported_C_SetOperationState       (CK_SESSION_HANDLE hSession,
95                                                                 CK_BYTE_PTR pOperationState,
96                                                                 CK_ULONG ulOperationStateLen,
97                                                                 CK_OBJECT_HANDLE hEncryptionKey,
98                                                                 CK_OBJECT_HANDLE hAuthenticationKey);
99
100 CK_RV               mock_unsupported_C_Login                   (CK_SESSION_HANDLE hSession,
101                                                                 CK_USER_TYPE userType,
102                                                                 CK_UTF8CHAR_PTR pPin,
103                                                                 CK_ULONG pPinLen);
104
105 CK_RV               mock_unsupported_C_Logout                  (CK_SESSION_HANDLE hSession);
106
107 CK_RV               mock_readonly_C_CreateObject               (CK_SESSION_HANDLE hSession,
108                                                                 CK_ATTRIBUTE_PTR pTemplate,
109                                                                 CK_ULONG ulCount,
110                                                                 CK_OBJECT_HANDLE_PTR phObject);
111
112 CK_RV               mock_unsupported_C_CopyObject              (CK_SESSION_HANDLE hSession,
113                                                                 CK_OBJECT_HANDLE hObject,
114                                                                 CK_ATTRIBUTE_PTR pTemplate,
115                                                                 CK_ULONG ulCount,
116                                                                 CK_OBJECT_HANDLE_PTR phNewObject);
117
118 CK_RV               mock_readonly_C_DestroyObject              (CK_SESSION_HANDLE hSession,
119                                                                 CK_OBJECT_HANDLE hObject);
120
121 CK_RV               mock_unsupported_C_GetObjectSize           (CK_SESSION_HANDLE hSession,
122                                                                 CK_OBJECT_HANDLE hObject,
123                                                                 CK_ULONG_PTR pulSize);
124
125 CK_RV               mock_C_GetAttributeValue                   (CK_SESSION_HANDLE hSession,
126                                                                 CK_OBJECT_HANDLE hObject,
127                                                                 CK_ATTRIBUTE_PTR pTemplate,
128                                                                 CK_ULONG ulCount);
129
130 CK_RV               mock_readonly_C_SetAttributeValue          (CK_SESSION_HANDLE hSession,
131                                                                 CK_OBJECT_HANDLE hObject,
132                                                                 CK_ATTRIBUTE_PTR pTemplate,
133                                                                 CK_ULONG ulCount);
134
135 CK_RV               mock_C_FindObjectsInit                     (CK_SESSION_HANDLE hSession,
136                                                                 CK_ATTRIBUTE_PTR pTemplate,
137                                                                 CK_ULONG ulCount);
138
139 CK_RV               mock_C_FindObjects                         (CK_SESSION_HANDLE hSession,
140                                                                 CK_OBJECT_HANDLE_PTR phObject,
141                                                                 CK_ULONG ulMaxObjectCount,
142                                                                 CK_ULONG_PTR pulObjectCount);
143
144 CK_RV               mock_fail_C_FindObjects                    (CK_SESSION_HANDLE hSession,
145                                                                 CK_OBJECT_HANDLE_PTR phObject,
146                                                                 CK_ULONG ulMaxObjectCount,
147                                                                 CK_ULONG_PTR pulObjectCount);
148
149 CK_RV               mock_C_FindObjectsFinal                    (CK_SESSION_HANDLE hSession);
150
151 CK_RV               mock_no_mechanisms_C_EncryptInit           (CK_SESSION_HANDLE hSession,
152                                                                 CK_MECHANISM_PTR pMechanism,
153                                                                 CK_OBJECT_HANDLE hKey);
154
155 CK_RV               mock_not_initialized_C_Encrypt             (CK_SESSION_HANDLE hSession,
156                                                                 CK_BYTE_PTR pData,
157                                                                 CK_ULONG ulDataLen,
158                                                                 CK_BYTE_PTR pEncryptedData,
159                                                                 CK_ULONG_PTR pulEncryptedDataLen);
160
161 CK_RV               mock_unsupported_C_EncryptUpdate           (CK_SESSION_HANDLE hSession,
162                                                                 CK_BYTE_PTR pPart,
163                                                                 CK_ULONG ulPartLen,
164                                                                 CK_BYTE_PTR pEncryptedPart,
165                                                                 CK_ULONG_PTR pulEncryptedPartLen);
166
167 CK_RV               mock_unsupported_C_EncryptFinal            (CK_SESSION_HANDLE hSession,
168                                                                 CK_BYTE_PTR pLastEncryptedPart,
169                                                                 CK_ULONG_PTR pulLastEncryptedPartLen);
170
171 CK_RV               mock_no_mechanisms_C_DecryptInit           (CK_SESSION_HANDLE hSession,
172                                                                 CK_MECHANISM_PTR pMechanism,
173                                                                 CK_OBJECT_HANDLE hKey);
174
175 CK_RV               mock_not_initialized_C_Decrypt             (CK_SESSION_HANDLE hSession,
176                                                                 CK_BYTE_PTR pEncryptedData,
177                                                                 CK_ULONG ulEncryptedDataLen,
178                                                                 CK_BYTE_PTR pData,
179                                                                 CK_ULONG_PTR pulDataLen);
180
181 CK_RV               mock_unsupported_C_DecryptUpdate           (CK_SESSION_HANDLE hSession,
182                                                                 CK_BYTE_PTR pEncryptedPart,
183                                                                 CK_ULONG ulEncryptedPartLen,
184                                                                 CK_BYTE_PTR pPart,
185                                                                 CK_ULONG_PTR pulPartLen);
186
187 CK_RV               mock_unsupported_C_DecryptFinal            (CK_SESSION_HANDLE hSession,
188                                                                 CK_BYTE_PTR pLastPart,
189                                                                 CK_ULONG_PTR pulLastPartLen);
190
191 CK_RV               mock_unsupported_C_DigestInit              (CK_SESSION_HANDLE hSession,
192                                                                 CK_MECHANISM_PTR pMechanism);
193
194 CK_RV               mock_unsupported_C_Digest                  (CK_SESSION_HANDLE hSession,
195                                                                 CK_BYTE_PTR pData,
196                                                                 CK_ULONG ulDataLen,
197                                                                 CK_BYTE_PTR pDigest,
198                                                                 CK_ULONG_PTR pulDigestLen);
199
200 CK_RV               mock_unsupported_C_DigestUpdate            (CK_SESSION_HANDLE hSession,
201                                                                 CK_BYTE_PTR pPart,
202                                                                 CK_ULONG ulPartLen);
203
204 CK_RV               mock_unsupported_C_DigestKey               (CK_SESSION_HANDLE hSession,
205                                                                 CK_OBJECT_HANDLE hKey);
206
207 CK_RV               mock_unsupported_C_DigestFinal             (CK_SESSION_HANDLE hSession,
208                                                                 CK_BYTE_PTR pDigest,
209                                                                 CK_ULONG_PTR pulDigestLen);
210
211 CK_RV               mock_no_mechanisms_C_SignInit              (CK_SESSION_HANDLE hSession,
212                                                                 CK_MECHANISM_PTR pMechanism,
213                                                                 CK_OBJECT_HANDLE hKey);
214
215 CK_RV               mock_not_initialized_C_Sign                (CK_SESSION_HANDLE hSession,
216                                                                 CK_BYTE_PTR pData,
217                                                                 CK_ULONG ulDataLen,
218                                                                 CK_BYTE_PTR pSignature,
219                                                                 CK_ULONG_PTR pulSignatureLen);
220
221 CK_RV               mock_unsupported_C_SignUpdate              (CK_SESSION_HANDLE hSession,
222                                                                 CK_BYTE_PTR pPart,
223                                                                 CK_ULONG ulPartLen);
224
225 CK_RV               mock_unsupported_C_SignFinal               (CK_SESSION_HANDLE hSession,
226                                                                 CK_BYTE_PTR pSignature,
227                                                                 CK_ULONG_PTR pulSignatureLen);
228
229 CK_RV               mock_unsupported_C_SignRecoverInit         (CK_SESSION_HANDLE hSession,
230                                                                 CK_MECHANISM_PTR pMechanism,
231                                                                 CK_OBJECT_HANDLE hKey);
232
233 CK_RV               mock_unsupported_C_SignRecover             (CK_SESSION_HANDLE hSession,
234                                                                 CK_BYTE_PTR pData,
235                                                                 CK_ULONG ulDataLen,
236                                                                 CK_BYTE_PTR pSignature,
237                                                                 CK_ULONG_PTR pulSignatureLen);
238
239 CK_RV               mock_no_mechanisms_C_VerifyInit            (CK_SESSION_HANDLE hSession,
240                                                                 CK_MECHANISM_PTR pMechanism,
241                                                                 CK_OBJECT_HANDLE hKey);
242
243 CK_RV               mock_not_initialized_C_Verify              (CK_SESSION_HANDLE hSession,
244                                                                 CK_BYTE_PTR pData,
245                                                                 CK_ULONG ulDataLen,
246                                                                 CK_BYTE_PTR pSignature,
247                                                                 CK_ULONG ulSignatureLen);
248
249 CK_RV               mock_unsupported_C_VerifyUpdate            (CK_SESSION_HANDLE hSession,
250                                                                 CK_BYTE_PTR pPart,
251                                                                 CK_ULONG ulPartLen);
252
253 CK_RV               mock_unsupported_C_VerifyFinal             (CK_SESSION_HANDLE hSession,
254                                                                 CK_BYTE_PTR pSignature,
255                                                                 CK_ULONG pulSignatureLen);
256
257 CK_RV               mock_unsupported_C_VerifyRecoverInit       (CK_SESSION_HANDLE hSession,
258                                                                 CK_MECHANISM_PTR pMechanism,
259                                                                 CK_OBJECT_HANDLE hKey);
260
261 CK_RV               mock_unsupported_C_VerifyRecover           (CK_SESSION_HANDLE hSession,
262                                                                 CK_BYTE_PTR pSignature,
263                                                                 CK_ULONG pulSignatureLen,
264                                                                 CK_BYTE_PTR pData,
265                                                                 CK_ULONG_PTR pulDataLen);
266
267 CK_RV               mock_unsupported_C_DigestEncryptUpdate     (CK_SESSION_HANDLE hSession,
268                                                                 CK_BYTE_PTR pPart,
269                                                                 CK_ULONG ulPartLen,
270                                                                 CK_BYTE_PTR pEncryptedPart,
271                                                                 CK_ULONG_PTR ulEncryptedPartLen);
272
273 CK_RV               mock_unsupported_C_DecryptDigestUpdate     (CK_SESSION_HANDLE hSession,
274                                                                 CK_BYTE_PTR pEncryptedPart,
275                                                                 CK_ULONG ulEncryptedPartLen,
276                                                                 CK_BYTE_PTR pPart,
277                                                                 CK_ULONG_PTR pulPartLen);
278
279 CK_RV               mock_unsupported_C_SignEncryptUpdate       (CK_SESSION_HANDLE hSession,
280                                                                 CK_BYTE_PTR pPart,
281                                                                 CK_ULONG ulPartLen,
282                                                                 CK_BYTE_PTR pEncryptedPart,
283                                                                 CK_ULONG_PTR ulEncryptedPartLen);
284
285 CK_RV               mock_unsupported_C_DecryptVerifyUpdate     (CK_SESSION_HANDLE hSession,
286                                                                 CK_BYTE_PTR pEncryptedPart,
287                                                                 CK_ULONG ulEncryptedPartLen,
288                                                                 CK_BYTE_PTR pPart,
289                                                                 CK_ULONG_PTR pulPartLen);
290
291 CK_RV               mock_unsupported_C_GenerateKey             (CK_SESSION_HANDLE hSession,
292                                                                 CK_MECHANISM_PTR pMechanism,
293                                                                 CK_ATTRIBUTE_PTR pTemplate,
294                                                                 CK_ULONG ulCount,
295                                                                 CK_OBJECT_HANDLE_PTR phKey);
296
297 CK_RV               mock_no_mechanisms_C_GenerateKeyPair         (CK_SESSION_HANDLE hSession,
298                                                                 CK_MECHANISM_PTR pMechanism,
299                                                                 CK_ATTRIBUTE_PTR pPublicKeyTemplate,
300                                                                 CK_ULONG ulPublicKeyAttributeCount,
301                                                                 CK_ATTRIBUTE_PTR pPrivateKeyTemplate,
302                                                                 CK_ULONG ulPrivateKeyAttributeCount,
303                                                                 CK_OBJECT_HANDLE_PTR phPublicKey,
304                                                                 CK_OBJECT_HANDLE_PTR phPrivateKey);
305
306 CK_RV               mock_no_mechanisms_C_WrapKey                 (CK_SESSION_HANDLE hSession,
307                                                                 CK_MECHANISM_PTR pMechanism,
308                                                                 CK_OBJECT_HANDLE hWrappingKey,
309                                                                 CK_OBJECT_HANDLE hKey,
310                                                                 CK_BYTE_PTR pWrappedKey,
311                                                                 CK_ULONG_PTR pulWrappedKeyLen);
312
313 CK_RV               mock_no_mechanisms_C_UnwrapKey               (CK_SESSION_HANDLE hSession,
314                                                                 CK_MECHANISM_PTR pMechanism,
315                                                                 CK_OBJECT_HANDLE pUnwrappingKey,
316                                                                 CK_BYTE_PTR pWrappedKey,
317                                                                 CK_ULONG pulWrappedKeyLen,
318                                                                 CK_ATTRIBUTE_PTR pTemplate,
319                                                                 CK_ULONG ulCount,
320                                                                 CK_OBJECT_HANDLE_PTR phKey);
321
322 CK_RV               mock_no_mechanisms_C_DeriveKey               (CK_SESSION_HANDLE hSession,
323                                                                 CK_MECHANISM_PTR pMechanism,
324                                                                 CK_OBJECT_HANDLE hBaseKey,
325                                                                 CK_ATTRIBUTE_PTR pTemplate,
326                                                                 CK_ULONG ulCount,
327                                                                 CK_OBJECT_HANDLE_PTR phKey);
328
329 CK_RV               mock_unsupported_C_SeedRandom              (CK_SESSION_HANDLE hSession,
330                                                                 CK_BYTE_PTR pSeed,
331                                                                 CK_ULONG ulSeedLen);
332
333 CK_RV               mock_unsupported_C_GenerateRandom          (CK_SESSION_HANDLE hSession,
334                                                                 CK_BYTE_PTR pRandomData,
335                                                                 CK_ULONG ulRandomLen);
336
337 CK_OBJECT_HANDLE    mock_module_add_certificate                (GcrCertificate *cert);
338
339 CK_OBJECT_HANDLE    mock_module_add_assertion                  (GcrCertificate *cert,
340                                                                 CK_X_ASSERTION_TYPE assertion_type,
341                                                                 const gchar *purpose,
342                                                                 const gchar *peer);
343
344 #define MOCK_SLOT_ONE_ID  1
345 #define MOCK_SLOT_ONE_URI "pkcs11:manufacturer=MOCK%20MANUFACTURER;serial=MOCK%20SERIAL"
346
347 #endif /* MOCK_MODULE_H */