diff options
author | nelsonb%netscape.com <devnull@localhost> | 2000-10-06 21:37:25 +0000 |
---|---|---|
committer | nelsonb%netscape.com <devnull@localhost> | 2000-10-06 21:37:25 +0000 |
commit | 3372d5e4a80e3d50b1999499b8441ee01e2b3c3f (patch) | |
tree | 787b340d6346250c697f3e1b348114b46b9e0fba | |
parent | fe5ead95a03f606019823f1c1854e7fdea51aad1 (diff) | |
download | nss-hg-3372d5e4a80e3d50b1999499b8441ee01e2b3c3f.tar.gz |
Implement new function NSS_InitReadWrite, which is just like NSS_Init
except that it opens the files read/write. This is to replace the
broken SECU_ routines in nss/cmd/lib.
-rw-r--r-- | security/nss/lib/nss/nss.h | 10 | ||||
-rw-r--r-- | security/nss/lib/nss/nssinit.c | 26 |
2 files changed, 28 insertions, 8 deletions
diff --git a/security/nss/lib/nss/nss.h b/security/nss/lib/nss/nss.h index 154125c8b..626fecd7c 100644 --- a/security/nss/lib/nss/nss.h +++ b/security/nss/lib/nss/nss.h @@ -42,7 +42,7 @@ SEC_BEGIN_PROTOS /* - * Open the Cert, Key, and Security Module databases. + * Open the Cert, Key, and Security Module databases, read only. * Initialize the Random Number Generator. * Does not initialize the cipher policies or enables. * Default policy settings disallow all ciphers. @@ -50,6 +50,14 @@ SEC_BEGIN_PROTOS extern SECStatus NSS_Init(const char *configdir); /* + * Open the Cert, Key, and Security Module databases, read/write. + * Initialize the Random Number Generator. + * Does not initialize the cipher policies or enables. + * Default policy settings disallow all ciphers. + */ +extern SECStatus NSS_InitReadWrite(const char *configdir); + +/* * initialize NSS without a creating cert db's, key db's, or secmod db's. */ SECStatus NSS_NoDB_Init(const char *configdir); diff --git a/security/nss/lib/nss/nssinit.c b/security/nss/lib/nss/nssinit.c index fef93e630..9a920e678 100644 --- a/security/nss/lib/nss/nssinit.c +++ b/security/nss/lib/nss/nssinit.c @@ -95,7 +95,7 @@ nss_keydb_name_cb(void *arg, int dbVersion) } SECStatus -nss_OpenCertDB(const char * configdir) +nss_OpenCertDB(const char * configdir, PRBool readOnly) { CERTCertDBHandle *certdb; SECStatus status; @@ -108,7 +108,7 @@ nss_OpenCertDB(const char * configdir) if (certdb == NULL) goto loser; - status = CERT_OpenCertDB(certdb, PR_TRUE, nss_certdb_name_cb, (void *)configdir); + status = CERT_OpenCertDB(certdb, readOnly, nss_certdb_name_cb, (void *)configdir); if (status == SECSuccess) CERT_SetDefaultCertDB(certdb); else { @@ -120,14 +120,14 @@ loser: } SECStatus -nss_OpenKeyDB(const char * configdir) +nss_OpenKeyDB(const char * configdir, PRBool readOnly) { SECKEYKeyDBHandle *keydb; keydb = SECKEY_GetDefaultKeyDB(); if (keydb) return SECSuccess; - keydb = SECKEY_OpenKeyDB(PR_TRUE, nss_keydb_name_cb, (void *)configdir); + keydb = SECKEY_OpenKeyDB(readOnly, nss_keydb_name_cb, (void *)configdir); if (keydb == NULL) return SECFailure; SECKEY_SetDefaultKeyDB(keydb); @@ -153,7 +153,7 @@ nss_OpenSecModDB(const char * configdir) } SECStatus -NSS_Init(const char *configdir) +nss_Init(const char *configdir, PRBool readOnly) { SECStatus status; SECStatus rv = SECFailure; @@ -161,11 +161,11 @@ NSS_Init(const char *configdir) RNG_RNGInit(); /* initialize random number generator */ RNG_SystemInfoForRNG(); - status = nss_OpenCertDB(configdir); + status = nss_OpenCertDB(configdir, PR_TRUE); if (status != SECSuccess) goto loser; - status = nss_OpenKeyDB(configdir); + status = nss_OpenKeyDB(configdir, PR_TRUE); if (status != SECSuccess) goto loser; @@ -181,6 +181,18 @@ loser: return rv; } +SECStatus +NSS_Init(const char *configdir) +{ + return nss_Init(configdir, PR_TRUE); +} + +SECStatus +NSS_InitReadWrite(const char *configdir) +{ + return nss_Init(configdir, PR_FALSE); +} + /* * initialize NSS without a creating cert db's, key db's, or secmod db's. */ |