![](/img/trans.png)
[英]sun.security.pkcs11.wrapper.PKCS11Exception: CKR_WRAPPED_KEY_INVALID
[英]Caused by: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DATA_INVALID
我的应用程序生成 xml 签名时遇到问题,但只是在 Windows 上发生,我在 Linux 上没有问题,用 jre 7 和 jre 8 证明,谢谢提前。
java.security.ProviderException: sun.security.pkcs11.wrapper.PKCS11Exception: E
at sun.security.pkcs11.P11Signature.engineSign(P11Signature.java:547)
at java.security.Signature$Delegate.engineSign(Unknown Source)
at java.security.Signature.sign(Unknown Source)
at org.apache.xml.security.algorithms.implementations.SignatureBaseRSA.engineSign(SignatureBaseRSA.java:130)
at org.apache.xml.security.algorithms.SignatureAlgorithm.sign(SignatureAlgorithm.java:173)
at org.apache.xml.security.signature.XMLSignature.sign(XMLSignature.java:614)
at bo.accl.clientelynx.Signer.firmar(Signer.java:283)
at bo.accl.clientelynx.Signer.sign(Signer.java:168)
at bo.accl.clientelynx.Signer.apply(Signer.java:350)
at bo.accl.clientelynx.Signer.apply(Signer.java:61)
at com.google.common.collect.Iterators$8.transform(Iterators.java:860)
at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at bo.accl.clientelynx.App$17.doInBackground(App.java:1130)
at bo.accl.clientelynx.App$17.doInBackground(App.java:1095)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DATA_INVALID
at sun.security.pkcs11.wrapper.PKCS11.C_Sign(Native Method)
at sun.security.pkcs11.P11Signature.engineSign(P11Signature.java:538)
搜索CKR_DATA_INVALID后,我发现错误是:
加密操作的明文输入数据无效。 此返回值的优先级低于CKR_DATA_LEN_RANGE。
请参阅: http : //www.cryptsoft.com/pkcs11doc/v220/pkcs11__all_8h.html#aCKR_DATA_INVALID
我的客人是您在Windows和Linux之间的数据编码存在问题。 检查您的数据文件以查找无效的Windows字符。
在使用旧版本的p11-capi库时,我遇到了类似的问题。 就我而言,我想使用一种新的签名算法(SHA256withRSA而不是SHA1withRSA),并收到相同的Java异常。 异常不是很有帮助,所以花了很长时间才发现最新的库版本中已解决了该问题: https : //risacher.org/p11-capi/
如果有人在 provider 异常下面临 CKR_FUNCTION_FAILED,那么请检查别名是否正确。如果有多个别名,则在密钥库中一一检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.