Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(235)

Side by Side Diff: mozilla/security/nss/lib/pki/pkit.h

Issue 14249009: Change the NSS and NSPR source tree to the new directory structure to be (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/nss/
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « mozilla/security/nss/lib/pki/pkistore.c ('k') | mozilla/security/nss/lib/pki/pkitm.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(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 PKIT_H
6 #define PKIT_H
7
8 #ifdef DEBUG
9 static const char PKIT_CVS_ID[] = "@(#) $RCSfile: pkit.h,v $ $Revision: 1.20 $ $ Date: 2012/04/25 14:50:07 $";
10 #endif /* DEBUG */
11
12 /*
13 * pkit.h
14 *
15 * This file contains definitions for the types of the top-level PKI objects.
16 */
17
18 #ifndef NSSBASET_H
19 #include "nssbaset.h"
20 #endif /* NSSBASET_H */
21
22 #ifndef BASET_H
23 #include "baset.h"
24 #endif /* BASET_H */
25
26 #include "certt.h"
27 #include "pkcs11t.h"
28
29 #ifndef NSSPKIT_H
30 #include "nsspkit.h"
31 #endif /* NSSPKIT_H */
32
33 #ifndef NSSDEVT_H
34 #include "nssdevt.h"
35 #endif /* NSSDEVT_H */
36
37 #ifndef DEVT_H
38 #include "devt.h"
39 #endif /* DEVT_H */
40
41 #ifndef nssrwlkt_h__
42 #include "nssrwlkt.h"
43 #endif /* nssrwlkt_h__ */
44
45 PR_BEGIN_EXTERN_C
46
47 /*
48 * A note on ephemeral certs
49 *
50 * The key objects defined here can only be created on tokens, and can only
51 * exist on tokens. Therefore, any instance of a key object must have
52 * a corresponding cryptoki instance. OTOH, certificates created in
53 * crypto contexts need not be stored as session objects on the token.
54 * There are good performance reasons for not doing so. The certificate
55 * and trust objects have been defined with a cryptoContext field to
56 * allow for ephemeral certs, which may have a single instance in a crypto
57 * context along with any number (including zero) of cryptoki instances.
58 * Since contexts may not share objects, there can be only one context
59 * for each object.
60 */
61
62 typedef enum {
63 nssPKILock = 1,
64 nssPKIMonitor = 2
65 } nssPKILockType;
66
67 /* nssPKIObject
68 *
69 * This is the base object class, common to all PKI objects defined in
70 * nsspkit.h
71 */
72 struct nssPKIObjectStr
73 {
74 /* The arena for all object memory */
75 NSSArena *arena;
76 /* Atomically incremented/decremented reference counting */
77 PRInt32 refCount;
78 /* lock protects the array of nssCryptokiInstance's of the object */
79 union {
80 PZLock* lock;
81 PZMonitor *mlock;
82 } sync;
83 nssPKILockType lockType;
84 /* XXX with LRU cache, this cannot be guaranteed up-to-date. It cannot
85 * be compared against the update level of the trust domain, since it is
86 * also affected by import/export. Where is this array needed?
87 */
88 nssCryptokiObject **instances;
89 PRUint32 numInstances;
90 /* The object must live in a trust domain */
91 NSSTrustDomain *trustDomain;
92 /* The object may live in a crypto context */
93 NSSCryptoContext *cryptoContext;
94 /* XXX added so temp certs can have nickname, think more ... */
95 NSSUTF8 *tempName;
96 };
97
98 typedef struct nssDecodedCertStr nssDecodedCert;
99
100 typedef struct nssCertificateStoreStr nssCertificateStore;
101
102 /* How wide is the scope of this? */
103 typedef struct nssSMIMEProfileStr nssSMIMEProfile;
104
105 typedef struct nssPKIObjectStr nssPKIObject;
106
107 struct NSSTrustStr
108 {
109 nssPKIObject object;
110 NSSCertificate *certificate;
111 nssTrustLevel serverAuth;
112 nssTrustLevel clientAuth;
113 nssTrustLevel emailProtection;
114 nssTrustLevel codeSigning;
115 PRBool stepUpApproved;
116 };
117
118 struct nssSMIMEProfileStr
119 {
120 nssPKIObject object;
121 NSSCertificate *certificate;
122 NSSASCII7 *email;
123 NSSDER *subject;
124 NSSItem *profileTime;
125 NSSItem *profileData;
126 };
127
128 struct NSSCertificateStr
129 {
130 nssPKIObject object;
131 NSSCertificateType type;
132 NSSItem id;
133 NSSBER encoding;
134 NSSDER issuer;
135 NSSDER subject;
136 NSSDER serial;
137 NSSASCII7 *email;
138 nssDecodedCert *decoding;
139 };
140
141 struct NSSPrivateKeyStr;
142
143 struct NSSPublicKeyStr;
144
145 struct NSSSymmetricKeyStr;
146
147 typedef struct nssTDCertificateCacheStr nssTDCertificateCache;
148
149 struct NSSTrustDomainStr {
150 PRInt32 refCount;
151 NSSArena *arena;
152 NSSCallback *defaultCallback;
153 nssList *tokenList;
154 nssListIterator *tokens;
155 nssTDCertificateCache *cache;
156 NSSRWLock *tokensLock;
157 void *spkDigestInfo;
158 CERTStatusConfig *statusConfig;
159 };
160
161 struct NSSCryptoContextStr
162 {
163 PRInt32 refCount;
164 NSSArena *arena;
165 NSSTrustDomain *td;
166 NSSToken *token;
167 nssSession *session;
168 nssCertificateStore *certStore;
169 };
170
171 struct NSSTimeStr {
172 PRTime prTime;
173 };
174
175 struct NSSCRLStr {
176 nssPKIObject object;
177 NSSDER encoding;
178 NSSUTF8 *url;
179 PRBool isKRL;
180 };
181
182 typedef struct NSSCRLStr NSSCRL;
183
184 struct NSSPoliciesStr;
185
186 struct NSSAlgorithmAndParametersStr;
187
188 struct NSSPKIXCertificateStr;
189
190 PR_END_EXTERN_C
191
192 #endif /* PKIT_H */
OLDNEW
« no previous file with comments | « mozilla/security/nss/lib/pki/pkistore.c ('k') | mozilla/security/nss/lib/pki/pkitm.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698