Para validar el sello digital primero hay que generar la cadena original a partir del XML .... con estas instrucciones se genera el archivo de la cadena original en formato UFT-8 ..
string ArchXSLT = @"C:\BORRAME\Validador\cadenaoriginal_2_0.xslt";
string ArchXML = @"C:\BORRAME\Validador\Ejemplos\Ejemplo.xml";
string ArchCadena = @"C:\BORRAME\Validador\CadenaOriginal.txt";
XslCompiledTransform transformador = new XslCompiledTransform();
transformador.Load(ArchXSLT);
transformador.Transform(ArchXML, ArchCadena);
El problema es que cuando se genera el archivo de la cadena original el 1er. caracter de este archivo es invisible-
Por este caracter INVISIBLE me marca que el sello digital es invalido.
Tengo que usar un editor HEXADECIMAL para poder ubicarlo y eliminarlo. de esta manera si puedo validar correctamente el sello digital usando los comandos de OpenSSL.
AYUDA:
¿¿¿ Como quito este caracter invisible del archivo o como evito que se genere el archivo con este caracter ???
Saludos
Halcón Divino.

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.
CARTA PORTE V3.1
ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03
.
Character INVISIBLE en el archivo de la cadena original
-
- Mensajes: 164
- Registrado: Vie Nov 25, 2011 3:12 pm
Character INVISIBLE en el archivo de la cadena original
Saludos
Halcón Divino
Monterrey
Nuevo León
México
Halcón Divino
Monterrey
Nuevo León
México
-
- Mensajes: 164
- Registrado: Vie Nov 25, 2011 3:12 pm
Re: Character INVISIBLE en el archivo de la cadena original
Ya encontre la solución se las comparto....
Al generar el archivo de la cadena original los primeros 3 bytes ((ojo no los primeros 3 characters)) hay que eliminarlos
Para esto leo el archivo en bytes y lo escribo en bytes claro que los primeros 3 byts no los escribo el objetivo es eliminarlos
Con este truco ya me marca OpenSSL Verified OK
El programa que me genera la cadena original quedo de esta manera
#region Generar Cadena Original
string ArchXSLT = @"C:\BORRAME\Validador\cadenaoriginal_3_0.xslt";
string ArchXML = @"C:\BORRAME\Validador\XNA0101167H0_A_0269_Timbradov30.XML";
string ArchCadena = @"C:\BORRAME\Validador\xnacadena.txt";
string ArchCadena2 = @"C:\BORRAME\Validador\xnacadena2.txt";
XslCompiledTransform transformador = new XslCompiledTransform();
transformador.Load(ArchXSLT);
transformador.Transform(ArchXML, ArchCadena);
#endregion
#region se lee el archivo ArchCadena de byt en byte y se carga en un biffer
byte[] buffer;
FileStream fileStream = new FileStream(ArchCadena, FileMode.Open, System.IO.FileAccess.Read);
int length = (int)fileStream.Length; // get file length
buffer = new byte[length]; // create buffer
int count; // actual number of bytes read
int sum = 0; // total number of bytes read
// read until Read method returns 0 (end of the stream has been reached)
while ((count = fileStream.Read(buffer, sum, length - sum)) > 0)
sum += count; // sum is a buffer offset for next reading
#endregion
#region escribe el buffer a un archivo ArchCadena2 a partir del 3er byte
// Open file for reading .
FileStream fs = new System.IO.FileStream(ArchCadena2, System.IO.FileMode.Create, System.IO.FileAccess.Write);
// Writes a block of bytes to this stream using data from a byte array. .
fs.Write(buffer, 3, buffer.Length - 3);
// close file stream .
fs.Close();
#endregion
Espero les sirba
Saludos
Halcón Divino.
Al generar el archivo de la cadena original los primeros 3 bytes ((ojo no los primeros 3 characters)) hay que eliminarlos
Para esto leo el archivo en bytes y lo escribo en bytes claro que los primeros 3 byts no los escribo el objetivo es eliminarlos
Con este truco ya me marca OpenSSL Verified OK
El programa que me genera la cadena original quedo de esta manera
#region Generar Cadena Original
string ArchXSLT = @"C:\BORRAME\Validador\cadenaoriginal_3_0.xslt";
string ArchXML = @"C:\BORRAME\Validador\XNA0101167H0_A_0269_Timbradov30.XML";
string ArchCadena = @"C:\BORRAME\Validador\xnacadena.txt";
string ArchCadena2 = @"C:\BORRAME\Validador\xnacadena2.txt";
XslCompiledTransform transformador = new XslCompiledTransform();
transformador.Load(ArchXSLT);
transformador.Transform(ArchXML, ArchCadena);
#endregion
#region se lee el archivo ArchCadena de byt en byte y se carga en un biffer
byte[] buffer;
FileStream fileStream = new FileStream(ArchCadena, FileMode.Open, System.IO.FileAccess.Read);
int length = (int)fileStream.Length; // get file length
buffer = new byte[length]; // create buffer
int count; // actual number of bytes read
int sum = 0; // total number of bytes read
// read until Read method returns 0 (end of the stream has been reached)
while ((count = fileStream.Read(buffer, sum, length - sum)) > 0)
sum += count; // sum is a buffer offset for next reading
#endregion
#region escribe el buffer a un archivo ArchCadena2 a partir del 3er byte
// Open file for reading .
FileStream fs = new System.IO.FileStream(ArchCadena2, System.IO.FileMode.Create, System.IO.FileAccess.Write);
// Writes a block of bytes to this stream using data from a byte array. .
fs.Write(buffer, 3, buffer.Length - 3);
// close file stream .
fs.Close();
#endregion
Espero les sirba
Saludos
Halcón Divino.
Saludos
Halcón Divino
Monterrey
Nuevo León
México
Halcón Divino
Monterrey
Nuevo León
México
-
- Mensajes: 22
- Registrado: Mié Ago 10, 2011 9:58 am
Re: Character INVISIBLE en el archivo de la cadena original
OJO estoy adivinando pero creo que estos primeros tres bytes son el UTF BOM..
más información el la wikipedia en español http://es.wikipedia.org/wiki/Marca_de_o ... ytes_(BOM)
más información el la wikipedia en español http://es.wikipedia.org/wiki/Marca_de_o ... ytes_(BOM)