Blob Blame History Raw
From 46dd3b8b536a515ec743001d6f797556f4fffb98 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edewata@redhat.com>
Date: Mon, 20 Jul 2015 22:03:17 +0200
Subject: [PATCH] Fixed ObjectNotFoundException in PKCS12Export.

The PKCS12Export has been fixed to handle ObjectNotFoundException
when exporting certificates without private keys.

https://fedorahosted.org/pki/ticket/1506
---
 base/java-tools/src/com/netscape/cmstools/PKCS12Export.java | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/PKCS12Export.java b/base/java-tools/src/com/netscape/cmstools/PKCS12Export.java
index 77e6b7c..b8999fe 100644
--- a/base/java-tools/src/com/netscape/cmstools/PKCS12Export.java
+++ b/base/java-tools/src/com/netscape/cmstools/PKCS12Export.java
@@ -224,17 +224,17 @@ public class PKCS12Export {
         for (int i = 0; i < certs.length; i++) {
             String nickname = certs[i].getNickname();
             debug(" * Certificate: " + nickname);
-            org.mozilla.jss.crypto.PrivateKey prikey = cm.findPrivKeyByCert(certs[i]);
+            try {
+                org.mozilla.jss.crypto.PrivateKey prikey = cm.findPrivKeyByCert(certs[i]);
 
-            if (prikey == null) {
-                debug("   Private key does not exist");
-                addCertBag(certs[i], null, safeContents);
-
-            } else {
                 debug("   Private key exists");
                 byte localKeyId[] =
                         addCertBag(certs[i], nickname, safeContents);
                 addKeyBag(prikey, certs[i], password, localKeyId, encSafeContents);
+
+            } catch (org.mozilla.jss.crypto.ObjectNotFoundException e) {
+                debug("   Private key does not exist");
+                addCertBag(certs[i], null, safeContents);
             }
         }
 
-- 
1.8.3.1