KeyStore получить ключ без пароля

Мне нужно знать, возможно ли получить ключ из хранилища ключей без предоставления« хранилища». Документация здесь говорит, что «При извлечении информации из хранилища ключей пароль необязателен; если пароль не указан, целостность полученной информации не может быть проверена, и отображается предупреждение"

Однако, когда я пытаюсь получить ключ без пароля, я получаю "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" в моем коде, где его могут видеть все, что делает пароль бесполезным.

5
задан Beryllium 30 April 2014 в 07:10
поделиться