OLD | NEW |
| (Empty) |
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 * pkix_revocationmethod.h | |
6 * | |
7 * RevocationMethod Object | |
8 * | |
9 */ | |
10 | |
11 #ifndef _PKIX_REVOCATIONMETHOD_H | |
12 #define _PKIX_REVOCATIONMETHOD_H | |
13 | |
14 #include "pkixt.h" | |
15 #include "pkix_revocationchecker.h" | |
16 | |
17 #ifdef __cplusplus | |
18 extern "C" { | |
19 #endif | |
20 | |
21 typedef struct pkix_RevocationMethodStruct pkix_RevocationMethod; | |
22 | |
23 /* Local revocation check function prototype definition. | |
24 * Revocation methods capable of checking revocation though local | |
25 * means(cache) should implement this prototype. */ | |
26 typedef PKIX_Error * | |
27 pkix_LocalRevocationCheckFn(PKIX_PL_Cert *cert, PKIX_PL_Cert *issuer, | |
28 PKIX_PL_Date *date, | |
29 pkix_RevocationMethod *checkerObject, | |
30 PKIX_ProcessingParams *procParams, | |
31 PKIX_UInt32 methodFlags, | |
32 PKIX_Boolean chainVerificationState, | |
33 PKIX_RevocationStatus *pRevStatus, | |
34 CERTCRLEntryReasonCode *reasonCode, | |
35 void *plContext); | |
36 | |
37 /* External revocation check function prototype definition. | |
38 * Revocation methods that required external communications(crldp | |
39 * ocsp) shoult implement this prototype. */ | |
40 typedef PKIX_Error * | |
41 pkix_ExternalRevocationCheckFn(PKIX_PL_Cert *cert, PKIX_PL_Cert *issuer, | |
42 PKIX_PL_Date *date, | |
43 pkix_RevocationMethod *checkerObject, | |
44 PKIX_ProcessingParams *procParams, | |
45 PKIX_UInt32 methodFlags, | |
46 PKIX_RevocationStatus *pRevStatus, | |
47 CERTCRLEntryReasonCode *reasonCode, | |
48 void **pNBIOContext, void *plContext); | |
49 | |
50 /* Revocation method structure assosiates revocation types with | |
51 * a set of flags on the method, a priority of the method (0 | |
52 * corresponds to the highest priority), and method local/external | |
53 * checker functions. */ | |
54 struct pkix_RevocationMethodStruct { | |
55 PKIX_RevocationMethodType methodType; | |
56 PKIX_UInt32 flags; | |
57 PKIX_UInt32 priority; | |
58 pkix_LocalRevocationCheckFn (*localRevChecker); | |
59 pkix_ExternalRevocationCheckFn (*externalRevChecker); | |
60 }; | |
61 | |
62 PKIX_Error * | |
63 pkix_RevocationMethod_Duplicate(PKIX_PL_Object *object, | |
64 PKIX_PL_Object *newObject, | |
65 void *plContext); | |
66 | |
67 PKIX_Error * | |
68 pkix_RevocationMethod_Init(pkix_RevocationMethod *method, | |
69 PKIX_RevocationMethodType methodType, | |
70 PKIX_UInt32 flags, | |
71 PKIX_UInt32 priority, | |
72 pkix_LocalRevocationCheckFn localRevChecker, | |
73 pkix_ExternalRevocationCheckFn externalRevChecker, | |
74 void *plContext); | |
75 | |
76 | |
77 #ifdef __cplusplus | |
78 } | |
79 #endif | |
80 | |
81 #endif /* _PKIX_REVOCATIONMETHOD_H */ | |
OLD | NEW |