2014-11-21 67 views
0

我們正在使用HSM(硬件安全模塊)從我們的Java應用程序進行簽名和加密。 我們已經使用java.security屬性文件中使用以下條目使用HSM和SUNPKCS11進行文件簽名時出現異常

security.provider.11=sun.security.pkcs11.SunPKCS11 D:/security/safenet.cfg 

這是工作的罰款所有這些天插上HSM我們的JVM,突然我們遇到了一個錯誤,如下所示。

java.security.SignatureException: RSASignature::engineSign sun.security.pkcs11.P11Key$P11PrivateKey cannot be cast to java.security.interfaces.RSAPrivateKey 

我們在google上做了足夠的搜索,但無法確定根本原因。

感謝所有幫助

感謝

回答

1

我們也遇到了同樣的問題。獲取簽名實例時指定提供者名稱。當使用HSM進行簽名的代碼被調用時,應用程序中可能會有其他代碼添加另一個實現相同簽名算法的提供程序[Security.insertProvider]。 當您的符號時,您傳遞PKCS11的私鑰處理程序的參數,但提供程序期望不同的RSA密鑰處理程序。 解決方案: 獲取HSM簽名實例時,請指定安全提供程序以及簽名算法。

相關問題