我正在.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代码将使我们指出您的问题可能在代码中的位置...

07-26 06:29