3

有我目前的供应商:

0 - 提供者名称:SUN 1 - 提供者名称:SunRsaSign 2 - 提供者名称:SunEC

...

9 - 提供者名称:SunPKCS11-CartaoCidadao

第 9 个提供程序是我尝试使用的提供程序,它使用 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:没有这样的算法:PKCS11 for provider SunPKCS11-CartaoCidadao

任何人都知道如何解决这个问题?

4

1 回答 1

1

第二个参数应该是 type Provider

使用以下内容:

KeyStore ks = KeyStore.getInstance("PKCS11",prov);
于 2018-10-24T07:47:48.680 回答