private static char[] getKeyPassword(KeyManagersType kmc) { char[] keyPass = kmc.isSetKeyPassword() ? deobfuscate(kmc.getKeyPassword()) : null; if (keyPass != null) { return keyPass; } String callbackHandlerClass = kmc.getKeyPasswordCallbackHandler(); if (callbackHandlerClass == null) { return null; } CallbackHandler ch = null; try { ch = (CallbackHandler)ClassLoaderUtils.loadClass(callbackHandlerClass, TLSParameterJaxBUtils.class) .newInstance(); String prompt = kmc.getKeyStore().getFile(); if (prompt == null) { prompt = kmc.getKeyStore().getResource(); } PasswordCallback pwCb = new PasswordCallback(prompt, false); PasswordCallback[] callbacks = new PasswordCallback[] {pwCb}; ch.handle(callbacks); keyPass = callbacks[0].getPassword(); } catch (Exception e) { LOG.log(Level.WARNING, "Cannot load key password from callback handler: " + e.getMessage(), e); } return keyPass; }
/** * This method converts the JAXB KeyManagersType into a list of * JSSE KeyManagers. */ public static KeyManager[] getKeyManagers(KeyManagersType kmc) throws GeneralSecurityException, IOException { KeyStore keyStore = getKeyStore(kmc.getKeyStore()); String alg = kmc.isSetFactoryAlgorithm() ? kmc.getFactoryAlgorithm() : KeyManagerFactory.getDefaultAlgorithm(); char[] keyPass = kmc.isSetKeyPassword() ? deobfuscate(kmc.getKeyPassword()) : null; KeyManagerFactory fac = kmc.isSetProvider() ? KeyManagerFactory.getInstance(alg, kmc.getProvider()) : KeyManagerFactory.getInstance(alg); fac.init(keyStore, keyPass); return fac.getKeyManagers(); }
private static char[] getKeyPassword(KeyManagersType kmc) { char[] keyPass = kmc.isSetKeyPassword() ? deobfuscate(kmc.getKeyPassword()) : null; if (keyPass != null) { return keyPass; } String callbackHandlerClass = kmc.getKeyPasswordCallbackHandler(); if (callbackHandlerClass == null) { return null; } CallbackHandler ch = null; try { ch = (CallbackHandler)ClassLoaderUtils.loadClass(callbackHandlerClass, TLSParameterJaxBUtils.class) .newInstance(); String prompt = kmc.getKeyStore().getFile(); if (prompt == null) { prompt = kmc.getKeyStore().getResource(); } PasswordCallback pwCb = new PasswordCallback(prompt, false); PasswordCallback[] callbacks = new PasswordCallback[] {pwCb}; ch.handle(callbacks); keyPass = callbacks[0].getPassword(); } catch (Exception e) { LOG.log(Level.WARNING, "Cannot load key password from callback handler: " + e.getMessage(), e); } return keyPass; }
/** * This method converts the JAXB KeyManagersType into a list of * JSSE KeyManagers. */ public static KeyManager[] getKeyManagers(KeyManagersType kmc) throws GeneralSecurityException, IOException { KeyStore keyStore = getKeyStore(kmc.getKeyStore()); String alg = kmc.isSetFactoryAlgorithm() ? kmc.getFactoryAlgorithm() : KeyManagerFactory.getDefaultAlgorithm(); char[] keyPass = kmc.isSetKeyPassword() ? deobfuscate(kmc.getKeyPassword()) : null; KeyManagerFactory fac = kmc.isSetProvider() ? KeyManagerFactory.getInstance(alg, kmc.getProvider()) : KeyManagerFactory.getInstance(alg); fac.init(keyStore, keyPass); return fac.getKeyManagers(); }