Java Access Token PKCS11未找到提供程序

ora*_*uiz 7 java security digital-signature pkcs#11

您好我正在尝试使用Java中的智能卡访问密钥库.我正在使用以下代码..

我正在使用OpenSc的http://www.knsc-project.org/opensc的Pkcs11实现

文件windows.cnf =

name=dnie
library=C:\WINDOWS\system32\opensc-pkcs11.dll
Run Code Online (Sandbox Code Playgroud)

Java代码 =

String configName = "windows.cnf"
 String PIN = "####";
 Provider p = new sun.security.pkcs11.SunPKCS11(configName);
 Security.addProvider(p);
 KeyStore keyStore = KeyStore.getInstance("PKCS11", "SunPKCS11-dnie");  =)(= 
 char[] pin = PIN.toCharArray();
 keyStore.load(null, pin);
Run Code Online (Sandbox Code Playgroud)

执行时带=)的行(= 抛出以下异常

java.security.KeyStoreException: PKCS11 not found

    at java.security.KeyStore.getInstance(KeyStore.java:635)
    at ObtenerDatos.LeerDatos(ObtenerDatos.java:52)
    at ObtenerDatos.obtenerNombre(ObtenerDatos.java:19)
    at main.main(main.java:27)
Caused by: java.security.NoSuchAlgorithmException: no such algorithm: PKCS11 for provider SunPKCS11-dnie
        at sun.security.jca.GetInstance.getService(GetInstance.java:70)
        at sun.security.jca.GetInstance.getInstance(GetInstance.java:190)
        at java.security.Security.getImpl(Security.java:662)
        at java.security.KeyStore.getInstance(KeyStore.java:632)
Run Code Online (Sandbox Code Playgroud)

我认为问题是"SunPKCS11-dnie",但我不知道该放在那里.我试过很多组合......

任何人都可以帮助我......

小智 7

我也得到如下错误:

Caused by: java.security.NoSuchAlgorithmException: no such algorithm: PKCS11 for provider SunPKCS11

我正在通过bat文件从jar运行应用程序.

我的bat文件我替换了代码:java - jar sign.jar 代码: java -Djava.security.debug=sunpkcs11,pkcs11 -jar SigningUtility.jar

它解决了这个问题.


eri*_*son 4

我不确定问题出在名字上。看起来是正确的。ColinD 关于通过Provider实例的建议应该可以排除它的问题。

我猜测问题出在 PKCS11 支持上。例如,您的读卡器中没有卡,或者本机代码无法访问读卡器。您是否尝试过将此驱动程序与某些“已知良好”的软件(例如 Firefox 或 Thunderbird 的安全模块)结合使用?