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