我们使用HSM(硬件安全模块)对我们的java应用程序进行签名和加密。我们使用java.security属性文件使用以下条目将HSM插入JVM。
security.provider.11=sun.security.pkcs11.SunPKCS11 D:/security/safenet.cfg这几天一直很好,突然我们遇到了如下错误。
java.security.SignatureException: RSASignature::engineSign sun.security.pkcs11.P11Key$P11PrivateKey cannot be cast to java.security.interfaces.RSAPrivateKey我们在谷歌上做了足够多的搜索,但无法找出根本原因。
感谢你的帮助
谢谢
发布于 2015-04-17 06:06:58
我们也遇到了同样的问题。在获取签名实例时指定提供程序名称。当调用要使用HSM签名的代码时,应用程序中可能会有其他代码添加另一个提供程序Security.insertProvider,该提供程序实现了相同的签名算法。签名时,您为PKCS11传递一个私有密钥处理程序的参数,但提供程序需要不同的RSA密钥处理程序。解决方案:当您获得HSM签名实例时,请指定安全提供程序以及签名算法。
https://stackoverflow.com/questions/27053407
复制相似问题