Mercurial > trustbridge > nss-cmake-static
comparison nss/lib/libpkix/include/pkix_certstore.h @ 0:1e5118fa0cb1
This is NSS with a Cmake Buildsyste
To compile a static NSS library for Windows we've used the
Chromium-NSS fork and added a Cmake buildsystem to compile
it statically for Windows. See README.chromium for chromium
changes and README.trustbridge for our modifications.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 28 Jul 2014 10:47:06 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:1e5118fa0cb1 |
---|---|
1 /* This Source Code Form is subject to the terms of the Mozilla Public | |
2 * License, v. 2.0. If a copy of the MPL was not distributed with this | |
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | |
4 /* | |
5 * This file defines functions associated with the PKIX_CertStore type. | |
6 * | |
7 */ | |
8 | |
9 #ifndef _PKIX_CERTSTORE_H | |
10 #define _PKIX_CERTSTORE_H | |
11 | |
12 #include "pkixt.h" | |
13 | |
14 #ifdef __cplusplus | |
15 extern "C" { | |
16 #endif | |
17 | |
18 /* General | |
19 * | |
20 * Please refer to the libpkix Programmer's Guide for detailed information | |
21 * about how to use the libpkix library. Certain key warnings and notices from | |
22 * that document are repeated here for emphasis. | |
23 * | |
24 * All identifiers in this file (and all public identifiers defined in | |
25 * libpkix) begin with "PKIX_". Private identifiers only intended for use | |
26 * within the library begin with "pkix_". | |
27 * | |
28 * A function returns NULL upon success, and a PKIX_Error pointer upon failure. | |
29 * | |
30 * Unless otherwise noted, for all accessor (gettor) functions that return a | |
31 * PKIX_PL_Object pointer, callers should assume that this pointer refers to a | |
32 * shared object. Therefore, the caller should treat this shared object as | |
33 * read-only and should not modify this shared object. When done using the | |
34 * shared object, the caller should release the reference to the object by | |
35 * using the PKIX_PL_Object_DecRef function. | |
36 * | |
37 * While a function is executing, if its arguments (or anything referred to by | |
38 * its arguments) are modified, free'd, or destroyed, the function's behavior | |
39 * is undefined. | |
40 * | |
41 */ | |
42 | |
43 /* PKIX_CertStore | |
44 * | |
45 * A PKIX_CertStore provides a standard way for the caller to retrieve | |
46 * certificates and CRLs from a particular repository (or "store") of | |
47 * certificates and CRLs, including LDAP directories, flat files, local | |
48 * databases, etc. The CertCallback allows custom certificate retrieval logic | |
49 * to be used while the CRLCallback allows custom CRL retrieval logic to be | |
50 * used. Additionally, a CertStore can be initialized with a certStoreContext, | |
51 * which is where the caller can specify configuration data such as the host | |
52 * name of an LDAP server. Note that this certStoreContext must be an | |
53 * Object (although any object type), allowing it to be reference-counted and | |
54 * allowing it to provide the standard Object functions (Equals, Hashcode, | |
55 * ToString, Compare, Duplicate). Please note that each certStoreContext must | |
56 * provide Equals and Hashcode functions in order for the caching (on Cert and | |
57 * CertChain) to work correctly. When providing those two functions, it is not | |
58 * required that all the components of the object be hashed or checked for | |
59 * equality, but merely that the functions distinguish between unique | |
60 * instances of the certStoreContext. | |
61 * | |
62 * Once the caller has created the CertStore object, the caller then specifies | |
63 * these CertStore objects in a ProcessingParams object and passes that object | |
64 * to PKIX_ValidateChain or PKIX_BuildChain, which uses the objects to call the | |
65 * user's callback functions as needed during the validation or building | |
66 * process. | |
67 * | |
68 * The order of CertStores stored (as a list) at ProcessingParams determines | |
69 * the order in which certificates are retrieved. Trusted CertStores should | |
70 * precede non-trusted ones on the list of CertStores so their certificates | |
71 * are evaluated ahead of other certificates selected on the basis of the same | |
72 * selector criteria. | |
73 * | |
74 * The CheckTrustCallback function is used when the CertStore object | |
75 * supports trust status, which means a Cert's trust status can be altered | |
76 * dynamically. When a CertStore object is created, if the | |
77 * CheckTrustCallback is initialized to be non-NULL, this CertStore is | |
78 * defaulted as supporting trust. Then whenever a Cert needs to (re)check its | |
79 * trust status, this callback can be invoked. When a Cert is retrieved by | |
80 * a CertStore supports trust, at its GetCertCallback, the CertStore | |
81 * information should be updated in Cert's data structure so the link between | |
82 * the Cert and CertStore exists. | |
83 * | |
84 */ | |
85 | |
86 /* | |
87 * FUNCTION: PKIX_CertStore_CertCallback | |
88 * DESCRIPTION: | |
89 * | |
90 * This callback function retrieves from the CertStore pointed to by "store" | |
91 * all the certificates that match the CertSelector pointed to by "selector". | |
92 * It places these certificates in a List and stores a pointer to the List at | |
93 * "pCerts". If no certificates are found which match the CertSelector's | |
94 * criteria, this function stores an empty List at "pCerts". In either case, if | |
95 * the operation is completed, NULL is stored at "pNBIOContext". | |
96 * | |
97 * A CertStore which uses non-blocking I/O may store platform-dependent | |
98 * information at "pNBIOContext" and NULL at "pCerts" to indicate that I/O is | |
99 * pending. A subsequent call to PKIX_CertStore_CertContinue is required to | |
100 * finish the operation and to obtain the List of Certs. | |
101 * | |
102 * Note that the List returned by this function is immutable. | |
103 * | |
104 * PARAMETERS: | |
105 * "store" | |
106 * Address of CertStore from which Certs are to be retrieved. | |
107 * Must be non-NULL. | |
108 * "selector" | |
109 * Address of CertSelector whose criteria must be satisfied. | |
110 * Must be non-NULL. | |
111 * "verifyNode" | |
112 * Parent log node for tracking of filtered out certs. | |
113 * "pNBIOContext" | |
114 * Address at which platform-dependent information is stored if the | |
115 * operation is suspended for non-blocking I/O. Must be non-NULL. | |
116 * "pCerts" | |
117 * Address where object pointer will be stored. Must be non-NULL. | |
118 * "plContext" | |
119 * Platform-specific context pointer. | |
120 * THREAD SAFETY: | |
121 * Thread Safe | |
122 * | |
123 * Multiple threads must be able to safely call this function without | |
124 * worrying about conflicts, even if they're operating on the same object. | |
125 * RETURNS: | |
126 * Returns NULL if the function succeeds. | |
127 * Returns a CertStore Error if the function fails in a non-fatal way. | |
128 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
129 */ | |
130 typedef PKIX_Error * | |
131 (*PKIX_CertStore_CertCallback)( | |
132 PKIX_CertStore *store, | |
133 PKIX_CertSelector *selector, | |
134 PKIX_VerifyNode *verifyNode, | |
135 void **pNBIOContext, | |
136 PKIX_List **pCerts, /* list of PKIX_PL_Cert */ | |
137 void *plContext); | |
138 | |
139 /* | |
140 * FUNCTION: PKIX_CertStore_CertContinue | |
141 * DESCRIPTION: | |
142 * | |
143 * This function continues the non-blocking operation initiated by an earlier | |
144 * call to the CertCallback function, for the CertStore pointed to by "store". | |
145 * If an earlier call did not terminate with the WOULDBLOCK indication (non-NULL | |
146 * value returned in "pNBIOContext") calling this function will return a fatal | |
147 * error. If the operation is completed the certificates found are placed in a | |
148 * List, a pointer to which is stored at "pCerts". If no certificates are found | |
149 * which match the CertSelector's criteria, this function stores an empty List | |
150 * at "pCerts". In either case, if the operation is completed, NULL is stored | |
151 * at "pNBIOContext". | |
152 * | |
153 * If non-blocking I/O is still pending this function stores platform-dependent | |
154 * information at "pNBIOContext" and NULL at "pCerts". A subsequent call to | |
155 * PKIX_CertStore_CertContinue is required to finish the operation and to | |
156 * obtain the List of Certs. | |
157 * | |
158 * Note that the List returned by this function is immutable. | |
159 * | |
160 * PARAMETERS: | |
161 * "store" | |
162 * Address of CertStore from which Certs are to be retrieved. | |
163 * Must be non-NULL. | |
164 * "selector" | |
165 * Address of CertSelector whose criteria must be satisfied. | |
166 * Must be non-NULL. | |
167 * "verifyNode" | |
168 * Parent log node for tracking of filtered out certs. | |
169 * "pNBIOContext" | |
170 * Address at which platform-dependent information is stored if the | |
171 * operation is suspended for non-blocking I/O. Must be non-NULL. | |
172 * "pCerts" | |
173 * Address where object pointer will be stored. Must be non-NULL. | |
174 * "plContext" | |
175 * Platform-specific context pointer. | |
176 * THREAD SAFETY: | |
177 * Thread Safe | |
178 * | |
179 * Multiple threads must be able to safely call this function without | |
180 * worrying about conflicts, even if they're operating on the same object. | |
181 * RETURNS: | |
182 * Returns NULL if the function succeeds. | |
183 * Returns a CertStore Error if the function fails in a non-fatal way. | |
184 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
185 */ | |
186 PKIX_Error * | |
187 PKIX_CertStore_CertContinue( | |
188 PKIX_CertStore *store, | |
189 PKIX_CertSelector *selector, | |
190 PKIX_VerifyNode *verifyNode, | |
191 void **pNBIOContext, | |
192 PKIX_List **pCerts, /* list of PKIX_PL_Cert */ | |
193 void *plContext); | |
194 | |
195 typedef PKIX_Error * | |
196 (*PKIX_CertStore_CertContinueFunction)( | |
197 PKIX_CertStore *store, | |
198 PKIX_CertSelector *selector, | |
199 PKIX_VerifyNode *verifyNode, | |
200 void **pNBIOContext, | |
201 PKIX_List **pCerts, /* list of PKIX_PL_Cert */ | |
202 void *plContext); | |
203 | |
204 /* | |
205 * FUNCTION: PKIX_CertStore_CRLCallback | |
206 * DESCRIPTION: | |
207 * | |
208 * This callback function retrieves from the CertStore pointed to by "store" | |
209 * all the CRLs that match the CRLSelector pointed to by "selector". It | |
210 * places these CRLs in a List and stores a pointer to the List at "pCRLs". | |
211 * If no CRLs are found which match the CRLSelector's criteria, this function | |
212 * stores an empty List at "pCRLs". In either case, if the operation is | |
213 * completed, NULL is stored at "pNBIOContext". | |
214 * | |
215 * A CertStore which uses non-blocking I/O may store platform-dependent | |
216 * information at "pNBIOContext" and NULL at "pCrls" to indicate that I/O is | |
217 * pending. A subsequent call to PKIX_CertStore_CRLContinue is required to | |
218 * finish the operation and to obtain the List of Crls. | |
219 * | |
220 * Note that the List returned by this function is immutable. | |
221 * | |
222 * PARAMETERS: | |
223 * "store" | |
224 * Address of CertStore from which CRLs are to be retrieved. | |
225 * Must be non-NULL. | |
226 * "selector" | |
227 * Address of CRLSelector whose criteria must be satisfied. | |
228 * Must be non-NULL. | |
229 * "pCrls" | |
230 * Address where object pointer will be stored. Must be non-NULL. | |
231 * "plContext" | |
232 * Platform-specific context pointer. | |
233 * THREAD SAFETY: | |
234 * Thread Safe | |
235 * | |
236 * Multiple threads must be able to safely call this function without | |
237 * worrying about conflicts, even if they're operating on the same object. | |
238 * RETURNS: | |
239 * Returns NULL if the function succeeds. | |
240 * Returns a CertStore Error if the function fails in a non-fatal way. | |
241 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
242 */ | |
243 typedef PKIX_Error * | |
244 (*PKIX_CertStore_CRLCallback)( | |
245 PKIX_CertStore *store, | |
246 PKIX_CRLSelector *selector, | |
247 void **pNBIOContext, | |
248 PKIX_List **pCrls, /* list of PKIX_PL_CRL */ | |
249 void *plContext); | |
250 | |
251 /* | |
252 * FUNCTION: PKIX_CertStore_ImportCrlCallback | |
253 * DESCRIPTION: | |
254 * | |
255 * The function imports crl list into a cert store. Stores that | |
256 * have local cache may only have that function defined. | |
257 * | |
258 * PARAMETERS: | |
259 * "store" | |
260 * Address of CertStore from which CRLs are to be retrieved. | |
261 * Must be non-NULL. | |
262 * "issuerName" | |
263 * Name of the issuer that will be used to track bad der crls. | |
264 * "crlList" | |
265 * Address on the importing crl list. | |
266 * "plContext" | |
267 * Platform-specific context pointer. | |
268 * THREAD SAFETY: | |
269 * Thread Safe | |
270 * | |
271 * Multiple threads must be able to safely call this function without | |
272 * worrying about conflicts, even if they're operating on the same object. | |
273 * RETURNS: | |
274 * Returns NULL if the function succeeds. | |
275 * Returns a CertStore Error if the function fails in a non-fatal way. | |
276 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
277 */ | |
278 typedef PKIX_Error * | |
279 (*PKIX_CertStore_ImportCrlCallback)( | |
280 PKIX_CertStore *store, | |
281 PKIX_PL_X500Name *issuerName, | |
282 PKIX_List *crlList, | |
283 void *plContext); | |
284 | |
285 /* | |
286 * FUNCTION: PKIX_CertStore_CheckRevokationByCrlCallback | |
287 * DESCRIPTION: | |
288 * | |
289 * The function checks revocation status of a cert with specified | |
290 * issuer, date. It returns revocation status of a cert and | |
291 * a reason code(if any) if a cert was revoked. | |
292 * | |
293 * PARAMETERS: | |
294 * "store" | |
295 * Address of CertStore from which CRLs are to be retrieved. | |
296 * Must be non-NULL. | |
297 * "cert" | |
298 * Certificate which revocation status will be checked. | |
299 * "issuer" | |
300 * Issuer certificate of the "crl". | |
301 * "date" | |
302 * Date of the revocation check. | |
303 * "crlDownloadDone" | |
304 * Indicates, that all needed crl downloads are done by the time of | |
305 * the revocation check. | |
306 * "reasonCode" | |
307 * If cert is revoked, returned reason code for which a cert was revoked. | |
308 * "revStatus" | |
309 * Returned revocation status of the cert. See PKIX_RevocationStatus | |
310 * for more details | |
311 * "plContext" | |
312 * Platform-specific context pointer. | |
313 * THREAD SAFETY: | |
314 * Thread Safe | |
315 * | |
316 * Multiple threads must be able to safely call this function without | |
317 * worrying about conflicts, even if they're operating on the same object. | |
318 * RETURNS: | |
319 * Returns NULL if the function succeeds. | |
320 * Returns a CertStore Error if the function fails in a non-fatal way. | |
321 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
322 */ | |
323 typedef PKIX_Error * | |
324 (*PKIX_CertStore_CheckRevokationByCrlCallback)( | |
325 PKIX_CertStore *store, | |
326 PKIX_PL_Cert *cert, | |
327 PKIX_PL_Cert *issuer, | |
328 PKIX_PL_Date *date, | |
329 PKIX_Boolean crlDownloadDone, | |
330 PKIX_UInt32 *reasonCode, | |
331 PKIX_RevocationStatus *revStatus, | |
332 void *plContext); | |
333 | |
334 /* | |
335 * FUNCTION: PKIX_CertStore_CrlContinue | |
336 * DESCRIPTION: | |
337 * | |
338 * This function continues the non-blocking operation initiated by an earlier | |
339 * call to the CRLCallback function, for the CertStore pointed to by "store". | |
340 * If an earlier call did not terminate with the WOULDBLOCK indication (non-NULL | |
341 * value returned in "pNBIOContext") calling this function will return a fatal | |
342 * error. If the operation is completed the crls found are placed in a List, a | |
343 * pointer to which is stored at "pCrls". If no crls are found which match the | |
344 * CRLSelector's criteria, this function stores an empty List at "pCrls". In | |
345 * either case, if the operation is completed, NULL is stored at "pNBIOContext". | |
346 * | |
347 * If non-blocking I/O is still pending this function stores platform-dependent | |
348 * information at "pNBIOContext" and NULL at "pCrls". A subsequent call to | |
349 * PKIX_CertStore_CrlContinue is required to finish the operation and to | |
350 * obtain the List of Crls. | |
351 * | |
352 * Note that the List returned by this function is immutable. | |
353 * | |
354 * PARAMETERS: | |
355 * "store" | |
356 * Address of CertStore from which Crls are to be retrieved. | |
357 * Must be non-NULL. | |
358 * "selector" | |
359 * Address of CRLSelector whose criteria must be satisfied. | |
360 * Must be non-NULL. | |
361 * "pNBIOContext" | |
362 * Address at which platform-dependent information is stored if the | |
363 * operation is suspended for non-blocking I/O. Must be non-NULL. | |
364 * "pCrls" | |
365 * Address where object pointer will be stored. Must be non-NULL. | |
366 * "plContext" | |
367 * Platform-specific context pointer. | |
368 * THREAD SAFETY: | |
369 * Thread Safe | |
370 * | |
371 * Multiple threads must be able to safely call this function without | |
372 * worrying about conflicts, even if they're operating on the same object. | |
373 * RETURNS: | |
374 * Returns NULL if the function succeeds. | |
375 * Returns a CertStore Error if the function fails in a non-fatal way. | |
376 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
377 */ | |
378 PKIX_Error * | |
379 PKIX_CertStore_CrlContinue( | |
380 PKIX_CertStore *store, | |
381 PKIX_CRLSelector *selector, | |
382 void **pNBIOContext, | |
383 PKIX_List **pCrls, /* list of PKIX_PL_CRL */ | |
384 void *plContext); | |
385 | |
386 typedef PKIX_Error * | |
387 (*PKIX_CertStore_CrlContinueFunction)( | |
388 PKIX_CertStore *store, | |
389 PKIX_CRLSelector *selector, | |
390 void **pNBIOContext, | |
391 PKIX_List **pCrls, /* list of PKIX_PL_CRL */ | |
392 void *plContext); | |
393 | |
394 /* | |
395 * FUNCTION: PKIX_CertStore_CheckTrustCallback | |
396 * DESCRIPTION: | |
397 * | |
398 * This callback function rechecks "cert's" trust status from the CertStore | |
399 * pointed to by "store". | |
400 * | |
401 * PARAMETERS: | |
402 * "store" | |
403 * Address of CertStore from which Certs are to be checked. | |
404 * Must be non-NULL. | |
405 * "cert" | |
406 * Address of Cert whose trust status needs to be rechecked. | |
407 * Must be non-NULL. | |
408 * "pTrusted" | |
409 * Address of PKIX_Boolean where the trust status is returned. | |
410 * Must be non-NULL. | |
411 * "plContext" | |
412 * Platform-specific context pointer. | |
413 * THREAD SAFETY: | |
414 * Thread Safe | |
415 * | |
416 * Multiple threads must be able to safely call this function without | |
417 * worrying about conflicts, even if they're operating on the same object. | |
418 * RETURNS: | |
419 * Returns NULL if the function succeeds. | |
420 * Returns a CertStore Error if the function fails in a non-fatal way. | |
421 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
422 */ | |
423 typedef PKIX_Error * | |
424 (*PKIX_CertStore_CheckTrustCallback)( | |
425 PKIX_CertStore *store, | |
426 PKIX_PL_Cert *cert, | |
427 PKIX_Boolean *pTrusted, | |
428 void *plContext); | |
429 | |
430 /* | |
431 * FUNCTION: PKIX_CertStore_Create | |
432 * DESCRIPTION: | |
433 * | |
434 * Creates a new CertStore and stores it at "pStore". The new CertStore uses | |
435 * the CertCallback pointed to by "certCallback" and the CRLCallback pointed | |
436 * to by "crlCallback" as its callback functions and uses the Object pointed | |
437 * to by "certStoreContext" as its context . Note that this certStoreContext | |
438 * must be an Object (although any object type), allowing it to be | |
439 * reference-counted and allowing it to provide the standard Object functions | |
440 * (Equals, Hashcode, ToString, Compare, Duplicate). Once created, a | |
441 * CertStore object is immutable, although the underlying repository can | |
442 * change. For example, a CertStore will often be a front-end for a database | |
443 * or directory. The contents of that directory can change after the | |
444 * CertStore object is created, but the CertStore object remains immutable. | |
445 * | |
446 * PARAMETERS: | |
447 * "certCallback" | |
448 * The CertCallback function to be used. Must be non-NULL. | |
449 * "crlCallback" | |
450 * The CRLCallback function to be used. Must be non-NULL. | |
451 * "certContinue" | |
452 * The function to be used to resume a certCallback that returned with a | |
453 * WOULDBLOCK condition. Must be non-NULL if certStore supports non-blocking | |
454 * I/O. | |
455 * "crlContinue" | |
456 * The function to be used to resume a crlCallback that returned with a | |
457 * WOULDBLOCK condition. Must be non-NULL if certStore supports non-blocking | |
458 * I/O. | |
459 * "trustCallback" | |
460 * Address of PKIX_CertStore_CheckTrustCallback which is called to | |
461 * verify the trust status of Certs in this CertStore. | |
462 * "certStoreContext" | |
463 * Address of Object representing the CertStore's context (if any). | |
464 * "cachedFlag" | |
465 * If TRUE indicates data retrieved from CertStore should be cached. | |
466 * "localFlag" | |
467 * Boolean value indicating whether this CertStore is local. | |
468 * "pStore" | |
469 * Address where object pointer will be stored. Must be non-NULL. | |
470 * "plContext" | |
471 * Platform-specific context pointer. | |
472 * THREAD SAFETY: | |
473 * Thread Safe (see Thread Safety Definitions in Programmer's Guide) | |
474 * RETURNS: | |
475 * Returns NULL if the function succeeds. | |
476 * Returns a CertStore Error if the function fails in a non-fatal way. | |
477 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
478 */ | |
479 PKIX_Error * | |
480 PKIX_CertStore_Create( | |
481 PKIX_CertStore_CertCallback certCallback, | |
482 PKIX_CertStore_CRLCallback crlCallback, | |
483 PKIX_CertStore_CertContinueFunction certContinue, | |
484 PKIX_CertStore_CrlContinueFunction crlContinue, | |
485 PKIX_CertStore_CheckTrustCallback trustCallback, | |
486 PKIX_CertStore_ImportCrlCallback importCrlCallback, | |
487 PKIX_CertStore_CheckRevokationByCrlCallback checkRevByCrlCallback, | |
488 PKIX_PL_Object *certStoreContext, | |
489 PKIX_Boolean cachedFlag, | |
490 PKIX_Boolean localFlag, | |
491 PKIX_CertStore **pStore, | |
492 void *plContext); | |
493 | |
494 /* | |
495 * FUNCTION: PKIX_CertStore_GetCertCallback | |
496 * DESCRIPTION: | |
497 * | |
498 * Retrieves a pointer to "store's" Cert callback function and put it in | |
499 * "pCallback". | |
500 * | |
501 * PARAMETERS: | |
502 * "store" | |
503 * The CertStore whose Cert callback is desired. Must be non-NULL. | |
504 * "pCallback" | |
505 * Address where Cert callback function pointer will be stored. | |
506 * Must be non-NULL. | |
507 * "plContext" | |
508 * Platform-specific context pointer. | |
509 * THREAD SAFETY: | |
510 * Thread Safe (see Thread Safety Definitions in Programmer's Guide) | |
511 * RETURNS: | |
512 * Returns NULL if the function succeeds. | |
513 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
514 */ | |
515 PKIX_Error * | |
516 PKIX_CertStore_GetCertCallback( | |
517 PKIX_CertStore *store, | |
518 PKIX_CertStore_CertCallback *pCallback, | |
519 void *plContext); | |
520 | |
521 /* | |
522 * FUNCTION: PKIX_CertStore_GetCRLCallback | |
523 * DESCRIPTION: | |
524 * | |
525 * Retrieves a pointer to "store's" CRL callback function and put it in | |
526 * "pCallback". | |
527 * | |
528 * PARAMETERS: | |
529 * "store" | |
530 * The CertStore whose CRL callback is desired. Must be non-NULL. | |
531 * "pCallback" | |
532 * Address where CRL callback function pointer will be stored. | |
533 * Must be non-NULL. | |
534 * "plContext" | |
535 * Platform-specific context pointer. | |
536 * THREAD SAFETY: | |
537 * Thread Safe (see Thread Safety Definitions in Programmer's Guide) | |
538 * RETURNS: | |
539 * Returns NULL if the function succeeds. | |
540 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
541 */ | |
542 PKIX_Error * | |
543 PKIX_CertStore_GetCRLCallback( | |
544 PKIX_CertStore *store, | |
545 PKIX_CertStore_CRLCallback *pCallback, | |
546 void *plContext); | |
547 | |
548 /* | |
549 * FUNCTION: PKIX_CertStore_GetImportCrlCallback | |
550 * DESCRIPTION: | |
551 * | |
552 * Retrieves a pointer to "store's" Import CRL callback function and put it in | |
553 * "pCallback". | |
554 * | |
555 * PARAMETERS: | |
556 * "store" | |
557 * The CertStore whose CRL callback is desired. Must be non-NULL. | |
558 * "pCallback" | |
559 * Address where CRL callback function pointer will be stored. | |
560 * Must be non-NULL. | |
561 * "plContext" | |
562 * Platform-specific context pointer. | |
563 * THREAD SAFETY: | |
564 * Thread Safe (see Thread Safety Definitions in Programmer's Guide) | |
565 * RETURNS: | |
566 * Returns NULL if the function succeeds. | |
567 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
568 */ | |
569 PKIX_Error * | |
570 PKIX_CertStore_GetImportCrlCallback( | |
571 PKIX_CertStore *store, | |
572 PKIX_CertStore_ImportCrlCallback *pCallback, | |
573 void *plContext); | |
574 | |
575 /* | |
576 * FUNCTION: PKIX_CertStore_GetCheckRevByCrl | |
577 * DESCRIPTION: | |
578 * | |
579 * Retrieves a pointer to "store's" CRL revocation checker callback function | |
580 * and put it in "pCallback". | |
581 * | |
582 * PARAMETERS: | |
583 * "store" | |
584 * The CertStore whose CRL callback is desired. Must be non-NULL. | |
585 * "pCallback" | |
586 * Address where CRL callback function pointer will be stored. | |
587 * Must be non-NULL. | |
588 * "plContext" | |
589 * Platform-specific context pointer. | |
590 * THREAD SAFETY: | |
591 * Thread Safe (see Thread Safety Definitions in Programmer's Guide) | |
592 * RETURNS: | |
593 * Returns NULL if the function succeeds. | |
594 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
595 */ | |
596 PKIX_Error * | |
597 PKIX_CertStore_GetCrlCheckerFn( | |
598 PKIX_CertStore *store, | |
599 PKIX_CertStore_CheckRevokationByCrlCallback *pCallback, | |
600 void *plContext); | |
601 | |
602 /* | |
603 * FUNCTION: PKIX_CertStore_GetTrustCallback | |
604 * DESCRIPTION: | |
605 * | |
606 * Retrieves the function pointer to the CheckTrust callback function of the | |
607 * CertStore pointed to by "store" and stores it at "pCallback". | |
608 * | |
609 * PARAMETERS: | |
610 * "store" | |
611 * The CertStore whose CheckTrust callback is desired. Must be non-NULL. | |
612 * "pCallback" | |
613 * Address where CheckTrust callback function pointer will be stored. | |
614 * Must be non-NULL. | |
615 * "plContext" | |
616 * Platform-specific context pointer. | |
617 * THREAD SAFETY: | |
618 * Thread Safe (see Thread Safety Definitions in Programmer's Guide) | |
619 * RETURNS: | |
620 * Returns NULL if the function succeeds. | |
621 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
622 */ | |
623 PKIX_Error * | |
624 PKIX_CertStore_GetTrustCallback( | |
625 PKIX_CertStore *store, | |
626 PKIX_CertStore_CheckTrustCallback *pCallback, | |
627 void *plContext); | |
628 | |
629 /* | |
630 * FUNCTION: PKIX_CertStore_GetCertStoreContext | |
631 * DESCRIPTION: | |
632 * | |
633 * Retrieves a pointer to the Object representing the context (if any) | |
634 * of the CertStore pointed to by "store" and stores it at | |
635 * "pCertStoreContext". | |
636 * | |
637 * PARAMETERS: | |
638 * "store" | |
639 * Address of CertStore whose context is to be stored. Must be non-NULL. | |
640 * "pCertStoreContext" | |
641 * Address where object pointer will be stored. Must be non-NULL. | |
642 * "plContext" | |
643 * Platform-specific context pointer. | |
644 * THREAD SAFETY: | |
645 * Thread Safe (see Thread Safety Definitions in Programmer's Guide) | |
646 * RETURNS: | |
647 * Returns NULL if the function succeeds. | |
648 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
649 */ | |
650 PKIX_Error * | |
651 PKIX_CertStore_GetCertStoreContext( | |
652 PKIX_CertStore *store, | |
653 PKIX_PL_Object **pCertStoreContext, | |
654 void *plContext); | |
655 | |
656 /* | |
657 * FUNCTION: PKIX_CertStore_GetCertStoreCacheFlag | |
658 * DESCRIPTION: | |
659 * | |
660 * Retrieves the Boolean cache flag of the CertStore pointed to by "store" and | |
661 * stores it at "pCachedFlag". | |
662 * | |
663 * PARAMETERS: | |
664 * "store" | |
665 * Address of CertStore whose cache flag is to be stored. Must be non-NULL. | |
666 * "pCacheFlag" | |
667 * Address where the result will be stored. Must be non-NULL. | |
668 * "plContext" | |
669 * Platform-specific context pointer. | |
670 * THREAD SAFETY: | |
671 * Thread Safe (see Thread Safety Definitions in Programmer's Guide) | |
672 * RETURNS: | |
673 * Returns NULL if the function succeeds. | |
674 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
675 */ | |
676 PKIX_Error * | |
677 PKIX_CertStore_GetCertStoreCacheFlag( | |
678 PKIX_CertStore *store, | |
679 PKIX_Boolean *pCacheFlag, | |
680 void *plContext); | |
681 | |
682 /* | |
683 * FUNCTION: PKIX_CertStore_GetLocalFlag | |
684 * DESCRIPTION: | |
685 * | |
686 * Retrieves the Boolean localFlag for the CertStore pointed to by "store" and | |
687 * stores it at "pLocalFlag". The localFlag is TRUE if the CertStore can | |
688 * fulfill a request without performing network I/O. | |
689 * | |
690 * PARAMETERS: | |
691 * "store" | |
692 * The CertStore whose Local flag is desired. Must be non-NULL. | |
693 * "pCallback" | |
694 * Address where the Boolean LocalFlag will be stored. Must be non-NULL. | |
695 * "plContext" | |
696 * Platform-specific context pointer. | |
697 * THREAD SAFETY: | |
698 * Thread Safe (see Thread Safety Definitions in Programmer's Guide) | |
699 * RETURNS: | |
700 * Returns NULL if the function succeeds. | |
701 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
702 */ | |
703 PKIX_Error * | |
704 PKIX_CertStore_GetLocalFlag( | |
705 PKIX_CertStore *store, | |
706 PKIX_Boolean *pLocalFlag, | |
707 void *plContext); | |
708 | |
709 #ifdef __cplusplus | |
710 } | |
711 #endif | |
712 | |
713 #endif /* _PKIX_CERTSTORE_H */ |