我正在尝试使用从HSM设备获取的私钥对XML文档进行签名。
DOMSignContext dsc = new DOMSignContext(privateKey, doc.getDocumentElement());
LOGGER.fine("dsc: " + dsc);
// Create the XMLSignature, but don't sign it yet.
XMLSignature signature = fac.newXMLSignature(signedInfo, keyInfo);
LOGGER.fine("signature: " + signature);
// Marshal, generate, and sign the enveloped signature.
signature.sign(dsc);
privateKey是java.security.PrivateKey
的对象,而doc是org.w3c.dom.Document
的对象。
代码运行正常,但是一段时间后,它会不断抛出以下提到的异常:
javax.xml.crypto.dsig.XMLSignatureException: java.security.InvalidKeyException: com.ibm.pkcs11.PKCS11Exception: Key handle is invalid
系统和软件配置:
有人可以帮忙吗?