< prev index next >

src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java

Print this page
rev 15253 : 8130302: jarsigner and keytool -providerClass needs be re-examined for modules

*** 116,126 **** List<String> ckaliases = new ArrayList<>(); // aliases in -verify char[] storepass; // keystore password boolean protectedPath; // protected authentication path String storetype; // keystore type String providerName; // provider name ! Vector<String> providers = null; // list of providers // arguments for provider constructors HashMap<String,String> providerArgs = new HashMap<>(); char[] keypass; // private key password String sigfile; // name of .SF file String sigalg; // name of signature algorithm --- 116,127 ---- List<String> ckaliases = new ArrayList<>(); // aliases in -verify char[] storepass; // keystore password boolean protectedPath; // protected authentication path String storetype; // keystore type String providerName; // provider name ! List<String> providers = null; // list of provider names ! List<String> providerClasses = null; // list of provider classes // arguments for provider constructors HashMap<String,String> providerArgs = new HashMap<>(); char[] keypass; // private key password String sigfile; // name of .SF file String sigalg; // name of signature algorithm
*** 171,206 **** public void run(String args[]) { try { args = parseArgs(args); // Try to load and install the specified providers if (providers != null) { ClassLoader cl = ClassLoader.getSystemClassLoader(); ! Enumeration<String> e = providers.elements(); ! while (e.hasMoreElements()) { ! String provName = e.nextElement(); ! Class<?> provClass; ! if (cl != null) { ! provClass = cl.loadClass(provName); ! } else { ! provClass = Class.forName(provName); } ! ! 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)); ! } ! Provider p = (Provider) obj; ! String provArg = providerArgs.get(provName); ! if (provArg != null) { ! p = p.configure(provArg); ! } ! Security.addProvider(p); } } if (verify) { try { loadKeyStore(keystore, false); --- 172,204 ---- public void run(String args[]) { try { args = parseArgs(args); // Try to load and install the specified providers + try { if (providers != null) { + for (String provName: providers) { + KeyStoreUtil.loadProviderByName(provName, + providerArgs.get(provName), debug); + } + } + if (providerClasses != null) { ClassLoader cl = ClassLoader.getSystemClassLoader(); ! for (String provClass: providerClasses) { ! KeyStoreUtil.loadProviderByClass(provClass, ! providerArgs.get(provClass), cl, debug); } ! } ! } catch (IllegalArgumentException e) { MessageFormat form = new MessageFormat(rb.getString ("provName.not.a.provider")); ! Object[] source = {e.getMessage()}; ! Exception ex = new Exception(form.format(source)); ! if (e.getCause() != null) { ! ex.initCause(e.getCause()); } + throw ex; } if (verify) { try { loadKeyStore(keystore, false);
*** 333,347 **** if (++n == args.length) usageNoArg(); storetype = args[n]; } else if (collator.compare(flags, "-providerName") ==0) { if (++n == args.length) usageNoArg(); providerName = args[n]; ! } else if ((collator.compare(flags, "-provider") == 0) || ! (collator.compare(flags, "-providerClass") == 0)) { if (++n == args.length) usageNoArg(); if (providers == null) { ! providers = new Vector<String>(3); } providers.add(args[n]); if (args.length > (n+1)) { flags = args[n+1]; --- 331,344 ---- if (++n == args.length) usageNoArg(); storetype = args[n]; } else if (collator.compare(flags, "-providerName") ==0) { if (++n == args.length) usageNoArg(); providerName = args[n]; ! } else if (collator.compare(flags, "-provider") == 0) { if (++n == args.length) usageNoArg(); if (providers == null) { ! providers = new ArrayList<>(3); } providers.add(args[n]); if (args.length > (n+1)) { flags = args[n+1];
*** 349,358 **** --- 346,370 ---- if (args.length == (n+2)) usageNoArg(); providerArgs.put(args[n], args[n+2]); n += 2; } } + } else if (collator.compare(flags, "-providerClass") == 0) { + if (++n == args.length) usageNoArg(); + if (providerClasses == null) { + providerClasses = new ArrayList<>(3); + } + providerClasses.add(args[n]); + + if (args.length > (n+1)) { + flags = args[n+1]; + if (collator.compare(flags, "-providerArg") == 0) { + if (args.length == (n+2)) usageNoArg(); + providerArgs.put(args[n], args[n+2]); + n += 2; + } + } } else if (collator.compare(flags, "-protected") ==0) { protectedPath = true; } else if (collator.compare(flags, "-certchain") ==0) { if (++n == args.length) usageNoArg(); altCertChain = args[n];
*** 582,594 **** System.out.println(); System.out.println(rb.getString (".providerName.name.provider.name")); System.out.println(); System.out.println(rb.getString ! (".providerClass.class.name.of.cryptographic.service.provider.s")); System.out.println(rb.getString ! (".providerArg.arg.master.class.file.and.constructor.argument")); System.out.println(); System.out.println(rb.getString (".strict.treat.warnings.as.errors")); System.out.println(); System.out.println(rb.getString --- 594,611 ---- System.out.println(); System.out.println(rb.getString (".providerName.name.provider.name")); System.out.println(); System.out.println(rb.getString ! (".provider.option")); ! System.out.println(rb.getString ! (".providerArg.option.1")); ! System.out.println(); ! System.out.println(rb.getString ! (".providerClass.option")); System.out.println(rb.getString ! (".providerArg.option.2")); System.out.println(); System.out.println(rb.getString (".strict.treat.warnings.as.errors")); System.out.println(); System.out.println(rb.getString
< prev index next >