summaryrefslogtreecommitdiffstats
path: root/base/util/src/netscape/security/pkcs/PKCS12Util.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/util/src/netscape/security/pkcs/PKCS12Util.java')
-rw-r--r--base/util/src/netscape/security/pkcs/PKCS12Util.java17
1 files changed, 14 insertions, 3 deletions
diff --git a/base/util/src/netscape/security/pkcs/PKCS12Util.java b/base/util/src/netscape/security/pkcs/PKCS12Util.java
index 967479b69..43435c822 100644
--- a/base/util/src/netscape/security/pkcs/PKCS12Util.java
+++ b/base/util/src/netscape/security/pkcs/PKCS12Util.java
@@ -31,6 +31,7 @@ import java.security.cert.CertificateException;
import java.util.Collection;
import java.util.logging.Logger;
+import org.apache.commons.lang.StringUtils;
import org.mozilla.jss.CryptoManager;
import org.mozilla.jss.asn1.ANY;
import org.mozilla.jss.asn1.ASN1Util;
@@ -67,6 +68,7 @@ import org.mozilla.jss.pkix.primitive.PrivateKeyInfo;
import org.mozilla.jss.util.Password;
import netscape.ldap.LDAPDN;
+import netscape.ldap.util.DN;
import netscape.security.x509.X509CertImpl;
public class PKCS12Util {
@@ -417,7 +419,8 @@ public class PKCS12Util {
byte[] x509cert = certStr.toByteArray();
certInfo.cert = new X509CertImpl(x509cert);
- logger.fine(" Subject DN: " + certInfo.cert.getSubjectDN());
+ Principal subjectDN = certInfo.cert.getSubjectDN();
+ logger.fine(" Subject DN: " + subjectDN);
SET bagAttrs = bag.getBagAttributes();
@@ -468,6 +471,14 @@ public class PKCS12Util {
logger.fine(" ID: " + certInfo.id.toString(16));
}
+ if (certInfo.nickname == null) {
+ logger.fine(" Nickname not specified, generating new nickname");
+ DN dn = new DN(subjectDN.getName());
+ String[] values = dn.explodeDN(true);
+ certInfo.nickname = StringUtils.join(values, " - ");
+ logger.fine(" Nickname: " + certInfo.nickname);
+ }
+
return certInfo;
}
@@ -580,9 +591,9 @@ public class PKCS12Util {
privateKeyInfo.encode(bos);
byte[] privateKey = bos.toByteArray();
- PKCS12CertInfo certInfo = getCertBySubjectDN(pkcs12, keyInfo.subjectDN);
+ PKCS12CertInfo certInfo = pkcs12.getCertInfoByID(keyInfo.getID());
if (certInfo == null) {
- logger.fine("Private key nas no certificate, ignore");
+ logger.fine("Private key has no certificate, ignore");
return;
}