我已经面对这个问题几天了。进行了很多调查,但没有任何解决方案。
我正在从服务器通过Jose4j / JWE从服务器接收一个加密对象,该对象具有“ RSA-OAEP-256”加密算法,在客户端尝试使用JWE对其解密并失败。 客户端的密钥库和证书存储在HSM中。服务器使用Java(本地jks)存储证书。 每当尝试解密加密的文本时,都会引发异常: “ com.ncipher.provider.nCSecurityException:私钥不可在HSM外部导出。”
还尝试使用Bouncy Castle提供程序在服务器端进行加密,但这不能解决问题。
将加密算法更改为“ RSA-OAEP”而不是“ RSA-OAEP-256”可以解决此问题,但这不是我的选择,我必须使用“ RSA-OAEP-256”。
重要的一点是,尝试在没有Jose4j / JWE的情况下进行所有加密和解密,并且完全没有问题,并且所有过程都成功进行了。