Оно работает. Ценю помощь!

я есть следующий вопрос о хранилищах ключей Java и Keytool. Я предполагаю, что хранилище ключей может иметь более 1 сертификата. Как я уже пытался, с помощью keytool я могу создать хранилище ключей, и для доступа к этому хранилищу ключей я должен установить пароль. Также для доступа к каждой записи сертификата мне нужно установить пароль. Обязательно ли иметь одинаковый пароль для хранилища ключей и записей? Если нет (и я думаю, что это разумно предположить), почему следующий код:

char[] pwd = new char[]{'s','e','c','r','e','t'};
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(new FileInputStream("myPersonal.keystore"), pwd);
kmf.init(ks, pwd);//fails here with exception

дает мне следующее исключение?

Exception in thread "main" java.security.UnrecoverableKeyException: Cannot recover key
    at sun.security.provider.KeyProtector.recover(Unknown Source)
    at sun.security.provider.JavaKeyStore.engineGetKey(Unknown Source)
    at sun.security.provider.JavaKeyStore$JKS.engineGetKey(Unknown Source)
    at java.security.KeyStore.getKey(Unknown Source)

secret пароль для доступа к хранилищу ключейmyPersonal.keystore который я создал через keytool. В нем 2 записи для сертификатов, 1 DSA и 1 RSA. У каждого свой пароль с хранилищем ключей (и друг с другом). Теперь код верен, потому что, если я использую хранилище ключей с одной записью сертификата, имеющей тот же пароль, что и хранилище ключей, исключений нет, и программа работает нормально.

Так в чем здесь проблема? Я не должен иметь разные пароли? У меня не должно быть много сертификатов? Или что?

Ответы на вопрос(1)

Ваш ответ на вопрос