我正在使用.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);
}
答案 0 :(得分:1)
您发布的代码是工作的c#代码 - 非工作代码是尚未发布的Java代码。 了解您的Java代码将允许我们指出您的问题可能位于代码中...