在java中检查.net签名的问题

时间:2010-11-17 10:56:03

标签: c# java digital-signature

我正在使用.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);

    }

1 个答案:

答案 0 :(得分:1)

您发布的代码是工作的c#代码 - 非工作代码是尚未发布的Java代码。 了解您的Java代码将允许我们指出您的问题可能位于代码中...