X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cadi%2Faaf%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fcadi%2Fcm%2FFactory.java;h=e969fab3377eb6b26e6b311652a736cdd6f441f5;hb=924b18d7469204ceaae60d7345712ea09f75a674;hp=b7c085b0bb3c12bd0dce7a093e6067f6297c14fd;hpb=33e7b1a9fa15b0b699d16e359b406195b7fe87be;p=aaf%2Fauthz.git diff --git a/cadi/aaf/src/main/java/org/onap/aaf/cadi/cm/Factory.java b/cadi/aaf/src/main/java/org/onap/aaf/cadi/cm/Factory.java index b7c085b0..e969fab3 100644 --- a/cadi/aaf/src/main/java/org/onap/aaf/cadi/cm/Factory.java +++ b/cadi/aaf/src/main/java/org/onap/aaf/cadi/cm/Factory.java @@ -60,8 +60,6 @@ import java.security.spec.X509EncodedKeySpec; import java.util.Collection; import java.util.List; -import sun.security.pkcs11.SunPKCS11; - import javax.crypto.Cipher; import javax.crypto.NoSuchPaddingException; @@ -460,24 +458,28 @@ public class Factory { * @throws CertException */ public static synchronized Provider getSecurityProvider(String providerType, String[][] params) throws CertException { - Provider p = null; - switch(providerType) { - case "PKCS12": - p = Security.getProvider(providerType); - break; - case "PKCS11": // PKCS11 only known to be supported by Sun - try { - p = new SunPKCS11(params[0][0]); - if (p==null) { - throw new CertException("SunPKCS11 Provider cannot be constructed for " + params[0][0]); + Provider p = Security.getProvider(providerType); + if(p!=null) { + switch(providerType) { + case "PKCS12": + + break; + case "PKCS11": // PKCS11 only known to be supported by Sun + try { + Class clsSunPKCS11 = Class.forName("sun.security.pkcs11.SunPKCS11"); + Constructor cnst = clsSunPKCS11.getConstructor(String.class); + Object sunPKCS11 = cnst.newInstance(params[0][0]); + if (sunPKCS11==null) { + throw new CertException("SunPKCS11 Provider cannot be constructed for " + params[0][0]); + } + Security.addProvider((Provider)sunPKCS11); + } catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { + throw new CertException(e); } - Security.addProvider(p); - } catch (SecurityException | IllegalArgumentException e) { - throw new CertException(e); - } - break; - default: - throw new CertException(providerType + " is not a known Security Provider for your JDK."); + break; + default: + throw new CertException(providerType + " is not a known Security Provider for your JDK."); + } } return p; }