Go, Golang: Signing XML SOAP Request

Viewed 69

I am trying to build a soap request (envelope and body). Basicially I am using https://github.com/ma314smith/signedxml.

Signing and validation works inside the lib: I can sign my XML and its validated properly (with this lib) but on all other sites to check this xml I get errors. For example chilkat (https://tools.chilkat.io/xmlDsigVerify.cshtml#generatedCode):

Signature is Invalid
Number of Reference Digests = 1
Reference 1 digest is invalid because the computed digest differs from the digest in the XML.

This is the (well formed) XML output. I don't get it - is there something I was missing?

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://wholesale.telekom.de/servicess/v5/service">
<SOAP-ENV:Header>
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" SOAP-ENV:mustUnderstand="1">
        <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-33757">
            <ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
                <ds:Reference URI="#SigningPart">
                    <ds:Transforms>
                        <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                    </ds:Transforms>
                    <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                    <ds:DigestValue>sijJz3o3lsuQsYVLxdGYvL6xxSU=</ds:DigestValue>
                </ds:Reference>
            </ds:SignedInfo>                <ds:SignatureValue>fwr96k3Of1NHrN2+0y1tPTO1MR3q2Eba7AUMeusrHv56C1TQT9qGFtRSjf64q5K8eAi0zFDju/o3Uj2RIRdRovx6KmKiQsImM3BQeBiOqlzJF5NmTWog4983Pdrr8YWDD8RUROb3jcWG/GprKuIEu71p1eIEnjIqC/LXs0AVyvnLEoKp25Dcc9RwRRQ2H2LXH+a8nJP4j1ojoZbK0clPvmlBPCH9ehEWyrQIa7BaC13peEpUvq2qmgqu758Zu4UhNz6slFmXhW6r2m0MLyeFxA+6dNl2k5+6AdJpCBAD8KgwhL350e4eqTltZhNCxuoQjaU1gXKCktgPQsDoDWg8Bfr4IfV0LPLDGaF4UcE7ZOhq3taebE74Bs7kryo6NtQbnhKkXQOWi2OzLIfjXjwbQwF+iUHR6lykag3JIwBIWqkCrCTnFKEQOC8a4cb7aaSce0be7fXM1L9pTo0+kr+pFan0oN9/GoqXlACzwjPGtpeiXYyBJYxv/j/MOmsRZcFL</ds:SignatureValue>
            <ds:KeyInfo Id="KeyId-0CDD699BB904AAAF5F164107800433736578">
                <wsse:SecurityTokenReference xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="STRId-0CDD699BB904AAAF5F164107800433836579">
                    <ds:X509Data>
                        <ds:X509IssuerSerial>
                            <ds:X509IssuerName>CN=WITA-SSS,OU=MK,O=MK,L=Minden,S=NRW,C=DE</ds:X509IssuerName>
                            <ds:X509SerialNumber>349901756107144965436709912841335068564773353179</ds:X509SerialNumber>
                        </ds:X509IssuerSerial>                            <ds:X509Certificate>MIIEpDCCAwygAwIBAgIUPUojLB3q/JPAzajddKwtXOE7NtswDQYJKoZIhvcNAQELBQAwMTERMA8GA1UEAxMIV0lUQS1TU1MxCzAJBgNVBAYTAkRFMQ8wDQYDVQQHEwZNaW5kZW4wHhcNMjIwNzIwMTEzNTU5WhcNMzIwNzE3MTEzNTU5WjBZMQswCQYDVQQGEwJERTEMMAoGA1UECAwDTlJXMQ8wDQYDVQQHDAZNaW5kZW4xCzAJBgNVBAoMAk1LMQswCQYDVQQLDAJNSzERMA8GA1UEAwwIV0lUQS1TU1MwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDbUs01JYyhA3xxBdpu4Uk1aGIuQV6cCdmihFz3fpewA8DMWYfcx0M5gogDnICIJvNpA7funlFlHIlQKSliz34ONs7apKtZ/VtCl7E4oC8H0MkhPzpur0V5uZPE/v74NjZMg8CFyM/5C8FPx9uoDa9m5Rl1shWslhlo5R9oY8hS8WFq7Unuv8FcAPYV2FORrJ/Fqaqf3q8Tt5QJCVVZs2q9OV1GCrErOy2QtLe1O5+wRJBeOFIBZvZKX4aOC3wnr1Ty6j+Dqe7R3FwiEeGBNriRPrxTEFenvbfsP9lRi1Z6YA37gpd5d3+ADp2VjCjHPlBe69SQth6PaQ9txcf00axTjutxoO1A2Tn2dSlpAxQ+pjx7/wqcoTD+4Lmn3TxGVx73MiAUQ4zXSJA5L87i8dOFXw+JpAA35QfcxyX2YpjmgE1zg9yYKnxwAMFzxeBs/2L8Gw5YLhfjbn7o/V8XIHtYz51ai6qiGxGDgSZE1vXDwJ/jjXXBC5hmjjgt9Ytr/5cCAwEAAaOBizCBiDBWBgNVHSMETzBNoTWkMzAxMREwDwYDVQQDEwhXSVRBLVNTUzELMAkGA1UEBhMCREUxDzANBgNVBAcTBk1pbmRlboIUUHWn2GgycU7pPPSxX8iERJRftjEwCQYDVR0TBAIwADALBgNVHQ8EBAMCBPAwFgYDVR0RBA8wDYILbWstc3NzLXdpdGEwDQYJKoZIhvcNAQELBQADggGBANeTZK5kN/3RXsx7S0UyNtHSBle9ZyqT3fR5nZDniLxLgfgELV2HHkHohIPAVEHVeWE/s4WdH8EivWDgmPNsvVKjoDq00HmYKT9kHNB9xXVSHc5W6sXDIdEXod2eUo54pyqSLhn40H7vyQXn+OdYXHZpWthnrjbNd6KBoLsOj9/iJvK30Lh8E0XEMAiho4iea78Pro91mlwPaWs8m5KG573Y07AN0tMld9vegYSbg+ibcQHfb0TzmxHgXlEkQrO0mtEzBC98ltOvpas60jjCG6cNkYFJMz2fN0EJXFU+qy+LKObjdixLjkVV362pEf4vJnrKEMbVXbNcrV/3rYfPGHsSze9HUmdrQyY5RzngDEWjOSV/dw6vQxwFsyBpqaqEpSiDu5Ct61X5JkqMFH0xORFqoxjTkrhH4TANJUteN3rk4h72Ae9Mg1/jASqvW+2DY4405vmS0wjq4rrXHJhuWogZQ2qNgjDrzl2exCEt6d4SlgZlXTJId4NdXTJgwof0hw==</ds:X509Certificate>
                    </ds:X509Data>
                </wsse:SecurityTokenReference>
            </ds:KeyInfo>
        </ds:Signature>
    </wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="SigningPart">
    <hello>Hello</hello>
</SOAP-ENV:Body></SOAP-ENV:Envelope>
0 Answers
Related