2

在我们的项目中,我们需要与 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");

以下是我得到的例外

线程“主”java.security.NoSuchAlgorithmException 中的异常:没有这样的算法:提供者 JsafeJCE 的 PKCS12

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

4

1 回答 1

1

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

PKCS12是一种KeyStore类型,而不是一种KeyManager类型。KeyManagerFactory创建一个of 类型没有意义PKCS12,也许你的意思是KeyStore.getInstance("PKCS12", "JsafeJCE").

否则,如果您在 a 之后KeyManagerFactory,它是一个 JSSE 类,而不是 JCE 类,所以它会期望一个 JSSE 提供者,而不是 JCE 提供者。RSA JsseProvider的提供程序名称是“ RsaJsse”,而不是“ JsafeJCE”(尽管它将在幕后使用该 JCE 提供程序,请参阅此注释)。

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

根据文档,支持的 KMF 名称应该是" X509",尽管一些别名也是有效的。

于 2014-01-20T18:03:05.603 回答