Мне нужно знать, возможно ли получить ключ из хранилища ключей без предоставления «storepass».В документации здесь сказано, что "При извлечении информации из хранилища ключей пароль является необязательным; если пароль не задан, целостность полученной информации не может быть проверена и отображается предупреждение"
Однако, когда я пытаюсь получить Ключ без пароля, я получаю "java.lang.IllegalArgumentException: пароль не может быть нулевым" исключение.
Ниже следуеткак я создал 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.<init>(DashoA13*..)
at com.sun.crypto.provider.JceKeyStore.engineGetKey(DashoA13*..)
at java.security.KeyStore.getKey(KeyStore.java:763)
Полностью ли я неправильно понял документацию?Есть ли другой способ обойти это, так как я не вижу смысла хранить «passpass» в открытом виде в моем коде, где все могут его видеть, что делает пароль бесполезным.