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