Я пытаюсь понять, что происходит в этом коде .
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
FileInputStream instream = new FileInputStream(new File("my.keystore"));
try {
trustStore.load(instream, "nopassword".toCharArray());
} finally {
instream.close();
}
SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
Scheme sch = new Scheme("https", socketFactory, 443);
httpclient.getConnectionManager().getSchemeRegistry().register(sch);
Мои вопросы:
trustStore.load(instream, "nopassword".toCharArray());
делает что именно? После прочтения документации load()
загрузит данные KeyStore из входного потока (который является просто пустым файлом, который мы только что создали), используя некоторый произвольный «nopassword». Почему бы просто не загрузить его с null
в качестве параметра InputStream и пустой строкой в качестве поля пароля?
И что происходит, когда этот пустой KeyStore передается в конструктор SSLSocketFactory? Каков результат такой операции?
Или - это просто пример, когда в реальном приложении вам фактически нужно поместить ссылку на существующий файл / пароль хранилища ключей?