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