Estoy tratando de generar un sello digital utilizando C#, y un proveedor que timbra los CFDI.
Este es mi código
// See
https://aka.ms/new-console-template for more information
//Cargar el XML
using System.Xml.XPath;
using System.Xml.Xsl;
using System.Xml;
using System.Security.Cryptography;
using System.Text;
using System.Security.Cryptography.X509Certificates;
using static System.Runtime.InteropServices.JavaScript.JSType;
StreamReader reader = new StreamReader(@"C:/xxx/test-factura.xml");
XPathDocument myXPathDoc = new XPathDocument(reader);
//Cargando el XSLT
XsltSettings sets = new XsltSettings(true, true);
XslCompiledTransform myXslTrans = new XslCompiledTransform(true);
var resolver = new XmlUrlResolver();
myXslTrans.Load(@"C:/xxx/cadenaoriginal_3_3.xsl", sets, resolver);
StringWriter str = new StringWriter();
XmlTextWriter myWriter = new XmlTextWriter(str);
//Aplicando transformacion
myXslTrans.Transform(myXPathDoc, null, myWriter);
//Resultado
string result = str.ToString();
string cadenaOriginal = result.Replace("\n", "").Replace("\r", "");
byte[] bytes = Encoding.UTF8.GetBytes(cadenaOriginal);
using (SHA256 mySHA256 = SHA256.Create())
{
var digest = mySHA256.ComputeHash(bytes);
byte[] byteKey = File.ReadAllBytes("C:\\xxx\\LlavePkcs8PF.key");
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
RSAParameters rsaParameters = rsa.ExportParameters(true);
rsa.ImportParameters(rsaParameters);
rsa.ImportEncryptedPkcs8PrivateKey("password", byteKey, out _);
//var ecrypted = rsa.Encrypt(digest, false);
var ecrypted = rsa.SignData(digest, SHA256.Create());
var sello = Convert.ToBase64String(ecrypted);
}
Pero el al mandar el XML con el sello generado al proveedor, me regresa el error del SAT
||4.0|GAV|30102023|2023-11-22T20:28:51|03|20001000000300022823|800.00|MXN|896.00|I|01|PUE|77536|TEST010203001|Pablo Neruda Perez|625|TES030201001|Pablo Neruda Perez|72000|601|G03|78101801|1.00|E48|Unidad de servicio|SEMANA 44|800|800.00|02|800.00|002|Tasa|0.160000|128.00|800|002|Tasa|0.04|32.00|002|32.00|32.00|800.00|002|Tasa|0.160000|128.00|128.00||
Kf28IfoN/yx3x+T2PPeFXI80RPYz5st0kQlipoZnK5g5kVkGczLGX7Io57w/1spLQ17Xc7dy/Oq+EbAKj4CnVPYIsPVr0ZZR2J337aO7YoDvUIdnnKLwQdVt4ltZcSoEd3a+YKA7XEU0caGM01oF8qxP8+z3XMYCo+seRgCk/bmf5UEtbF0B3q8zRXfmywdDZWJZMYv+3ZJNcs1TvGO3g1vr65rFnS1Jl53i3qRTB3W8QSR3824Lc4tjS2y1nrP2EzEDbl6yILLensJ2IWE9gL+glDC9tn5oZbwOpQH/pKSMx9Z0Acp1bwBFCekg8APgxR0cVdmn/sY3ReBPmjeVMA==