Есть мои текущие провайдеры:
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
Кто-нибудь знает, как решить эту проблему?