< prev index next >

src/share/classes/sun/security/tools/KeyStoreUtil.java

Print this page
rev 1513 : 7194449: String resources for Key Tool and Policy Tool should be in their respective packages
Reviewed-by: alanb, weijun, mullan

*** 1,7 **** /* ! * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 23,51 **** * questions. */ package sun.security.tools; /** * <p> This class provides several utilities to <code>KeyStore</code>. * * @since 1.6.0 */ public class KeyStoreUtil { - // Class and methods marked as public so that they can be - // accessed by JarSigner, which although lies in a package - // with the same name, but bundled in tools.jar and loaded - // by another class loader, hence in a different *runtime* - // package. - // - // See JVM Spec, 5.3 and 5.4.4 - private KeyStoreUtil() { // this class is not meant to be instantiated } /** * Returns true if KeyStore has a password. This is true except for * MSCAPI KeyStores */ --- 23,62 ---- * questions. */ package sun.security.tools; + import java.io.BufferedReader; + import java.io.File; + import java.io.FileInputStream; + import java.io.IOException; + import java.io.InputStreamReader; + + import java.net.URL; + + import java.security.KeyStore; + + import java.text.Collator; + /** * <p> This class provides several utilities to <code>KeyStore</code>. * * @since 1.6.0 */ public class KeyStoreUtil { private KeyStoreUtil() { // this class is not meant to be instantiated } + private static final String JKS = "jks"; + + private static final Collator collator = Collator.getInstance(); + static { + // this is for case insensitive string comparisons + collator.setStrength(Collator.PRIMARY); + }; /** * Returns true if KeyStore has a password. This is true except for * MSCAPI KeyStores */
*** 64,69 **** --- 75,158 ---- return "Windows-ROOT"; } else { return storetype.toUpperCase(); } } + + /** + * Returns the keystore with the configured CA certificates. + */ + public static KeyStore getCacertsKeyStore() + throws Exception + { + String sep = File.separator; + File file = new File(System.getProperty("java.home") + sep + + "lib" + sep + "security" + sep + + "cacerts"); + if (!file.exists()) { + return null; + } + FileInputStream fis = null; + KeyStore caks = null; + try { + fis = new FileInputStream(file); + caks = KeyStore.getInstance(JKS); + caks.load(fis, null); + } finally { + if (fis != null) { fis.close(); } + } + return caks; + } + + public static char[] getPassWithModifier(String modifier, String arg, + java.util.ResourceBundle rb) { + if (modifier == null) { + return arg.toCharArray(); + } else if (collator.compare(modifier, "env") == 0) { + String value = System.getenv(arg); + if (value == null) { + System.err.println(rb.getString( + "Cannot.find.environment.variable.") + arg); + return null; + } else { + return value.toCharArray(); + } + } else if (collator.compare(modifier, "file") == 0) { + try { + URL url = null; + try { + url = new URL(arg); + } catch (java.net.MalformedURLException mue) { + File f = new File(arg); + if (f.exists()) { + url = f.toURI().toURL(); + } else { + System.err.println(rb.getString( + "Cannot.find.file.") + arg); + return null; + } + } + + BufferedReader br = null; + try { + br = new BufferedReader(new InputStreamReader(url.openStream())); + String value = br.readLine(); + + if (value == null) { + return new char[0]; + } + + return value.toCharArray(); + } finally { + if (br != null) { br.close(); } + } + } catch (IOException ioe) { + System.err.println(ioe); + return null; + } + } else { + System.err.println(rb.getString("Unknown.password.type.") + + modifier); + return null; + } + } }
< prev index next >