JsafeJCE为KeyManagerFactory支持哪些算法?

时间:2013-05-15 14:55:15

标签: java ssl rsa jce

在我们的项目中,我们需要与SSL上的第三方服务器进行通信。 之前我们使用过RSA的sslJ提供程序com.rsa.jsse.JsseProvider,但由于其中的一些问题,现在我们必须使用Sun的SSL提供程序com.sun.net.ssl.internal.ssl.Provider,我们需要使用RSA的加密提供程序“JsafeJCE”来实现FIPS兼容性

使用JsafeJCE提供程序创建KeyManagerFactory时遇到问题。

KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("PKCS12",
    "JsafeJCE");

以下是我得到的例外

  

线程“main”中的异常java.security.NoSuchAlgorithmException:没有这样的算法:PKCS12 for provider JsafeJCE

有人可以告诉我JsafeJCE为KeyManagerFactory支持的算法吗?

1 个答案:

答案 0 :(得分:1)

我假设你已经正确安装了RSA JsseProvider和JsafeJCE。

PKCS12KeyStore类型,而不是KeyManager类型。创建类型为KeyManagerFactory的{​​{1}}没有意义,也许您的意思是PKCS12

否则,如果你在KeyStore.getInstance("PKCS12", "JsafeJCE")之后,它是一个JSSE类,而不是一个JCE类,所以它会期望一个JSSE提供者,而不是一个JCE提供者。 provider name for the RSA JsseProvider为“KeyManagerFactory”,而不是“RsaJsse”(尽管它将在幕后使用该JCE提供商,请参阅this note)。

  

有人可以告诉我JsafeJCE为KeyManagerFactory支持的算法吗?

根据documentation支持的KMF名称应为"X509",但有些别名也有效。