/src/p11-kit/p11-kit/virtual-base-generated.h
Line | Count | Source |
1 | | |
2 | | /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ |
3 | | |
4 | | static CK_RV |
5 | | base_C_Initialize (CK_X_FUNCTION_LIST *self, |
6 | | CK_VOID_PTR init_args) |
7 | 142 | { |
8 | 142 | p11_virtual *virt = (p11_virtual *)self; |
9 | 142 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
10 | 142 | return funcs->C_Initialize (init_args); |
11 | 142 | } |
12 | | |
13 | | static CK_RV |
14 | | base_C_Finalize (CK_X_FUNCTION_LIST *self, |
15 | | CK_VOID_PTR pReserved) |
16 | 0 | { |
17 | 0 | p11_virtual *virt = (p11_virtual *)self; |
18 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
19 | 0 | return funcs->C_Finalize (pReserved); |
20 | 0 | } |
21 | | |
22 | | static CK_RV |
23 | | base_C_GetInfo (CK_X_FUNCTION_LIST *self, |
24 | | CK_INFO_PTR pInfo) |
25 | 0 | { |
26 | 0 | p11_virtual *virt = (p11_virtual *)self; |
27 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
28 | 0 | return funcs->C_GetInfo (pInfo); |
29 | 0 | } |
30 | | |
31 | | static CK_RV |
32 | | base_C_GetSlotList (CK_X_FUNCTION_LIST *self, |
33 | | unsigned char token_present, |
34 | | CK_SLOT_ID_PTR slot_list, |
35 | | long unsigned int * ulCount) |
36 | 0 | { |
37 | 0 | p11_virtual *virt = (p11_virtual *)self; |
38 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
39 | 0 | return funcs->C_GetSlotList (token_present, |
40 | 0 | slot_list, |
41 | 0 | ulCount); |
42 | 0 | } |
43 | | |
44 | | static CK_RV |
45 | | base_C_GetSlotInfo (CK_X_FUNCTION_LIST *self, |
46 | | CK_SLOT_ID slotID, |
47 | | CK_SLOT_INFO_PTR pInfo) |
48 | 0 | { |
49 | 0 | p11_virtual *virt = (p11_virtual *)self; |
50 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
51 | 0 | return funcs->C_GetSlotInfo (slotID, |
52 | 0 | pInfo); |
53 | 0 | } |
54 | | |
55 | | static CK_RV |
56 | | base_C_GetTokenInfo (CK_X_FUNCTION_LIST *self, |
57 | | CK_SLOT_ID slotID, |
58 | | CK_TOKEN_INFO_PTR pInfo) |
59 | 0 | { |
60 | 0 | p11_virtual *virt = (p11_virtual *)self; |
61 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
62 | 0 | return funcs->C_GetTokenInfo (slotID, |
63 | 0 | pInfo); |
64 | 0 | } |
65 | | |
66 | | static CK_RV |
67 | | base_C_GetMechanismList (CK_X_FUNCTION_LIST *self, |
68 | | CK_SLOT_ID slotID, |
69 | | CK_MECHANISM_TYPE_PTR mechanism_list, |
70 | | long unsigned int * ulCount) |
71 | 0 | { |
72 | 0 | p11_virtual *virt = (p11_virtual *)self; |
73 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
74 | 0 | return funcs->C_GetMechanismList (slotID, |
75 | 0 | mechanism_list, |
76 | 0 | ulCount); |
77 | 0 | } |
78 | | |
79 | | static CK_RV |
80 | | base_C_GetMechanismInfo (CK_X_FUNCTION_LIST *self, |
81 | | CK_SLOT_ID slotID, |
82 | | CK_MECHANISM_TYPE type, |
83 | | CK_MECHANISM_INFO_PTR pInfo) |
84 | 0 | { |
85 | 0 | p11_virtual *virt = (p11_virtual *)self; |
86 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
87 | 0 | return funcs->C_GetMechanismInfo (slotID, |
88 | 0 | type, |
89 | 0 | pInfo); |
90 | 0 | } |
91 | | |
92 | | static CK_RV |
93 | | base_C_InitToken (CK_X_FUNCTION_LIST *self, |
94 | | CK_SLOT_ID slotID, |
95 | | unsigned char * pin, |
96 | | long unsigned int pin_len, |
97 | | unsigned char * label) |
98 | 0 | { |
99 | 0 | p11_virtual *virt = (p11_virtual *)self; |
100 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
101 | 0 | return funcs->C_InitToken (slotID, |
102 | 0 | pin, |
103 | 0 | pin_len, |
104 | 0 | label); |
105 | 0 | } |
106 | | |
107 | | static CK_RV |
108 | | base_C_InitPIN (CK_X_FUNCTION_LIST *self, |
109 | | CK_SESSION_HANDLE session, |
110 | | unsigned char * pin, |
111 | | long unsigned int pin_len) |
112 | 0 | { |
113 | 0 | p11_virtual *virt = (p11_virtual *)self; |
114 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
115 | 0 | return funcs->C_InitPIN (session, |
116 | 0 | pin, |
117 | 0 | pin_len); |
118 | 0 | } |
119 | | |
120 | | static CK_RV |
121 | | base_C_SetPIN (CK_X_FUNCTION_LIST *self, |
122 | | CK_SESSION_HANDLE session, |
123 | | unsigned char * old_pin, |
124 | | long unsigned int old_len, |
125 | | unsigned char * new_pin, |
126 | | long unsigned int new_len) |
127 | 0 | { |
128 | 0 | p11_virtual *virt = (p11_virtual *)self; |
129 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
130 | 0 | return funcs->C_SetPIN (session, |
131 | 0 | old_pin, |
132 | 0 | old_len, |
133 | 0 | new_pin, |
134 | 0 | new_len); |
135 | 0 | } |
136 | | |
137 | | static CK_RV |
138 | | base_C_OpenSession (CK_X_FUNCTION_LIST *self, |
139 | | CK_SLOT_ID slotID, |
140 | | CK_FLAGS flags, |
141 | | CK_VOID_PTR application, |
142 | | CK_NOTIFY notify, |
143 | | CK_SESSION_HANDLE_PTR session) |
144 | 0 | { |
145 | 0 | p11_virtual *virt = (p11_virtual *)self; |
146 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
147 | 0 | return funcs->C_OpenSession (slotID, |
148 | 0 | flags, |
149 | 0 | application, |
150 | 0 | notify, |
151 | 0 | session); |
152 | 0 | } |
153 | | |
154 | | static CK_RV |
155 | | base_C_CloseSession (CK_X_FUNCTION_LIST *self, |
156 | | CK_SESSION_HANDLE session) |
157 | 0 | { |
158 | 0 | p11_virtual *virt = (p11_virtual *)self; |
159 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
160 | 0 | return funcs->C_CloseSession (session); |
161 | 0 | } |
162 | | |
163 | | static CK_RV |
164 | | base_C_CloseAllSessions (CK_X_FUNCTION_LIST *self, |
165 | | CK_SLOT_ID slotID) |
166 | 0 | { |
167 | 0 | p11_virtual *virt = (p11_virtual *)self; |
168 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
169 | 0 | return funcs->C_CloseAllSessions (slotID); |
170 | 0 | } |
171 | | |
172 | | static CK_RV |
173 | | base_C_GetSessionInfo (CK_X_FUNCTION_LIST *self, |
174 | | CK_SESSION_HANDLE session, |
175 | | CK_SESSION_INFO_PTR pInfo) |
176 | 0 | { |
177 | 0 | p11_virtual *virt = (p11_virtual *)self; |
178 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
179 | 0 | return funcs->C_GetSessionInfo (session, |
180 | 0 | pInfo); |
181 | 0 | } |
182 | | |
183 | | static CK_RV |
184 | | base_C_GetOperationState (CK_X_FUNCTION_LIST *self, |
185 | | CK_SESSION_HANDLE session, |
186 | | unsigned char * operation_state, |
187 | | long unsigned int * operation_state_len) |
188 | 0 | { |
189 | 0 | p11_virtual *virt = (p11_virtual *)self; |
190 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
191 | 0 | return funcs->C_GetOperationState (session, |
192 | 0 | operation_state, |
193 | 0 | operation_state_len); |
194 | 0 | } |
195 | | |
196 | | static CK_RV |
197 | | base_C_SetOperationState (CK_X_FUNCTION_LIST *self, |
198 | | CK_SESSION_HANDLE session, |
199 | | unsigned char * operation_state, |
200 | | long unsigned int operation_state_len, |
201 | | CK_OBJECT_HANDLE encryption_key, |
202 | | CK_OBJECT_HANDLE authentication_key) |
203 | 0 | { |
204 | 0 | p11_virtual *virt = (p11_virtual *)self; |
205 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
206 | 0 | return funcs->C_SetOperationState (session, |
207 | 0 | operation_state, |
208 | 0 | operation_state_len, |
209 | 0 | encryption_key, |
210 | 0 | authentication_key); |
211 | 0 | } |
212 | | |
213 | | static CK_RV |
214 | | base_C_Login (CK_X_FUNCTION_LIST *self, |
215 | | CK_SESSION_HANDLE session, |
216 | | CK_USER_TYPE user_type, |
217 | | unsigned char * pin, |
218 | | long unsigned int pin_len) |
219 | 0 | { |
220 | 0 | p11_virtual *virt = (p11_virtual *)self; |
221 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
222 | 0 | return funcs->C_Login (session, |
223 | 0 | user_type, |
224 | 0 | pin, |
225 | 0 | pin_len); |
226 | 0 | } |
227 | | |
228 | | static CK_RV |
229 | | base_C_Logout (CK_X_FUNCTION_LIST *self, |
230 | | CK_SESSION_HANDLE session) |
231 | 0 | { |
232 | 0 | p11_virtual *virt = (p11_virtual *)self; |
233 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
234 | 0 | return funcs->C_Logout (session); |
235 | 0 | } |
236 | | |
237 | | static CK_RV |
238 | | base_C_CreateObject (CK_X_FUNCTION_LIST *self, |
239 | | CK_SESSION_HANDLE session, |
240 | | CK_ATTRIBUTE_PTR pTemplate, |
241 | | long unsigned int ulCount, |
242 | | CK_OBJECT_HANDLE_PTR object) |
243 | 2 | { |
244 | 2 | p11_virtual *virt = (p11_virtual *)self; |
245 | 2 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
246 | 2 | return funcs->C_CreateObject (session, |
247 | 2 | pTemplate, |
248 | 2 | ulCount, |
249 | 2 | object); |
250 | 2 | } |
251 | | |
252 | | static CK_RV |
253 | | base_C_CopyObject (CK_X_FUNCTION_LIST *self, |
254 | | CK_SESSION_HANDLE session, |
255 | | CK_OBJECT_HANDLE object, |
256 | | CK_ATTRIBUTE_PTR pTemplate, |
257 | | long unsigned int ulCount, |
258 | | CK_OBJECT_HANDLE_PTR new_object) |
259 | 0 | { |
260 | 0 | p11_virtual *virt = (p11_virtual *)self; |
261 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
262 | 0 | return funcs->C_CopyObject (session, |
263 | 0 | object, |
264 | 0 | pTemplate, |
265 | 0 | ulCount, |
266 | 0 | new_object); |
267 | 0 | } |
268 | | |
269 | | static CK_RV |
270 | | base_C_DestroyObject (CK_X_FUNCTION_LIST *self, |
271 | | CK_SESSION_HANDLE session, |
272 | | CK_OBJECT_HANDLE object) |
273 | 0 | { |
274 | 0 | p11_virtual *virt = (p11_virtual *)self; |
275 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
276 | 0 | return funcs->C_DestroyObject (session, |
277 | 0 | object); |
278 | 0 | } |
279 | | |
280 | | static CK_RV |
281 | | base_C_GetObjectSize (CK_X_FUNCTION_LIST *self, |
282 | | CK_SESSION_HANDLE session, |
283 | | CK_OBJECT_HANDLE object, |
284 | | long unsigned int * size) |
285 | 0 | { |
286 | 0 | p11_virtual *virt = (p11_virtual *)self; |
287 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
288 | 0 | return funcs->C_GetObjectSize (session, |
289 | 0 | object, |
290 | 0 | size); |
291 | 0 | } |
292 | | |
293 | | static CK_RV |
294 | | base_C_GetAttributeValue (CK_X_FUNCTION_LIST *self, |
295 | | CK_SESSION_HANDLE session, |
296 | | CK_OBJECT_HANDLE object, |
297 | | CK_ATTRIBUTE_PTR pTemplate, |
298 | | long unsigned int ulCount) |
299 | 1 | { |
300 | 1 | p11_virtual *virt = (p11_virtual *)self; |
301 | 1 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
302 | 1 | return funcs->C_GetAttributeValue (session, |
303 | 1 | object, |
304 | 1 | pTemplate, |
305 | 1 | ulCount); |
306 | 1 | } |
307 | | |
308 | | static CK_RV |
309 | | base_C_SetAttributeValue (CK_X_FUNCTION_LIST *self, |
310 | | CK_SESSION_HANDLE session, |
311 | | CK_OBJECT_HANDLE object, |
312 | | CK_ATTRIBUTE_PTR pTemplate, |
313 | | long unsigned int ulCount) |
314 | 0 | { |
315 | 0 | p11_virtual *virt = (p11_virtual *)self; |
316 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
317 | 0 | return funcs->C_SetAttributeValue (session, |
318 | 0 | object, |
319 | 0 | pTemplate, |
320 | 0 | ulCount); |
321 | 0 | } |
322 | | |
323 | | static CK_RV |
324 | | base_C_FindObjectsInit (CK_X_FUNCTION_LIST *self, |
325 | | CK_SESSION_HANDLE session, |
326 | | CK_ATTRIBUTE_PTR pTemplate, |
327 | | long unsigned int ulCount) |
328 | 0 | { |
329 | 0 | p11_virtual *virt = (p11_virtual *)self; |
330 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
331 | 0 | return funcs->C_FindObjectsInit (session, |
332 | 0 | pTemplate, |
333 | 0 | ulCount); |
334 | 0 | } |
335 | | |
336 | | static CK_RV |
337 | | base_C_FindObjects (CK_X_FUNCTION_LIST *self, |
338 | | CK_SESSION_HANDLE session, |
339 | | CK_OBJECT_HANDLE_PTR object, |
340 | | long unsigned int max_object_count, |
341 | | long unsigned int * object_count) |
342 | 0 | { |
343 | 0 | p11_virtual *virt = (p11_virtual *)self; |
344 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
345 | 0 | return funcs->C_FindObjects (session, |
346 | 0 | object, |
347 | 0 | max_object_count, |
348 | 0 | object_count); |
349 | 0 | } |
350 | | |
351 | | static CK_RV |
352 | | base_C_FindObjectsFinal (CK_X_FUNCTION_LIST *self, |
353 | | CK_SESSION_HANDLE session) |
354 | 0 | { |
355 | 0 | p11_virtual *virt = (p11_virtual *)self; |
356 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
357 | 0 | return funcs->C_FindObjectsFinal (session); |
358 | 0 | } |
359 | | |
360 | | static CK_RV |
361 | | base_C_EncryptInit (CK_X_FUNCTION_LIST *self, |
362 | | CK_SESSION_HANDLE session, |
363 | | CK_MECHANISM_PTR mechanism, |
364 | | CK_OBJECT_HANDLE hKey) |
365 | 0 | { |
366 | 0 | p11_virtual *virt = (p11_virtual *)self; |
367 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
368 | 0 | return funcs->C_EncryptInit (session, |
369 | 0 | mechanism, |
370 | 0 | hKey); |
371 | 0 | } |
372 | | |
373 | | static CK_RV |
374 | | base_C_Encrypt (CK_X_FUNCTION_LIST *self, |
375 | | CK_SESSION_HANDLE session, |
376 | | unsigned char * data, |
377 | | long unsigned int ulDataLen, |
378 | | unsigned char * encrypted_data, |
379 | | long unsigned int * encrypted_data_len) |
380 | 0 | { |
381 | 0 | p11_virtual *virt = (p11_virtual *)self; |
382 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
383 | 0 | return funcs->C_Encrypt (session, |
384 | 0 | data, |
385 | 0 | ulDataLen, |
386 | 0 | encrypted_data, |
387 | 0 | encrypted_data_len); |
388 | 0 | } |
389 | | |
390 | | static CK_RV |
391 | | base_C_EncryptUpdate (CK_X_FUNCTION_LIST *self, |
392 | | CK_SESSION_HANDLE session, |
393 | | unsigned char * part, |
394 | | long unsigned int part_len, |
395 | | unsigned char * encrypted_part, |
396 | | long unsigned int * encrypted_part_len) |
397 | 0 | { |
398 | 0 | p11_virtual *virt = (p11_virtual *)self; |
399 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
400 | 0 | return funcs->C_EncryptUpdate (session, |
401 | 0 | part, |
402 | 0 | part_len, |
403 | 0 | encrypted_part, |
404 | 0 | encrypted_part_len); |
405 | 0 | } |
406 | | |
407 | | static CK_RV |
408 | | base_C_EncryptFinal (CK_X_FUNCTION_LIST *self, |
409 | | CK_SESSION_HANDLE session, |
410 | | unsigned char * last_encrypted_part, |
411 | | long unsigned int * last_encrypted_part_len) |
412 | 0 | { |
413 | 0 | p11_virtual *virt = (p11_virtual *)self; |
414 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
415 | 0 | return funcs->C_EncryptFinal (session, |
416 | 0 | last_encrypted_part, |
417 | 0 | last_encrypted_part_len); |
418 | 0 | } |
419 | | |
420 | | static CK_RV |
421 | | base_C_DecryptInit (CK_X_FUNCTION_LIST *self, |
422 | | CK_SESSION_HANDLE session, |
423 | | CK_MECHANISM_PTR mechanism, |
424 | | CK_OBJECT_HANDLE hKey) |
425 | 2 | { |
426 | 2 | p11_virtual *virt = (p11_virtual *)self; |
427 | 2 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
428 | 2 | return funcs->C_DecryptInit (session, |
429 | 2 | mechanism, |
430 | 2 | hKey); |
431 | 2 | } |
432 | | |
433 | | static CK_RV |
434 | | base_C_Decrypt (CK_X_FUNCTION_LIST *self, |
435 | | CK_SESSION_HANDLE session, |
436 | | unsigned char * encrypted_data, |
437 | | long unsigned int encrypted_data_len, |
438 | | unsigned char * data, |
439 | | long unsigned int * ulDataLen) |
440 | 0 | { |
441 | 0 | p11_virtual *virt = (p11_virtual *)self; |
442 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
443 | 0 | return funcs->C_Decrypt (session, |
444 | 0 | encrypted_data, |
445 | 0 | encrypted_data_len, |
446 | 0 | data, |
447 | 0 | ulDataLen); |
448 | 0 | } |
449 | | |
450 | | static CK_RV |
451 | | base_C_DecryptUpdate (CK_X_FUNCTION_LIST *self, |
452 | | CK_SESSION_HANDLE session, |
453 | | unsigned char * encrypted_part, |
454 | | long unsigned int encrypted_part_len, |
455 | | unsigned char * part, |
456 | | long unsigned int * part_len) |
457 | 0 | { |
458 | 0 | p11_virtual *virt = (p11_virtual *)self; |
459 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
460 | 0 | return funcs->C_DecryptUpdate (session, |
461 | 0 | encrypted_part, |
462 | 0 | encrypted_part_len, |
463 | 0 | part, |
464 | 0 | part_len); |
465 | 0 | } |
466 | | |
467 | | static CK_RV |
468 | | base_C_DecryptFinal (CK_X_FUNCTION_LIST *self, |
469 | | CK_SESSION_HANDLE session, |
470 | | unsigned char * last_part, |
471 | | long unsigned int * last_part_len) |
472 | 0 | { |
473 | 0 | p11_virtual *virt = (p11_virtual *)self; |
474 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
475 | 0 | return funcs->C_DecryptFinal (session, |
476 | 0 | last_part, |
477 | 0 | last_part_len); |
478 | 0 | } |
479 | | |
480 | | static CK_RV |
481 | | base_C_DigestInit (CK_X_FUNCTION_LIST *self, |
482 | | CK_SESSION_HANDLE session, |
483 | | CK_MECHANISM_PTR mechanism) |
484 | 35 | { |
485 | 35 | p11_virtual *virt = (p11_virtual *)self; |
486 | 35 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
487 | 35 | return funcs->C_DigestInit (session, |
488 | 35 | mechanism); |
489 | 35 | } |
490 | | |
491 | | static CK_RV |
492 | | base_C_Digest (CK_X_FUNCTION_LIST *self, |
493 | | CK_SESSION_HANDLE session, |
494 | | unsigned char * data, |
495 | | long unsigned int ulDataLen, |
496 | | unsigned char * digest, |
497 | | long unsigned int * digest_len) |
498 | 0 | { |
499 | 0 | p11_virtual *virt = (p11_virtual *)self; |
500 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
501 | 0 | return funcs->C_Digest (session, |
502 | 0 | data, |
503 | 0 | ulDataLen, |
504 | 0 | digest, |
505 | 0 | digest_len); |
506 | 0 | } |
507 | | |
508 | | static CK_RV |
509 | | base_C_DigestUpdate (CK_X_FUNCTION_LIST *self, |
510 | | CK_SESSION_HANDLE session, |
511 | | unsigned char * part, |
512 | | long unsigned int part_len) |
513 | 0 | { |
514 | 0 | p11_virtual *virt = (p11_virtual *)self; |
515 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
516 | 0 | return funcs->C_DigestUpdate (session, |
517 | 0 | part, |
518 | 0 | part_len); |
519 | 0 | } |
520 | | |
521 | | static CK_RV |
522 | | base_C_DigestKey (CK_X_FUNCTION_LIST *self, |
523 | | CK_SESSION_HANDLE session, |
524 | | CK_OBJECT_HANDLE hKey) |
525 | 0 | { |
526 | 0 | p11_virtual *virt = (p11_virtual *)self; |
527 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
528 | 0 | return funcs->C_DigestKey (session, |
529 | 0 | hKey); |
530 | 0 | } |
531 | | |
532 | | static CK_RV |
533 | | base_C_DigestFinal (CK_X_FUNCTION_LIST *self, |
534 | | CK_SESSION_HANDLE session, |
535 | | unsigned char * digest, |
536 | | long unsigned int * digest_len) |
537 | 0 | { |
538 | 0 | p11_virtual *virt = (p11_virtual *)self; |
539 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
540 | 0 | return funcs->C_DigestFinal (session, |
541 | 0 | digest, |
542 | 0 | digest_len); |
543 | 0 | } |
544 | | |
545 | | static CK_RV |
546 | | base_C_SignInit (CK_X_FUNCTION_LIST *self, |
547 | | CK_SESSION_HANDLE session, |
548 | | CK_MECHANISM_PTR mechanism, |
549 | | CK_OBJECT_HANDLE hKey) |
550 | 0 | { |
551 | 0 | p11_virtual *virt = (p11_virtual *)self; |
552 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
553 | 0 | return funcs->C_SignInit (session, |
554 | 0 | mechanism, |
555 | 0 | hKey); |
556 | 0 | } |
557 | | |
558 | | static CK_RV |
559 | | base_C_Sign (CK_X_FUNCTION_LIST *self, |
560 | | CK_SESSION_HANDLE session, |
561 | | unsigned char * data, |
562 | | long unsigned int ulDataLen, |
563 | | unsigned char * signature, |
564 | | long unsigned int * signature_len) |
565 | 0 | { |
566 | 0 | p11_virtual *virt = (p11_virtual *)self; |
567 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
568 | 0 | return funcs->C_Sign (session, |
569 | 0 | data, |
570 | 0 | ulDataLen, |
571 | 0 | signature, |
572 | 0 | signature_len); |
573 | 0 | } |
574 | | |
575 | | static CK_RV |
576 | | base_C_SignUpdate (CK_X_FUNCTION_LIST *self, |
577 | | CK_SESSION_HANDLE session, |
578 | | unsigned char * part, |
579 | | long unsigned int part_len) |
580 | 0 | { |
581 | 0 | p11_virtual *virt = (p11_virtual *)self; |
582 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
583 | 0 | return funcs->C_SignUpdate (session, |
584 | 0 | part, |
585 | 0 | part_len); |
586 | 0 | } |
587 | | |
588 | | static CK_RV |
589 | | base_C_SignFinal (CK_X_FUNCTION_LIST *self, |
590 | | CK_SESSION_HANDLE session, |
591 | | unsigned char * signature, |
592 | | long unsigned int * signature_len) |
593 | 0 | { |
594 | 0 | p11_virtual *virt = (p11_virtual *)self; |
595 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
596 | 0 | return funcs->C_SignFinal (session, |
597 | 0 | signature, |
598 | 0 | signature_len); |
599 | 0 | } |
600 | | |
601 | | static CK_RV |
602 | | base_C_SignRecoverInit (CK_X_FUNCTION_LIST *self, |
603 | | CK_SESSION_HANDLE session, |
604 | | CK_MECHANISM_PTR mechanism, |
605 | | CK_OBJECT_HANDLE hKey) |
606 | 0 | { |
607 | 0 | p11_virtual *virt = (p11_virtual *)self; |
608 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
609 | 0 | return funcs->C_SignRecoverInit (session, |
610 | 0 | mechanism, |
611 | 0 | hKey); |
612 | 0 | } |
613 | | |
614 | | static CK_RV |
615 | | base_C_SignRecover (CK_X_FUNCTION_LIST *self, |
616 | | CK_SESSION_HANDLE session, |
617 | | unsigned char * data, |
618 | | long unsigned int ulDataLen, |
619 | | unsigned char * signature, |
620 | | long unsigned int * signature_len) |
621 | 0 | { |
622 | 0 | p11_virtual *virt = (p11_virtual *)self; |
623 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
624 | 0 | return funcs->C_SignRecover (session, |
625 | 0 | data, |
626 | 0 | ulDataLen, |
627 | 0 | signature, |
628 | 0 | signature_len); |
629 | 0 | } |
630 | | |
631 | | static CK_RV |
632 | | base_C_VerifyInit (CK_X_FUNCTION_LIST *self, |
633 | | CK_SESSION_HANDLE session, |
634 | | CK_MECHANISM_PTR mechanism, |
635 | | CK_OBJECT_HANDLE hKey) |
636 | 1 | { |
637 | 1 | p11_virtual *virt = (p11_virtual *)self; |
638 | 1 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
639 | 1 | return funcs->C_VerifyInit (session, |
640 | 1 | mechanism, |
641 | 1 | hKey); |
642 | 1 | } |
643 | | |
644 | | static CK_RV |
645 | | base_C_Verify (CK_X_FUNCTION_LIST *self, |
646 | | CK_SESSION_HANDLE session, |
647 | | unsigned char * data, |
648 | | long unsigned int ulDataLen, |
649 | | unsigned char * signature, |
650 | | long unsigned int signature_len) |
651 | 0 | { |
652 | 0 | p11_virtual *virt = (p11_virtual *)self; |
653 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
654 | 0 | return funcs->C_Verify (session, |
655 | 0 | data, |
656 | 0 | ulDataLen, |
657 | 0 | signature, |
658 | 0 | signature_len); |
659 | 0 | } |
660 | | |
661 | | static CK_RV |
662 | | base_C_VerifyUpdate (CK_X_FUNCTION_LIST *self, |
663 | | CK_SESSION_HANDLE session, |
664 | | unsigned char * part, |
665 | | long unsigned int part_len) |
666 | 0 | { |
667 | 0 | p11_virtual *virt = (p11_virtual *)self; |
668 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
669 | 0 | return funcs->C_VerifyUpdate (session, |
670 | 0 | part, |
671 | 0 | part_len); |
672 | 0 | } |
673 | | |
674 | | static CK_RV |
675 | | base_C_VerifyFinal (CK_X_FUNCTION_LIST *self, |
676 | | CK_SESSION_HANDLE session, |
677 | | unsigned char * signature, |
678 | | long unsigned int signature_len) |
679 | 0 | { |
680 | 0 | p11_virtual *virt = (p11_virtual *)self; |
681 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
682 | 0 | return funcs->C_VerifyFinal (session, |
683 | 0 | signature, |
684 | 0 | signature_len); |
685 | 0 | } |
686 | | |
687 | | static CK_RV |
688 | | base_C_VerifyRecoverInit (CK_X_FUNCTION_LIST *self, |
689 | | CK_SESSION_HANDLE session, |
690 | | CK_MECHANISM_PTR mechanism, |
691 | | CK_OBJECT_HANDLE hKey) |
692 | 1 | { |
693 | 1 | p11_virtual *virt = (p11_virtual *)self; |
694 | 1 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
695 | 1 | return funcs->C_VerifyRecoverInit (session, |
696 | 1 | mechanism, |
697 | 1 | hKey); |
698 | 1 | } |
699 | | |
700 | | static CK_RV |
701 | | base_C_VerifyRecover (CK_X_FUNCTION_LIST *self, |
702 | | CK_SESSION_HANDLE session, |
703 | | unsigned char * signature, |
704 | | long unsigned int signature_len, |
705 | | unsigned char * data, |
706 | | long unsigned int * ulDataLen) |
707 | 0 | { |
708 | 0 | p11_virtual *virt = (p11_virtual *)self; |
709 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
710 | 0 | return funcs->C_VerifyRecover (session, |
711 | 0 | signature, |
712 | 0 | signature_len, |
713 | 0 | data, |
714 | 0 | ulDataLen); |
715 | 0 | } |
716 | | |
717 | | static CK_RV |
718 | | base_C_DigestEncryptUpdate (CK_X_FUNCTION_LIST *self, |
719 | | CK_SESSION_HANDLE session, |
720 | | unsigned char * part, |
721 | | long unsigned int part_len, |
722 | | unsigned char * encrypted_part, |
723 | | long unsigned int * encrypted_part_len) |
724 | 0 | { |
725 | 0 | p11_virtual *virt = (p11_virtual *)self; |
726 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
727 | 0 | return funcs->C_DigestEncryptUpdate (session, |
728 | 0 | part, |
729 | 0 | part_len, |
730 | 0 | encrypted_part, |
731 | 0 | encrypted_part_len); |
732 | 0 | } |
733 | | |
734 | | static CK_RV |
735 | | base_C_DecryptDigestUpdate (CK_X_FUNCTION_LIST *self, |
736 | | CK_SESSION_HANDLE session, |
737 | | unsigned char * encrypted_part, |
738 | | long unsigned int encrypted_part_len, |
739 | | unsigned char * part, |
740 | | long unsigned int * part_len) |
741 | 0 | { |
742 | 0 | p11_virtual *virt = (p11_virtual *)self; |
743 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
744 | 0 | return funcs->C_DecryptDigestUpdate (session, |
745 | 0 | encrypted_part, |
746 | 0 | encrypted_part_len, |
747 | 0 | part, |
748 | 0 | part_len); |
749 | 0 | } |
750 | | |
751 | | static CK_RV |
752 | | base_C_SignEncryptUpdate (CK_X_FUNCTION_LIST *self, |
753 | | CK_SESSION_HANDLE session, |
754 | | unsigned char * part, |
755 | | long unsigned int part_len, |
756 | | unsigned char * encrypted_part, |
757 | | long unsigned int * encrypted_part_len) |
758 | 0 | { |
759 | 0 | p11_virtual *virt = (p11_virtual *)self; |
760 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
761 | 0 | return funcs->C_SignEncryptUpdate (session, |
762 | 0 | part, |
763 | 0 | part_len, |
764 | 0 | encrypted_part, |
765 | 0 | encrypted_part_len); |
766 | 0 | } |
767 | | |
768 | | static CK_RV |
769 | | base_C_DecryptVerifyUpdate (CK_X_FUNCTION_LIST *self, |
770 | | CK_SESSION_HANDLE session, |
771 | | unsigned char * encrypted_part, |
772 | | long unsigned int encrypted_part_len, |
773 | | unsigned char * part, |
774 | | long unsigned int * part_len) |
775 | 0 | { |
776 | 0 | p11_virtual *virt = (p11_virtual *)self; |
777 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
778 | 0 | return funcs->C_DecryptVerifyUpdate (session, |
779 | 0 | encrypted_part, |
780 | 0 | encrypted_part_len, |
781 | 0 | part, |
782 | 0 | part_len); |
783 | 0 | } |
784 | | |
785 | | static CK_RV |
786 | | base_C_GenerateKey (CK_X_FUNCTION_LIST *self, |
787 | | CK_SESSION_HANDLE session, |
788 | | CK_MECHANISM_PTR mechanism, |
789 | | CK_ATTRIBUTE_PTR pTemplate, |
790 | | long unsigned int ulCount, |
791 | | CK_OBJECT_HANDLE_PTR hKey) |
792 | 0 | { |
793 | 0 | p11_virtual *virt = (p11_virtual *)self; |
794 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
795 | 0 | return funcs->C_GenerateKey (session, |
796 | 0 | mechanism, |
797 | 0 | pTemplate, |
798 | 0 | ulCount, |
799 | 0 | hKey); |
800 | 0 | } |
801 | | |
802 | | static CK_RV |
803 | | base_C_GenerateKeyPair (CK_X_FUNCTION_LIST *self, |
804 | | CK_SESSION_HANDLE session, |
805 | | CK_MECHANISM_PTR mechanism, |
806 | | CK_ATTRIBUTE_PTR public_key_template, |
807 | | long unsigned int public_key_attribute_count, |
808 | | CK_ATTRIBUTE_PTR private_key_template, |
809 | | long unsigned int private_key_attribute_count, |
810 | | CK_OBJECT_HANDLE_PTR publicKey, |
811 | | CK_OBJECT_HANDLE_PTR private_key) |
812 | 2 | { |
813 | 2 | p11_virtual *virt = (p11_virtual *)self; |
814 | 2 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
815 | 2 | return funcs->C_GenerateKeyPair (session, |
816 | 2 | mechanism, |
817 | 2 | public_key_template, |
818 | 2 | public_key_attribute_count, |
819 | 2 | private_key_template, |
820 | 2 | private_key_attribute_count, |
821 | 2 | publicKey, |
822 | 2 | private_key); |
823 | 2 | } |
824 | | |
825 | | static CK_RV |
826 | | base_C_WrapKey (CK_X_FUNCTION_LIST *self, |
827 | | CK_SESSION_HANDLE session, |
828 | | CK_MECHANISM_PTR mechanism, |
829 | | CK_OBJECT_HANDLE wrapping_key, |
830 | | CK_OBJECT_HANDLE hKey, |
831 | | unsigned char * wrapped_key, |
832 | | long unsigned int * wrapped_key_len) |
833 | 0 | { |
834 | 0 | p11_virtual *virt = (p11_virtual *)self; |
835 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
836 | 0 | return funcs->C_WrapKey (session, |
837 | 0 | mechanism, |
838 | 0 | wrapping_key, |
839 | 0 | hKey, |
840 | 0 | wrapped_key, |
841 | 0 | wrapped_key_len); |
842 | 0 | } |
843 | | |
844 | | static CK_RV |
845 | | base_C_UnwrapKey (CK_X_FUNCTION_LIST *self, |
846 | | CK_SESSION_HANDLE session, |
847 | | CK_MECHANISM_PTR mechanism, |
848 | | CK_OBJECT_HANDLE unwrapping_key, |
849 | | unsigned char * wrapped_key, |
850 | | long unsigned int wrapped_key_len, |
851 | | CK_ATTRIBUTE_PTR pTemplate, |
852 | | long unsigned int ulAttributeCount, |
853 | | CK_OBJECT_HANDLE_PTR hKey) |
854 | 2 | { |
855 | 2 | p11_virtual *virt = (p11_virtual *)self; |
856 | 2 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
857 | 2 | return funcs->C_UnwrapKey (session, |
858 | 2 | mechanism, |
859 | 2 | unwrapping_key, |
860 | 2 | wrapped_key, |
861 | 2 | wrapped_key_len, |
862 | 2 | pTemplate, |
863 | 2 | ulAttributeCount, |
864 | 2 | hKey); |
865 | 2 | } |
866 | | |
867 | | static CK_RV |
868 | | base_C_DeriveKey (CK_X_FUNCTION_LIST *self, |
869 | | CK_SESSION_HANDLE session, |
870 | | CK_MECHANISM_PTR mechanism, |
871 | | CK_OBJECT_HANDLE base_key, |
872 | | CK_ATTRIBUTE_PTR pTemplate, |
873 | | long unsigned int ulAttributeCount, |
874 | | CK_OBJECT_HANDLE_PTR hKey) |
875 | 0 | { |
876 | 0 | p11_virtual *virt = (p11_virtual *)self; |
877 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
878 | 0 | return funcs->C_DeriveKey (session, |
879 | 0 | mechanism, |
880 | 0 | base_key, |
881 | 0 | pTemplate, |
882 | 0 | ulAttributeCount, |
883 | 0 | hKey); |
884 | 0 | } |
885 | | |
886 | | static CK_RV |
887 | | base_C_SeedRandom (CK_X_FUNCTION_LIST *self, |
888 | | CK_SESSION_HANDLE session, |
889 | | unsigned char * seed, |
890 | | long unsigned int ulSeedLen) |
891 | 3 | { |
892 | 3 | p11_virtual *virt = (p11_virtual *)self; |
893 | 3 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
894 | 3 | return funcs->C_SeedRandom (session, |
895 | 3 | seed, |
896 | 3 | ulSeedLen); |
897 | 3 | } |
898 | | |
899 | | static CK_RV |
900 | | base_C_GenerateRandom (CK_X_FUNCTION_LIST *self, |
901 | | CK_SESSION_HANDLE session, |
902 | | unsigned char * random_data, |
903 | | long unsigned int ulRandomLen) |
904 | 0 | { |
905 | 0 | p11_virtual *virt = (p11_virtual *)self; |
906 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
907 | 0 | return funcs->C_GenerateRandom (session, |
908 | 0 | random_data, |
909 | 0 | ulRandomLen); |
910 | 0 | } |
911 | | |
912 | | static CK_RV |
913 | | base_C_WaitForSlotEvent (CK_X_FUNCTION_LIST *self, |
914 | | CK_FLAGS flags, |
915 | | CK_SLOT_ID_PTR slot, |
916 | | CK_VOID_PTR pReserved) |
917 | 0 | { |
918 | 0 | p11_virtual *virt = (p11_virtual *)self; |
919 | 0 | CK_FUNCTION_LIST *funcs = virt->lower_module; |
920 | 0 | return funcs->C_WaitForSlotEvent (flags, |
921 | 0 | slot, |
922 | 0 | pReserved); |
923 | 0 | } |
924 | | |
925 | | static CK_RV |
926 | | base_C_LoginUser (CK_X_FUNCTION_LIST *self, |
927 | | CK_SESSION_HANDLE session, |
928 | | CK_USER_TYPE user_type, |
929 | | unsigned char * pin, |
930 | | long unsigned int pin_len, |
931 | | unsigned char * username, |
932 | | long unsigned int username_len) |
933 | 0 | { |
934 | 0 | p11_virtual *virt = (p11_virtual *)self; |
935 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
936 | 0 | if (funcs->version.major < 3) |
937 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
938 | 0 | return funcs->C_LoginUser (session, |
939 | 0 | user_type, |
940 | 0 | pin, |
941 | 0 | pin_len, |
942 | 0 | username, |
943 | 0 | username_len); |
944 | 0 | } |
945 | | |
946 | | static CK_RV |
947 | | base_C_SessionCancel (CK_X_FUNCTION_LIST *self, |
948 | | CK_SESSION_HANDLE session, |
949 | | CK_FLAGS flags) |
950 | 0 | { |
951 | 0 | p11_virtual *virt = (p11_virtual *)self; |
952 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
953 | 0 | if (funcs->version.major < 3) |
954 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
955 | 0 | return funcs->C_SessionCancel (session, |
956 | 0 | flags); |
957 | 0 | } |
958 | | |
959 | | static CK_RV |
960 | | base_C_MessageEncryptInit (CK_X_FUNCTION_LIST *self, |
961 | | CK_SESSION_HANDLE session, |
962 | | CK_MECHANISM_PTR mechanism, |
963 | | CK_OBJECT_HANDLE hKey) |
964 | 0 | { |
965 | 0 | p11_virtual *virt = (p11_virtual *)self; |
966 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
967 | 0 | if (funcs->version.major < 3) |
968 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
969 | 0 | return funcs->C_MessageEncryptInit (session, |
970 | 0 | mechanism, |
971 | 0 | hKey); |
972 | 0 | } |
973 | | |
974 | | static CK_RV |
975 | | base_C_EncryptMessage (CK_X_FUNCTION_LIST *self, |
976 | | CK_SESSION_HANDLE session, |
977 | | CK_VOID_PTR pParameter, |
978 | | long unsigned int ulParameterLen, |
979 | | unsigned char * associated_data, |
980 | | long unsigned int associated_data_len, |
981 | | unsigned char * plaintext, |
982 | | long unsigned int plaintext_len, |
983 | | unsigned char * ciphertext, |
984 | | long unsigned int * ciphertext_len) |
985 | 0 | { |
986 | 0 | p11_virtual *virt = (p11_virtual *)self; |
987 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
988 | 0 | if (funcs->version.major < 3) |
989 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
990 | 0 | return funcs->C_EncryptMessage (session, |
991 | 0 | pParameter, |
992 | 0 | ulParameterLen, |
993 | 0 | associated_data, |
994 | 0 | associated_data_len, |
995 | 0 | plaintext, |
996 | 0 | plaintext_len, |
997 | 0 | ciphertext, |
998 | 0 | ciphertext_len); |
999 | 0 | } |
1000 | | |
1001 | | static CK_RV |
1002 | | base_C_EncryptMessageBegin (CK_X_FUNCTION_LIST *self, |
1003 | | CK_SESSION_HANDLE session, |
1004 | | CK_VOID_PTR pParameter, |
1005 | | long unsigned int ulParameterLen, |
1006 | | unsigned char * associated_data, |
1007 | | long unsigned int associated_data_len) |
1008 | 1 | { |
1009 | 1 | p11_virtual *virt = (p11_virtual *)self; |
1010 | 1 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1011 | 1 | if (funcs->version.major < 3) |
1012 | 1 | return CKR_FUNCTION_NOT_SUPPORTED; |
1013 | 0 | return funcs->C_EncryptMessageBegin (session, |
1014 | 0 | pParameter, |
1015 | 0 | ulParameterLen, |
1016 | 0 | associated_data, |
1017 | 0 | associated_data_len); |
1018 | 1 | } |
1019 | | |
1020 | | static CK_RV |
1021 | | base_C_EncryptMessageNext (CK_X_FUNCTION_LIST *self, |
1022 | | CK_SESSION_HANDLE session, |
1023 | | CK_VOID_PTR pParameter, |
1024 | | long unsigned int ulParameterLen, |
1025 | | unsigned char * plaintext_part, |
1026 | | long unsigned int plaintext_part_len, |
1027 | | unsigned char * ciphertext_part, |
1028 | | long unsigned int * ciphertext_part_len, |
1029 | | CK_FLAGS flags) |
1030 | 0 | { |
1031 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1032 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1033 | 0 | if (funcs->version.major < 3) |
1034 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1035 | 0 | return funcs->C_EncryptMessageNext (session, |
1036 | 0 | pParameter, |
1037 | 0 | ulParameterLen, |
1038 | 0 | plaintext_part, |
1039 | 0 | plaintext_part_len, |
1040 | 0 | ciphertext_part, |
1041 | 0 | ciphertext_part_len, |
1042 | 0 | flags); |
1043 | 0 | } |
1044 | | |
1045 | | static CK_RV |
1046 | | base_C_MessageEncryptFinal (CK_X_FUNCTION_LIST *self, |
1047 | | CK_SESSION_HANDLE session) |
1048 | 0 | { |
1049 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1050 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1051 | 0 | if (funcs->version.major < 3) |
1052 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1053 | 0 | return funcs->C_MessageEncryptFinal (session); |
1054 | 0 | } |
1055 | | |
1056 | | static CK_RV |
1057 | | base_C_MessageDecryptInit (CK_X_FUNCTION_LIST *self, |
1058 | | CK_SESSION_HANDLE session, |
1059 | | CK_MECHANISM_PTR mechanism, |
1060 | | CK_OBJECT_HANDLE hKey) |
1061 | 0 | { |
1062 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1063 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1064 | 0 | if (funcs->version.major < 3) |
1065 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1066 | 0 | return funcs->C_MessageDecryptInit (session, |
1067 | 0 | mechanism, |
1068 | 0 | hKey); |
1069 | 0 | } |
1070 | | |
1071 | | static CK_RV |
1072 | | base_C_DecryptMessage (CK_X_FUNCTION_LIST *self, |
1073 | | CK_SESSION_HANDLE session, |
1074 | | CK_VOID_PTR pParameter, |
1075 | | long unsigned int ulParameterLen, |
1076 | | unsigned char * associated_data, |
1077 | | long unsigned int associated_data_len, |
1078 | | unsigned char * ciphertext, |
1079 | | long unsigned int ciphertext_len, |
1080 | | unsigned char * plaintext, |
1081 | | long unsigned int * plaintext_len) |
1082 | 0 | { |
1083 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1084 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1085 | 0 | if (funcs->version.major < 3) |
1086 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1087 | 0 | return funcs->C_DecryptMessage (session, |
1088 | 0 | pParameter, |
1089 | 0 | ulParameterLen, |
1090 | 0 | associated_data, |
1091 | 0 | associated_data_len, |
1092 | 0 | ciphertext, |
1093 | 0 | ciphertext_len, |
1094 | 0 | plaintext, |
1095 | 0 | plaintext_len); |
1096 | 0 | } |
1097 | | |
1098 | | static CK_RV |
1099 | | base_C_DecryptMessageBegin (CK_X_FUNCTION_LIST *self, |
1100 | | CK_SESSION_HANDLE session, |
1101 | | CK_VOID_PTR pParameter, |
1102 | | long unsigned int ulParameterLen, |
1103 | | unsigned char * associated_data, |
1104 | | long unsigned int associated_data_len) |
1105 | 0 | { |
1106 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1107 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1108 | 0 | if (funcs->version.major < 3) |
1109 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1110 | 0 | return funcs->C_DecryptMessageBegin (session, |
1111 | 0 | pParameter, |
1112 | 0 | ulParameterLen, |
1113 | 0 | associated_data, |
1114 | 0 | associated_data_len); |
1115 | 0 | } |
1116 | | |
1117 | | static CK_RV |
1118 | | base_C_DecryptMessageNext (CK_X_FUNCTION_LIST *self, |
1119 | | CK_SESSION_HANDLE session, |
1120 | | CK_VOID_PTR pParameter, |
1121 | | long unsigned int ulParameterLen, |
1122 | | unsigned char * ciphertext_part, |
1123 | | long unsigned int ciphertext_part_len, |
1124 | | unsigned char * plaintext_part, |
1125 | | long unsigned int * plaintext_part_len, |
1126 | | CK_FLAGS flags) |
1127 | 0 | { |
1128 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1129 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1130 | 0 | if (funcs->version.major < 3) |
1131 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1132 | 0 | return funcs->C_DecryptMessageNext (session, |
1133 | 0 | pParameter, |
1134 | 0 | ulParameterLen, |
1135 | 0 | ciphertext_part, |
1136 | 0 | ciphertext_part_len, |
1137 | 0 | plaintext_part, |
1138 | 0 | plaintext_part_len, |
1139 | 0 | flags); |
1140 | 0 | } |
1141 | | |
1142 | | static CK_RV |
1143 | | base_C_MessageDecryptFinal (CK_X_FUNCTION_LIST *self, |
1144 | | CK_SESSION_HANDLE session) |
1145 | 0 | { |
1146 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1147 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1148 | 0 | if (funcs->version.major < 3) |
1149 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1150 | 0 | return funcs->C_MessageDecryptFinal (session); |
1151 | 0 | } |
1152 | | |
1153 | | static CK_RV |
1154 | | base_C_MessageSignInit (CK_X_FUNCTION_LIST *self, |
1155 | | CK_SESSION_HANDLE session, |
1156 | | CK_MECHANISM_PTR mechanism, |
1157 | | CK_OBJECT_HANDLE hKey) |
1158 | 0 | { |
1159 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1160 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1161 | 0 | if (funcs->version.major < 3) |
1162 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1163 | 0 | return funcs->C_MessageSignInit (session, |
1164 | 0 | mechanism, |
1165 | 0 | hKey); |
1166 | 0 | } |
1167 | | |
1168 | | static CK_RV |
1169 | | base_C_SignMessage (CK_X_FUNCTION_LIST *self, |
1170 | | CK_SESSION_HANDLE session, |
1171 | | CK_VOID_PTR pParameter, |
1172 | | long unsigned int ulParameterLen, |
1173 | | unsigned char * data, |
1174 | | long unsigned int ulDataLen, |
1175 | | unsigned char * signature, |
1176 | | long unsigned int * signature_len) |
1177 | 0 | { |
1178 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1179 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1180 | 0 | if (funcs->version.major < 3) |
1181 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1182 | 0 | return funcs->C_SignMessage (session, |
1183 | 0 | pParameter, |
1184 | 0 | ulParameterLen, |
1185 | 0 | data, |
1186 | 0 | ulDataLen, |
1187 | 0 | signature, |
1188 | 0 | signature_len); |
1189 | 0 | } |
1190 | | |
1191 | | static CK_RV |
1192 | | base_C_SignMessageBegin (CK_X_FUNCTION_LIST *self, |
1193 | | CK_SESSION_HANDLE session, |
1194 | | CK_VOID_PTR pParameter, |
1195 | | long unsigned int ulParameterLen) |
1196 | 0 | { |
1197 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1198 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1199 | 0 | if (funcs->version.major < 3) |
1200 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1201 | 0 | return funcs->C_SignMessageBegin (session, |
1202 | 0 | pParameter, |
1203 | 0 | ulParameterLen); |
1204 | 0 | } |
1205 | | |
1206 | | static CK_RV |
1207 | | base_C_SignMessageNext (CK_X_FUNCTION_LIST *self, |
1208 | | CK_SESSION_HANDLE session, |
1209 | | CK_VOID_PTR pParameter, |
1210 | | long unsigned int ulParameterLen, |
1211 | | unsigned char * data, |
1212 | | long unsigned int ulDataLen, |
1213 | | unsigned char * signature, |
1214 | | long unsigned int * signature_len) |
1215 | 0 | { |
1216 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1217 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1218 | 0 | if (funcs->version.major < 3) |
1219 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1220 | 0 | return funcs->C_SignMessageNext (session, |
1221 | 0 | pParameter, |
1222 | 0 | ulParameterLen, |
1223 | 0 | data, |
1224 | 0 | ulDataLen, |
1225 | 0 | signature, |
1226 | 0 | signature_len); |
1227 | 0 | } |
1228 | | |
1229 | | static CK_RV |
1230 | | base_C_MessageSignFinal (CK_X_FUNCTION_LIST *self, |
1231 | | CK_SESSION_HANDLE session) |
1232 | 0 | { |
1233 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1234 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1235 | 0 | if (funcs->version.major < 3) |
1236 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1237 | 0 | return funcs->C_MessageSignFinal (session); |
1238 | 0 | } |
1239 | | |
1240 | | static CK_RV |
1241 | | base_C_MessageVerifyInit (CK_X_FUNCTION_LIST *self, |
1242 | | CK_SESSION_HANDLE session, |
1243 | | CK_MECHANISM_PTR mechanism, |
1244 | | CK_OBJECT_HANDLE hKey) |
1245 | 2 | { |
1246 | 2 | p11_virtual *virt = (p11_virtual *)self; |
1247 | 2 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1248 | 2 | if (funcs->version.major < 3) |
1249 | 2 | return CKR_FUNCTION_NOT_SUPPORTED; |
1250 | 0 | return funcs->C_MessageVerifyInit (session, |
1251 | 0 | mechanism, |
1252 | 0 | hKey); |
1253 | 2 | } |
1254 | | |
1255 | | static CK_RV |
1256 | | base_C_VerifyMessage (CK_X_FUNCTION_LIST *self, |
1257 | | CK_SESSION_HANDLE session, |
1258 | | CK_VOID_PTR pParameter, |
1259 | | long unsigned int ulParameterLen, |
1260 | | unsigned char * data, |
1261 | | long unsigned int ulDataLen, |
1262 | | unsigned char * signature, |
1263 | | long unsigned int signature_len) |
1264 | 0 | { |
1265 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1266 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1267 | 0 | if (funcs->version.major < 3) |
1268 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1269 | 0 | return funcs->C_VerifyMessage (session, |
1270 | 0 | pParameter, |
1271 | 0 | ulParameterLen, |
1272 | 0 | data, |
1273 | 0 | ulDataLen, |
1274 | 0 | signature, |
1275 | 0 | signature_len); |
1276 | 0 | } |
1277 | | |
1278 | | static CK_RV |
1279 | | base_C_VerifyMessageBegin (CK_X_FUNCTION_LIST *self, |
1280 | | CK_SESSION_HANDLE session, |
1281 | | CK_VOID_PTR pParameter, |
1282 | | long unsigned int ulParameterLen) |
1283 | 0 | { |
1284 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1285 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1286 | 0 | if (funcs->version.major < 3) |
1287 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1288 | 0 | return funcs->C_VerifyMessageBegin (session, |
1289 | 0 | pParameter, |
1290 | 0 | ulParameterLen); |
1291 | 0 | } |
1292 | | |
1293 | | static CK_RV |
1294 | | base_C_VerifyMessageNext (CK_X_FUNCTION_LIST *self, |
1295 | | CK_SESSION_HANDLE session, |
1296 | | CK_VOID_PTR pParameter, |
1297 | | long unsigned int ulParameterLen, |
1298 | | unsigned char * data, |
1299 | | long unsigned int ulDataLen, |
1300 | | unsigned char * signature, |
1301 | | long unsigned int signature_len) |
1302 | 0 | { |
1303 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1304 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1305 | 0 | if (funcs->version.major < 3) |
1306 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1307 | 0 | return funcs->C_VerifyMessageNext (session, |
1308 | 0 | pParameter, |
1309 | 0 | ulParameterLen, |
1310 | 0 | data, |
1311 | 0 | ulDataLen, |
1312 | 0 | signature, |
1313 | 0 | signature_len); |
1314 | 0 | } |
1315 | | |
1316 | | static CK_RV |
1317 | | base_C_MessageVerifyFinal (CK_X_FUNCTION_LIST *self, |
1318 | | CK_SESSION_HANDLE session) |
1319 | 0 | { |
1320 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1321 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1322 | 0 | if (funcs->version.major < 3) |
1323 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1324 | 0 | return funcs->C_MessageVerifyFinal (session); |
1325 | 0 | } |
1326 | | |
1327 | | static CK_RV |
1328 | | base_C_EncapsulateKey (CK_X_FUNCTION_LIST *self, |
1329 | | CK_SESSION_HANDLE session, |
1330 | | CK_MECHANISM_PTR mechanism, |
1331 | | CK_OBJECT_HANDLE publicKey, |
1332 | | CK_ATTRIBUTE_PTR pTemplate, |
1333 | | long unsigned int ulAttributeCount, |
1334 | | unsigned char * ciphertext, |
1335 | | long unsigned int * ciphertext_len, |
1336 | | CK_OBJECT_HANDLE_PTR phKey) |
1337 | 0 | { |
1338 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1339 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1340 | 0 | if (funcs->version.major < 3) |
1341 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1342 | 0 | return funcs->C_EncapsulateKey (session, |
1343 | 0 | mechanism, |
1344 | 0 | publicKey, |
1345 | 0 | pTemplate, |
1346 | 0 | ulAttributeCount, |
1347 | 0 | ciphertext, |
1348 | 0 | ciphertext_len, |
1349 | 0 | phKey); |
1350 | 0 | } |
1351 | | |
1352 | | static CK_RV |
1353 | | base_C_DecapsulateKey (CK_X_FUNCTION_LIST *self, |
1354 | | CK_SESSION_HANDLE session, |
1355 | | CK_MECHANISM_PTR mechanism, |
1356 | | CK_OBJECT_HANDLE private_key, |
1357 | | CK_ATTRIBUTE_PTR pTemplate, |
1358 | | long unsigned int ulAttributeCount, |
1359 | | unsigned char * ciphertext, |
1360 | | long unsigned int * ciphertext_len, |
1361 | | CK_OBJECT_HANDLE_PTR phKey) |
1362 | 0 | { |
1363 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1364 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1365 | 0 | if (funcs->version.major < 3) |
1366 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1367 | 0 | return funcs->C_DecapsulateKey (session, |
1368 | 0 | mechanism, |
1369 | 0 | private_key, |
1370 | 0 | pTemplate, |
1371 | 0 | ulAttributeCount, |
1372 | 0 | ciphertext, |
1373 | 0 | ciphertext_len, |
1374 | 0 | phKey); |
1375 | 0 | } |
1376 | | |
1377 | | static CK_RV |
1378 | | base_C_VerifySignatureInit (CK_X_FUNCTION_LIST *self, |
1379 | | CK_SESSION_HANDLE session, |
1380 | | CK_MECHANISM_PTR mechanism, |
1381 | | CK_OBJECT_HANDLE hKey, |
1382 | | unsigned char * signature, |
1383 | | long unsigned int signature_len) |
1384 | 0 | { |
1385 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1386 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1387 | 0 | if (funcs->version.major < 3) |
1388 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1389 | 0 | return funcs->C_VerifySignatureInit (session, |
1390 | 0 | mechanism, |
1391 | 0 | hKey, |
1392 | 0 | signature, |
1393 | 0 | signature_len); |
1394 | 0 | } |
1395 | | |
1396 | | static CK_RV |
1397 | | base_C_VerifySignature (CK_X_FUNCTION_LIST *self, |
1398 | | CK_SESSION_HANDLE session, |
1399 | | unsigned char * data, |
1400 | | long unsigned int ulDataLen) |
1401 | 0 | { |
1402 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1403 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1404 | 0 | if (funcs->version.major < 3) |
1405 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1406 | 0 | return funcs->C_VerifySignature (session, |
1407 | 0 | data, |
1408 | 0 | ulDataLen); |
1409 | 0 | } |
1410 | | |
1411 | | static CK_RV |
1412 | | base_C_VerifySignatureUpdate (CK_X_FUNCTION_LIST *self, |
1413 | | CK_SESSION_HANDLE session, |
1414 | | unsigned char * part, |
1415 | | long unsigned int part_len) |
1416 | 0 | { |
1417 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1418 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1419 | 0 | if (funcs->version.major < 3) |
1420 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1421 | 0 | return funcs->C_VerifySignatureUpdate (session, |
1422 | 0 | part, |
1423 | 0 | part_len); |
1424 | 0 | } |
1425 | | |
1426 | | static CK_RV |
1427 | | base_C_VerifySignatureFinal (CK_X_FUNCTION_LIST *self, |
1428 | | CK_SESSION_HANDLE session) |
1429 | 0 | { |
1430 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1431 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1432 | 0 | if (funcs->version.major < 3) |
1433 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1434 | 0 | return funcs->C_VerifySignatureFinal (session); |
1435 | 0 | } |
1436 | | |
1437 | | static CK_RV |
1438 | | base_C_GetSessionValidationFlags (CK_X_FUNCTION_LIST *self, |
1439 | | CK_SESSION_HANDLE session, |
1440 | | CK_SESSION_VALIDATION_FLAGS_TYPE type, |
1441 | | CK_FLAGS * flags_ptr) |
1442 | 0 | { |
1443 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1444 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1445 | 0 | if (funcs->version.major < 3) |
1446 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1447 | 0 | return funcs->C_GetSessionValidationFlags (session, |
1448 | 0 | type, |
1449 | 0 | flags_ptr); |
1450 | 0 | } |
1451 | | |
1452 | | static CK_RV |
1453 | | base_C_AsyncComplete (CK_X_FUNCTION_LIST *self, |
1454 | | CK_SESSION_HANDLE session, |
1455 | | unsigned char * function_name, |
1456 | | CK_ASYNC_DATA_PTR result) |
1457 | 0 | { |
1458 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1459 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1460 | 0 | if (funcs->version.major < 3) |
1461 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1462 | 0 | return funcs->C_AsyncComplete (session, |
1463 | 0 | function_name, |
1464 | 0 | result); |
1465 | 0 | } |
1466 | | |
1467 | | static CK_RV |
1468 | | base_C_AsyncGetID (CK_X_FUNCTION_LIST *self, |
1469 | | CK_SESSION_HANDLE session, |
1470 | | unsigned char * function_name, |
1471 | | long unsigned int * id_ptr) |
1472 | 0 | { |
1473 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1474 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1475 | 0 | if (funcs->version.major < 3) |
1476 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1477 | 0 | return funcs->C_AsyncGetID (session, |
1478 | 0 | function_name, |
1479 | 0 | id_ptr); |
1480 | 0 | } |
1481 | | |
1482 | | static CK_RV |
1483 | | base_C_AsyncJoin (CK_X_FUNCTION_LIST *self, |
1484 | | CK_SESSION_HANDLE session, |
1485 | | unsigned char * function_name, |
1486 | | long unsigned int id, |
1487 | | unsigned char * data, |
1488 | | long unsigned int ulDataLen) |
1489 | 0 | { |
1490 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1491 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1492 | 0 | if (funcs->version.major < 3) |
1493 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1494 | 0 | return funcs->C_AsyncJoin (session, |
1495 | 0 | function_name, |
1496 | 0 | id, |
1497 | 0 | data, |
1498 | 0 | ulDataLen); |
1499 | 0 | } |
1500 | | |
1501 | | static CK_RV |
1502 | | base_C_WrapKeyAuthenticated (CK_X_FUNCTION_LIST *self, |
1503 | | CK_SESSION_HANDLE session, |
1504 | | CK_MECHANISM_PTR mechanism, |
1505 | | CK_OBJECT_HANDLE wrapping_key, |
1506 | | CK_OBJECT_HANDLE hKey, |
1507 | | unsigned char * associated_data, |
1508 | | long unsigned int associated_data_len, |
1509 | | unsigned char * wrapped_key, |
1510 | | long unsigned int * wrapped_key_len) |
1511 | 0 | { |
1512 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1513 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1514 | 0 | if (funcs->version.major < 3) |
1515 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1516 | 0 | return funcs->C_WrapKeyAuthenticated (session, |
1517 | 0 | mechanism, |
1518 | 0 | wrapping_key, |
1519 | 0 | hKey, |
1520 | 0 | associated_data, |
1521 | 0 | associated_data_len, |
1522 | 0 | wrapped_key, |
1523 | 0 | wrapped_key_len); |
1524 | 0 | } |
1525 | | |
1526 | | static CK_RV |
1527 | | base_C_UnwrapKeyAuthenticated (CK_X_FUNCTION_LIST *self, |
1528 | | CK_SESSION_HANDLE session, |
1529 | | CK_MECHANISM_PTR mechanism, |
1530 | | CK_OBJECT_HANDLE unwrapping_key, |
1531 | | unsigned char * wrapped_key, |
1532 | | long unsigned int wrapped_key_len, |
1533 | | CK_ATTRIBUTE_PTR pTemplate, |
1534 | | long unsigned int ulAttributeCount, |
1535 | | unsigned char * associated_data, |
1536 | | long unsigned int associated_data_len, |
1537 | | CK_OBJECT_HANDLE_PTR phKey) |
1538 | 0 | { |
1539 | 0 | p11_virtual *virt = (p11_virtual *)self; |
1540 | 0 | CK_FUNCTION_LIST_3_2 *funcs = virt->lower_module; |
1541 | 0 | if (funcs->version.major < 3) |
1542 | 0 | return CKR_FUNCTION_NOT_SUPPORTED; |
1543 | 0 | return funcs->C_UnwrapKeyAuthenticated (session, |
1544 | 0 | mechanism, |
1545 | 0 | unwrapping_key, |
1546 | 0 | wrapped_key, |
1547 | 0 | wrapped_key_len, |
1548 | 0 | pTemplate, |
1549 | 0 | ulAttributeCount, |
1550 | 0 | associated_data, |
1551 | 0 | associated_data_len, |
1552 | 0 | phKey); |
1553 | 0 | } |
1554 | | |
1555 | | |
1556 | | CK_X_FUNCTION_LIST p11_virtual_base = { |
1557 | | { CRYPTOKI_VERSION_MAJOR, CRYPTOKI_VERSION_MINOR }, /* version */ |
1558 | | base_C_Initialize, |
1559 | | base_C_Finalize, |
1560 | | base_C_GetInfo, |
1561 | | base_C_GetSlotList, |
1562 | | base_C_GetSlotInfo, |
1563 | | base_C_GetTokenInfo, |
1564 | | base_C_GetMechanismList, |
1565 | | base_C_GetMechanismInfo, |
1566 | | base_C_InitToken, |
1567 | | base_C_InitPIN, |
1568 | | base_C_SetPIN, |
1569 | | base_C_OpenSession, |
1570 | | base_C_CloseSession, |
1571 | | base_C_CloseAllSessions, |
1572 | | base_C_GetSessionInfo, |
1573 | | base_C_GetOperationState, |
1574 | | base_C_SetOperationState, |
1575 | | base_C_Login, |
1576 | | base_C_Logout, |
1577 | | base_C_CreateObject, |
1578 | | base_C_CopyObject, |
1579 | | base_C_DestroyObject, |
1580 | | base_C_GetObjectSize, |
1581 | | base_C_GetAttributeValue, |
1582 | | base_C_SetAttributeValue, |
1583 | | base_C_FindObjectsInit, |
1584 | | base_C_FindObjects, |
1585 | | base_C_FindObjectsFinal, |
1586 | | base_C_EncryptInit, |
1587 | | base_C_Encrypt, |
1588 | | base_C_EncryptUpdate, |
1589 | | base_C_EncryptFinal, |
1590 | | base_C_DecryptInit, |
1591 | | base_C_Decrypt, |
1592 | | base_C_DecryptUpdate, |
1593 | | base_C_DecryptFinal, |
1594 | | base_C_DigestInit, |
1595 | | base_C_Digest, |
1596 | | base_C_DigestUpdate, |
1597 | | base_C_DigestKey, |
1598 | | base_C_DigestFinal, |
1599 | | base_C_SignInit, |
1600 | | base_C_Sign, |
1601 | | base_C_SignUpdate, |
1602 | | base_C_SignFinal, |
1603 | | base_C_SignRecoverInit, |
1604 | | base_C_SignRecover, |
1605 | | base_C_VerifyInit, |
1606 | | base_C_Verify, |
1607 | | base_C_VerifyUpdate, |
1608 | | base_C_VerifyFinal, |
1609 | | base_C_VerifyRecoverInit, |
1610 | | base_C_VerifyRecover, |
1611 | | base_C_DigestEncryptUpdate, |
1612 | | base_C_DecryptDigestUpdate, |
1613 | | base_C_SignEncryptUpdate, |
1614 | | base_C_DecryptVerifyUpdate, |
1615 | | base_C_GenerateKey, |
1616 | | base_C_GenerateKeyPair, |
1617 | | base_C_WrapKey, |
1618 | | base_C_UnwrapKey, |
1619 | | base_C_DeriveKey, |
1620 | | base_C_SeedRandom, |
1621 | | base_C_GenerateRandom, |
1622 | | base_C_WaitForSlotEvent, |
1623 | | base_C_LoginUser, |
1624 | | base_C_SessionCancel, |
1625 | | base_C_MessageEncryptInit, |
1626 | | base_C_EncryptMessage, |
1627 | | base_C_EncryptMessageBegin, |
1628 | | base_C_EncryptMessageNext, |
1629 | | base_C_MessageEncryptFinal, |
1630 | | base_C_MessageDecryptInit, |
1631 | | base_C_DecryptMessage, |
1632 | | base_C_DecryptMessageBegin, |
1633 | | base_C_DecryptMessageNext, |
1634 | | base_C_MessageDecryptFinal, |
1635 | | base_C_MessageSignInit, |
1636 | | base_C_SignMessage, |
1637 | | base_C_SignMessageBegin, |
1638 | | base_C_SignMessageNext, |
1639 | | base_C_MessageSignFinal, |
1640 | | base_C_MessageVerifyInit, |
1641 | | base_C_VerifyMessage, |
1642 | | base_C_VerifyMessageBegin, |
1643 | | base_C_VerifyMessageNext, |
1644 | | base_C_MessageVerifyFinal, |
1645 | | base_C_EncapsulateKey, |
1646 | | base_C_DecapsulateKey, |
1647 | | base_C_VerifySignatureInit, |
1648 | | base_C_VerifySignature, |
1649 | | base_C_VerifySignatureUpdate, |
1650 | | base_C_VerifySignatureFinal, |
1651 | | base_C_GetSessionValidationFlags, |
1652 | | base_C_AsyncComplete, |
1653 | | base_C_AsyncGetID, |
1654 | | base_C_AsyncJoin, |
1655 | | base_C_WrapKeyAuthenticated, |
1656 | | base_C_UnwrapKeyAuthenticated |
1657 | | }; |