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:
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??
– eliseu