我目前有提供者:
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:否这样的算法:提供商SunPKCS11-CartaoCidadao的PKCS11
有人知道如何解决此问题吗?
答案 0 :(得分:0)
第二个参数应为Provider
类型。
使用以下内容:
KeyStore ks = KeyStore.getInstance("PKCS11",prov);