src/java.base/share/classes/sun/security/tools/keytool/Main.java
Print this page
7191662: JCE providers should be located via ServiceLoader
*** 727,749 ****
} else {
provClass = Class.forName(provName);
}
String provArg = provider.snd;
! Object obj;
! if (provArg == null) {
! obj = provClass.newInstance();
! } else {
! Constructor<?> c = provClass.getConstructor(PARAM_STRING);
! obj = c.newInstance(provArg);
! }
if (!(obj instanceof Provider)) {
MessageFormat form = new MessageFormat
(rb.getString("provName.not.a.provider"));
Object[] source = {provName};
throw new Exception(form.format(source));
}
Security.addProvider((Provider)obj);
}
}
if (command == LIST && verbose && rfc) {
--- 727,746 ----
} else {
provClass = Class.forName(provName);
}
String provArg = provider.snd;
! Object obj = provClass.newInstance();
if (!(obj instanceof Provider)) {
MessageFormat form = new MessageFormat
(rb.getString("provName.not.a.provider"));
Object[] source = {provName};
throw new Exception(form.format(source));
}
+ if (provArg != null) {
+ obj = ((Provider) obj).configure(provArg);
+ }
Security.addProvider((Provider)obj);
}
}
if (command == LIST && verbose && rfc) {