我正在.net中使用x509Certificate签署xml文档。如果我使用signedXml.CheckSignature函数在.net中验证签名,则签名可以。如果我尝试在Java中检查相同的签名,我总是会得到java.lang.RuntimeException:错误的签名:错误的签名。任何人都有经验吗?
public static bool verifyXMLSignature(XmlDocument ADoc, string ACertificateSerial)
{
X509Certificate2 cert = null;
cert = podpisi.getCertificate(ACertificateSerial);
// Create a new SignedXml object and pass it
// the XML document class.
SignedXml signedXml = new SignedXml(ADoc);
// Find the "Signature" node and create a new
// XmlNodeList object.
XmlNodeList nodeList = ADoc.GetElementsByTagName("Signature");
// Load the signature node.
signedXml.LoadXml((XmlElement)nodeList[0]);
// Check the signature and return the result.
return signedXml.CheckSignature(cert, true);
}
最佳答案
您发布的代码是有效的c#代码-非工作代码是尚未发布的Java代码。
了解您的Java代码将使我们指出您的问题可能在代码中的位置...