Help: Use stable 'if' namespace instead of experimental
[empathy-mirror.git] / tests / mock-pkcs11.h
blobc2dda9ad3edc3de1bfa72b8383d511652a9a8752
1 /*
2 * Copyright (C) 2010-2012 Stefan Walter
3 * Copyright (C) 2011 Collabora Ltd.
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.
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.
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
20 #include <gck/pkcs11x.h>
21 #include <gcr/gcr.h>
23 #ifndef MOCK_MODULE_H
24 #define MOCK_MODULE_H
26 extern CK_FUNCTION_LIST mock_default_functions;
28 CK_RV mock_C_Initialize (CK_VOID_PTR pInitArgs);
30 CK_RV mock_C_Finalize (CK_VOID_PTR pReserved);
32 CK_RV mock_C_GetInfo (CK_INFO_PTR pInfo);
34 CK_RV mock_C_GetFunctionList (CK_FUNCTION_LIST_PTR_PTR list);
36 CK_RV mock_C_GetSlotList (CK_BBOOL tokenPresent,
37 CK_SLOT_ID_PTR pSlotList,
38 CK_ULONG_PTR pulCount);
40 CK_RV mock_C_GetSlotInfo (CK_SLOT_ID slotID,
41 CK_SLOT_INFO_PTR pInfo);
43 CK_RV mock_C_GetTokenInfo (CK_SLOT_ID slotID,
44 CK_TOKEN_INFO_PTR pInfo);
46 CK_RV mock_C_GetMechanismList (CK_SLOT_ID slotID,
47 CK_MECHANISM_TYPE_PTR pMechanismList,
48 CK_ULONG_PTR pulCount);
50 CK_RV mock_C_GetMechanismInfo (CK_SLOT_ID slotID,
51 CK_MECHANISM_TYPE type,
52 CK_MECHANISM_INFO_PTR pInfo);
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);
59 CK_RV mock_unsupported_C_WaitForSlotEvent (CK_FLAGS flags,
60 CK_SLOT_ID_PTR pSlot,
61 CK_VOID_PTR pReserved);
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);
69 CK_RV mock_C_CloseSession (CK_SESSION_HANDLE hSession);
71 CK_RV mock_C_CloseAllSessions (CK_SLOT_ID slotID);
73 CK_RV mock_C_GetFunctionStatus (CK_SESSION_HANDLE hSession);
75 CK_RV mock_C_CancelFunction (CK_SESSION_HANDLE hSession);
77 CK_RV mock_C_GetSessionInfo (CK_SESSION_HANDLE hSession,
78 CK_SESSION_INFO_PTR pInfo);
80 CK_RV mock_unsupported_C_InitPIN (CK_SESSION_HANDLE hSession,
81 CK_UTF8CHAR_PTR pPin,
82 CK_ULONG ulPinLen);
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);
90 CK_RV mock_unsupported_C_GetOperationState (CK_SESSION_HANDLE hSession,
91 CK_BYTE_PTR pOperationState,
92 CK_ULONG_PTR pulOperationStateLen);
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);
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);
105 CK_RV mock_unsupported_C_Logout (CK_SESSION_HANDLE hSession);
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);
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);
118 CK_RV mock_readonly_C_DestroyObject (CK_SESSION_HANDLE hSession,
119 CK_OBJECT_HANDLE hObject);
121 CK_RV mock_unsupported_C_GetObjectSize (CK_SESSION_HANDLE hSession,
122 CK_OBJECT_HANDLE hObject,
123 CK_ULONG_PTR pulSize);
125 CK_RV mock_C_GetAttributeValue (CK_SESSION_HANDLE hSession,
126 CK_OBJECT_HANDLE hObject,
127 CK_ATTRIBUTE_PTR pTemplate,
128 CK_ULONG ulCount);
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);
135 CK_RV mock_C_FindObjectsInit (CK_SESSION_HANDLE hSession,
136 CK_ATTRIBUTE_PTR pTemplate,
137 CK_ULONG ulCount);
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);
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);
149 CK_RV mock_C_FindObjectsFinal (CK_SESSION_HANDLE hSession);
151 CK_RV mock_no_mechanisms_C_EncryptInit (CK_SESSION_HANDLE hSession,
152 CK_MECHANISM_PTR pMechanism,
153 CK_OBJECT_HANDLE hKey);
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);
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);
167 CK_RV mock_unsupported_C_EncryptFinal (CK_SESSION_HANDLE hSession,
168 CK_BYTE_PTR pLastEncryptedPart,
169 CK_ULONG_PTR pulLastEncryptedPartLen);
171 CK_RV mock_no_mechanisms_C_DecryptInit (CK_SESSION_HANDLE hSession,
172 CK_MECHANISM_PTR pMechanism,
173 CK_OBJECT_HANDLE hKey);
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);
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);
187 CK_RV mock_unsupported_C_DecryptFinal (CK_SESSION_HANDLE hSession,
188 CK_BYTE_PTR pLastPart,
189 CK_ULONG_PTR pulLastPartLen);
191 CK_RV mock_unsupported_C_DigestInit (CK_SESSION_HANDLE hSession,
192 CK_MECHANISM_PTR pMechanism);
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);
200 CK_RV mock_unsupported_C_DigestUpdate (CK_SESSION_HANDLE hSession,
201 CK_BYTE_PTR pPart,
202 CK_ULONG ulPartLen);
204 CK_RV mock_unsupported_C_DigestKey (CK_SESSION_HANDLE hSession,
205 CK_OBJECT_HANDLE hKey);
207 CK_RV mock_unsupported_C_DigestFinal (CK_SESSION_HANDLE hSession,
208 CK_BYTE_PTR pDigest,
209 CK_ULONG_PTR pulDigestLen);
211 CK_RV mock_no_mechanisms_C_SignInit (CK_SESSION_HANDLE hSession,
212 CK_MECHANISM_PTR pMechanism,
213 CK_OBJECT_HANDLE hKey);
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);
221 CK_RV mock_unsupported_C_SignUpdate (CK_SESSION_HANDLE hSession,
222 CK_BYTE_PTR pPart,
223 CK_ULONG ulPartLen);
225 CK_RV mock_unsupported_C_SignFinal (CK_SESSION_HANDLE hSession,
226 CK_BYTE_PTR pSignature,
227 CK_ULONG_PTR pulSignatureLen);
229 CK_RV mock_unsupported_C_SignRecoverInit (CK_SESSION_HANDLE hSession,
230 CK_MECHANISM_PTR pMechanism,
231 CK_OBJECT_HANDLE hKey);
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);
239 CK_RV mock_no_mechanisms_C_VerifyInit (CK_SESSION_HANDLE hSession,
240 CK_MECHANISM_PTR pMechanism,
241 CK_OBJECT_HANDLE hKey);
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);
249 CK_RV mock_unsupported_C_VerifyUpdate (CK_SESSION_HANDLE hSession,
250 CK_BYTE_PTR pPart,
251 CK_ULONG ulPartLen);
253 CK_RV mock_unsupported_C_VerifyFinal (CK_SESSION_HANDLE hSession,
254 CK_BYTE_PTR pSignature,
255 CK_ULONG pulSignatureLen);
257 CK_RV mock_unsupported_C_VerifyRecoverInit (CK_SESSION_HANDLE hSession,
258 CK_MECHANISM_PTR pMechanism,
259 CK_OBJECT_HANDLE hKey);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
329 CK_RV mock_unsupported_C_SeedRandom (CK_SESSION_HANDLE hSession,
330 CK_BYTE_PTR pSeed,
331 CK_ULONG ulSeedLen);
333 CK_RV mock_unsupported_C_GenerateRandom (CK_SESSION_HANDLE hSession,
334 CK_BYTE_PTR pRandomData,
335 CK_ULONG ulRandomLen);
337 CK_OBJECT_HANDLE mock_module_add_certificate (GcrCertificate *cert);
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);
344 #define MOCK_SLOT_ONE_ID 1
345 #define MOCK_SLOT_ONE_URI "pkcs11:manufacturer=MOCK%20MANUFACTURER;serial=MOCK%20SERIAL"
347 #endif /* MOCK_MODULE_H */