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

Side by Side Diff: patches/nss-static.patch

Issue 10961060: Update NSS to NSS 3.14 Beta 1. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/nss/
Patch Set: Add the NSS snapshot timestamp to README.chromium and nss-checkout.sh Created 8 years, 2 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 | « patches/nss-libpkix-leak.patch ('k') | patches/nss-static2.patch » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 Index: mozilla/security/nss/lib/certhigh/certvfy.c 1 Index: mozilla/security/nss/lib/certhigh/certvfy.c
2 =================================================================== 2 ===================================================================
3 RCS file: /cvsroot/mozilla/security/nss/lib/certhigh/certvfy.c,v 3 RCS file: /cvsroot/mozilla/security/nss/lib/certhigh/certvfy.c,v
4 retrieving revision 1.75 4 retrieving revision 1.77
5 diff -p -u -8 -r1.75 certvfy.c 5 diff -p -u -8 -r1.77 certvfy.c
6 --- mozilla/security/nss/lib/certhigh/certvfy.c»14 Sep 2011 00:28:47 -0000» 1.75 6 --- mozilla/security/nss/lib/certhigh/certvfy.c»25 Apr 2012 14:49:27 -0000» 1.77
7 +++ mozilla/security/nss/lib/certhigh/certvfy.c»25 Oct 2011 22:35:58 -0000 7 +++ mozilla/security/nss/lib/certhigh/certvfy.c»22 Sep 2012 15:22:26 -0000
8 @@ -40,27 +40,70 @@ 8 @@ -8,27 +8,70 @@
9 #include "secoid.h" 9 #include "secoid.h"
10 #include "sslerr.h" 10 #include "sslerr.h"
11 #include "genname.h" 11 #include "genname.h"
12 #include "keyhi.h" 12 #include "keyhi.h"
13 #include "cert.h" 13 #include "cert.h"
14 #include "certdb.h" 14 #include "certdb.h"
15 #include "certi.h" 15 #include "certi.h"
16 #include "cryptohi.h" 16 #include "cryptohi.h"
17 +#ifndef NSS_DISABLE_LIBPKIX 17 +#ifndef NSS_DISABLE_LIBPKIX
18 #include "pkix.h" 18 #include "pkix.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 * Check the validity times of a certificate 72 * Check the validity times of a certificate
73 */ 73 */
74 SECStatus 74 SECStatus
75 CERT_CertTimesValid(CERTCertificate *c) 75 CERT_CertTimesValid(CERTCertificate *c)
76 { 76 {
77 SECCertTimeValidity valid = CERT_CheckCertValidTimes(c, PR_Now(), PR_TRUE); 77 SECCertTimeValidity valid = CERT_CheckCertValidTimes(c, PR_Now(), PR_TRUE);
78 return (valid == secCertTimeValid) ? SECSuccess : SECFailure; 78 return (valid == secCertTimeValid) ? SECSuccess : SECFailure;
79 Index: mozilla/security/nss/lib/ckfw/nssck.api 79 Index: mozilla/security/nss/lib/ckfw/nssck.api
80 =================================================================== 80 ===================================================================
81 RCS file: /cvsroot/mozilla/security/nss/lib/ckfw/nssck.api,v 81 RCS file: /cvsroot/mozilla/security/nss/lib/ckfw/nssck.api,v
82 retrieving revision 1.7 82 retrieving revision 1.8
83 diff -p -u -8 -r1.7 nssck.api 83 diff -p -u -8 -r1.8 nssck.api
84 --- mozilla/security/nss/lib/ckfw/nssck.api» 2 Feb 2005 22:28:11 -0000» 1.7 84 --- mozilla/security/nss/lib/ckfw/nssck.api» 25 Apr 2012 14:49:28 -0000» 1.8
85 +++ mozilla/security/nss/lib/ckfw/nssck.api» 25 Oct 2011 22:35:58 -0000 85 +++ mozilla/security/nss/lib/ckfw/nssck.api» 22 Sep 2012 15:22:28 -0000
86 @@ -1783,17 +1783,17 @@ C_WaitForSlotEvent 86 @@ -1751,17 +1751,17 @@ C_WaitForSlotEvent
87 CK_SLOT_ID_PTR pSlot, 87 CK_SLOT_ID_PTR pSlot,
88 CK_VOID_PTR pRserved 88 CK_VOID_PTR pRserved
89 ) 89 )
90 { 90 {
91 return __ADJOIN(MODULE_NAME,C_WaitForSlotEvent)(flags, pSlot, pRserved); 91 return __ADJOIN(MODULE_NAME,C_WaitForSlotEvent)(flags, pSlot, pRserved);
92 } 92 }
93 #endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ 93 #endif /* DECLARE_STRICT_CRYPTOKI_NAMES */
94 94
95 -static CK_RV CK_ENTRY 95 -static CK_RV CK_ENTRY
96 +CK_RV CK_ENTRY 96 +CK_RV CK_ENTRY
97 __ADJOIN(MODULE_NAME,C_GetFunctionList) 97 __ADJOIN(MODULE_NAME,C_GetFunctionList)
98 ( 98 (
99 CK_FUNCTION_LIST_PTR_PTR ppFunctionList 99 CK_FUNCTION_LIST_PTR_PTR ppFunctionList
100 ); 100 );
101 101
102 static CK_FUNCTION_LIST FunctionList = { 102 static CK_FUNCTION_LIST FunctionList = {
103 { 2, 1 }, 103 { 2, 1 },
104 __ADJOIN(MODULE_NAME,C_Initialize), 104 __ADJOIN(MODULE_NAME,C_Initialize),
105 @@ -1861,30 +1861,32 @@ __ADJOIN(MODULE_NAME,C_UnwrapKey), 105 @@ -1829,30 +1829,32 @@ __ADJOIN(MODULE_NAME,C_UnwrapKey),
106 __ADJOIN(MODULE_NAME,C_DeriveKey), 106 __ADJOIN(MODULE_NAME,C_DeriveKey),
107 __ADJOIN(MODULE_NAME,C_SeedRandom), 107 __ADJOIN(MODULE_NAME,C_SeedRandom),
108 __ADJOIN(MODULE_NAME,C_GenerateRandom), 108 __ADJOIN(MODULE_NAME,C_GenerateRandom),
109 __ADJOIN(MODULE_NAME,C_GetFunctionStatus), 109 __ADJOIN(MODULE_NAME,C_GetFunctionStatus),
110 __ADJOIN(MODULE_NAME,C_CancelFunction), 110 __ADJOIN(MODULE_NAME,C_CancelFunction),
111 __ADJOIN(MODULE_NAME,C_WaitForSlotEvent) 111 __ADJOIN(MODULE_NAME,C_WaitForSlotEvent)
112 }; 112 };
113 113
114 -static CK_RV CK_ENTRY 114 -static CK_RV CK_ENTRY
115 +CK_RV CK_ENTRY 115 +CK_RV CK_ENTRY
(...skipping 16 matching lines...) Expand all
132 { 132 {
133 return __ADJOIN(MODULE_NAME,C_GetFunctionList)(ppFunctionList); 133 return __ADJOIN(MODULE_NAME,C_GetFunctionList)(ppFunctionList);
134 } 134 }
135 +#endif 135 +#endif
136 136
137 #undef __ADJOIN 137 #undef __ADJOIN
138 138
139 Index: mozilla/security/nss/lib/freebl/rsa.c 139 Index: mozilla/security/nss/lib/freebl/rsa.c
140 =================================================================== 140 ===================================================================
141 RCS file: /cvsroot/mozilla/security/nss/lib/freebl/rsa.c,v 141 RCS file: /cvsroot/mozilla/security/nss/lib/freebl/rsa.c,v
142 retrieving revision 1.43 142 retrieving revision 1.44
143 diff -p -u -8 -r1.43 rsa.c 143 diff -p -u -8 -r1.44 rsa.c
144 --- mozilla/security/nss/lib/freebl/rsa.c» 21 Sep 2011 01:09:48 -0000» 1.43 144 --- mozilla/security/nss/lib/freebl/rsa.c» 25 Apr 2012 14:49:43 -0000» 1.44
145 +++ mozilla/security/nss/lib/freebl/rsa.c» 25 Oct 2011 22:35:58 -0000 145 +++ mozilla/security/nss/lib/freebl/rsa.c» 22 Sep 2012 15:22:28 -0000
146 @@ -1588,16 +1588,23 @@ void RSA_Cleanup(void) 146 @@ -1556,16 +1556,23 @@ void RSA_Cleanup(void)
147 * free_bl may have allocated along the way. Currently only RSA does this, 147 * free_bl may have allocated along the way. Currently only RSA does this,
148 * so I've put it here for now. 148 * so I've put it here for now.
149 */ 149 */
150 void BL_Cleanup(void) 150 void BL_Cleanup(void)
151 { 151 {
152 RSA_Cleanup(); 152 RSA_Cleanup();
153 } 153 }
154 154
155 +#ifdef NSS_STATIC 155 +#ifdef NSS_STATIC
156 +void 156 +void
157 +BL_Unload(void) 157 +BL_Unload(void)
158 +{ 158 +{
159 +} 159 +}
160 +#endif 160 +#endif
161 + 161 +
162 PRBool bl_parentForkedAfterC_Initialize; 162 PRBool bl_parentForkedAfterC_Initialize;
163 163
164 /* 164 /*
165 * Set fork flag so it can be tested in SKIP_AFTER_FORK on relevant platforms. 165 * Set fork flag so it can be tested in SKIP_AFTER_FORK on relevant platforms.
166 */ 166 */
167 void BL_SetForkState(PRBool forked) 167 void BL_SetForkState(PRBool forked)
168 { 168 {
169 bl_parentForkedAfterC_Initialize = forked; 169 bl_parentForkedAfterC_Initialize = forked;
170 Index: mozilla/security/nss/lib/freebl/shvfy.c 170 Index: mozilla/security/nss/lib/freebl/shvfy.c
171 =================================================================== 171 ===================================================================
172 RCS file: /cvsroot/mozilla/security/nss/lib/freebl/shvfy.c,v 172 RCS file: /cvsroot/mozilla/security/nss/lib/freebl/shvfy.c,v
173 retrieving revision 1.15 173 retrieving revision 1.18
174 diff -p -u -8 -r1.15 shvfy.c 174 diff -p -u -8 -r1.18 shvfy.c
175 --- mozilla/security/nss/lib/freebl/shvfy.c» 6 Dec 2010 17:22:49 -0000» 1.15 175 --- mozilla/security/nss/lib/freebl/shvfy.c» 22 Sep 2012 15:18:19 -0000» 1.18
176 +++ mozilla/security/nss/lib/freebl/shvfy.c» 25 Oct 2011 22:35:58 -0000 176 +++ mozilla/security/nss/lib/freebl/shvfy.c» 22 Sep 2012 15:22:29 -0000
177 @@ -299,39 +299,55 @@ readItem(PRFileDesc *fd, SECItem *item) 177 @@ -269,39 +269,55 @@ readItem(PRFileDesc *fd, SECItem *item)
178 PORT_Free(item->data); 178 PORT_Free(item->data);
179 item->data = NULL; 179 item->data = NULL;
180 item->len = 0; 180 item->len = 0;
181 return SECFailure; 181 return SECFailure;
182 } 182 }
183 return SECSuccess; 183 return SECSuccess;
184 } 184 }
185 185
186 +/* 186 +/*
187 + * Define PSEUDO_FIPS if you can't do FIPS software integrity test (e.g., 187 + * Define PSEUDO_FIPS if you can't do FIPS software integrity test (e.g.,
(...skipping 30 matching lines...) Expand all
218 218
219 PRBool 219 PRBool
220 BLAPI_SHVerifyFile(const char *shName) 220 BLAPI_SHVerifyFile(const char *shName)
221 { 221 {
222 +#ifdef PSEUDO_FIPS 222 +#ifdef PSEUDO_FIPS
223 + return PR_TRUE; /* a lie, hence *pseudo* FIPS */ 223 + return PR_TRUE; /* a lie, hence *pseudo* FIPS */
224 +#else 224 +#else
225 char *checkName = NULL; 225 char *checkName = NULL;
226 PRFileDesc *checkFD = NULL; 226 PRFileDesc *checkFD = NULL;
227 PRFileDesc *shFD = NULL; 227 PRFileDesc *shFD = NULL;
228 SHA1Context *hashcx = NULL; 228 void *hashcx = NULL;
229 const SECHashObject *hashObj = NULL;
229 SECItem signature = { 0, NULL, 0 }; 230 SECItem signature = { 0, NULL, 0 };
230 SECItem hash; 231 SECItem hash;
231 int bytesRead, offset; 232 int bytesRead, offset;
232 SECStatus rv; 233 @@ -488,16 +504,17 @@ loser:
233 @@ -510,16 +526,17 @@ loser:
234 if (key.params.base.data != NULL) { 234 if (key.params.base.data != NULL) {
235 PORT_Free(key.params.base.data); 235 PORT_Free(key.params.base.data);
236 } 236 }
237 if (key.publicValue.data != NULL) { 237 if (key.publicValue.data != NULL) {
238 PORT_Free(key.publicValue.data); 238 PORT_Free(key.publicValue.data);
239 } 239 }
240 240
241 return result; 241 return result;
242 +#endif /* PSEUDO_FIPS */ 242 +#endif /* PSEUDO_FIPS */
243 } 243 }
244 244
245 PRBool 245 PRBool
246 BLAPI_VerifySelf(const char *name) 246 BLAPI_VerifySelf(const char *name)
247 { 247 {
248 if (name == NULL) { 248 if (name == NULL) {
249 /* 249 /*
250 * If name is NULL, freebl is statically linked into softoken. 250 * If name is NULL, freebl is statically linked into softoken.
251 Index: mozilla/security/nss/lib/nss/nssinit.c 251 Index: mozilla/security/nss/lib/nss/nssinit.c
252 =================================================================== 252 ===================================================================
253 RCS file: /cvsroot/mozilla/security/nss/lib/nss/nssinit.c,v 253 RCS file: /cvsroot/mozilla/security/nss/lib/nss/nssinit.c,v
254 retrieving revision 1.114 254 retrieving revision 1.118
255 diff -p -u -8 -r1.114 nssinit.c 255 diff -p -u -8 -r1.118 nssinit.c
256 --- mozilla/security/nss/lib/nss/nssinit.c» 18 Oct 2011 19:03:31 -0000» 1.114 256 --- mozilla/security/nss/lib/nss/nssinit.c» 21 Sep 2012 21:58:44 -0000» 1.118
257 +++ mozilla/security/nss/lib/nss/nssinit.c» 25 Oct 2011 22:35:58 -0000 257 +++ mozilla/security/nss/lib/nss/nssinit.c» 22 Sep 2012 15:22:31 -0000
258 @@ -50,19 +50,21 @@ 258 @@ -18,19 +18,21 @@
259 #include "key.h" 259 #include "key.h"
260 #include "secmod.h" 260 #include "secmod.h"
261 #include "secoid.h" 261 #include "secoid.h"
262 #include "nss.h" 262 #include "nss.h"
263 #include "pk11func.h" 263 #include "pk11func.h"
264 #include "secerr.h" 264 #include "secerr.h"
265 #include "nssbase.h" 265 #include "nssbase.h"
266 #include "nssutil.h" 266 #include "nssutil.h"
267 +#ifndef NSS_DISABLE_LIBPKIX 267 +#ifndef NSS_DISABLE_LIBPKIX
268 #include "pkixt.h" 268 #include "pkixt.h"
269 #include "pkix.h" 269 #include "pkix.h"
270 #include "pkix_tools.h" 270 #include "pkix_tools.h"
271 +#endif /* NSS_DISABLE_LIBPKIX */ 271 +#endif /* NSS_DISABLE_LIBPKIX */
272 272
273 #include "pki3hack.h" 273 #include "pki3hack.h"
274 #include "certi.h" 274 #include "certi.h"
275 #include "secmodi.h" 275 #include "secmodi.h"
276 #include "ocspti.h" 276 #include "ocspti.h"
277 #include "ocspi.h" 277 #include "ocspi.h"
278 #include "utilpars.h"
278 279
279 /* 280 @@ -528,18 +530,20 @@ nss_Init(const char *configdir, const ch
280 @@ -559,18 +561,20 @@ nss_Init(const char *configdir, const ch
281 NSSInitParameters *initParams, 281 NSSInitParameters *initParams,
282 PRBool readOnly, PRBool noCertDB, 282 PRBool readOnly, PRBool noCertDB,
283 PRBool noModDB, PRBool forceOpen, PRBool noRootInit, 283 PRBool noModDB, PRBool forceOpen, PRBool noRootInit,
284 PRBool optimizeSpace, PRBool noSingleThreadedModules, 284 PRBool optimizeSpace, PRBool noSingleThreadedModules,
285 PRBool allowAlreadyInitializedModules, 285 PRBool allowAlreadyInitializedModules,
286 PRBool dontFinalizeModules) 286 PRBool dontFinalizeModules)
287 { 287 {
288 SECStatus rv = SECFailure; 288 SECStatus rv = SECFailure;
289 +#ifndef NSS_DISABLE_LIBPKIX 289 +#ifndef NSS_DISABLE_LIBPKIX
290 PKIX_UInt32 actualMinorVersion = 0; 290 PKIX_UInt32 actualMinorVersion = 0;
291 PKIX_Error *pkixError = NULL; 291 PKIX_Error *pkixError = NULL;
292 +#endif 292 +#endif
293 PRBool isReallyInitted; 293 PRBool isReallyInitted;
294 char *configStrings = NULL; 294 char *configStrings = NULL;
295 char *configName = NULL; 295 char *configName = NULL;
296 PRBool passwordRequired = PR_FALSE; 296 PRBool passwordRequired = PR_FALSE;
297 297
298 /* if we are trying to init with a traditional NSS_Init call, maintain 298 /* if we are trying to init with a traditional NSS_Init call, maintain
299 * the traditional idempotent behavior. */ 299 * the traditional idempotent behavior. */
300 if (!initContextPtr && nssIsInitted) { 300 if (!initContextPtr && nssIsInitted) {
301 @@ -711,28 +715,30 @@ nss_Init(const char *configdir, const ch 301 @@ -680,28 +684,30 @@ nss_Init(const char *configdir, const ch
302 nss_FindExternalRoot(dbpath, secmodName); 302 nss_FindExternalRoot(dbpath, secmodName);
303 } 303 }
304 } 304 }
305 } 305 }
306 306
307 pk11sdr_Init(); 307 pk11sdr_Init();
308 cert_CreateSubjectKeyIDHashTable(); 308 cert_CreateSubjectKeyIDHashTable();
309 309
310 +#ifndef NSS_DISABLE_LIBPKIX 310 +#ifndef NSS_DISABLE_LIBPKIX
311 pkixError = PKIX_Initialize 311 pkixError = PKIX_Initialize
(...skipping 10 matching lines...) Expand all
322 } 322 }
323 +#endif /* NSS_DISABLE_LIBPKIX */ 323 +#endif /* NSS_DISABLE_LIBPKIX */
324 324
325 325
326 } 326 }
327 327
328 /* 328 /*
329 * Now mark the appropriate init state. If initContextPtr was passed 329 * Now mark the appropriate init state. If initContextPtr was passed
330 * in, then return the new context pointer and add it to the 330 * in, then return the new context pointer and add it to the
331 * nssInitContextList. Otherwise set the global nss_isInitted flag 331 * nssInitContextList. Otherwise set the global nss_isInitted flag
332 @@ -1092,17 +1098,19 @@ nss_Shutdown(void) 332 @@ -1065,17 +1071,19 @@ nss_Shutdown(void)
333 333
334 rv = nss_ShutdownShutdownList(); 334 rv = nss_ShutdownShutdownList();
335 if (rv != SECSuccess) { 335 if (rv != SECSuccess) {
336 shutdownRV = SECFailure; 336 shutdownRV = SECFailure;
337 } 337 }
338 cert_DestroyLocks(); 338 cert_DestroyLocks();
339 ShutdownCRLCache(); 339 ShutdownCRLCache();
340 OCSP_ShutdownGlobal(); 340 OCSP_ShutdownGlobal();
341 +#ifndef NSS_DISABLE_LIBPKIX 341 +#ifndef NSS_DISABLE_LIBPKIX
342 PKIX_Shutdown(plContext); 342 PKIX_Shutdown(plContext);
343 +#endif 343 +#endif
344 SECOID_Shutdown(); 344 SECOID_Shutdown();
345 status = STAN_Shutdown(); 345 status = STAN_Shutdown();
346 cert_DestroySubjectKeyIDHashTable(); 346 cert_DestroySubjectKeyIDHashTable();
347 pk11_SetInternalKeySlot(NULL); 347 pk11_SetInternalKeySlot(NULL);
348 rv = SECMOD_Shutdown(); 348 rv = SECMOD_Shutdown();
349 if (rv != SECSuccess) { 349 if (rv != SECSuccess) {
350 shutdownRV = SECFailure; 350 shutdownRV = SECFailure;
351 } 351 }
352 Index: mozilla/security/nss/lib/pk11wrap/pk11load.c 352 Index: mozilla/security/nss/lib/pk11wrap/pk11load.c
353 =================================================================== 353 ===================================================================
354 RCS file: /cvsroot/mozilla/security/nss/lib/pk11wrap/pk11load.c,v 354 RCS file: /cvsroot/mozilla/security/nss/lib/pk11wrap/pk11load.c,v
355 retrieving revision 1.33 355 retrieving revision 1.36
356 diff -p -u -8 -r1.33 pk11load.c 356 diff -p -u -8 -r1.36 pk11load.c
357 --- mozilla/security/nss/lib/pk11wrap/pk11load.c» 15 Jul 2011 15:03:43 -00 00» 1.33 357 --- mozilla/security/nss/lib/pk11wrap/pk11load.c» 26 Jun 2012 22:27:30 -00 00» 1.36
358 +++ mozilla/security/nss/lib/pk11wrap/pk11load.c» 25 Oct 2011 22:35:58 -00 00 358 +++ mozilla/security/nss/lib/pk11wrap/pk11load.c» 22 Sep 2012 15:22:31 -00 00
359 @@ -344,46 +344,55 @@ SECMOD_SetRootCerts(PK11SlotInfo *slot, 359 @@ -313,46 +313,55 @@ SECMOD_SetRootCerts(PK11SlotInfo *slot,
360 mod->slotInfo = psi_list; 360 mod->slotInfo = psi_list;
361 mod->slotInfoCount++; 361 mod->slotInfoCount++;
362 362
363 } 363 }
364 psi->hasRootCerts = 1; 364 psi->hasRootCerts = 1;
365 } 365 }
366 } 366 }
367 367
368 +#ifdef NSS_STATIC 368 +#ifdef NSS_STATIC
369 +extern CK_RV NSC_GetFunctionList(CK_FUNCTION_LIST_PTR *pFunctionList); 369 +extern CK_RV NSC_GetFunctionList(CK_FUNCTION_LIST_PTR *pFunctionList);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 } 405 }
406 +#endif /* !NSS_STATIC */ 406 +#endif /* !NSS_STATIC */
407 407
408 /* 408 /*
409 * load a new module into our address space and initialize it. 409 * load a new module into our address space and initialize it.
410 */ 410 */
411 SECStatus 411 SECStatus
412 secmod_LoadPKCS11Module(SECMODModule *mod, SECMODModule **oldModule) { 412 secmod_LoadPKCS11Module(SECMODModule *mod, SECMODModule **oldModule) {
413 PRLibrary *library = NULL; 413 PRLibrary *library = NULL;
414 CK_C_GetFunctionList entry = NULL; 414 CK_C_GetFunctionList entry = NULL;
415 @@ -392,16 +401,26 @@ secmod_LoadPKCS11Module(SECMODModule *mo 415 @@ -361,16 +370,26 @@ secmod_LoadPKCS11Module(SECMODModule *mo
416 SECStatus rv; 416 SECStatus rv;
417 PRBool alreadyLoaded = PR_FALSE; 417 PRBool alreadyLoaded = PR_FALSE;
418 char *disableUnload = NULL; 418 char *disableUnload = NULL;
419 419
420 if (mod->loaded) return SECSuccess; 420 if (mod->loaded) return SECSuccess;
421 421
422 /* intenal modules get loaded from their internal list */ 422 /* intenal modules get loaded from their internal list */
423 if (mod->internal && (mod->dllName == NULL)) { 423 if (mod->internal && (mod->dllName == NULL)) {
424 +#ifdef NSS_STATIC 424 +#ifdef NSS_STATIC
425 + if (mod->isFIPS) { 425 + if (mod->isFIPS) {
426 + entry = FC_GetFunctionList; 426 + entry = FC_GetFunctionList;
427 + } else { 427 + } else {
428 + entry = NSC_GetFunctionList; 428 + entry = NSC_GetFunctionList;
429 + } 429 + }
430 + if (mod->isModuleDB) { 430 + if (mod->isModuleDB) {
431 + mod->moduleDBFunc = NSC_ModuleDBFunc; 431 + mod->moduleDBFunc = NSC_ModuleDBFunc;
432 + } 432 + }
433 +#else 433 +#else
434 /* 434 /*
435 * Loads softoken as a dynamic library, 435 * Loads softoken as a dynamic library,
436 * even though the rest of NSS assumes this as the "internal" module. 436 * even though the rest of NSS assumes this as the "internal" module.
437 */ 437 */
438 if (!softokenLib && 438 if (!softokenLib &&
439 PR_SUCCESS != PR_CallOnce(&loadSoftokenOnce, &softoken_LoadDSO)) 439 PR_SUCCESS != PR_CallOnce(&loadSoftokenOnce, &softoken_LoadDSO))
440 return SECFailure; 440 return SECFailure;
441 441
442 @@ -417,26 +436,36 @@ secmod_LoadPKCS11Module(SECMODModule *mo 442 @@ -386,26 +405,36 @@ secmod_LoadPKCS11Module(SECMODModule *mo
443 443
444 if (!entry) 444 if (!entry)
445 return SECFailure; 445 return SECFailure;
446 446
447 if (mod->isModuleDB) { 447 if (mod->isModuleDB) {
448 mod->moduleDBFunc = (CK_C_GetFunctionList) 448 mod->moduleDBFunc = (CK_C_GetFunctionList)
449 PR_FindSymbol(softokenLib, "NSC_ModuleDBFunc"); 449 PR_FindSymbol(softokenLib, "NSC_ModuleDBFunc");
450 } 450 }
451 +#endif 451 +#endif
452 452
(...skipping 16 matching lines...) Expand all
469 + } 469 + }
470 +#endif 470 +#endif
471 471
472 /* load the library. If this succeeds, then we have to remember to 472 /* load the library. If this succeeds, then we have to remember to
473 * unload the library if anything goes wrong from here on out... 473 * unload the library if anything goes wrong from here on out...
474 */ 474 */
475 library = PR_LoadLibrary(mod->dllName); 475 library = PR_LoadLibrary(mod->dllName);
476 mod->library = (void *)library; 476 mod->library = (void *)library;
477 477
478 if (library == NULL) { 478 if (library == NULL) {
479 @@ -449,16 +478,17 @@ secmod_LoadPKCS11Module(SECMODModule *mo 479 @@ -418,16 +447,19 @@ secmod_LoadPKCS11Module(SECMODModule *mo
480 if (!mod->moduleDBOnly) { 480 if (!mod->moduleDBOnly) {
481 entry = (CK_C_GetFunctionList) 481 entry = (CK_C_GetFunctionList)
482 PR_FindSymbol(library, "C_GetFunctionList"); 482 PR_FindSymbol(library, "C_GetFunctionList");
483 } 483 }
484 if (mod->isModuleDB) { 484 if (mod->isModuleDB) {
485 mod->moduleDBFunc = (void *) 485 mod->moduleDBFunc = (void *)
486 PR_FindSymbol(library, "NSS_ReturnModuleSpecData"); 486 PR_FindSymbol(library, "NSS_ReturnModuleSpecData");
487 } 487 }
488 +#if defined(NSS_STATIC) && !defined(NSS_DISABLE_ROOT_CERTS)
488 +library_loaded: 489 +library_loaded:
490 +#endif
489 if (mod->moduleDBFunc == NULL) mod->isModuleDB = PR_FALSE; 491 if (mod->moduleDBFunc == NULL) mod->isModuleDB = PR_FALSE;
490 if (entry == NULL) { 492 if (entry == NULL) {
491 if (mod->isModuleDB) { 493 if (mod->isModuleDB) {
492 mod->loaded = PR_TRUE; 494 mod->loaded = PR_TRUE;
493 mod->moduleDBOnly = PR_TRUE; 495 mod->moduleDBOnly = PR_TRUE;
494 return SECSuccess; 496 return SECSuccess;
495 } 497 }
496 PR_UnloadLibrary(library); 498 PR_UnloadLibrary(library);
497 @@ -588,33 +618,40 @@ SECMOD_UnloadModule(SECMODModule *mod) { 499 @@ -557,33 +589,40 @@ SECMOD_UnloadModule(SECMODModule *mod) {
498 } 500 }
499 mod->moduleID = 0; 501 mod->moduleID = 0;
500 mod->loaded = PR_FALSE; 502 mod->loaded = PR_FALSE;
501 503
502 /* do we want the semantics to allow unloading the internal library? 504 /* do we want the semantics to allow unloading the internal library?
503 * if not, we should change this to SECFailure and move it above the 505 * if not, we should change this to SECFailure and move it above the
504 * mod->loaded = PR_FALSE; */ 506 * mod->loaded = PR_FALSE; */
505 if (mod->internal && (mod->dllName == NULL)) { 507 if (mod->internal && (mod->dllName == NULL)) {
506 +#ifndef NSS_STATIC 508 +#ifndef NSS_STATIC
507 if (0 == PR_ATOMIC_DECREMENT(&softokenLoadCount)) { 509 if (0 == PR_ATOMIC_DECREMENT(&softokenLoadCount)) {
(...skipping 23 matching lines...) Expand all
531 } 533 }
532 534
533 disableUnload = PR_GetEnv("NSS_DISABLE_UNLOAD"); 535 disableUnload = PR_GetEnv("NSS_DISABLE_UNLOAD");
534 if (!disableUnload) { 536 if (!disableUnload) {
535 PR_UnloadLibrary(library); 537 PR_UnloadLibrary(library);
536 } 538 }
537 return SECSuccess; 539 return SECSuccess;
538 Index: mozilla/security/nss/lib/softoken/lgglue.c 540 Index: mozilla/security/nss/lib/softoken/lgglue.c
539 =================================================================== 541 ===================================================================
540 RCS file: /cvsroot/mozilla/security/nss/lib/softoken/lgglue.c,v 542 RCS file: /cvsroot/mozilla/security/nss/lib/softoken/lgglue.c,v
541 retrieving revision 1.13 543 retrieving revision 1.14
542 diff -p -u -8 -r1.13 lgglue.c 544 diff -p -u -8 -r1.14 lgglue.c
543 --- mozilla/security/nss/lib/softoken/lgglue.c» 16 Apr 2009 18:19:26 -0000» 1.13 545 --- mozilla/security/nss/lib/softoken/lgglue.c» 25 Apr 2012 14:50:10 -0000» 1.14
544 +++ mozilla/security/nss/lib/softoken/lgglue.c» 25 Oct 2011 22:35:58 -0000 546 +++ mozilla/security/nss/lib/softoken/lgglue.c» 22 Sep 2012 15:22:32 -0000
545 @@ -50,16 +50,17 @@ 547 @@ -18,16 +18,17 @@
546 548
547 static LGOpenFunc legacy_glue_open = NULL; 549 static LGOpenFunc legacy_glue_open = NULL;
548 static LGReadSecmodFunc legacy_glue_readSecmod = NULL; 550 static LGReadSecmodFunc legacy_glue_readSecmod = NULL;
549 static LGReleaseSecmodFunc legacy_glue_releaseSecmod = NULL; 551 static LGReleaseSecmodFunc legacy_glue_releaseSecmod = NULL;
550 static LGDeleteSecmodFunc legacy_glue_deleteSecmod = NULL; 552 static LGDeleteSecmodFunc legacy_glue_deleteSecmod = NULL;
551 static LGAddSecmodFunc legacy_glue_addSecmod = NULL; 553 static LGAddSecmodFunc legacy_glue_addSecmod = NULL;
552 static LGShutdownFunc legacy_glue_shutdown = NULL; 554 static LGShutdownFunc legacy_glue_shutdown = NULL;
553 555
554 +#ifndef NSS_STATIC 556 +#ifndef NSS_STATIC
555 /* 557 /*
556 * The following 3 functions duplicate the work done by bl_LoadLibrary. 558 * The following 3 functions duplicate the work done by bl_LoadLibrary.
557 * We should make bl_LoadLibrary a global and replace the call to 559 * We should make bl_LoadLibrary a global and replace the call to
558 * sftkdb_LoadLibrary(const char *libname) with it. 560 * sftkdb_LoadLibrary(const char *libname) with it.
559 */ 561 */
560 #ifdef XP_UNIX 562 #ifdef XP_UNIX
561 #include <unistd.h> 563 #include <unistd.h>
562 #define LG_MAX_LINKS 20 564 #define LG_MAX_LINKS 20
563 @@ -187,16 +188,17 @@ done: 565 @@ -155,16 +156,17 @@ done:
564 PRLibSpec libSpec; 566 PRLibSpec libSpec;
565 libSpec.type = PR_LibSpec_Pathname; 567 libSpec.type = PR_LibSpec_Pathname;
566 libSpec.value.pathname = libname; 568 libSpec.value.pathname = libname;
567 lib = PR_LoadLibraryWithFlags(libSpec, PR_LD_NOW | PR_LD_LOCAL); 569 lib = PR_LoadLibraryWithFlags(libSpec, PR_LD_NOW | PR_LD_LOCAL);
568 } 570 }
569 571
570 return lib; 572 return lib;
571 } 573 }
572 +#endif /* STATIC LIBRARIES */ 574 +#endif /* STATIC LIBRARIES */
573 575
574 /* 576 /*
575 * stub files for legacy db's to be able to encrypt and decrypt 577 * stub files for legacy db's to be able to encrypt and decrypt
576 * various keys and attributes. 578 * various keys and attributes.
577 */ 579 */
578 static SECStatus 580 static SECStatus
579 sftkdb_encrypt_stub(PRArenaPool *arena, SDB *sdb, SECItem *plainText, 581 sftkdb_encrypt_stub(PRArenaPool *arena, SDB *sdb, SECItem *plainText,
580 SECItem **cipherText) 582 SECItem **cipherText)
581 @@ -299,16 +301,31 @@ sftkdbLoad_Legacy(PRBool isFIPS) 583 @@ -267,16 +269,31 @@ sftkdbLoad_Legacy(PRBool isFIPS)
582 * get cleared in shutdown */ 584 * get cleared in shutdown */
583 return SECFailure; 585 return SECFailure;
584 } 586 }
585 legacy_glue_libCheckSucceeded = PR_TRUE; 587 legacy_glue_libCheckSucceeded = PR_TRUE;
586 } 588 }
587 return SECSuccess; 589 return SECSuccess;
588 } 590 }
589 591
590 +#ifdef NSS_STATIC 592 +#ifdef NSS_STATIC
591 +#ifdef NSS_DISABLE_DBM 593 +#ifdef NSS_DISABLE_DBM
(...skipping 11 matching lines...) Expand all
603 +#endif 605 +#endif
604 +#else 606 +#else
605 lib = sftkdb_LoadLibrary(LEGACY_LIB_NAME); 607 lib = sftkdb_LoadLibrary(LEGACY_LIB_NAME);
606 if (lib == NULL) { 608 if (lib == NULL) {
607 return SECFailure; 609 return SECFailure;
608 } 610 }
609 611
610 legacy_glue_open = (LGOpenFunc)PR_FindFunctionSymbol(lib, "legacy_Open"); 612 legacy_glue_open = (LGOpenFunc)PR_FindFunctionSymbol(lib, "legacy_Open");
611 legacy_glue_readSecmod = (LGReadSecmodFunc) PR_FindFunctionSymbol(lib, 613 legacy_glue_readSecmod = (LGReadSecmodFunc) PR_FindFunctionSymbol(lib,
612 "legacy_ReadSecmodDB"); 614 "legacy_ReadSecmodDB");
613 @@ -324,21 +341,24 @@ sftkdbLoad_Legacy(PRBool isFIPS) 615 @@ -292,21 +309,24 @@ sftkdbLoad_Legacy(PRBool isFIPS)
614 "legacy_SetCryptFunctions"); 616 "legacy_SetCryptFunctions");
615 617
616 if (!legacy_glue_open || !legacy_glue_readSecmod || 618 if (!legacy_glue_open || !legacy_glue_readSecmod ||
617 !legacy_glue_releaseSecmod || !legacy_glue_deleteSecmod || 619 !legacy_glue_releaseSecmod || !legacy_glue_deleteSecmod ||
618 !legacy_glue_addSecmod || !setCryptFunction) { 620 !legacy_glue_addSecmod || !setCryptFunction) {
619 PR_UnloadLibrary(lib); 621 PR_UnloadLibrary(lib);
620 return SECFailure; 622 return SECFailure;
621 } 623 }
622 +#endif /* NSS_STATIC */ 624 +#endif /* NSS_STATIC */
623 625
624 /* verify the loaded library if we are in FIPS mode */ 626 /* verify the loaded library if we are in FIPS mode */
625 if (isFIPS) { 627 if (isFIPS) {
626 if (!BLAPI_SHVerify(LEGACY_LIB_NAME,(PRFuncPtr)legacy_glue_open)) { 628 if (!BLAPI_SHVerify(LEGACY_LIB_NAME,(PRFuncPtr)legacy_glue_open)) {
627 +#ifndef NSS_STATIC 629 +#ifndef NSS_STATIC
628 PR_UnloadLibrary(lib); 630 PR_UnloadLibrary(lib);
629 +#endif 631 +#endif
630 return SECFailure; 632 return SECFailure;
631 } 633 }
632 legacy_glue_libCheckSucceeded = PR_TRUE; 634 legacy_glue_libCheckSucceeded = PR_TRUE;
633 } 635 }
634 636
635 setCryptFunction(sftkdb_encrypt_stub,sftkdb_decrypt_stub); 637 setCryptFunction(sftkdb_encrypt_stub,sftkdb_decrypt_stub);
636 legacy_glue_lib = lib; 638 legacy_glue_lib = lib;
637 return SECSuccess; 639 return SECSuccess;
638 @@ -445,20 +465,22 @@ sftkdbCall_Shutdown(void) 640 @@ -413,20 +433,22 @@ sftkdbCall_Shutdown(void)
639 return CKR_OK; 641 return CKR_OK;
640 } 642 }
641 if (legacy_glue_shutdown) { 643 if (legacy_glue_shutdown) {
642 #ifdef NO_FORK_CHECK 644 #ifdef NO_FORK_CHECK
643 PRBool parentForkedAfterC_Initialize = PR_FALSE; 645 PRBool parentForkedAfterC_Initialize = PR_FALSE;
644 #endif 646 #endif
645 crv = (*legacy_glue_shutdown)(parentForkedAfterC_Initialize); 647 crv = (*legacy_glue_shutdown)(parentForkedAfterC_Initialize);
646 } 648 }
647 +#ifndef NSS_STATIC 649 +#ifndef NSS_STATIC
648 disableUnload = PR_GetEnv("NSS_DISABLE_UNLOAD"); 650 disableUnload = PR_GetEnv("NSS_DISABLE_UNLOAD");
649 if (!disableUnload) { 651 if (!disableUnload) {
650 PR_UnloadLibrary(legacy_glue_lib); 652 PR_UnloadLibrary(legacy_glue_lib);
651 } 653 }
652 +#endif 654 +#endif
653 legacy_glue_lib = NULL; 655 legacy_glue_lib = NULL;
654 legacy_glue_open = NULL; 656 legacy_glue_open = NULL;
655 legacy_glue_readSecmod = NULL; 657 legacy_glue_readSecmod = NULL;
656 legacy_glue_releaseSecmod = NULL; 658 legacy_glue_releaseSecmod = NULL;
657 legacy_glue_deleteSecmod = NULL; 659 legacy_glue_deleteSecmod = NULL;
658 legacy_glue_addSecmod = NULL; 660 legacy_glue_addSecmod = NULL;
659 legacy_glue_libCheckFailed = PR_FALSE; 661 legacy_glue_libCheckFailed = PR_FALSE;
660 legacy_glue_libCheckSucceeded = PR_FALSE; 662 legacy_glue_libCheckSucceeded = PR_FALSE;
661 Index: mozilla/security/nss/lib/softoken/lgglue.h 663 Index: mozilla/security/nss/lib/softoken/lgglue.h
662 =================================================================== 664 ===================================================================
663 RCS file: /cvsroot/mozilla/security/nss/lib/softoken/lgglue.h,v 665 RCS file: /cvsroot/mozilla/security/nss/lib/softoken/lgglue.h,v
664 retrieving revision 1.4 666 retrieving revision 1.5
665 diff -p -u -8 -r1.4 lgglue.h 667 diff -p -u -8 -r1.5 lgglue.h
666 --- mozilla/security/nss/lib/softoken/lgglue.h» 16 Apr 2009 18:19:26 -0000» 1.4 668 --- mozilla/security/nss/lib/softoken/lgglue.h» 25 Apr 2012 14:50:10 -0000» 1.5
667 +++ mozilla/security/nss/lib/softoken/lgglue.h» 25 Oct 2011 22:35:58 -0000 669 +++ mozilla/security/nss/lib/softoken/lgglue.h» 22 Sep 2012 15:22:32 -0000
668 @@ -65,16 +65,35 @@ typedef SECStatus (*LGDeleteSecmodFunc)( 670 @@ -33,16 +33,35 @@ typedef SECStatus (*LGDeleteSecmodFunc)(
669 const char *dbname, char *params, PRBool rw); 671 const char *dbname, char *params, PRBool rw);
670 typedef SECStatus (*LGAddSecmodFunc)(const char *appName, 672 typedef SECStatus (*LGAddSecmodFunc)(const char *appName,
671 const char *filename, 673 const char *filename,
672 const char *dbname, char *params, PRBool rw); 674 const char *dbname, char *params, PRBool rw);
673 typedef SECStatus (*LGShutdownFunc)(PRBool forked); 675 typedef SECStatus (*LGShutdownFunc)(PRBool forked);
674 typedef void (*LGSetForkStateFunc)(PRBool); 676 typedef void (*LGSetForkStateFunc)(PRBool);
675 typedef void (*LGSetCryptFunc)(LGEncryptFunc, LGDecryptFunc); 677 typedef void (*LGSetCryptFunc)(LGEncryptFunc, LGDecryptFunc);
676 678
677 +extern CK_RV legacy_Open(const char *dir, const char *certPrefix, 679 +extern CK_RV legacy_Open(const char *dir, const char *certPrefix,
678 + const char *keyPrefix, 680 + const char *keyPrefix,
(...skipping 18 matching lines...) Expand all
697 * Softoken Glue Functions 699 * Softoken Glue Functions
698 */ 700 */
699 CK_RV sftkdbCall_open(const char *dir, const char *certPrefix, 701 CK_RV sftkdbCall_open(const char *dir, const char *certPrefix,
700 const char *keyPrefix, 702 const char *keyPrefix,
701 int certVersion, int keyVersion, int flags, PRBool isFIPS, 703 int certVersion, int keyVersion, int flags, PRBool isFIPS,
702 SDB **certDB, SDB **keyDB); 704 SDB **certDB, SDB **keyDB);
703 char ** sftkdbCall_ReadSecmodDB(const char *appName, const char *filename, 705 char ** sftkdbCall_ReadSecmodDB(const char *appName, const char *filename,
704 Index: mozilla/security/nss/lib/util/secport.h 706 Index: mozilla/security/nss/lib/util/secport.h
705 =================================================================== 707 ===================================================================
706 RCS file: /cvsroot/mozilla/security/nss/lib/util/secport.h,v 708 RCS file: /cvsroot/mozilla/security/nss/lib/util/secport.h,v
707 retrieving revision 1.27 709 retrieving revision 1.28
708 diff -p -u -8 -r1.27 secport.h 710 diff -p -u -8 -r1.28 secport.h
709 --- mozilla/security/nss/lib/util/secport.h» 4 Oct 2011 18:46:04 -0000» 1.27 711 --- mozilla/security/nss/lib/util/secport.h» 25 Apr 2012 14:50:16 -0000» 1.28
710 +++ mozilla/security/nss/lib/util/secport.h» 25 Oct 2011 22:35:58 -0000 712 +++ mozilla/security/nss/lib/util/secport.h» 22 Sep 2012 15:22:32 -0000
711 @@ -248,16 +248,17 @@ sec_port_iso88591_utf8_conversion_functi 713 @@ -216,16 +216,17 @@ sec_port_iso88591_utf8_conversion_functi
712 unsigned int maxOutBufLen, 714 unsigned int maxOutBufLen,
713 unsigned int *outBufLen 715 unsigned int *outBufLen
714 ); 716 );
715 717
716 extern int NSS_PutEnv(const char * envVarName, const char * envValue); 718 extern int NSS_PutEnv(const char * envVarName, const char * envValue);
717 719
718 extern int NSS_SecureMemcmp(const void *a, const void *b, size_t n); 720 extern int NSS_SecureMemcmp(const void *a, const void *b, size_t n);
719 721
720 +#ifndef NSS_STATIC 722 +#ifndef NSS_STATIC
721 /* 723 /*
722 * Load a shared library called "newShLibName" in the same directory as 724 * Load a shared library called "newShLibName" in the same directory as
723 * a shared library that is already loaded, called existingShLibName. 725 * a shared library that is already loaded, called existingShLibName.
724 * A pointer to a static function in that shared library, 726 * A pointer to a static function in that shared library,
725 * staticShLibFunc, is required. 727 * staticShLibFunc, is required.
726 * 728 *
727 * existingShLibName: 729 * existingShLibName:
728 * The file name of the shared library that shall be used as the 730 * The file name of the shared library that shall be used as the
729 @@ -282,12 +283,13 @@ extern int NSS_SecureMemcmp(const void * 731 @@ -250,12 +251,13 @@ extern int NSS_SecureMemcmp(const void *
730 * 732 *
731 * If the new shared library is not found in the same location as the reference 733 * If the new shared library is not found in the same location as the reference
732 * library, it will then be loaded from the normal system library path. 734 * library, it will then be loaded from the normal system library path.
733 */ 735 */
734 PRLibrary * 736 PRLibrary *
735 PORT_LoadLibraryFromOrigin(const char* existingShLibName, 737 PORT_LoadLibraryFromOrigin(const char* existingShLibName,
736 PRFuncPtr staticShLibFunc, 738 PRFuncPtr staticShLibFunc,
737 const char *newShLibName); 739 const char *newShLibName);
738 +#endif /* NSS_STATIC */ 740 +#endif /* NSS_STATIC */
739 741
740 SEC_END_PROTOS 742 SEC_END_PROTOS
741 743
742 #endif /* _SECPORT_H_ */ 744 #endif /* _SECPORT_H_ */
OLDNEW
« no previous file with comments | « patches/nss-libpkix-leak.patch ('k') | patches/nss-static2.patch » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698