OLD | NEW |
1 /* This Source Code Form is subject to the terms of the Mozilla Public | 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 | 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/. */ | 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
4 | 4 |
5 #ifndef _PKCS12T_H_ | 5 #ifndef _PKCS12T_H_ |
6 #define _PKCS12T_H_ | 6 #define _PKCS12T_H_ |
7 | 7 |
8 #include "seccomon.h" | 8 #include "seccomon.h" |
9 #include "secoid.h" | 9 #include "secoid.h" |
10 #include "cert.h" | 10 #include "cert.h" |
11 #include "key.h" | 11 #include "key.h" |
12 #include "plarena.h" | 12 #include "plarena.h" |
13 #include "secpkcs7.h" | 13 #include "secpkcs7.h" |
14 #include "secdig.h"» /* for SGNDigestInfo */ | 14 #include "secdig.h" /* for SGNDigestInfo */ |
15 | 15 |
16 typedef enum { | 16 typedef enum { |
17 SECPKCS12TargetTokenNoCAs,» » /* CA get loaded intothe fixed token, | 17 SECPKCS12TargetTokenNoCAs, /* CA get loaded intothe fixed token, |
18 » » » » » * User certs go to target token */ | 18 * User certs go to target token */ |
19 SECPKCS12TargetTokenIntermediateCAs, /* User certs and intermediates go to | 19 SECPKCS12TargetTokenIntermediateCAs, /* User certs and intermediates go to |
20 » » » » » * target token, root certs got to | 20 * target token, root certs got to |
21 » » » » » * fixed token */ | 21 * fixed token */ |
22 SECPKCS12TargetTokenAllCAs» » /* All certs go to target token */ | 22 SECPKCS12TargetTokenAllCAs /* All certs go to target token */ |
23 } SECPKCS12TargetTokenCAs; | 23 } SECPKCS12TargetTokenCAs; |
24 | 24 |
25 /* PKCS12 Structures */ | 25 /* PKCS12 Structures */ |
26 typedef struct SEC_PKCS12PFXItemStr SEC_PKCS12PFXItem; | 26 typedef struct SEC_PKCS12PFXItemStr SEC_PKCS12PFXItem; |
27 typedef struct SEC_PKCS12MacDataStr SEC_PKCS12MacData; | 27 typedef struct SEC_PKCS12MacDataStr SEC_PKCS12MacData; |
28 typedef struct SEC_PKCS12AuthenticatedSafeStr SEC_PKCS12AuthenticatedSafe; | 28 typedef struct SEC_PKCS12AuthenticatedSafeStr SEC_PKCS12AuthenticatedSafe; |
29 typedef struct SEC_PKCS12BaggageItemStr SEC_PKCS12BaggageItem; | 29 typedef struct SEC_PKCS12BaggageItemStr SEC_PKCS12BaggageItem; |
30 typedef struct SEC_PKCS12BaggageStr SEC_PKCS12Baggage; | 30 typedef struct SEC_PKCS12BaggageStr SEC_PKCS12Baggage; |
31 typedef struct SEC_PKCS12Baggage_OLDStr SEC_PKCS12Baggage_OLD; | 31 typedef struct SEC_PKCS12Baggage_OLDStr SEC_PKCS12Baggage_OLD; |
32 typedef struct SEC_PKCS12ESPVKItemStr SEC_PKCS12ESPVKItem; | 32 typedef struct SEC_PKCS12ESPVKItemStr SEC_PKCS12ESPVKItem; |
33 typedef struct SEC_PKCS12PVKSupportingDataStr SEC_PKCS12PVKSupportingData; | 33 typedef struct SEC_PKCS12PVKSupportingDataStr SEC_PKCS12PVKSupportingData; |
34 typedef struct SEC_PKCS12PVKAdditionalDataStr SEC_PKCS12PVKAdditionalData; | 34 typedef struct SEC_PKCS12PVKAdditionalDataStr SEC_PKCS12PVKAdditionalData; |
35 typedef struct SEC_PKCS12SafeContentsStr SEC_PKCS12SafeContents; | 35 typedef struct SEC_PKCS12SafeContentsStr SEC_PKCS12SafeContents; |
36 typedef struct SEC_PKCS12SafeBagStr SEC_PKCS12SafeBag; | 36 typedef struct SEC_PKCS12SafeBagStr SEC_PKCS12SafeBag; |
37 typedef struct SEC_PKCS12PrivateKeyStr SEC_PKCS12PrivateKey; | 37 typedef struct SEC_PKCS12PrivateKeyStr SEC_PKCS12PrivateKey; |
38 typedef struct SEC_PKCS12PrivateKeyBagStr SEC_PKCS12PrivateKeyBag; | 38 typedef struct SEC_PKCS12PrivateKeyBagStr SEC_PKCS12PrivateKeyBag; |
39 typedef struct SEC_PKCS12CertAndCRLBagStr SEC_PKCS12CertAndCRLBag; | 39 typedef struct SEC_PKCS12CertAndCRLBagStr SEC_PKCS12CertAndCRLBag; |
40 typedef struct SEC_PKCS12CertAndCRLStr SEC_PKCS12CertAndCRL; | 40 typedef struct SEC_PKCS12CertAndCRLStr SEC_PKCS12CertAndCRL; |
41 typedef struct SEC_PKCS12X509CertCRLStr SEC_PKCS12X509CertCRL; | 41 typedef struct SEC_PKCS12X509CertCRLStr SEC_PKCS12X509CertCRL; |
42 typedef struct SEC_PKCS12SDSICertStr SEC_PKCS12SDSICert; | 42 typedef struct SEC_PKCS12SDSICertStr SEC_PKCS12SDSICert; |
43 typedef struct SEC_PKCS12SecretStr SEC_PKCS12Secret; | 43 typedef struct SEC_PKCS12SecretStr SEC_PKCS12Secret; |
44 typedef struct SEC_PKCS12SecretAdditionalStr SEC_PKCS12SecretAdditional; | 44 typedef struct SEC_PKCS12SecretAdditionalStr SEC_PKCS12SecretAdditional; |
45 typedef struct SEC_PKCS12SecretItemStr SEC_PKCS12SecretItem; | 45 typedef struct SEC_PKCS12SecretItemStr SEC_PKCS12SecretItem; |
46 typedef struct SEC_PKCS12SecretBagStr SEC_PKCS12SecretBag; | 46 typedef struct SEC_PKCS12SecretBagStr SEC_PKCS12SecretBag; |
47 | 47 |
48 typedef SECItem *(* SEC_PKCS12PasswordFunc)(SECItem *args); | 48 typedef SECItem *(*SEC_PKCS12PasswordFunc)(SECItem *args); |
49 | 49 |
50 /* PKCS12 types */ | 50 /* PKCS12 types */ |
51 | 51 |
52 /* stores shrouded keys */ | 52 /* stores shrouded keys */ |
53 struct SEC_PKCS12BaggageStr | 53 struct SEC_PKCS12BaggageStr { |
54 { | 54 PLArenaPool *poolp; |
55 PLArenaPool *poolp; | 55 SEC_PKCS12BaggageItem **bags; |
56 SEC_PKCS12BaggageItem **bags; | 56 |
57 | 57 int luggage_size; /* used locally */ |
58 int luggage_size;» » /* used locally */ | |
59 }; | 58 }; |
60 | 59 |
61 /* additional data to be associated with keys. currently there | 60 /* additional data to be associated with keys. currently there |
62 * is nothing defined to be stored here. allows future expansion. | 61 * is nothing defined to be stored here. allows future expansion. |
63 */ | 62 */ |
64 struct SEC_PKCS12PVKAdditionalDataStr | 63 struct SEC_PKCS12PVKAdditionalDataStr { |
65 { | 64 PLArenaPool *poolp; |
66 PLArenaPool»*poolp; | 65 SECOidData *pvkAdditionalTypeTag; /* used locally */ |
67 SECOidData» *pvkAdditionalTypeTag;» /* used locally */ | 66 SECItem pvkAdditionalType; |
68 SECItem pvkAdditionalType; | 67 SECItem pvkAdditionalContent; |
69 SECItem pvkAdditionalContent; | |
70 }; | 68 }; |
71 | 69 |
72 /* cert and other supporting data for private keys. used | 70 /* cert and other supporting data for private keys. used |
73 * for both shrouded and non-shrouded keys. | 71 * for both shrouded and non-shrouded keys. |
74 */ | 72 */ |
75 struct SEC_PKCS12PVKSupportingDataStr | 73 struct SEC_PKCS12PVKSupportingDataStr { |
76 { | 74 PLArenaPool *poolp; |
77 PLArenaPool»» *poolp; | 75 SGNDigestInfo **assocCerts; |
78 SGNDigestInfo » **assocCerts; | 76 SECItem regenerable; |
79 SECItem» » regenerable; | 77 SECItem nickname; |
80 SECItem » nickname; | 78 SEC_PKCS12PVKAdditionalData pvkAdditional; |
81 SEC_PKCS12PVKAdditionalData pvkAdditional; | 79 SECItem pvkAdditionalDER; |
82 SECItem» » pvkAdditionalDER; | 80 |
83 | 81 SECItem uniNickName; |
84 SECItem» » uniNickName; | 82 /* used locally */ |
85 /* used locally */ | 83 int nThumbs; |
86 int»» » nThumbs; | |
87 }; | 84 }; |
88 | 85 |
89 /* shrouded key structure. supports only pkcs8 shrouding | 86 /* shrouded key structure. supports only pkcs8 shrouding |
90 * currently. | 87 * currently. |
91 */ | 88 */ |
92 struct SEC_PKCS12ESPVKItemStr | 89 struct SEC_PKCS12ESPVKItemStr { |
93 { | 90 PLArenaPool *poolp; /* used locally */ |
94 PLArenaPool *poolp;»» /* used locally */ | 91 SECOidData *espvkTag; /* used locally */ |
95 SECOidData» *espvkTag;» /* used locally */ | 92 SECItem espvkOID; |
96 SECItem» espvkOID; | 93 SEC_PKCS12PVKSupportingData espvkData; |
97 SEC_PKCS12PVKSupportingData espvkData; | 94 union { |
98 union | 95 SECKEYEncryptedPrivateKeyInfo *pkcs8KeyShroud; |
99 { | 96 } espvkCipherText; |
100 » SECKEYEncryptedPrivateKeyInfo *pkcs8KeyShroud; | 97 |
101 } espvkCipherText; | 98 PRBool duplicate; /* used locally */ |
102 | 99 PRBool problem_cert; /* used locally */ |
103 PRBool duplicate;» /* used locally */ | 100 PRBool single_cert; /* used locally */ |
104 PRBool problem_cert; » /* used locally */ | 101 int nCerts; /* used locally */ |
105 PRBool single_cert;»» /* used locally */ | 102 SECItem derCert; /* used locally */ |
106 int nCerts;»» » /* used locally */ | |
107 SECItem derCert;» » /* used locally */ | |
108 }; | 103 }; |
109 | 104 |
110 /* generic bag store for the safe. safeBagType identifies | 105 /* generic bag store for the safe. safeBagType identifies |
111 * the type of bag stored. | 106 * the type of bag stored. |
112 */ | 107 */ |
113 struct SEC_PKCS12SafeBagStr | 108 struct SEC_PKCS12SafeBagStr { |
114 { | 109 PLArenaPool *poolp; |
115 PLArenaPool *poolp; | 110 SECOidData *safeBagTypeTag; /* used locally */ |
116 SECOidData» *safeBagTypeTag;» /* used locally */ | 111 SECItem safeBagType; |
117 SECItem safeBagType; | 112 union { |
118 union | 113 SEC_PKCS12PrivateKeyBag *keyBag; |
119 { | 114 SEC_PKCS12CertAndCRLBag *certAndCRLBag; |
120 » SEC_PKCS12PrivateKeyBag»*keyBag; | 115 SEC_PKCS12SecretBag *secretBag; |
121 » SEC_PKCS12CertAndCRLBag *certAndCRLBag; | 116 } safeContent; |
122 » SEC_PKCS12SecretBag *secretBag; | 117 |
123 } safeContent; | 118 SECItem derSafeContent; |
124 | 119 SECItem safeBagName; |
125 SECItem» derSafeContent; | 120 |
126 SECItem » safeBagName; | 121 SECItem uniSafeBagName; |
127 | |
128 SECItem» uniSafeBagName; | |
129 }; | 122 }; |
130 | 123 |
131 /* stores private keys and certificates in a list. each safebag | 124 /* stores private keys and certificates in a list. each safebag |
132 * has an ID identifying the type of content stored. | 125 * has an ID identifying the type of content stored. |
133 */ | 126 */ |
134 struct SEC_PKCS12SafeContentsStr | 127 struct SEC_PKCS12SafeContentsStr { |
135 { | 128 PLArenaPool *poolp; |
136 PLArenaPool » *poolp; | 129 SEC_PKCS12SafeBag **contents; |
137 SEC_PKCS12SafeBag» **contents; | 130 |
138 | 131 /* used for tracking purposes */ |
139 /* used for tracking purposes */ | 132 int safe_size; |
140 int safe_size; | 133 PRBool old; |
141 PRBool old; | 134 PRBool swapUnicode; |
142 PRBool swapUnicode; | 135 PRBool possibleSwapUnicode; |
143 PRBool possibleSwapUnicode; | |
144 }; | 136 }; |
145 | 137 |
146 /* private key structure which holds encrypted private key and | 138 /* private key structure which holds encrypted private key and |
147 * supporting data including nickname and certificate thumbprint. | 139 * supporting data including nickname and certificate thumbprint. |
148 */ | 140 */ |
149 struct SEC_PKCS12PrivateKeyStr | 141 struct SEC_PKCS12PrivateKeyStr { |
150 { | 142 PLArenaPool *poolp; |
151 PLArenaPool *poolp; | 143 SEC_PKCS12PVKSupportingData pvkData; |
152 SEC_PKCS12PVKSupportingData pvkData; | 144 SECKEYPrivateKeyInfo pkcs8data; /* borrowed from PKCS 8 */ |
153 SECKEYPrivateKeyInfo» pkcs8data; /* borrowed from PKCS 8 */ | 145 |
154 | 146 PRBool duplicate; /* used locally */ |
155 PRBool duplicate;» /* used locally */ | 147 PRBool problem_cert; /* used locally */ |
156 PRBool problem_cert;/* used locally */ | 148 PRBool single_cert; /* used locally */ |
157 PRBool single_cert;»/* used locally */ | 149 int nCerts; /* used locally */ |
158 int nCerts;»» /* used locally */ | 150 SECItem derCert; /* used locally */ |
159 SECItem derCert;» /* used locally */ | |
160 }; | 151 }; |
161 | 152 |
162 /* private key bag, holds a (null terminated) list of private key | 153 /* private key bag, holds a (null terminated) list of private key |
163 * structures. | 154 * structures. |
164 */ | 155 */ |
165 struct SEC_PKCS12PrivateKeyBagStr | 156 struct SEC_PKCS12PrivateKeyBagStr { |
166 { | 157 PLArenaPool *poolp; |
167 PLArenaPool *poolp; | 158 SEC_PKCS12PrivateKey **privateKeys; |
168 SEC_PKCS12PrivateKey » **privateKeys; | 159 |
169 | 160 int bag_size; /* used locally */ |
170 int bag_size;» /* used locally */ | |
171 }; | 161 }; |
172 | 162 |
173 /* container to hold certificates. currently supports x509 | 163 /* container to hold certificates. currently supports x509 |
174 * and sdsi certificates | 164 * and sdsi certificates |
175 */ | 165 */ |
176 struct SEC_PKCS12CertAndCRLStr | 166 struct SEC_PKCS12CertAndCRLStr { |
177 { | 167 PLArenaPool *poolp; |
178 PLArenaPool *poolp; | 168 SECOidData *BagTypeTag; /* used locally */ |
179 SECOidData» *BagTypeTag; /* used locally */ | 169 SECItem BagID; |
180 SECItem BagID; | 170 union { |
181 union | 171 SEC_PKCS12X509CertCRL *x509; |
182 { | 172 SEC_PKCS12SDSICert *sdsi; |
183 » SEC_PKCS12X509CertCRL» *x509; | 173 } value; |
184 » SEC_PKCS12SDSICert» *sdsi; | 174 |
185 } value; | 175 SECItem derValue; |
186 | 176 SECItem nickname; /* used locally */ |
187 SECItem derValue; | 177 PRBool duplicate; /* used locally */ |
188 SECItem nickname;» » /* used locally */ | |
189 PRBool duplicate;» » /* used locally */ | |
190 }; | 178 }; |
191 | 179 |
192 /* x509 certificate structure. typically holds the der encoding | 180 /* x509 certificate structure. typically holds the der encoding |
193 * of the x509 certificate. thumbprint contains a digest of the | 181 * of the x509 certificate. thumbprint contains a digest of the |
194 * certificate | 182 * certificate |
195 */ | 183 */ |
196 struct SEC_PKCS12X509CertCRLStr | 184 struct SEC_PKCS12X509CertCRLStr { |
197 { | 185 PLArenaPool *poolp; |
198 PLArenaPool » » *poolp; | 186 SEC_PKCS7ContentInfo certOrCRL; |
199 SEC_PKCS7ContentInfo» certOrCRL; | 187 SGNDigestInfo thumbprint; |
200 SGNDigestInfo» » thumbprint; | 188 |
201 | 189 SECItem *derLeafCert; /* used locally */ |
202 SECItem *derLeafCert;» /* used locally */ | |
203 }; | 190 }; |
204 | 191 |
205 /* sdsi certificate structure. typically holds the der encoding | 192 /* sdsi certificate structure. typically holds the der encoding |
206 * of the sdsi certificate. thumbprint contains a digest of the | 193 * of the sdsi certificate. thumbprint contains a digest of the |
207 * certificate | 194 * certificate |
208 */ | 195 */ |
209 struct SEC_PKCS12SDSICertStr | 196 struct SEC_PKCS12SDSICertStr { |
210 { | 197 PLArenaPool *poolp; |
211 PLArenaPool *poolp; | 198 SECItem value; |
212 SECItem value; | 199 SGNDigestInfo thumbprint; |
213 SGNDigestInfo thumbprint; | |
214 }; | 200 }; |
215 | 201 |
216 /* contains a null terminated list of certs and crls */ | 202 /* contains a null terminated list of certs and crls */ |
217 struct SEC_PKCS12CertAndCRLBagStr | 203 struct SEC_PKCS12CertAndCRLBagStr { |
218 { | 204 PLArenaPool *poolp; |
219 PLArenaPool » » *poolp; | 205 SEC_PKCS12CertAndCRL **certAndCRLs; |
220 SEC_PKCS12CertAndCRL» **certAndCRLs; | 206 |
221 | 207 int bag_size; /* used locally */ |
222 int bag_size;» /* used locally */ | |
223 }; | 208 }; |
224 | 209 |
225 /* additional secret information. currently no information | 210 /* additional secret information. currently no information |
226 * stored in this structure. | 211 * stored in this structure. |
227 */ | 212 */ |
228 struct SEC_PKCS12SecretAdditionalStr | 213 struct SEC_PKCS12SecretAdditionalStr { |
229 { | 214 PLArenaPool *poolp; |
230 PLArenaPool *poolp; | 215 SECOidData *secretTypeTag; /* used locally */ |
231 SECOidData» *secretTypeTag; /* used locally */ | 216 SECItem secretAdditionalType; |
232 SECItem secretAdditionalType; | 217 SECItem secretAdditionalContent; |
233 SECItem secretAdditionalContent; | |
234 }; | 218 }; |
235 | 219 |
236 /* secrets container. this will be used to contain currently | 220 /* secrets container. this will be used to contain currently |
237 * unspecified secrets. (it's a secret) | 221 * unspecified secrets. (it's a secret) |
238 */ | 222 */ |
239 struct SEC_PKCS12SecretStr | 223 struct SEC_PKCS12SecretStr { |
240 { | 224 PLArenaPool *poolp; |
241 PLArenaPool *poolp; | 225 SECItem secretName; |
242 SECItem» secretName; | 226 SECItem value; |
243 SECItem» value; | 227 SEC_PKCS12SecretAdditional secretAdditional; |
244 SEC_PKCS12SecretAdditional» secretAdditional; | 228 |
245 | 229 SECItem uniSecretName; |
246 SECItem» uniSecretName; | 230 }; |
247 }; | 231 |
248 | 232 struct SEC_PKCS12SecretItemStr { |
249 struct SEC_PKCS12SecretItemStr | 233 PLArenaPool *poolp; |
250 { | 234 SEC_PKCS12Secret secret; |
251 PLArenaPool *poolp; | 235 SEC_PKCS12SafeBag subFolder; |
252 SEC_PKCS12Secret» secret; | 236 }; |
253 SEC_PKCS12SafeBag» subFolder; | |
254 }; | |
255 | 237 |
256 /* a bag of secrets. holds a null terminated list of secrets. | 238 /* a bag of secrets. holds a null terminated list of secrets. |
257 */ | 239 */ |
258 struct SEC_PKCS12SecretBagStr | 240 struct SEC_PKCS12SecretBagStr { |
259 { | 241 PLArenaPool *poolp; |
260 PLArenaPool » *poolp; | 242 SEC_PKCS12SecretItem **secrets; |
261 SEC_PKCS12SecretItem» **secrets; | 243 |
262 | 244 int bag_size; /* used locally */ |
263 int bag_size;» /* used locally */ | 245 }; |
264 }; | 246 |
265 | 247 struct SEC_PKCS12MacDataStr { |
266 struct SEC_PKCS12MacDataStr | 248 SGNDigestInfo safeMac; |
267 { | 249 SECItem macSalt; |
268 SGNDigestInfo» safeMac; | |
269 SECItem» » macSalt; | |
270 }; | 250 }; |
271 | 251 |
272 /* outer transfer unit */ | 252 /* outer transfer unit */ |
273 struct SEC_PKCS12PFXItemStr | 253 struct SEC_PKCS12PFXItemStr { |
274 { | 254 PLArenaPool *poolp; |
275 PLArenaPool»» *poolp; | 255 SEC_PKCS12MacData macData; |
276 SEC_PKCS12MacData» macData; | 256 SEC_PKCS7ContentInfo authSafe; |
277 SEC_PKCS7ContentInfo» authSafe; | 257 |
278 | 258 /* for compatibility with beta */ |
279 /* for compatibility with beta */ | 259 PRBool old; |
280 PRBool» » old; | 260 SGNDigestInfo old_safeMac; |
281 SGNDigestInfo » old_safeMac; | 261 SECItem old_macSalt; |
282 SECItem» » old_macSalt; | 262 |
283 | 263 /* compatibility between platforms for unicode swapping */ |
284 /* compatibility between platforms for unicode swapping */ | 264 PRBool swapUnicode; |
285 PRBool» » swapUnicode; | |
286 }; | 265 }; |
287 | 266 |
288 struct SEC_PKCS12BaggageItemStr { | 267 struct SEC_PKCS12BaggageItemStr { |
289 PLArenaPool» *poolp; | 268 PLArenaPool *poolp; |
290 SEC_PKCS12ESPVKItem»**espvks; | 269 SEC_PKCS12ESPVKItem **espvks; |
291 SEC_PKCS12SafeBag» **unencSecrets; | 270 SEC_PKCS12SafeBag **unencSecrets; |
292 | 271 |
293 int nEspvks; | 272 int nEspvks; |
294 int nSecrets; | 273 int nSecrets; |
295 }; | 274 }; |
296 | 275 |
297 /* stores shrouded keys */ | 276 /* stores shrouded keys */ |
298 struct SEC_PKCS12Baggage_OLDStr | 277 struct SEC_PKCS12Baggage_OLDStr { |
299 { | 278 PLArenaPool *poolp; |
300 PLArenaPool *poolp; | 279 SEC_PKCS12ESPVKItem **espvks; |
301 SEC_PKCS12ESPVKItem **espvks; | 280 |
302 | 281 int luggage_size; /* used locally */ |
303 int luggage_size;» » /* used locally */ | |
304 }; | 282 }; |
305 | 283 |
306 /* authenticated safe, stores certs, keys, and shrouded keys */ | 284 /* authenticated safe, stores certs, keys, and shrouded keys */ |
307 struct SEC_PKCS12AuthenticatedSafeStr | 285 struct SEC_PKCS12AuthenticatedSafeStr { |
308 { | 286 PLArenaPool *poolp; |
309 PLArenaPool *poolp; | 287 SECItem version; |
310 SECItem version; | 288 SECOidData *transportTypeTag; /* local not part of encoding*/ |
311 SECOidData» *transportTypeTag;» /* local not part of encoding*/ | 289 SECItem transportMode; |
312 SECItem transportMode; | 290 SECItem privacySalt; |
313 SECItem privacySalt; | 291 SEC_PKCS12Baggage baggage; |
314 SEC_PKCS12Baggage» baggage; | 292 SEC_PKCS7ContentInfo *safe; |
315 SEC_PKCS7ContentInfo *safe; | 293 |
316 | 294 /* used for beta compatibility */ |
317 /* used for beta compatibility */ | 295 PRBool old; |
318 PRBool old; | 296 PRBool emptySafe; |
319 PRBool emptySafe; | 297 SEC_PKCS12Baggage_OLD old_baggage; |
320 SEC_PKCS12Baggage_OLD old_baggage; | 298 SEC_PKCS7ContentInfo old_safe; |
321 SEC_PKCS7ContentInfo old_safe; | 299 PRBool swapUnicode; |
322 PRBool swapUnicode; | 300 }; |
323 }; | 301 #define SEC_PKCS12_PFX_VERSION 1 /* what we create */ |
324 #define SEC_PKCS12_PFX_VERSION» » 1» » /* what we create */ | |
325 | |
326 | |
327 | 302 |
328 /* PKCS 12 Templates */ | 303 /* PKCS 12 Templates */ |
329 extern const SEC_ASN1Template SEC_PKCS12PFXItemTemplate_OLD[]; | 304 extern const SEC_ASN1Template SEC_PKCS12PFXItemTemplate_OLD[]; |
330 extern const SEC_ASN1Template SEC_PKCS12AuthenticatedSafeTemplate_OLD[]; | 305 extern const SEC_ASN1Template SEC_PKCS12AuthenticatedSafeTemplate_OLD[]; |
331 extern const SEC_ASN1Template SEC_PKCS12BaggageTemplate_OLD[]; | 306 extern const SEC_ASN1Template SEC_PKCS12BaggageTemplate_OLD[]; |
332 extern const SEC_ASN1Template SEC_PKCS12PFXItemTemplate[]; | 307 extern const SEC_ASN1Template SEC_PKCS12PFXItemTemplate[]; |
333 extern const SEC_ASN1Template SEC_PKCS12MacDataTemplate[]; | 308 extern const SEC_ASN1Template SEC_PKCS12MacDataTemplate[]; |
334 extern const SEC_ASN1Template SEC_PKCS12AuthenticatedSafeTemplate[]; | 309 extern const SEC_ASN1Template SEC_PKCS12AuthenticatedSafeTemplate[]; |
335 extern const SEC_ASN1Template SEC_PKCS12BaggageTemplate[]; | 310 extern const SEC_ASN1Template SEC_PKCS12BaggageTemplate[]; |
336 extern const SEC_ASN1Template SEC_PKCS12ESPVKItemTemplate[]; | 311 extern const SEC_ASN1Template SEC_PKCS12ESPVKItemTemplate[]; |
(...skipping 20 matching lines...) Expand all Loading... |
357 extern const SEC_ASN1Template SEC_PointerToPKCS12SecretBagTemplate[]; | 332 extern const SEC_ASN1Template SEC_PointerToPKCS12SecretBagTemplate[]; |
358 extern const SEC_ASN1Template SEC_PointerToPKCS12X509CertCRLTemplate_OLD[]; | 333 extern const SEC_ASN1Template SEC_PointerToPKCS12X509CertCRLTemplate_OLD[]; |
359 extern const SEC_ASN1Template SEC_PointerToPKCS12X509CertCRLTemplate[]; | 334 extern const SEC_ASN1Template SEC_PointerToPKCS12X509CertCRLTemplate[]; |
360 extern const SEC_ASN1Template SEC_PointerToPKCS12SDSICertTemplate[]; | 335 extern const SEC_ASN1Template SEC_PointerToPKCS12SDSICertTemplate[]; |
361 extern const SEC_ASN1Template SEC_PKCS12CodedSafeBagTemplate[]; | 336 extern const SEC_ASN1Template SEC_PKCS12CodedSafeBagTemplate[]; |
362 extern const SEC_ASN1Template SEC_PKCS12CodedCertBagTemplate[]; | 337 extern const SEC_ASN1Template SEC_PKCS12CodedCertBagTemplate[]; |
363 extern const SEC_ASN1Template SEC_PKCS12CodedCertAndCRLBagTemplate[]; | 338 extern const SEC_ASN1Template SEC_PKCS12CodedCertAndCRLBagTemplate[]; |
364 extern const SEC_ASN1Template SEC_PKCS12PVKSupportingDataTemplate_OLD[]; | 339 extern const SEC_ASN1Template SEC_PKCS12PVKSupportingDataTemplate_OLD[]; |
365 extern const SEC_ASN1Template SEC_PKCS12ESPVKItemTemplate_OLD[]; | 340 extern const SEC_ASN1Template SEC_PKCS12ESPVKItemTemplate_OLD[]; |
366 #endif | 341 #endif |
OLD | NEW |