Моя цель - прочитать информацию с карточки CAC и использовать pkcs11
, чтобы извлечь из нее информацию и подписать мой документ. Я не мог найти правильный DLL для моего оборудования, поэтому я установил openSC
на моей машине и использовать opensc-pkcs11.dll
в следующем коде:java.security.KeyStoreException: PKCS11 не найден
String configName = "pkcs.cnf"; //my config file that points to opensc-pkcs11.dll
String PIN = "123456";
Provider p = new sun.security.pkcs11.SunPKCS11(configName);
Security.addProvider(p);
KeyStore keyStore = KeyStore.getInstance("PKCS11");
char[] pin = PIN.toCharArray();
keyStore.load(null, pin);
Но я получаю сообщение об ошибке по следующему адресу
KeyStore keyStore = KeyStore.getInstance("PKCS11");
с StackTrace Error:
java.security.KeyStoreException: PKCS11 not found
at java.security.KeyStore.getInstance(Unknown Source)
Caused by: java.security.NoSuchAlgorithmException: no such algorithm: PKCS11 for provider SunPKCS11-FooAccelerator
at sun.security.jca.GetInstance.getService(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at java.security.Security.getImpl(Unknown Source)
... 2 more
Помощь!
Я считаю, что проблема с вашей .dll, проверка если это правильный файл dll, вы ссылаетесь на – mhasan
Почему вы не используете KeyStore keyStore = KeyStore.getInstance («PKCS11», p); чтобы получить хранилище ключей, может помочь вам приблизиться к вашей проблеме – mhasan
@mhasan, это тоже не сработало. Могу ли я загрузить DLL из Интернета? Я использую карту CAC – dexter