Мне нужно знать, возможно ли получить ключ из хранилища ключей без предоставления« хранилища». Документация здесь говорит, что «При извлечении информации из хранилища ключей пароль необязателен; если пароль не указан, целостность полученной информации не может быть проверена, и отображается предупреждение"
Однако, когда я пытаюсь получить ключ без пароля, я получаю "java.lang.IllegalArgumentException: password can' t be null"исключение.
Ниже показано, как я создал KeyStore
keytool -genseckey -alias "myKey" -keystore KEYSTORE.jks -storepass "password" -storetype "JCEKS" -keyalg AES -keysize 128
И я попытался получить его следующим образом
final KeyStore keyStore = KeyStore.getInstance("JCEKS");
keyStore.load(new FileInputStream(new File("C:\\temp\\keytool\\KEYSTORE.jks")),
null);
final Key key = keyStore.getKey("myKey", null);
Который выдает следующее исключение
java.lang.IllegalArgumentException: password can't be null
at com.sun.crypto.provider.SunJCE_z.(DashoA13*..)
at com.sun.crypto.provider.JceKeyStore.engineGetKey(DashoA13*..)
at java.security.KeyStore.getKey(KeyStore.java:763)
Я полностью неправильно понял документацию? Есть ли другой способ обойти это, так как я не вижу смысла хранить ' storepass" в моем коде, где его могут видеть все, что делает пароль бесполезным.