在我们的项目中,我们需要通过 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");
以下是我得到的异常
Exception in thread "main" java.security.NoSuchAlgorithmException: no such algorithm: PKCS12 for provider JsafeJCE
谁能告诉我 JsafeJCE 支持的 KeyManagerFactory 算法?
最佳答案
我假设您已经正确安装了 RSA JsseProvider 和 JsafeJCE。
PKCS12
是 KeyStore
类型,而不是 KeyManager
类型。创建 PKCS12
类型的 KeyManagerFactory
没有意义,也许您的意思是 KeyStore.getInstance("PKCS12", "JsafeJCE")
.
否则,如果您在 KeyManagerFactory
之后,它是一个 JSSE 类,而不是 JCE 类,因此它需要一个 JSSE 提供者,而不是 JCE 提供者。 provider name for the RSA JsseProvider是“RsaJsse
”,而不是“JsafeJCE
”(尽管它将在幕后使用该 JCE 提供程序,请参阅 this note)。
Can someone please tell me the algorithms supported by JsafeJCE for KeyManagerFactory?
根据documentation支持的 KMF 名称应该是 "X509
" , 尽管一些别名也是有效的。
关于java - JsafeJCE 对 KeyManagerFactory 支持的算法有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16568400/