summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrelyea%netscape.com <devnull@localhost>2000-06-16 18:26:51 +0000
committerrelyea%netscape.com <devnull@localhost>2000-06-16 18:26:51 +0000
commitffeaeca5c8808ebd7ee5e474f3e639629ade8fce (patch)
treea50db2108f6b92587f7bcbee09df6d1d3df53149
parent9e88767424046018bd9d0a577e8c54923eebd1f1 (diff)
downloadnss-hg-ffeaeca5c8808ebd7ee5e474f3e639629ade8fce.tar.gz
Fix bug where password files were not working for Create Certificate request.
-rw-r--r--security/nss/cmd/certutil/certutil.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/security/nss/cmd/certutil/certutil.c b/security/nss/cmd/certutil/certutil.c
index 794ac11f7..637926461 100644
--- a/security/nss/cmd/certutil/certutil.c
+++ b/security/nss/cmd/certutil/certutil.c
@@ -1550,7 +1550,7 @@ AddBasicConstraint(void *extHandle)
static SECItem *
SignCert(CERTCertDBHandle *handle,
CERTCertificate *cert, PRBool selfsign,
-SECKEYPrivateKey *selfsignprivkey, char *issuerNickName)
+SECKEYPrivateKey *selfsignprivkey, char *issuerNickName, void *pwarg)
{
SECItem der;
SECItem *result = NULL;
@@ -1564,14 +1564,14 @@ SECKEYPrivateKey *selfsignprivkey, char *issuerNickName)
caPrivateKey = selfsignprivkey;
} else {
/*CERTCertificate *issuer = CERT_FindCertByNickname(handle, issuerNickName);*/
- CERTCertificate *issuer = PK11_FindCertFromNickname(issuerNickName, NULL);
+ CERTCertificate *issuer = PK11_FindCertFromNickname(issuerNickName, pwarg);
if( (CERTCertificate *)NULL == issuer ) {
SECU_PrintError(progName, "unable to find issuer with nickname %s",
issuerNickName);
return (SECItem *)NULL;
}
- caPrivateKey = PK11_FindKeyByAnyCert(issuer, (void *)NULL);
+ caPrivateKey = PK11_FindKeyByAnyCert(issuer, pwarg);
if (caPrivateKey == NULL) {
SECU_PrintError(progName, "unable to retrieve key %s", issuerNickName);
return NULL;
@@ -1817,6 +1817,7 @@ CreateCert(
int serialNumber,
int warpmonths,
int validitylength,
+ void *pwarg,
PRBool selfsign,
PRBool keyUsage,
PRBool extKeyUsage,
@@ -1901,7 +1902,7 @@ CreateCert(
CERT_FinishExtensions(extHandle);
- certDER = SignCert (handle, subjectCert, selfsign, selfsignprivkey, issuerNickName);
+ certDER = SignCert (handle, subjectCert, selfsign, selfsignprivkey, issuerNickName, pwarg);
if (certDER)
PR_Write(outFile, certDER->data, certDER->len);
@@ -2480,10 +2481,15 @@ main(int argc, char **argv)
/* Create a certificate (-C or -S). */
if (certutil.commands[cmd_CreateAndAddCert].activated ||
certutil.commands[cmd_CreateNewCert].activated) {
+ if ( certutil.options[opt_PasswordFile].arg) {
+ pwdata.source = PW_FROMFILE;
+ pwdata.data = certutil.options[opt_PasswordFile].arg;
+ }
rv = CreateCert(certHandle,
certutil.options[opt_IssuerName].arg,
inFile, outFile, privkey,
serialNumber, warpmonths, validitylength,
+ &pwdata,
certutil.options[opt_SelfSign].activated,
certutil.options[opt_AddKeyUsageExt].activated,
certutil.options[opt_AddExtKeyUsageExt].activated,