В моей работе у меня есть требование подписать файл XML сертификатом от SmartCard. Все работает нормально, но на 32-битной виртуальной машине Windows 7. Проблемы возникают, когда я пытаюсь использовать тот же код в 64-битной Windows 10. Я получаю сообщение об ошибке «PKCS # 11 не найден» и «нет такого алгоритма». Я использую пакет xades4j. Я пробовал, наверное, все решения, найденные в Интернете, т.е.
- Использовались разные библиотеки .dll (pkcs11.dll, opensc-spy.dll, CPPkiP.dll, esp2003csp11.dll) как в 32-битной, так и в 64-битной версиях.
- Поместил .dll в каталоги System32 и SysWOW64.
- Обновлены драйвера для моей читалки (IDBridge CT30).
- Поменял jre на 32bit.
- Использовал решения из справочника PKCS11 (без xades4j) - тоже работало только на 32 бит.
Ничего не помогает и всегда происходят одни и те же исключения. Если у кого-то есть идеи, что еще я мог бы сделать, я буду очень благодарен за советы.
С наилучшими пожеланиями.
Caused by: java.security.KeyStoreException: PKCS11 not found
at java.security.KeyStore.getInstance(Unknown Source)
at java.security.KeyStore$Builder$2$1.run(Unknown Source)
at java.security.KeyStore$Builder$2$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 7 more
Caused by: java.security.NoSuchAlgorithmException: no such algorithm: PKCS11 for provider SunPKCS11-SmartCard
at sun.security.jca.GetInstance.getService(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at java.security.Security.getImpl(Unknown Source)
... 11 more