@Override
	public void engineLoad(InputStream inputStream, char[] chars)
			throws IOException, NoSuchAlgorithmException, CertificateException {
		try {
			Properties properties = new Properties();
			if(inputStream != null){
				properties.load(inputStream);
				if (properties.size() == 0) {
					throw new CertificateException(
							"Properties file for configuration was empty?");
				}
			}else{
				if(chars == null){
					// keyStore.load(null,null) -> in memory only keystore
					inMemoryOnly = true;
				}
			}
			String defaultDirectoryString = properties
					.getProperty(DEFAULT_DIRECTORY_KEY);
			String directoryListString = properties
					.getProperty(DIRECTORY_LIST_KEY);
			String proxyFilename = properties.getProperty(PROXY_FILENAME);
			String certFilename = properties.getProperty(CERTIFICATE_FILENAME);
			String keyFilename = properties.getProperty(KEY_FILENAME);
			initialize(defaultDirectoryString, directoryListString,
					proxyFilename, certFilename, keyFilename);
		} finally {
			if(inputStream != null){
				try {
					inputStream.close();
				} catch (IOException e) {
					logger.info("Error closing inputStream", e);
				}
			}
		}
	}
@ Override public void engineLoad ( InputStream inputStream , char [ ] chars ) throws IOException , NoSuchAlgorithmException , CertificateException { try { Properties properties = new Properties ( ) ; if ( inputStream != null ) { properties . load ( inputStream ) ; if ( properties . size ( ) == 0 ) { throw new CertificateException ( "Properties file for configuration was empty?" ) ; } } else { if ( chars == null ) { inMemoryOnly = true ; } } String defaultDirectoryString = properties . getProperty ( DEFAULT_DIRECTORY_KEY ) ; String directoryListString = properties . getProperty ( DIRECTORY_LIST_KEY ) ; String proxyFilename = properties . getProperty ( PROXY_FILENAME ) ; String certFilename = properties . getProperty ( CERTIFICATE_FILENAME ) ; String keyFilename = properties . getProperty ( KEY_FILENAME ) ; initialize ( defaultDirectoryString , directoryListString , proxyFilename , certFilename , keyFilename ) ; } finally { if ( inputStream != null ) { try { inputStream . close ( ) ; } catch ( IOException e ) { logger . info ( "Error closing inputStream" , e ) ; } } } }
Load the keystore from the supplied input stream. Unlike many other
implementations of keystore (most notably the default JKS
implementation), the input stream does not hold the keystore objects.
Instead, it must be a properties file defining the locations of the
keystore objects. The password is not used.

@param inputStream
An input stream to the properties file.
@param chars
The password is not used.
@throws IOException
@throws NoSuchAlgorithmException
@throws CertificateException