2013-05-15 51 views
2

在我們的項目中,我們需要與SSL上的第三方服務器進行通信。 早些時候,我們使用RSA的sslJ提供商com.rsa.jsse.JsseProvider,但由於其中的一些問題,現在我們必須使用Sun的SSL提供商com.sun.net.ssl.internal.ssl.Provider,我們需要使用RSA的加密提供商「JsafeJCE」來滿足FIPS要求。JsafeJCE對KeyManagerFactory支持哪些算法?

我在使用JsafeJCE提供程序創建KeyManagerFactory時遇到問題。

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

以下是例外,我得到

異常線程 「main」 java.security.NoSuchAlgorithmException:沒有這樣的算法:PKCS12的提供商JsafeJCE

是否有人可以告訴我JsafeJCE爲KeyManagerFactory支持的算法?

+1

看着[本頁](https://developer-content.emc.com/docs/rsashare/share_for_java/1.1/jce/com/rsa/jsafe/provider/JsafeJCE.html)它似乎沒有提供' KeyManager'實現。 –

回答

1

我假設你已經正確安裝了RSA JsseProvider和JsafeJCE。

PKCS12KeyStore類型,而不是KeyManager類型。創建類型爲PKCS12KeyManagerFactory沒有任何意義,也許您的意思是KeyStore.getInstance("PKCS12", "JsafeJCE")

否則,如果你是一個KeyManagerFactory後,它是一個JSSE類,而不是一個JCE類,所以它會期望一個JSSE提供者,而不是一個JCE提供者。 provider name for the RSA JsseProvider是「RsaJsse」,而不是「JsafeJCE」(儘管它將在幕後使用該JCE提供程序,請參閱this note)。

有人可以告訴我由JsafeJCE支持KeyManagerFactory的算法嗎?

根據documentation支持的KMF名稱應該是"X509",儘管一些別名也是有效的。