Загрузить Java KeyStore для одного псевдонима? - PullRequest
5 голосов
/ 02 июня 2010

Кто-нибудь знает, возможно ли загрузить KeyStore, чтобы он запрашивал только пароль для данного псевдонима?

Пример:

В моем хранилище ключей у меня есть два закрытых ключа: сертификат шифрования Алисы и сертификат шифрования Боба.

Когда я загружаю свой хранилище ключей:

keyStore = KeyStore.getInstance("Windows-MY", "SunMSCAPI");
keyStore.load(null);

Мне предлагается ввести пароль хранилища ключей как Алисы, так и Боба. Как только они введены, я могу использовать getKey("Alice's Encryption Certificate", null);, чтобы получить закрытый ключ Алисы. Мои ключи защищены провайдером безопасности Entrust, именно он запрашивает пароли при загрузке хранилища ключей. Если я не введу пароль Боба и попытаюсь получить его ключ, он вернет значение NULL, что хорошо, но я бы хотел избежать запроса пароля.

Можно ли как-то указать, что мне нужен только ключ Алисы перед загрузкой хранилища ключей, поэтому у меня никогда не запрашивается пароль Боба?

Спасибо.

1 Ответ

3 голосов
/ 02 июня 2010

У нас была та же проблема, и мы не смогли найти способ сделать это. По сути, вы спрашиваете, есть ли способ загрузить хранилище ключей частично. Это усложняет ситуацию, когда поставщик MSCAPI игнорирует любой пароль, который вы предоставляете.

Мы можем обойти эту проблему, сохранив только один ключ в хранилище ключей MSCAPI. Оказывается, это лучше работает и с моделью безопасности Smartcard.

...