Error signing Sisobrapref XML document - Invalid Transmitter Certificate - C#

Asked

Viewed 26 times

0

Every time I send a document . xml to Webservice returns me the following message: "Invalid Transmitter Certificate"

I am following the following documentation: Documentación Sisobrapref

Someone can help me??

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        <SignedInfo>
            <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
            <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
            <Reference URI="">
                <Transforms>
                    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                    <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
                </Transforms>
                <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                <DigestValue>t56o21tZA9sEP1vKf2sOHVRUDN8=</DigestValue>
            </Reference>
        </SignedInfo>
        <SignatureValue>CQN6h+/8AjseUBKyJfBEtB1OhSefzIObV7uZn9sKJyhCo/xHxxo7Gn6Hx3w3E7oxi4s0baosWYc5dsnhNY/fB1m1PCN2XkjZYKuPNAkuG2nZgt7qtn5aNXMShYTEj/zIvQbyINYm0YaIu3L+3F63IEyGT0ItjEntPbgj0dtkoYns3HYihqjECUPXPLXwjaKWYUqNlGfDRNg3P3ORxTPgI7dvIZPCyNnyjhxUKerVuVgGZX9yZ9Ou22tyhxJkmJoz1auxoarAEBsTJujdYeBhNP7TE7MW1Mg86Wi4WuXUDLq8dKkL4K1X018LTKTlAR3BsbeGEgPT4rsb1UjQCITlXg==</SignatureValue>
        <KeyInfo>
            <X509Data>
                <X509Certificate>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</X509Certificate>
            </X509Data>
        </KeyInfo>
    </Signature>

I hold the certificate with the following information: Informações do Certificado A3

And my signature code is as follows::

  private void AssinarXML(X509Certificate2 certificate, RSA rsaKey)
    {
        DirectoryInfo diretorio = new DirectoryInfo(caminhoDestinoXMLValidados);
        if (diretorio.Exists && diretorio?.GetFiles($"*{extensao}").Length > 0)
        {
            foreach (var arquivo in diretorio?.GetFiles($"*{extensao}"))
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.PreserveWhitespace = true;
                xmlDoc.Load(arquivo?.FullName);
                if (xmlDoc == null)
                    throw new ArgumentException(nameof(xmlDoc));
                if (rsaKey == null)
                    throw new ArgumentException(nameof(rsaKey));

                SignedXml signedXml = new SignedXml(xmlDoc);
                signedXml.SigningKey = certificate.PrivateKey;
                signedXml.SignedInfo.SignatureMethod = "http://www.w3.org/2000/09/xmldsig#rsa-sha1";
                Reference reference = new Reference();
                reference.Uri = xmlDoc.DocumentElement.FirstChild.NamespaceURI;
                reference.DigestMethod = "http://www.w3.org/2000/09/xmldsig#sha1";

                XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform(true);
                reference.AddTransform(env);

                XmlDsigC14NTransform c14t = new XmlDsigC14NTransform();
                reference.AddTransform(c14t);
                signedXml.AddReference(reference);


                KeyInfo keyInfo = new KeyInfo();
                keyInfo.AddClause(new KeyInfoX509Data(certificate));
                signedXml.KeyInfo = keyInfo;

                signedXml.ComputeSignature();


                XmlElement xmlDigitalSignature = signedXml.GetXml();
                if (xmlDoc?.GetElementsByTagName("Alvara").Count > 0)
                {
                    foreach (XmlElement item in xmlDoc?.GetElementsByTagName("Alvara"))
                    {
                        item.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true));
                    }
                }
                if (xmlDoc?.GetElementsByTagName("Habitese").Count > 0)
                {
                    foreach (XmlElement item in xmlDoc?.GetElementsByTagName("Habitese"))
                    {
                        item.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true));
                    }
                }
                if (xmlDoc?.GetElementsByTagName("AlteraSituacao").Count > 0)
                {
                    foreach (XmlElement item in xmlDoc?.GetElementsByTagName("AlteraSituacao"))
                    {
                        item.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true));
                    }
                }
              

                xmlDoc.Save(arquivo?.FullName);
            }
        }
    }
  • I am trying to send this file and I get the same error. Ví ai that Voce is signing each license and each habitese, is that right? The signature must be in the alvara or infAlvara element??

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.