Нет такого алгоритма: PKCS11 для провайдера SunPKCS11-CartaoCidadao - PullRequest
0 голосов
/ 29 августа 2018

Есть мои текущие провайдеры:

0 - Название провайдера: SUN 1 - Имя провайдера: SunRsaSign 2 - Название провайдера: SunEC

...

9 - Название поставщика: SunPKCS11-CartaoCidadao

Девятый поставщик, который я пытаюсь использовать, использует библиотеку pkcs11.

Provider prov = Security.getProvider("SunPKCS11-CartaoCidadao");
keyStore = KeyStore.getInstance("PKCS11", prov );

Используя метод info, я вижу, что он использует библиотеку:

System.out.println(prov.getInfo());

SunPKCS11-CartaoCidadao с использованием библиотеки /usr/local/lib/libpteidpkcs11.so

Тем не менее, пока я пытаюсь получить ключевой экземпляр, он сообщает, что для этого провайдера нет PKCS11, что и должно быть.

KeyStore ks = KeyStore.getInstance("PKCS11","SunPKCS11-CartaoCidadao");
keyStore.load( null, null );

java.security.KeyStoreException: PKCS11 не найден

Причина: java.security.NoSuchAlgorithmException: нет такого алгоритма: PKCS11 для провайдера SunPKCS11-CartaoCidadao

Кто-нибудь знает, как решить эту проблему?

1 Ответ

0 голосов
/ 24 октября 2018

Второй параметр должен иметь тип Provider.

Используйте следующее:

KeyStore ks = KeyStore.getInstance("PKCS11",prov);
...