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 #ifndef PKISTORE_H | |
6 #define PKISTORE_H | |
7 | |
8 #ifdef DEBUG | |
9 static const char PKISTORE_CVS_ID[] = "@(#) $RCSfile: pkistore.h,v $ $Revision:
1.13 $ $Date: 2012/04/25 14:50:07 $"; | |
10 #endif /* DEBUG */ | |
11 | |
12 #ifndef NSSPKIT_H | |
13 #include "nsspkit.h" | |
14 #endif /* NSSPKIT_H */ | |
15 | |
16 #ifndef BASE_H | |
17 #include "base.h" | |
18 #endif /* BASE_H */ | |
19 | |
20 PR_BEGIN_EXTERN_C | |
21 | |
22 /* | |
23 * PKI Stores | |
24 * | |
25 * This is a set of routines for managing local stores of PKI objects. | |
26 * Currently, the only application is in crypto contexts, where the | |
27 * certificate store is used. In the future, methods should be added | |
28 * here for storing local references to keys. | |
29 */ | |
30 | |
31 /* | |
32 * nssCertificateStore | |
33 * | |
34 * Manages local store of certificate, trust, and S/MIME profile objects. | |
35 * Within a crypto context, mappings of cert to trust and cert to S/MIME | |
36 * profile are always 1-1. Therefore, it is reasonable to store all objects | |
37 * in a single collection, indexed by the certificate. | |
38 */ | |
39 | |
40 NSS_EXTERN nssCertificateStore * | |
41 nssCertificateStore_Create | |
42 ( | |
43 NSSArena *arenaOpt | |
44 ); | |
45 | |
46 NSS_EXTERN PRStatus | |
47 nssCertificateStore_Destroy | |
48 ( | |
49 nssCertificateStore *store | |
50 ); | |
51 | |
52 /* Atomic Find cert in store, or add this cert to the store. | |
53 ** Ref counts properly maintained. | |
54 */ | |
55 NSS_EXTERN NSSCertificate * | |
56 nssCertificateStore_FindOrAdd | |
57 ( | |
58 nssCertificateStore *store, | |
59 NSSCertificate *c | |
60 ); | |
61 | |
62 NSS_EXTERN void | |
63 nssCertificateStore_RemoveCertLOCKED | |
64 ( | |
65 nssCertificateStore *store, | |
66 NSSCertificate *cert | |
67 ); | |
68 | |
69 struct nssCertificateStoreTraceStr { | |
70 nssCertificateStore* store; | |
71 PZLock* lock; | |
72 PRBool locked; | |
73 PRBool unlocked; | |
74 }; | |
75 | |
76 typedef struct nssCertificateStoreTraceStr nssCertificateStoreTrace; | |
77 | |
78 NSS_EXTERN void | |
79 nssCertificateStore_Lock ( | |
80 nssCertificateStore *store, nssCertificateStoreTrace* out | |
81 ); | |
82 | |
83 NSS_EXTERN void | |
84 nssCertificateStore_Unlock ( | |
85 nssCertificateStore *store, const nssCertificateStoreTrace* in, | |
86 nssCertificateStoreTrace* out | |
87 ); | |
88 | |
89 NSS_EXTERN NSSCertificate ** | |
90 nssCertificateStore_FindCertificatesBySubject | |
91 ( | |
92 nssCertificateStore *store, | |
93 NSSDER *subject, | |
94 NSSCertificate *rvOpt[], | |
95 PRUint32 maximumOpt, | |
96 NSSArena *arenaOpt | |
97 ); | |
98 | |
99 NSS_EXTERN NSSCertificate ** | |
100 nssCertificateStore_FindCertificatesByNickname | |
101 ( | |
102 nssCertificateStore *store, | |
103 const NSSUTF8 *nickname, | |
104 NSSCertificate *rvOpt[], | |
105 PRUint32 maximumOpt, | |
106 NSSArena *arenaOpt | |
107 ); | |
108 | |
109 NSS_EXTERN NSSCertificate ** | |
110 nssCertificateStore_FindCertificatesByEmail | |
111 ( | |
112 nssCertificateStore *store, | |
113 NSSASCII7 *email, | |
114 NSSCertificate *rvOpt[], | |
115 PRUint32 maximumOpt, | |
116 NSSArena *arenaOpt | |
117 ); | |
118 | |
119 NSS_EXTERN NSSCertificate * | |
120 nssCertificateStore_FindCertificateByIssuerAndSerialNumber | |
121 ( | |
122 nssCertificateStore *store, | |
123 NSSDER *issuer, | |
124 NSSDER *serial | |
125 ); | |
126 | |
127 NSS_EXTERN NSSCertificate * | |
128 nssCertificateStore_FindCertificateByEncodedCertificate | |
129 ( | |
130 nssCertificateStore *store, | |
131 NSSDER *encoding | |
132 ); | |
133 | |
134 NSS_EXTERN PRStatus | |
135 nssCertificateStore_AddTrust | |
136 ( | |
137 nssCertificateStore *store, | |
138 NSSTrust *trust | |
139 ); | |
140 | |
141 NSS_EXTERN NSSTrust * | |
142 nssCertificateStore_FindTrustForCertificate | |
143 ( | |
144 nssCertificateStore *store, | |
145 NSSCertificate *cert | |
146 ); | |
147 | |
148 NSS_EXTERN PRStatus | |
149 nssCertificateStore_AddSMIMEProfile | |
150 ( | |
151 nssCertificateStore *store, | |
152 nssSMIMEProfile *profile | |
153 ); | |
154 | |
155 NSS_EXTERN nssSMIMEProfile * | |
156 nssCertificateStore_FindSMIMEProfileForCertificate | |
157 ( | |
158 nssCertificateStore *store, | |
159 NSSCertificate *cert | |
160 ); | |
161 | |
162 NSS_EXTERN void | |
163 nssCertificateStore_DumpStoreInfo | |
164 ( | |
165 nssCertificateStore *store, | |
166 void (* cert_dump_iter)(const void *, void *, void *), | |
167 void *arg | |
168 ); | |
169 | |
170 PR_END_EXTERN_C | |
171 | |
172 #endif /* PKISTORE_H */ | |
OLD | NEW |