xref: /minix3/external/bsd/bind/dist/lib/isc/include/pkcs11/pkcs11f.h (revision 00b67f09dd46474d133c95011a48590a8e8f94c7)
1*00b67f09SDavid van Moolenbroek /*	$NetBSD: pkcs11f.h,v 1.1.1.3 2014/12/10 03:34:44 christos Exp $	*/
2*00b67f09SDavid van Moolenbroek 
3*00b67f09SDavid van Moolenbroek /* pkcs11f.h include file for PKCS #11. */
4*00b67f09SDavid van Moolenbroek /* Revision: 1.2  */
5*00b67f09SDavid van Moolenbroek 
6*00b67f09SDavid van Moolenbroek /* License to copy and use this software is granted provided that it is
7*00b67f09SDavid van Moolenbroek  * identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
8*00b67f09SDavid van Moolenbroek  * (Cryptoki)" in all material mentioning or referencing this software.
9*00b67f09SDavid van Moolenbroek 
10*00b67f09SDavid van Moolenbroek  * License is also granted to make and use derivative works provided that
11*00b67f09SDavid van Moolenbroek  * such works are identified as "derived from the RSA Security Inc. PKCS #11
12*00b67f09SDavid van Moolenbroek  * Cryptographic Token Interface (Cryptoki)" in all material mentioning or
13*00b67f09SDavid van Moolenbroek  * referencing the derived work.
14*00b67f09SDavid van Moolenbroek 
15*00b67f09SDavid van Moolenbroek  * RSA Security Inc. makes no representations concerning either the
16*00b67f09SDavid van Moolenbroek  * merchantability of this software or the suitability of this software for
17*00b67f09SDavid van Moolenbroek  * any particular purpose. It is provided "as is" without express or implied
18*00b67f09SDavid van Moolenbroek  * warranty of any kind.
19*00b67f09SDavid van Moolenbroek  */
20*00b67f09SDavid van Moolenbroek 
21*00b67f09SDavid van Moolenbroek /* This header file contains pretty much everything about all the */
22*00b67f09SDavid van Moolenbroek /* Cryptoki function prototypes.  Because this information is */
23*00b67f09SDavid van Moolenbroek /* used for more than just declaring function prototypes, the */
24*00b67f09SDavid van Moolenbroek /* order of the functions appearing herein is important, and */
25*00b67f09SDavid van Moolenbroek /* should not be altered. */
26*00b67f09SDavid van Moolenbroek 
27*00b67f09SDavid van Moolenbroek /* General-purpose */
28*00b67f09SDavid van Moolenbroek 
29*00b67f09SDavid van Moolenbroek /* C_Initialize initializes the Cryptoki library. */
30*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_Initialize)
31*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
32*00b67f09SDavid van Moolenbroek (
33*00b67f09SDavid van Moolenbroek   CK_VOID_PTR   pInitArgs  /* if this is not NULL_PTR, it gets
34*00b67f09SDavid van Moolenbroek                             * cast to CK_C_INITIALIZE_ARGS_PTR
35*00b67f09SDavid van Moolenbroek                             * and dereferenced */
36*00b67f09SDavid van Moolenbroek );
37*00b67f09SDavid van Moolenbroek #endif
38*00b67f09SDavid van Moolenbroek 
39*00b67f09SDavid van Moolenbroek 
40*00b67f09SDavid van Moolenbroek /* C_Finalize indicates that an application is done with the
41*00b67f09SDavid van Moolenbroek  * Cryptoki library. */
42*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_Finalize)
43*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
44*00b67f09SDavid van Moolenbroek (
45*00b67f09SDavid van Moolenbroek   CK_VOID_PTR   pReserved  /* reserved.  Should be NULL_PTR */
46*00b67f09SDavid van Moolenbroek );
47*00b67f09SDavid van Moolenbroek #endif
48*00b67f09SDavid van Moolenbroek 
49*00b67f09SDavid van Moolenbroek 
50*00b67f09SDavid van Moolenbroek /* C_GetInfo returns general information about Cryptoki. */
51*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GetInfo)
52*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
53*00b67f09SDavid van Moolenbroek (
54*00b67f09SDavid van Moolenbroek   CK_INFO_PTR   pInfo  /* location that receives information */
55*00b67f09SDavid van Moolenbroek );
56*00b67f09SDavid van Moolenbroek #endif
57*00b67f09SDavid van Moolenbroek 
58*00b67f09SDavid van Moolenbroek 
59*00b67f09SDavid van Moolenbroek /* C_GetFunctionList returns the function list. */
60*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GetFunctionList)
61*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
62*00b67f09SDavid van Moolenbroek (
63*00b67f09SDavid van Moolenbroek   CK_FUNCTION_LIST_PTR_PTR ppFunctionList  /* receives pointer to
64*00b67f09SDavid van Moolenbroek                                             * function list */
65*00b67f09SDavid van Moolenbroek );
66*00b67f09SDavid van Moolenbroek #endif
67*00b67f09SDavid van Moolenbroek 
68*00b67f09SDavid van Moolenbroek 
69*00b67f09SDavid van Moolenbroek 
70*00b67f09SDavid van Moolenbroek /* Slot and token management */
71*00b67f09SDavid van Moolenbroek 
72*00b67f09SDavid van Moolenbroek /* C_GetSlotList obtains a list of slots in the system. */
73*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GetSlotList)
74*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
75*00b67f09SDavid van Moolenbroek (
76*00b67f09SDavid van Moolenbroek   CK_BBOOL       tokenPresent,  /* only slots with tokens? */
77*00b67f09SDavid van Moolenbroek   CK_SLOT_ID_PTR pSlotList,     /* receives array of slot IDs */
78*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR   pulCount       /* receives number of slots */
79*00b67f09SDavid van Moolenbroek );
80*00b67f09SDavid van Moolenbroek #endif
81*00b67f09SDavid van Moolenbroek 
82*00b67f09SDavid van Moolenbroek 
83*00b67f09SDavid van Moolenbroek /* C_GetSlotInfo obtains information about a particular slot in
84*00b67f09SDavid van Moolenbroek  * the system. */
85*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GetSlotInfo)
86*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
87*00b67f09SDavid van Moolenbroek (
88*00b67f09SDavid van Moolenbroek   CK_SLOT_ID       slotID,  /* the ID of the slot */
89*00b67f09SDavid van Moolenbroek   CK_SLOT_INFO_PTR pInfo    /* receives the slot information */
90*00b67f09SDavid van Moolenbroek );
91*00b67f09SDavid van Moolenbroek #endif
92*00b67f09SDavid van Moolenbroek 
93*00b67f09SDavid van Moolenbroek 
94*00b67f09SDavid van Moolenbroek /* C_GetTokenInfo obtains information about a particular token
95*00b67f09SDavid van Moolenbroek  * in the system. */
96*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GetTokenInfo)
97*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
98*00b67f09SDavid van Moolenbroek (
99*00b67f09SDavid van Moolenbroek   CK_SLOT_ID        slotID,  /* ID of the token's slot */
100*00b67f09SDavid van Moolenbroek   CK_TOKEN_INFO_PTR pInfo    /* receives the token information */
101*00b67f09SDavid van Moolenbroek );
102*00b67f09SDavid van Moolenbroek #endif
103*00b67f09SDavid van Moolenbroek 
104*00b67f09SDavid van Moolenbroek 
105*00b67f09SDavid van Moolenbroek /* C_GetMechanismList obtains a list of mechanism types
106*00b67f09SDavid van Moolenbroek  * supported by a token. */
107*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GetMechanismList)
108*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
109*00b67f09SDavid van Moolenbroek (
110*00b67f09SDavid van Moolenbroek   CK_SLOT_ID            slotID,          /* ID of token's slot */
111*00b67f09SDavid van Moolenbroek   CK_MECHANISM_TYPE_PTR pMechanismList,  /* gets mech. array */
112*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR          pulCount         /* gets # of mechs. */
113*00b67f09SDavid van Moolenbroek );
114*00b67f09SDavid van Moolenbroek #endif
115*00b67f09SDavid van Moolenbroek 
116*00b67f09SDavid van Moolenbroek 
117*00b67f09SDavid van Moolenbroek /* C_GetMechanismInfo obtains information about a particular
118*00b67f09SDavid van Moolenbroek  * mechanism possibly supported by a token. */
119*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GetMechanismInfo)
120*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
121*00b67f09SDavid van Moolenbroek (
122*00b67f09SDavid van Moolenbroek   CK_SLOT_ID            slotID,  /* ID of the token's slot */
123*00b67f09SDavid van Moolenbroek   CK_MECHANISM_TYPE     type,    /* type of mechanism */
124*00b67f09SDavid van Moolenbroek   CK_MECHANISM_INFO_PTR pInfo    /* receives mechanism info */
125*00b67f09SDavid van Moolenbroek );
126*00b67f09SDavid van Moolenbroek #endif
127*00b67f09SDavid van Moolenbroek 
128*00b67f09SDavid van Moolenbroek 
129*00b67f09SDavid van Moolenbroek /* C_InitToken initializes a token. */
130*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_InitToken)
131*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
132*00b67f09SDavid van Moolenbroek /* pLabel changed from CK_CHAR_PTR to CK_UTF8CHAR_PTR for v2.10 */
133*00b67f09SDavid van Moolenbroek (
134*00b67f09SDavid van Moolenbroek   CK_SLOT_ID      slotID,    /* ID of the token's slot */
135*00b67f09SDavid van Moolenbroek   CK_UTF8CHAR_PTR pPin,      /* the SO's initial PIN */
136*00b67f09SDavid van Moolenbroek   CK_ULONG        ulPinLen,  /* length in bytes of the PIN */
137*00b67f09SDavid van Moolenbroek   CK_UTF8CHAR_PTR pLabel     /* 32-byte token label (blank padded) */
138*00b67f09SDavid van Moolenbroek );
139*00b67f09SDavid van Moolenbroek #endif
140*00b67f09SDavid van Moolenbroek 
141*00b67f09SDavid van Moolenbroek 
142*00b67f09SDavid van Moolenbroek /* C_InitPIN initializes the normal user's PIN. */
143*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_InitPIN)
144*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
145*00b67f09SDavid van Moolenbroek (
146*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,  /* the session's handle */
147*00b67f09SDavid van Moolenbroek   CK_UTF8CHAR_PTR   pPin,      /* the normal user's PIN */
148*00b67f09SDavid van Moolenbroek   CK_ULONG          ulPinLen   /* length in bytes of the PIN */
149*00b67f09SDavid van Moolenbroek );
150*00b67f09SDavid van Moolenbroek #endif
151*00b67f09SDavid van Moolenbroek 
152*00b67f09SDavid van Moolenbroek 
153*00b67f09SDavid van Moolenbroek /* C_SetPIN modifies the PIN of the user who is logged in. */
154*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_SetPIN)
155*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
156*00b67f09SDavid van Moolenbroek (
157*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,  /* the session's handle */
158*00b67f09SDavid van Moolenbroek   CK_UTF8CHAR_PTR   pOldPin,   /* the old PIN */
159*00b67f09SDavid van Moolenbroek   CK_ULONG          ulOldLen,  /* length of the old PIN */
160*00b67f09SDavid van Moolenbroek   CK_UTF8CHAR_PTR   pNewPin,   /* the new PIN */
161*00b67f09SDavid van Moolenbroek   CK_ULONG          ulNewLen   /* length of the new PIN */
162*00b67f09SDavid van Moolenbroek );
163*00b67f09SDavid van Moolenbroek #endif
164*00b67f09SDavid van Moolenbroek 
165*00b67f09SDavid van Moolenbroek 
166*00b67f09SDavid van Moolenbroek 
167*00b67f09SDavid van Moolenbroek /* Session management */
168*00b67f09SDavid van Moolenbroek 
169*00b67f09SDavid van Moolenbroek /* C_OpenSession opens a session between an application and a
170*00b67f09SDavid van Moolenbroek  * token. */
171*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_OpenSession)
172*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
173*00b67f09SDavid van Moolenbroek (
174*00b67f09SDavid van Moolenbroek   CK_SLOT_ID            slotID,        /* the slot's ID */
175*00b67f09SDavid van Moolenbroek   CK_FLAGS              flags,         /* from CK_SESSION_INFO */
176*00b67f09SDavid van Moolenbroek   CK_VOID_PTR           pApplication,  /* passed to callback */
177*00b67f09SDavid van Moolenbroek   CK_NOTIFY             Notify,        /* callback function */
178*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE_PTR phSession      /* gets session handle */
179*00b67f09SDavid van Moolenbroek );
180*00b67f09SDavid van Moolenbroek #endif
181*00b67f09SDavid van Moolenbroek 
182*00b67f09SDavid van Moolenbroek 
183*00b67f09SDavid van Moolenbroek /* C_CloseSession closes a session between an application and a
184*00b67f09SDavid van Moolenbroek  * token. */
185*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_CloseSession)
186*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
187*00b67f09SDavid van Moolenbroek (
188*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession  /* the session's handle */
189*00b67f09SDavid van Moolenbroek );
190*00b67f09SDavid van Moolenbroek #endif
191*00b67f09SDavid van Moolenbroek 
192*00b67f09SDavid van Moolenbroek 
193*00b67f09SDavid van Moolenbroek /* C_CloseAllSessions closes all sessions with a token. */
194*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_CloseAllSessions)
195*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
196*00b67f09SDavid van Moolenbroek (
197*00b67f09SDavid van Moolenbroek   CK_SLOT_ID     slotID  /* the token's slot */
198*00b67f09SDavid van Moolenbroek );
199*00b67f09SDavid van Moolenbroek #endif
200*00b67f09SDavid van Moolenbroek 
201*00b67f09SDavid van Moolenbroek 
202*00b67f09SDavid van Moolenbroek /* C_GetSessionInfo obtains information about the session. */
203*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GetSessionInfo)
204*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
205*00b67f09SDavid van Moolenbroek (
206*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE   hSession,  /* the session's handle */
207*00b67f09SDavid van Moolenbroek   CK_SESSION_INFO_PTR pInfo      /* receives session info */
208*00b67f09SDavid van Moolenbroek );
209*00b67f09SDavid van Moolenbroek #endif
210*00b67f09SDavid van Moolenbroek 
211*00b67f09SDavid van Moolenbroek 
212*00b67f09SDavid van Moolenbroek /* C_GetOperationState obtains the state of the cryptographic operation
213*00b67f09SDavid van Moolenbroek  * in a session. */
214*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GetOperationState)
215*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
216*00b67f09SDavid van Moolenbroek (
217*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,             /* session's handle */
218*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pOperationState,      /* gets state */
219*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulOperationStateLen  /* gets state length */
220*00b67f09SDavid van Moolenbroek );
221*00b67f09SDavid van Moolenbroek #endif
222*00b67f09SDavid van Moolenbroek 
223*00b67f09SDavid van Moolenbroek 
224*00b67f09SDavid van Moolenbroek /* C_SetOperationState restores the state of the cryptographic
225*00b67f09SDavid van Moolenbroek  * operation in a session. */
226*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_SetOperationState)
227*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
228*00b67f09SDavid van Moolenbroek (
229*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,            /* session's handle */
230*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR      pOperationState,      /* holds state */
231*00b67f09SDavid van Moolenbroek   CK_ULONG         ulOperationStateLen,  /* holds state length */
232*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE hEncryptionKey,       /* en/decryption key */
233*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE hAuthenticationKey    /* sign/verify key */
234*00b67f09SDavid van Moolenbroek );
235*00b67f09SDavid van Moolenbroek #endif
236*00b67f09SDavid van Moolenbroek 
237*00b67f09SDavid van Moolenbroek 
238*00b67f09SDavid van Moolenbroek /* C_Login logs a user into a token. */
239*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_Login)
240*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
241*00b67f09SDavid van Moolenbroek (
242*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,  /* the session's handle */
243*00b67f09SDavid van Moolenbroek   CK_USER_TYPE      userType,  /* the user type */
244*00b67f09SDavid van Moolenbroek   CK_UTF8CHAR_PTR   pPin,      /* the user's PIN */
245*00b67f09SDavid van Moolenbroek   CK_ULONG          ulPinLen   /* the length of the PIN */
246*00b67f09SDavid van Moolenbroek );
247*00b67f09SDavid van Moolenbroek #endif
248*00b67f09SDavid van Moolenbroek 
249*00b67f09SDavid van Moolenbroek 
250*00b67f09SDavid van Moolenbroek /* C_Logout logs a user out from a token. */
251*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_Logout)
252*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
253*00b67f09SDavid van Moolenbroek (
254*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession  /* the session's handle */
255*00b67f09SDavid van Moolenbroek );
256*00b67f09SDavid van Moolenbroek #endif
257*00b67f09SDavid van Moolenbroek 
258*00b67f09SDavid van Moolenbroek 
259*00b67f09SDavid van Moolenbroek 
260*00b67f09SDavid van Moolenbroek /* Object management */
261*00b67f09SDavid van Moolenbroek 
262*00b67f09SDavid van Moolenbroek /* C_CreateObject creates a new object. */
263*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_CreateObject)
264*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
265*00b67f09SDavid van Moolenbroek (
266*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,    /* the session's handle */
267*00b67f09SDavid van Moolenbroek   CK_ATTRIBUTE_PTR  pTemplate,   /* the object's template */
268*00b67f09SDavid van Moolenbroek   CK_ULONG          ulCount,     /* attributes in template */
269*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE_PTR phObject  /* gets new object's handle. */
270*00b67f09SDavid van Moolenbroek );
271*00b67f09SDavid van Moolenbroek #endif
272*00b67f09SDavid van Moolenbroek 
273*00b67f09SDavid van Moolenbroek 
274*00b67f09SDavid van Moolenbroek /* C_CopyObject copies an object, creating a new object for the
275*00b67f09SDavid van Moolenbroek  * copy. */
276*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_CopyObject)
277*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
278*00b67f09SDavid van Moolenbroek (
279*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE    hSession,    /* the session's handle */
280*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE     hObject,     /* the object's handle */
281*00b67f09SDavid van Moolenbroek   CK_ATTRIBUTE_PTR     pTemplate,   /* template for new object */
282*00b67f09SDavid van Moolenbroek   CK_ULONG             ulCount,     /* attributes in template */
283*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE_PTR phNewObject  /* receives handle of copy */
284*00b67f09SDavid van Moolenbroek );
285*00b67f09SDavid van Moolenbroek #endif
286*00b67f09SDavid van Moolenbroek 
287*00b67f09SDavid van Moolenbroek 
288*00b67f09SDavid van Moolenbroek /* C_DestroyObject destroys an object. */
289*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_DestroyObject)
290*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
291*00b67f09SDavid van Moolenbroek (
292*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,  /* the session's handle */
293*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE  hObject    /* the object's handle */
294*00b67f09SDavid van Moolenbroek );
295*00b67f09SDavid van Moolenbroek #endif
296*00b67f09SDavid van Moolenbroek 
297*00b67f09SDavid van Moolenbroek 
298*00b67f09SDavid van Moolenbroek /* C_GetObjectSize gets the size of an object in bytes. */
299*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GetObjectSize)
300*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
301*00b67f09SDavid van Moolenbroek (
302*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,  /* the session's handle */
303*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE  hObject,   /* the object's handle */
304*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulSize    /* receives size of object */
305*00b67f09SDavid van Moolenbroek );
306*00b67f09SDavid van Moolenbroek #endif
307*00b67f09SDavid van Moolenbroek 
308*00b67f09SDavid van Moolenbroek 
309*00b67f09SDavid van Moolenbroek /* C_GetAttributeValue obtains the value of one or more object
310*00b67f09SDavid van Moolenbroek  * attributes. */
311*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GetAttributeValue)
312*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
313*00b67f09SDavid van Moolenbroek (
314*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,   /* the session's handle */
315*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE  hObject,    /* the object's handle */
316*00b67f09SDavid van Moolenbroek   CK_ATTRIBUTE_PTR  pTemplate,  /* specifies attrs; gets vals */
317*00b67f09SDavid van Moolenbroek   CK_ULONG          ulCount     /* attributes in template */
318*00b67f09SDavid van Moolenbroek );
319*00b67f09SDavid van Moolenbroek #endif
320*00b67f09SDavid van Moolenbroek 
321*00b67f09SDavid van Moolenbroek 
322*00b67f09SDavid van Moolenbroek /* C_SetAttributeValue modifies the value of one or more object
323*00b67f09SDavid van Moolenbroek  * attributes */
324*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_SetAttributeValue)
325*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
326*00b67f09SDavid van Moolenbroek (
327*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,   /* the session's handle */
328*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE  hObject,    /* the object's handle */
329*00b67f09SDavid van Moolenbroek   CK_ATTRIBUTE_PTR  pTemplate,  /* specifies attrs and values */
330*00b67f09SDavid van Moolenbroek   CK_ULONG          ulCount     /* attributes in template */
331*00b67f09SDavid van Moolenbroek );
332*00b67f09SDavid van Moolenbroek #endif
333*00b67f09SDavid van Moolenbroek 
334*00b67f09SDavid van Moolenbroek 
335*00b67f09SDavid van Moolenbroek /* C_FindObjectsInit initializes a search for token and session
336*00b67f09SDavid van Moolenbroek  * objects that match a template. */
337*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_FindObjectsInit)
338*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
339*00b67f09SDavid van Moolenbroek (
340*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,   /* the session's handle */
341*00b67f09SDavid van Moolenbroek   CK_ATTRIBUTE_PTR  pTemplate,  /* attribute values to match */
342*00b67f09SDavid van Moolenbroek   CK_ULONG          ulCount     /* attrs in search template */
343*00b67f09SDavid van Moolenbroek );
344*00b67f09SDavid van Moolenbroek #endif
345*00b67f09SDavid van Moolenbroek 
346*00b67f09SDavid van Moolenbroek 
347*00b67f09SDavid van Moolenbroek /* C_FindObjects continues a search for token and session
348*00b67f09SDavid van Moolenbroek  * objects that match a template, obtaining additional object
349*00b67f09SDavid van Moolenbroek  * handles. */
350*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_FindObjects)
351*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
352*00b67f09SDavid van Moolenbroek (
353*00b67f09SDavid van Moolenbroek  CK_SESSION_HANDLE    hSession,          /* session's handle */
354*00b67f09SDavid van Moolenbroek  CK_OBJECT_HANDLE_PTR phObject,          /* gets obj. handles */
355*00b67f09SDavid van Moolenbroek  CK_ULONG             ulMaxObjectCount,  /* max handles to get */
356*00b67f09SDavid van Moolenbroek  CK_ULONG_PTR         pulObjectCount     /* actual # returned */
357*00b67f09SDavid van Moolenbroek );
358*00b67f09SDavid van Moolenbroek #endif
359*00b67f09SDavid van Moolenbroek 
360*00b67f09SDavid van Moolenbroek 
361*00b67f09SDavid van Moolenbroek /* C_FindObjectsFinal finishes a search for token and session
362*00b67f09SDavid van Moolenbroek  * objects. */
363*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_FindObjectsFinal)
364*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
365*00b67f09SDavid van Moolenbroek (
366*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession  /* the session's handle */
367*00b67f09SDavid van Moolenbroek );
368*00b67f09SDavid van Moolenbroek #endif
369*00b67f09SDavid van Moolenbroek 
370*00b67f09SDavid van Moolenbroek 
371*00b67f09SDavid van Moolenbroek 
372*00b67f09SDavid van Moolenbroek /* Encryption and decryption */
373*00b67f09SDavid van Moolenbroek 
374*00b67f09SDavid van Moolenbroek /* C_EncryptInit initializes an encryption operation. */
375*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_EncryptInit)
376*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
377*00b67f09SDavid van Moolenbroek (
378*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,    /* the session's handle */
379*00b67f09SDavid van Moolenbroek   CK_MECHANISM_PTR  pMechanism,  /* the encryption mechanism */
380*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE  hKey         /* handle of encryption key */
381*00b67f09SDavid van Moolenbroek );
382*00b67f09SDavid van Moolenbroek #endif
383*00b67f09SDavid van Moolenbroek 
384*00b67f09SDavid van Moolenbroek 
385*00b67f09SDavid van Moolenbroek /* C_Encrypt encrypts single-part data. */
386*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_Encrypt)
387*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
388*00b67f09SDavid van Moolenbroek (
389*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,            /* session's handle */
390*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pData,               /* the plaintext data */
391*00b67f09SDavid van Moolenbroek   CK_ULONG          ulDataLen,           /* bytes of plaintext */
392*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pEncryptedData,      /* gets ciphertext */
393*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulEncryptedDataLen  /* gets c-text size */
394*00b67f09SDavid van Moolenbroek );
395*00b67f09SDavid van Moolenbroek #endif
396*00b67f09SDavid van Moolenbroek 
397*00b67f09SDavid van Moolenbroek 
398*00b67f09SDavid van Moolenbroek /* C_EncryptUpdate continues a multiple-part encryption
399*00b67f09SDavid van Moolenbroek  * operation. */
400*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_EncryptUpdate)
401*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
402*00b67f09SDavid van Moolenbroek (
403*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,           /* session's handle */
404*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pPart,              /* the plaintext data */
405*00b67f09SDavid van Moolenbroek   CK_ULONG          ulPartLen,          /* plaintext data len */
406*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pEncryptedPart,     /* gets ciphertext */
407*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulEncryptedPartLen /* gets c-text size */
408*00b67f09SDavid van Moolenbroek );
409*00b67f09SDavid van Moolenbroek #endif
410*00b67f09SDavid van Moolenbroek 
411*00b67f09SDavid van Moolenbroek 
412*00b67f09SDavid van Moolenbroek /* C_EncryptFinal finishes a multiple-part encryption
413*00b67f09SDavid van Moolenbroek  * operation. */
414*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_EncryptFinal)
415*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
416*00b67f09SDavid van Moolenbroek (
417*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,                /* session handle */
418*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pLastEncryptedPart,      /* last c-text */
419*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulLastEncryptedPartLen  /* gets last size */
420*00b67f09SDavid van Moolenbroek );
421*00b67f09SDavid van Moolenbroek #endif
422*00b67f09SDavid van Moolenbroek 
423*00b67f09SDavid van Moolenbroek 
424*00b67f09SDavid van Moolenbroek /* C_DecryptInit initializes a decryption operation. */
425*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_DecryptInit)
426*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
427*00b67f09SDavid van Moolenbroek (
428*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,    /* the session's handle */
429*00b67f09SDavid van Moolenbroek   CK_MECHANISM_PTR  pMechanism,  /* the decryption mechanism */
430*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE  hKey         /* handle of decryption key */
431*00b67f09SDavid van Moolenbroek );
432*00b67f09SDavid van Moolenbroek #endif
433*00b67f09SDavid van Moolenbroek 
434*00b67f09SDavid van Moolenbroek 
435*00b67f09SDavid van Moolenbroek /* C_Decrypt decrypts encrypted data in a single part. */
436*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_Decrypt)
437*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
438*00b67f09SDavid van Moolenbroek (
439*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,           /* session's handle */
440*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pEncryptedData,     /* ciphertext */
441*00b67f09SDavid van Moolenbroek   CK_ULONG          ulEncryptedDataLen, /* ciphertext length */
442*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pData,              /* gets plaintext */
443*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulDataLen          /* gets p-text size */
444*00b67f09SDavid van Moolenbroek );
445*00b67f09SDavid van Moolenbroek #endif
446*00b67f09SDavid van Moolenbroek 
447*00b67f09SDavid van Moolenbroek 
448*00b67f09SDavid van Moolenbroek /* C_DecryptUpdate continues a multiple-part decryption
449*00b67f09SDavid van Moolenbroek  * operation. */
450*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_DecryptUpdate)
451*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
452*00b67f09SDavid van Moolenbroek (
453*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,            /* session's handle */
454*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pEncryptedPart,      /* encrypted data */
455*00b67f09SDavid van Moolenbroek   CK_ULONG          ulEncryptedPartLen,  /* input length */
456*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pPart,               /* gets plaintext */
457*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulPartLen           /* p-text size */
458*00b67f09SDavid van Moolenbroek );
459*00b67f09SDavid van Moolenbroek #endif
460*00b67f09SDavid van Moolenbroek 
461*00b67f09SDavid van Moolenbroek 
462*00b67f09SDavid van Moolenbroek /* C_DecryptFinal finishes a multiple-part decryption
463*00b67f09SDavid van Moolenbroek  * operation. */
464*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_DecryptFinal)
465*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
466*00b67f09SDavid van Moolenbroek (
467*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,       /* the session's handle */
468*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pLastPart,      /* gets plaintext */
469*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulLastPartLen  /* p-text size */
470*00b67f09SDavid van Moolenbroek );
471*00b67f09SDavid van Moolenbroek #endif
472*00b67f09SDavid van Moolenbroek 
473*00b67f09SDavid van Moolenbroek 
474*00b67f09SDavid van Moolenbroek 
475*00b67f09SDavid van Moolenbroek /* Message digesting */
476*00b67f09SDavid van Moolenbroek 
477*00b67f09SDavid van Moolenbroek /* C_DigestInit initializes a message-digesting operation. */
478*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_DigestInit)
479*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
480*00b67f09SDavid van Moolenbroek (
481*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,   /* the session's handle */
482*00b67f09SDavid van Moolenbroek   CK_MECHANISM_PTR  pMechanism  /* the digesting mechanism */
483*00b67f09SDavid van Moolenbroek );
484*00b67f09SDavid van Moolenbroek #endif
485*00b67f09SDavid van Moolenbroek 
486*00b67f09SDavid van Moolenbroek 
487*00b67f09SDavid van Moolenbroek /* C_Digest digests data in a single part. */
488*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_Digest)
489*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
490*00b67f09SDavid van Moolenbroek (
491*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,     /* the session's handle */
492*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pData,        /* data to be digested */
493*00b67f09SDavid van Moolenbroek   CK_ULONG          ulDataLen,    /* bytes of data to digest */
494*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pDigest,      /* gets the message digest */
495*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulDigestLen  /* gets digest length */
496*00b67f09SDavid van Moolenbroek );
497*00b67f09SDavid van Moolenbroek #endif
498*00b67f09SDavid van Moolenbroek 
499*00b67f09SDavid van Moolenbroek 
500*00b67f09SDavid van Moolenbroek /* C_DigestUpdate continues a multiple-part message-digesting
501*00b67f09SDavid van Moolenbroek  * operation. */
502*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_DigestUpdate)
503*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
504*00b67f09SDavid van Moolenbroek (
505*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,  /* the session's handle */
506*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pPart,     /* data to be digested */
507*00b67f09SDavid van Moolenbroek   CK_ULONG          ulPartLen  /* bytes of data to be digested */
508*00b67f09SDavid van Moolenbroek );
509*00b67f09SDavid van Moolenbroek #endif
510*00b67f09SDavid van Moolenbroek 
511*00b67f09SDavid van Moolenbroek 
512*00b67f09SDavid van Moolenbroek /* C_DigestKey continues a multi-part message-digesting
513*00b67f09SDavid van Moolenbroek  * operation, by digesting the value of a secret key as part of
514*00b67f09SDavid van Moolenbroek  * the data already digested. */
515*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_DigestKey)
516*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
517*00b67f09SDavid van Moolenbroek (
518*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,  /* the session's handle */
519*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE  hKey       /* secret key to digest */
520*00b67f09SDavid van Moolenbroek );
521*00b67f09SDavid van Moolenbroek #endif
522*00b67f09SDavid van Moolenbroek 
523*00b67f09SDavid van Moolenbroek 
524*00b67f09SDavid van Moolenbroek /* C_DigestFinal finishes a multiple-part message-digesting
525*00b67f09SDavid van Moolenbroek  * operation. */
526*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_DigestFinal)
527*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
528*00b67f09SDavid van Moolenbroek (
529*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,     /* the session's handle */
530*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pDigest,      /* gets the message digest */
531*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulDigestLen  /* gets byte count of digest */
532*00b67f09SDavid van Moolenbroek );
533*00b67f09SDavid van Moolenbroek #endif
534*00b67f09SDavid van Moolenbroek 
535*00b67f09SDavid van Moolenbroek 
536*00b67f09SDavid van Moolenbroek 
537*00b67f09SDavid van Moolenbroek /* Signing and MACing */
538*00b67f09SDavid van Moolenbroek 
539*00b67f09SDavid van Moolenbroek /* C_SignInit initializes a signature (private key encryption)
540*00b67f09SDavid van Moolenbroek  * operation, where the signature is (will be) an appendix to
541*00b67f09SDavid van Moolenbroek  * the data, and plaintext cannot be recovered from the
542*00b67f09SDavid van Moolenbroek  *signature. */
543*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_SignInit)
544*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
545*00b67f09SDavid van Moolenbroek (
546*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,    /* the session's handle */
547*00b67f09SDavid van Moolenbroek   CK_MECHANISM_PTR  pMechanism,  /* the signature mechanism */
548*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE  hKey         /* handle of signature key */
549*00b67f09SDavid van Moolenbroek );
550*00b67f09SDavid van Moolenbroek #endif
551*00b67f09SDavid van Moolenbroek 
552*00b67f09SDavid van Moolenbroek 
553*00b67f09SDavid van Moolenbroek /* C_Sign signs (encrypts with private key) data in a single
554*00b67f09SDavid van Moolenbroek  * part, where the signature is (will be) an appendix to the
555*00b67f09SDavid van Moolenbroek  * data, and plaintext cannot be recovered from the signature. */
556*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_Sign)
557*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
558*00b67f09SDavid van Moolenbroek (
559*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,        /* the session's handle */
560*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pData,           /* the data to sign */
561*00b67f09SDavid van Moolenbroek   CK_ULONG          ulDataLen,       /* count of bytes to sign */
562*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pSignature,      /* gets the signature */
563*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulSignatureLen  /* gets signature length */
564*00b67f09SDavid van Moolenbroek );
565*00b67f09SDavid van Moolenbroek #endif
566*00b67f09SDavid van Moolenbroek 
567*00b67f09SDavid van Moolenbroek 
568*00b67f09SDavid van Moolenbroek /* C_SignUpdate continues a multiple-part signature operation,
569*00b67f09SDavid van Moolenbroek  * where the signature is (will be) an appendix to the data,
570*00b67f09SDavid van Moolenbroek  * and plaintext cannot be recovered from the signature. */
571*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_SignUpdate)
572*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
573*00b67f09SDavid van Moolenbroek (
574*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,  /* the session's handle */
575*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pPart,     /* the data to sign */
576*00b67f09SDavid van Moolenbroek   CK_ULONG          ulPartLen  /* count of bytes to sign */
577*00b67f09SDavid van Moolenbroek );
578*00b67f09SDavid van Moolenbroek #endif
579*00b67f09SDavid van Moolenbroek 
580*00b67f09SDavid van Moolenbroek 
581*00b67f09SDavid van Moolenbroek /* C_SignFinal finishes a multiple-part signature operation,
582*00b67f09SDavid van Moolenbroek  * returning the signature. */
583*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_SignFinal)
584*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
585*00b67f09SDavid van Moolenbroek (
586*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,        /* the session's handle */
587*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pSignature,      /* gets the signature */
588*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulSignatureLen  /* gets signature length */
589*00b67f09SDavid van Moolenbroek );
590*00b67f09SDavid van Moolenbroek #endif
591*00b67f09SDavid van Moolenbroek 
592*00b67f09SDavid van Moolenbroek 
593*00b67f09SDavid van Moolenbroek /* C_SignRecoverInit initializes a signature operation, where
594*00b67f09SDavid van Moolenbroek  * the data can be recovered from the signature. */
595*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_SignRecoverInit)
596*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
597*00b67f09SDavid van Moolenbroek (
598*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,   /* the session's handle */
599*00b67f09SDavid van Moolenbroek   CK_MECHANISM_PTR  pMechanism, /* the signature mechanism */
600*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE  hKey        /* handle of the signature key */
601*00b67f09SDavid van Moolenbroek );
602*00b67f09SDavid van Moolenbroek #endif
603*00b67f09SDavid van Moolenbroek 
604*00b67f09SDavid van Moolenbroek 
605*00b67f09SDavid van Moolenbroek /* C_SignRecover signs data in a single operation, where the
606*00b67f09SDavid van Moolenbroek  * data can be recovered from the signature. */
607*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_SignRecover)
608*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
609*00b67f09SDavid van Moolenbroek (
610*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,        /* the session's handle */
611*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pData,           /* the data to sign */
612*00b67f09SDavid van Moolenbroek   CK_ULONG          ulDataLen,       /* count of bytes to sign */
613*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pSignature,      /* gets the signature */
614*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulSignatureLen  /* gets signature length */
615*00b67f09SDavid van Moolenbroek );
616*00b67f09SDavid van Moolenbroek #endif
617*00b67f09SDavid van Moolenbroek 
618*00b67f09SDavid van Moolenbroek 
619*00b67f09SDavid van Moolenbroek 
620*00b67f09SDavid van Moolenbroek /* Verifying signatures and MACs */
621*00b67f09SDavid van Moolenbroek 
622*00b67f09SDavid van Moolenbroek /* C_VerifyInit initializes a verification operation, where the
623*00b67f09SDavid van Moolenbroek  * signature is an appendix to the data, and plaintext cannot
624*00b67f09SDavid van Moolenbroek  *  cannot be recovered from the signature (e.g. DSA). */
625*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_VerifyInit)
626*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
627*00b67f09SDavid van Moolenbroek (
628*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,    /* the session's handle */
629*00b67f09SDavid van Moolenbroek   CK_MECHANISM_PTR  pMechanism,  /* the verification mechanism */
630*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE  hKey         /* verification key */
631*00b67f09SDavid van Moolenbroek );
632*00b67f09SDavid van Moolenbroek #endif
633*00b67f09SDavid van Moolenbroek 
634*00b67f09SDavid van Moolenbroek 
635*00b67f09SDavid van Moolenbroek /* C_Verify verifies a signature in a single-part operation,
636*00b67f09SDavid van Moolenbroek  * where the signature is an appendix to the data, and plaintext
637*00b67f09SDavid van Moolenbroek  * cannot be recovered from the signature. */
638*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_Verify)
639*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
640*00b67f09SDavid van Moolenbroek (
641*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,       /* the session's handle */
642*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pData,          /* signed data */
643*00b67f09SDavid van Moolenbroek   CK_ULONG          ulDataLen,      /* length of signed data */
644*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pSignature,     /* signature */
645*00b67f09SDavid van Moolenbroek   CK_ULONG          ulSignatureLen  /* signature length*/
646*00b67f09SDavid van Moolenbroek );
647*00b67f09SDavid van Moolenbroek #endif
648*00b67f09SDavid van Moolenbroek 
649*00b67f09SDavid van Moolenbroek 
650*00b67f09SDavid van Moolenbroek /* C_VerifyUpdate continues a multiple-part verification
651*00b67f09SDavid van Moolenbroek  * operation, where the signature is an appendix to the data,
652*00b67f09SDavid van Moolenbroek  * and plaintext cannot be recovered from the signature. */
653*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_VerifyUpdate)
654*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
655*00b67f09SDavid van Moolenbroek (
656*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,  /* the session's handle */
657*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pPart,     /* signed data */
658*00b67f09SDavid van Moolenbroek   CK_ULONG          ulPartLen  /* length of signed data */
659*00b67f09SDavid van Moolenbroek );
660*00b67f09SDavid van Moolenbroek #endif
661*00b67f09SDavid van Moolenbroek 
662*00b67f09SDavid van Moolenbroek 
663*00b67f09SDavid van Moolenbroek /* C_VerifyFinal finishes a multiple-part verification
664*00b67f09SDavid van Moolenbroek  * operation, checking the signature. */
665*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_VerifyFinal)
666*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
667*00b67f09SDavid van Moolenbroek (
668*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,       /* the session's handle */
669*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pSignature,     /* signature to verify */
670*00b67f09SDavid van Moolenbroek   CK_ULONG          ulSignatureLen  /* signature length */
671*00b67f09SDavid van Moolenbroek );
672*00b67f09SDavid van Moolenbroek #endif
673*00b67f09SDavid van Moolenbroek 
674*00b67f09SDavid van Moolenbroek 
675*00b67f09SDavid van Moolenbroek /* C_VerifyRecoverInit initializes a signature verification
676*00b67f09SDavid van Moolenbroek  * operation, where the data is recovered from the signature. */
677*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_VerifyRecoverInit)
678*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
679*00b67f09SDavid van Moolenbroek (
680*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,    /* the session's handle */
681*00b67f09SDavid van Moolenbroek   CK_MECHANISM_PTR  pMechanism,  /* the verification mechanism */
682*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE  hKey         /* verification key */
683*00b67f09SDavid van Moolenbroek );
684*00b67f09SDavid van Moolenbroek #endif
685*00b67f09SDavid van Moolenbroek 
686*00b67f09SDavid van Moolenbroek 
687*00b67f09SDavid van Moolenbroek /* C_VerifyRecover verifies a signature in a single-part
688*00b67f09SDavid van Moolenbroek  * operation, where the data is recovered from the signature. */
689*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_VerifyRecover)
690*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
691*00b67f09SDavid van Moolenbroek (
692*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,        /* the session's handle */
693*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pSignature,      /* signature to verify */
694*00b67f09SDavid van Moolenbroek   CK_ULONG          ulSignatureLen,  /* signature length */
695*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pData,           /* gets signed data */
696*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulDataLen       /* gets signed data len */
697*00b67f09SDavid van Moolenbroek );
698*00b67f09SDavid van Moolenbroek #endif
699*00b67f09SDavid van Moolenbroek 
700*00b67f09SDavid van Moolenbroek 
701*00b67f09SDavid van Moolenbroek 
702*00b67f09SDavid van Moolenbroek /* Dual-function cryptographic operations */
703*00b67f09SDavid van Moolenbroek 
704*00b67f09SDavid van Moolenbroek /* C_DigestEncryptUpdate continues a multiple-part digesting
705*00b67f09SDavid van Moolenbroek  * and encryption operation. */
706*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_DigestEncryptUpdate)
707*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
708*00b67f09SDavid van Moolenbroek (
709*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,            /* session's handle */
710*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pPart,               /* the plaintext data */
711*00b67f09SDavid van Moolenbroek   CK_ULONG          ulPartLen,           /* plaintext length */
712*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pEncryptedPart,      /* gets ciphertext */
713*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulEncryptedPartLen  /* gets c-text length */
714*00b67f09SDavid van Moolenbroek );
715*00b67f09SDavid van Moolenbroek #endif
716*00b67f09SDavid van Moolenbroek 
717*00b67f09SDavid van Moolenbroek 
718*00b67f09SDavid van Moolenbroek /* C_DecryptDigestUpdate continues a multiple-part decryption and
719*00b67f09SDavid van Moolenbroek  * digesting operation. */
720*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_DecryptDigestUpdate)
721*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
722*00b67f09SDavid van Moolenbroek (
723*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,            /* session's handle */
724*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pEncryptedPart,      /* ciphertext */
725*00b67f09SDavid van Moolenbroek   CK_ULONG          ulEncryptedPartLen,  /* ciphertext length */
726*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pPart,               /* gets plaintext */
727*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulPartLen           /* gets plaintext len */
728*00b67f09SDavid van Moolenbroek );
729*00b67f09SDavid van Moolenbroek #endif
730*00b67f09SDavid van Moolenbroek 
731*00b67f09SDavid van Moolenbroek 
732*00b67f09SDavid van Moolenbroek /* C_SignEncryptUpdate continues a multiple-part signing and
733*00b67f09SDavid van Moolenbroek  * encryption operation. */
734*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_SignEncryptUpdate)
735*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
736*00b67f09SDavid van Moolenbroek (
737*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,            /* session's handle */
738*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pPart,               /* the plaintext data */
739*00b67f09SDavid van Moolenbroek   CK_ULONG          ulPartLen,           /* plaintext length */
740*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pEncryptedPart,      /* gets ciphertext */
741*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulEncryptedPartLen  /* gets c-text length */
742*00b67f09SDavid van Moolenbroek );
743*00b67f09SDavid van Moolenbroek #endif
744*00b67f09SDavid van Moolenbroek 
745*00b67f09SDavid van Moolenbroek 
746*00b67f09SDavid van Moolenbroek /* C_DecryptVerifyUpdate continues a multiple-part decryption and
747*00b67f09SDavid van Moolenbroek  * verify operation. */
748*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_DecryptVerifyUpdate)
749*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
750*00b67f09SDavid van Moolenbroek (
751*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,            /* session's handle */
752*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pEncryptedPart,      /* ciphertext */
753*00b67f09SDavid van Moolenbroek   CK_ULONG          ulEncryptedPartLen,  /* ciphertext length */
754*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pPart,               /* gets plaintext */
755*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulPartLen           /* gets p-text length */
756*00b67f09SDavid van Moolenbroek );
757*00b67f09SDavid van Moolenbroek #endif
758*00b67f09SDavid van Moolenbroek 
759*00b67f09SDavid van Moolenbroek 
760*00b67f09SDavid van Moolenbroek 
761*00b67f09SDavid van Moolenbroek /* Key management */
762*00b67f09SDavid van Moolenbroek 
763*00b67f09SDavid van Moolenbroek /* C_GenerateKey generates a secret key, creating a new key
764*00b67f09SDavid van Moolenbroek  * object. */
765*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GenerateKey)
766*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
767*00b67f09SDavid van Moolenbroek (
768*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE    hSession,    /* the session's handle */
769*00b67f09SDavid van Moolenbroek   CK_MECHANISM_PTR     pMechanism,  /* key generation mech. */
770*00b67f09SDavid van Moolenbroek   CK_ATTRIBUTE_PTR     pTemplate,   /* template for new key */
771*00b67f09SDavid van Moolenbroek   CK_ULONG             ulCount,     /* # of attrs in template */
772*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE_PTR phKey        /* gets handle of new key */
773*00b67f09SDavid van Moolenbroek );
774*00b67f09SDavid van Moolenbroek #endif
775*00b67f09SDavid van Moolenbroek 
776*00b67f09SDavid van Moolenbroek 
777*00b67f09SDavid van Moolenbroek /* C_GenerateKeyPair generates a public-key/private-key pair,
778*00b67f09SDavid van Moolenbroek  * creating new key objects. */
779*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GenerateKeyPair)
780*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
781*00b67f09SDavid van Moolenbroek (
782*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE    hSession,                    /* session
783*00b67f09SDavid van Moolenbroek                                                      * handle */
784*00b67f09SDavid van Moolenbroek   CK_MECHANISM_PTR     pMechanism,                  /* key-gen
785*00b67f09SDavid van Moolenbroek                                                      * mech. */
786*00b67f09SDavid van Moolenbroek   CK_ATTRIBUTE_PTR     pPublicKeyTemplate,          /* template
787*00b67f09SDavid van Moolenbroek                                                      * for pub.
788*00b67f09SDavid van Moolenbroek                                                      * key */
789*00b67f09SDavid van Moolenbroek   CK_ULONG             ulPublicKeyAttributeCount,   /* # pub.
790*00b67f09SDavid van Moolenbroek                                                      * attrs. */
791*00b67f09SDavid van Moolenbroek   CK_ATTRIBUTE_PTR     pPrivateKeyTemplate,         /* template
792*00b67f09SDavid van Moolenbroek                                                      * for priv.
793*00b67f09SDavid van Moolenbroek                                                      * key */
794*00b67f09SDavid van Moolenbroek   CK_ULONG             ulPrivateKeyAttributeCount,  /* # priv.
795*00b67f09SDavid van Moolenbroek                                                      * attrs. */
796*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE_PTR phPublicKey,                 /* gets pub.
797*00b67f09SDavid van Moolenbroek                                                      * key
798*00b67f09SDavid van Moolenbroek                                                      * handle */
799*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE_PTR phPrivateKey                 /* gets
800*00b67f09SDavid van Moolenbroek                                                      * priv. key
801*00b67f09SDavid van Moolenbroek                                                      * handle */
802*00b67f09SDavid van Moolenbroek );
803*00b67f09SDavid van Moolenbroek #endif
804*00b67f09SDavid van Moolenbroek 
805*00b67f09SDavid van Moolenbroek 
806*00b67f09SDavid van Moolenbroek /* C_WrapKey wraps (i.e., encrypts) a key. */
807*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_WrapKey)
808*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
809*00b67f09SDavid van Moolenbroek (
810*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,        /* the session's handle */
811*00b67f09SDavid van Moolenbroek   CK_MECHANISM_PTR  pMechanism,      /* the wrapping mechanism */
812*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE  hWrappingKey,    /* wrapping key */
813*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE  hKey,            /* key to be wrapped */
814*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pWrappedKey,     /* gets wrapped key */
815*00b67f09SDavid van Moolenbroek   CK_ULONG_PTR      pulWrappedKeyLen /* gets wrapped key size */
816*00b67f09SDavid van Moolenbroek );
817*00b67f09SDavid van Moolenbroek #endif
818*00b67f09SDavid van Moolenbroek 
819*00b67f09SDavid van Moolenbroek 
820*00b67f09SDavid van Moolenbroek /* C_UnwrapKey unwraps (decrypts) a wrapped key, creating a new
821*00b67f09SDavid van Moolenbroek  * key object. */
822*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_UnwrapKey)
823*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
824*00b67f09SDavid van Moolenbroek (
825*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE    hSession,          /* session's handle */
826*00b67f09SDavid van Moolenbroek   CK_MECHANISM_PTR     pMechanism,        /* unwrapping mech. */
827*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE     hUnwrappingKey,    /* unwrapping key */
828*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR          pWrappedKey,       /* the wrapped key */
829*00b67f09SDavid van Moolenbroek   CK_ULONG             ulWrappedKeyLen,   /* wrapped key len */
830*00b67f09SDavid van Moolenbroek   CK_ATTRIBUTE_PTR     pTemplate,         /* new key template */
831*00b67f09SDavid van Moolenbroek   CK_ULONG             ulAttributeCount,  /* template length */
832*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE_PTR phKey              /* gets new handle */
833*00b67f09SDavid van Moolenbroek );
834*00b67f09SDavid van Moolenbroek #endif
835*00b67f09SDavid van Moolenbroek 
836*00b67f09SDavid van Moolenbroek 
837*00b67f09SDavid van Moolenbroek /* C_DeriveKey derives a key from a base key, creating a new key
838*00b67f09SDavid van Moolenbroek  * object. */
839*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_DeriveKey)
840*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
841*00b67f09SDavid van Moolenbroek (
842*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE    hSession,          /* session's handle */
843*00b67f09SDavid van Moolenbroek   CK_MECHANISM_PTR     pMechanism,        /* key deriv. mech. */
844*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE     hBaseKey,          /* base key */
845*00b67f09SDavid van Moolenbroek   CK_ATTRIBUTE_PTR     pTemplate,         /* new key template */
846*00b67f09SDavid van Moolenbroek   CK_ULONG             ulAttributeCount,  /* template length */
847*00b67f09SDavid van Moolenbroek   CK_OBJECT_HANDLE_PTR phKey              /* gets new handle */
848*00b67f09SDavid van Moolenbroek );
849*00b67f09SDavid van Moolenbroek #endif
850*00b67f09SDavid van Moolenbroek 
851*00b67f09SDavid van Moolenbroek 
852*00b67f09SDavid van Moolenbroek 
853*00b67f09SDavid van Moolenbroek /* Random number generation */
854*00b67f09SDavid van Moolenbroek 
855*00b67f09SDavid van Moolenbroek /* C_SeedRandom mixes additional seed material into the token's
856*00b67f09SDavid van Moolenbroek  * random number generator. */
857*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_SeedRandom)
858*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
859*00b67f09SDavid van Moolenbroek (
860*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,  /* the session's handle */
861*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       pSeed,     /* the seed material */
862*00b67f09SDavid van Moolenbroek   CK_ULONG          ulSeedLen  /* length of seed material */
863*00b67f09SDavid van Moolenbroek );
864*00b67f09SDavid van Moolenbroek #endif
865*00b67f09SDavid van Moolenbroek 
866*00b67f09SDavid van Moolenbroek 
867*00b67f09SDavid van Moolenbroek /* C_GenerateRandom generates random data. */
868*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GenerateRandom)
869*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
870*00b67f09SDavid van Moolenbroek (
871*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession,    /* the session's handle */
872*00b67f09SDavid van Moolenbroek   CK_BYTE_PTR       RandomData,  /* receives the random data */
873*00b67f09SDavid van Moolenbroek   CK_ULONG          ulRandomLen  /* # of bytes to generate */
874*00b67f09SDavid van Moolenbroek );
875*00b67f09SDavid van Moolenbroek #endif
876*00b67f09SDavid van Moolenbroek 
877*00b67f09SDavid van Moolenbroek 
878*00b67f09SDavid van Moolenbroek 
879*00b67f09SDavid van Moolenbroek /* Parallel function management */
880*00b67f09SDavid van Moolenbroek 
881*00b67f09SDavid van Moolenbroek /* C_GetFunctionStatus is a legacy function; it obtains an
882*00b67f09SDavid van Moolenbroek  * updated status of a function running in parallel with an
883*00b67f09SDavid van Moolenbroek  * application. */
884*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_GetFunctionStatus)
885*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
886*00b67f09SDavid van Moolenbroek (
887*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession  /* the session's handle */
888*00b67f09SDavid van Moolenbroek );
889*00b67f09SDavid van Moolenbroek #endif
890*00b67f09SDavid van Moolenbroek 
891*00b67f09SDavid van Moolenbroek 
892*00b67f09SDavid van Moolenbroek /* C_CancelFunction is a legacy function; it cancels a function
893*00b67f09SDavid van Moolenbroek  * running in parallel. */
894*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_CancelFunction)
895*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
896*00b67f09SDavid van Moolenbroek (
897*00b67f09SDavid van Moolenbroek   CK_SESSION_HANDLE hSession  /* the session's handle */
898*00b67f09SDavid van Moolenbroek );
899*00b67f09SDavid van Moolenbroek #endif
900*00b67f09SDavid van Moolenbroek 
901*00b67f09SDavid van Moolenbroek 
902*00b67f09SDavid van Moolenbroek 
903*00b67f09SDavid van Moolenbroek /* Functions added in for Cryptoki Version 2.01 or later */
904*00b67f09SDavid van Moolenbroek 
905*00b67f09SDavid van Moolenbroek /* C_WaitForSlotEvent waits for a slot event (token insertion,
906*00b67f09SDavid van Moolenbroek  * removal, etc.) to occur. */
907*00b67f09SDavid van Moolenbroek CK_PKCS11_FUNCTION_INFO(C_WaitForSlotEvent)
908*00b67f09SDavid van Moolenbroek #ifdef CK_NEED_ARG_LIST
909*00b67f09SDavid van Moolenbroek (
910*00b67f09SDavid van Moolenbroek   CK_FLAGS flags,        /* blocking/nonblocking flag */
911*00b67f09SDavid van Moolenbroek   CK_SLOT_ID_PTR pSlot,  /* location that receives the slot ID */
912*00b67f09SDavid van Moolenbroek   CK_VOID_PTR pRserved   /* reserved.  Should be NULL_PTR */
913*00b67f09SDavid van Moolenbroek );
914*00b67f09SDavid van Moolenbroek #endif
915