Ответ 1
Хранение:
KeyStore ks = KeyStore.getInstance("JKS");
ks.setKeyEntry("keyAlias", key, passwordForKeyCharArray, certChain);
OutputStream writeStream = new FileOutputStream(filePathToStore);
ks.store(writeStream, keystorePasswordCharArray);
writeStream.close();
Обратите внимание, что certChain может быть нулевым, если вы не передаете PrivateKey
Загрузка:
KeyStore ks = KeyStore.getInstance("JKS");
InputStream readStream = new FileInputStream(filePathToStore);
ks.load(readStream, keystorePasswordCharArray);
Key key = ks.getKey("keyAlias", passwordForKeyCharArray);
readStream.close();
Прочитайте Javadocs
РЕДАКТИРОВАТЬ:
Обратите внимание, что если вы храните SecretKey или используете какую-либо часть поставщика SunJCE (Java Cryptography Extension), вам нужно будет установить тип хранилища ключей в JCEKS.
KeyStore ks = KeyStore.getInstance("JCEKS");