Skip to content

Commit

Permalink
Updated friendly name field in PKCS12CertInfo.
Browse files Browse the repository at this point in the history
The nickname field in PKCS12CertInfo and related variables and
methods have been renamed to friendlyName for consistency.

https://pagure.io/dogtagpki/issue/2945

Change-Id: Ida5e9b63975670a0ac3a34e7ee83abae30c3c554
  • Loading branch information
edewata committed Feb 22, 2018
1 parent 210f0c6 commit 00f42e8
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 33 deletions.
Expand Up @@ -47,7 +47,7 @@ public static void printCertInfo(PKCS12 pkcs12, PKCS12CertInfo certInfo) throws
System.out.println(" Certificate ID: " + Hex.encodeHexString(id));

System.out.println(" Serial Number: " + new CertId(certInfo.getCert().getSerialNumber()).toHexString());
System.out.println(" Nickname: " + certInfo.getNickname());
System.out.println(" Friendly Name: " + certInfo.getFriendlyName());
System.out.println(" Subject DN: " + certInfo.getCert().getSubjectDN());
System.out.println(" Issuer DN: " + certInfo.getCert().getIssuerDN());

Expand Down
Expand Up @@ -159,7 +159,7 @@ public void execute(String[] args) throws Exception {
Collection<PKCS12CertInfo> certInfos = new ArrayList<PKCS12CertInfo>();

if (nickname != null) {
certInfos.addAll(pkcs12.getCertInfosByNickname(nickname));
certInfos.addAll(pkcs12.getCertInfosByFriendlyName(nickname));

} else {
PKCS12CertInfo certInfo = pkcs12.getCertInfoByID(certID);
Expand Down
Expand Up @@ -133,7 +133,7 @@ public void execute(String[] args) throws Exception {
try {
PKCS12Util util = new PKCS12Util();
PKCS12 pkcs12 = util.loadFromFile(filename, password);
Collection<PKCS12CertInfo> certInfos = pkcs12.getCertInfosByNickname(nickname);
Collection<PKCS12CertInfo> certInfos = pkcs12.getCertInfosByFriendlyName(nickname);

if (trustFlags.equals("")) { // remove trust flags
for (PKCS12CertInfo certInfo : certInfos) {
Expand Down
Expand Up @@ -122,7 +122,7 @@ public void execute(String[] args) throws Exception {
PKCS12Util util = new PKCS12Util();

PKCS12 pkcs12 = util.loadFromFile(filename, password);
pkcs12.removeCertInfoByNickname(nickname);
pkcs12.removeCertInfoByFriendlyName(nickname);
util.storeIntoFile(pkcs12, filename, password);

} finally {
Expand Down
15 changes: 8 additions & 7 deletions base/util/src/netscape/security/pkcs/PKCS12.java
Expand Up @@ -180,30 +180,31 @@ public PKCS12CertInfo getCertInfoByID(byte[] id) {
return certInfosByID.get(new BigInteger(1, id));
}

public Collection<PKCS12CertInfo> getCertInfosByNickname(String nickname) {
public Collection<PKCS12CertInfo> getCertInfosByFriendlyName(String friendlyName) {

Collection<PKCS12CertInfo> result = new ArrayList<PKCS12CertInfo>();

for (PKCS12CertInfo certInfo : certInfosByID.values()) {
if (!nickname.equals(certInfo.getNickname())) continue;
if (!friendlyName.equals(certInfo.getFriendlyName())) continue;
result.add(certInfo);
}

return result;
}

public void removeCertInfoByNickname(String nickname) throws Exception {
public void removeCertInfoByFriendlyName(String friendlyName) throws Exception {

Collection<PKCS12CertInfo> result = getCertInfosByNickname(nickname);
Collection<PKCS12CertInfo> result = getCertInfosByFriendlyName(friendlyName);

if (result.isEmpty()) {
throw new Exception("Certificate not found: " + nickname);
throw new Exception("Certificate not found: " + friendlyName);
}

for (PKCS12CertInfo certInfo : result) {
// remove cert and key
certInfosByID.remove(certInfo.getID());
keyInfosByID.remove(certInfo.getID());
BigInteger id = new BigInteger(1, certInfo.getID());
certInfosByID.remove(id);
keyInfosByID.remove(id);
}
}
}
10 changes: 5 additions & 5 deletions base/util/src/netscape/security/pkcs/PKCS12CertInfo.java
Expand Up @@ -23,7 +23,7 @@ public class PKCS12CertInfo {

byte[] id;
X509CertImpl cert;
String nickname;
String friendlyName;
String trustFlags;

public PKCS12CertInfo() {
Expand All @@ -45,12 +45,12 @@ public void setCert(X509CertImpl cert) {
this.cert = cert;
}

public String getNickname() {
return nickname;
public String getFriendlyName() {
return friendlyName;
}

public void setNickname(String nickname) {
this.nickname = nickname;
public void setFriendlyName(String friendlyName) {
this.friendlyName = friendlyName;
}

public String getTrustFlags() {
Expand Down
36 changes: 19 additions & 17 deletions base/util/src/netscape/security/pkcs/PKCS12Util.java
Expand Up @@ -165,7 +165,7 @@ public void addKeyBag(PKCS12KeyInfo keyInfo, Password password,
public void addCertBag(PKCS12CertInfo certInfo,
SEQUENCE safeContents) throws Exception {

logger.debug("Creating cert bag for " + certInfo.nickname);
logger.debug("Creating cert bag for " + certInfo.getFriendlyName());

ASN1Value cert = new OCTET_STRING(certInfo.cert.getEncoded());
CertBag certBag = new CertBag(CertBag.X509_CERT_TYPE, cert);
Expand Down Expand Up @@ -221,7 +221,7 @@ SET createCertBagAttrs(PKCS12CertInfo certInfo) throws Exception {
nicknameAttr.addElement(SafeBag.FRIENDLY_NAME);

SET nicknameSet = new SET();
nicknameSet.addElement(new BMPString(certInfo.nickname));
nicknameSet.addElement(new BMPString(certInfo.getFriendlyName()));
nicknameAttr.addElement(nicknameSet);

attrs.addElement(nicknameAttr);
Expand Down Expand Up @@ -311,7 +311,7 @@ public void loadCertInfoFromNSS(PKCS12 pkcs12, X509Certificate cert, byte[] id,

PKCS12CertInfo certInfo = new PKCS12CertInfo();
certInfo.id = id;
certInfo.nickname = nickname;
certInfo.setFriendlyName(nickname);
certInfo.cert = new X509CertImpl(cert.getEncoded());
certInfo.trustFlags = getTrustFlags(cert);

Expand Down Expand Up @@ -451,10 +451,10 @@ public PKCS12CertInfo getCertInfo(SafeBag bag) throws Exception {
ANY value = (ANY) values.elementAt(0);

ByteArrayInputStream bis = new ByteArrayInputStream(value.getEncoded());
BMPString nickname = (BMPString) (new BMPString.Template()).decode(bis);
BMPString friendlyName = (BMPString) (new BMPString.Template()).decode(bis);

certInfo.nickname = nickname.toString();
logger.debug(" Nickname: " + certInfo.nickname);
certInfo.setFriendlyName(friendlyName.toString());
logger.debug(" Friendly name: " + certInfo.getFriendlyName());


} else if (oid.equals(SafeBag.LOCAL_KEY_ID)) {
Expand Down Expand Up @@ -487,12 +487,12 @@ public PKCS12CertInfo getCertInfo(SafeBag bag) throws Exception {
logger.debug(" ID: " + Hex.encodeHexString(certInfo.id));
}

if (certInfo.nickname == null) {
logger.debug(" Nickname not specified, generating new nickname");
if (certInfo.getFriendlyName() == null) {
logger.debug(" Generating new friendly name");
DN dn = new DN(subjectDN.getName());
String[] values = dn.explodeDN(true);
certInfo.nickname = StringUtils.join(values, " - ");
logger.debug(" Nickname: " + certInfo.nickname);
certInfo.setFriendlyName(StringUtils.join(values, " - "));
logger.debug(" Friendly name: " + certInfo.friendlyName);
}

return certInfo;
Expand Down Expand Up @@ -663,7 +663,8 @@ public void storeCertIntoNSS(
byte[] id = certInfo.getID();
PKCS12KeyInfo keyInfo = pkcs12.getKeyInfoByID(id);

for (X509Certificate cert : cm.findCertsByNickname(certInfo.nickname)) {
String nickname = certInfo.getFriendlyName();
for (X509Certificate cert : cm.findCertsByNickname(nickname)) {
if (!overwrite) {
return;
}
Expand All @@ -672,14 +673,15 @@ public void storeCertIntoNSS(

X509Certificate cert;
if (keyInfo != null) { // cert has key
logger.debug("Importing user key for " + certInfo.nickname);
importKey(pkcs12, password, certInfo.nickname, keyInfo);
logger.debug("Importing user key for " + certInfo.getFriendlyName());
importKey(pkcs12, password, certInfo.getFriendlyName(), keyInfo);

logger.debug("Importing user certificate " + certInfo.nickname);
cert = cm.importUserCACertPackage(certInfo.cert.getEncoded(), certInfo.nickname);
logger.debug("Importing user certificate " + certInfo.getFriendlyName());
cert = cm.importUserCACertPackage(
certInfo.cert.getEncoded(), certInfo.getFriendlyName());

} else { // cert has no key
logger.debug("Importing CA certificate " + certInfo.nickname);
logger.debug("Importing CA certificate " + certInfo.getFriendlyName());
// Note: JSS does not preserve CA certificate nickname
cert = cm.importCACertPackage(certInfo.cert.getEncoded());
}
Expand All @@ -689,7 +691,7 @@ public void storeCertIntoNSS(
}

public void storeCertIntoNSS(PKCS12 pkcs12, Password password, String nickname, boolean overwrite) throws Exception {
Collection<PKCS12CertInfo> certInfos = pkcs12.getCertInfosByNickname(nickname);
Collection<PKCS12CertInfo> certInfos = pkcs12.getCertInfosByFriendlyName(nickname);
for (PKCS12CertInfo certInfo : certInfos) {
storeCertIntoNSS(pkcs12, password, certInfo, overwrite);
}
Expand Down

0 comments on commit 00f42e8

Please sign in to comment.