Merge "Add docs structure & locate coverage"
[aaf/authz.git] / auth / auth-certman / src / main / java / org / onap / aaf / auth / cm / ca / LocalCA.java
index 70f6794..e2287c3 100644 (file)
@@ -97,7 +97,7 @@ public class LocalCA extends CA {
                        String fileName = f.getName();
                        if(fileName.endsWith(".key")) {
                                caKey = Factory.toPrivateKey(NullTrans.singleton(),f);
-                               List<FileReader> frs = new ArrayList<FileReader>(params.length-1);
+                               List<FileReader> frs = new ArrayList<>(params.length-1);
                                try {
                                        String dir = access.getProperty(CM_PUBLIC_DIR, "");
                                        if(!"".equals(dir) && !dir.endsWith("/")) {
@@ -126,19 +126,21 @@ public class LocalCA extends CA {
                                try {
                                        Provider p;
                                        KeyStore keyStore;
+                                       FileInputStream fis = null;
                                        if(fileName.endsWith(".pkcs11")) {
-                                               String ksType;
-                                               p = Factory.getSecurityProvider(ksType="PKCS11",params);
+                                               String ksType="PKCS11";
+                                               p = Factory.getSecurityProvider(ksType,params);
                                                keyStore = KeyStore.getInstance(ksType,p);
                                        } else if(fileName.endsWith(".jks")) {
                                                keyStore = KeyStore.getInstance("JKS");
+                                               fis = new FileInputStream(f);
                                        } else if(fileName.endsWith(".p12") || fileName.endsWith(".pkcs12")) {
                                                keyStore = KeyStore.getInstance("PKCS12");
+                                               fis = new FileInputStream(f);
                                        } else {
                                                throw new CertException("Unknown Keystore type from filename " + fileName);
                                        }
                                        
-                                       FileInputStream fis = new FileInputStream(f);
                                        KeyStore.ProtectionParameter keyPass;
 
                                        try {
@@ -152,9 +154,15 @@ public class LocalCA extends CA {
 
                                                keyStore.load(fis,ksPass);
                                        } finally {
-                                               fis.close();
+                                               if (fis != null)
+                                                       fis.close();
+                                       }
+                                       Entry entry;
+                                       if(fileName.endsWith(".pkcs11")) {
+                                               entry = keyStore.getEntry(params[0][1]/*alias*/, null);
+                                       } else {
+                                               entry = keyStore.getEntry(params[0][1]/*alias*/, keyPass);
                                        }
-                                       Entry entry = keyStore.getEntry(params[0][1]/*alias*/, keyPass);
                                        if(entry==null) {
                                                throw new CertException("There is no Keystore entry with name '" + params[0][1] +'\'');
                                        }
@@ -208,7 +216,7 @@ public class LocalCA extends CA {
                                        SubjectPublicKeyInfoFactory.createSubjectPublicKeyInfo(new RSAKeyParameters(false,rpk.getModulus(),rpk.getPublicExponent()))
 //                                     new SubjectPublicKeyInfo(ASN1Sequence.getInstance(caCert.getPublicKey().getEncoded()))
                                        );
-                       List<GeneralName> lsan = new ArrayList<GeneralName>();
+                       List<GeneralName> lsan = new ArrayList<>();
                        for(String s : csrmeta.sans()) {
                                lsan.add(new GeneralName(GeneralName.dNSName,s));
                        }