以下是我目前的服务提供者:
0-提供者名称: SUN 1-提供者名称: SunRsaSign 2-提供者名称: SunEC ..。 供应商名称:SunPKCS11 11-CartaoCidadao
第九个提供程序是我尝试使用的提供者,它使用pkcs11库。
Provider prov = Security.getProvider("SunPKCS11-CartaoCidadao");
keyStore = KeyStore.getInstance("PKCS11", prov );使用info方法,我可以看到它使用的是库:
System.out.println(prov.getInfo());SunPKCS11 11-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:没有这样的算法:提供者SunPKCS11 11的PKCS11 -CartaoCidadao
有人知道如何解决这个问题吗?
发布于 2018-10-24 07:47:48
第二个参数应该是Provider类型。
使用以下方法:
KeyStore ks = KeyStore.getInstance("PKCS11",prov);发布于 2022-09-16 16:15:01
尽管能够看到提供程序已经成功地添加/插入,并且它的getInfo()显示了设备的实际PKCS#11库的路径,
java.security.KeyStoreException:找不到PKCS11
如果未正确指定slotListIndex或slot (请参阅参考文献),则为。SunPKCS11提供程序列出所有插槽,甚至那些没有令牌的插槽,因此应该相应地指定slotListIndex。
https://stackoverflow.com/questions/52082210
复制相似问题