summaryrefslogtreecommitdiffstats
path: root/nss_pcache.c
diff options
context:
space:
mode:
authorrcritten <>2005-07-20 18:54:24 +0000
committerrcritten <>2005-07-20 18:54:24 +0000
commitc656f456c2792bd399df72749d7cc24c4b0dfdb3 (patch)
treef54783f94853910b0f4aeb7ab0d0d4bae723c7d8 /nss_pcache.c
parent08d5d7d88f295b40eeb23bbe4149326488054ea5 (diff)
downloadmod_nss-c656f456c2792bd399df72749d7cc24c4b0dfdb3.tar.gz
mod_nss-c656f456c2792bd399df72749d7cc24c4b0dfdb3.tar.xz
mod_nss-c656f456c2792bd399df72749d7cc24c4b0dfdb3.zip
Add in support for older versions of NSS that don't have the function
PK11_TokenKeyGenWithFlags(). Older versions of NSS will only work with software certificates when using nss_pcache. The workaround is to store the token passwords in a file instead.
Diffstat (limited to 'nss_pcache.c')
-rw-r--r--nss_pcache.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/nss_pcache.c b/nss_pcache.c
index 50f9684..7157a1e 100644
--- a/nss_pcache.c
+++ b/nss_pcache.c
@@ -146,8 +146,15 @@ CreatePk11PinStore(Pk11PinStore **out, const char *tokenName, const char *pin)
}
/* Generate a key and parameters to do the encryption */
+#if NSS_VMAJOR >= 3
+#if NSS_VMINOR <= 9
+ store->key = PK11_KeyGen(store->slot, store->mech->type,
+ 0, 0, 0);
+#else
store->key = PK11_TokenKeyGenWithFlags(store->slot, store->mech->type,
NULL, 0, NULL, CKF_ENCRYPT|CKF_DECRYPT, PR_FALSE, NULL);
+#endif
+#endif
if (store->key == 0)
{
/* PR_SetError(xxx); */