package org.simpleframework.demo.ssl; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import javax.net.ssl.KeyManager; /** * A key store reader is used to read a key store in order to create a list of * {@link javax.net.ssl.KeyManager} objects. These managers are then used to * create SSL sockets with the key store keys. * * @author Niall Gallagher */ public class KeyStoreReader { private final KeyStoreManager keyStoreManager; private final String keyManagerPassword; private final String keyStorePassword; private final File keyStore; public KeyStoreReader(KeyStoreType keyStoreType, File keyStore, String keyStorePassword, String keyManagerPassword) { this.keyStoreManager = new KeyStoreManager(keyStoreType); this.keyManagerPassword = keyManagerPassword; this.keyStorePassword = keyStorePassword; this.keyStore = keyStore; } public KeyManager[] getKeyManagers() throws Exception { InputStream storeSource = new FileInputStream(keyStore); try { return keyStoreManager.getKeyManagers(storeSource, keyStorePassword, keyManagerPassword); } finally { storeSource.close(); } } }