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