OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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_ */ |
OLD | NEW |