没有这样的算法:提供商SunPKCS11-CartaoCidadao的PKCS11

时间:2018-08-29 16:31:45

标签: java keystore pkcs#11 java-security sunpkcs11

我目前有提供者:

  

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

有人知道如何解决此问题吗?

1 个答案:

答案 0 :(得分:0)

第二个参数应为Provider类型。

使用以下内容:

KeyStore ks = KeyStore.getInstance("PKCS11",prov);