Foros del Web » Programación para mayores de 30 ;) » .NET »

Factura electroncia sat mexico

Estas en el tema de Factura electroncia sat mexico en el foro de .NET en Foros del Web. Cita: Iniciado por therealzeta Hola Eso mismo ando buscando yo desde hace par de dias. La verdad es que ya he probado y probado, hasta ...

  #91 (permalink)  
Antiguo 11/08/2010, 18:26
 
Fecha de Ingreso: agosto-2010
Mensajes: 10
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por therealzeta Ver Mensaje
Hola

Eso mismo ando buscando yo desde hace par de dias. La verdad es que ya he probado y probado, hasta cambie de pc para ver si tenia algo que ver con el openssl. La verdad es que no entiendo como a unos les da bien y a otros no. La explicacion, algo estamso haciendo mal, pero que rayos sera??

Puedes poner el resultado de tu archivo aaa010101aaa_CSD_01.key.pem, pues es de las unicas cosas que me falta probar.

-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDD0ltQNthUNUfzq0t1GpIyapjzOn1W5fGM5G/pQyMluCzP9YlV
AgBjGgzwYp9Z0J9gadg3y2ZrYDwvv8b72goyRnhnv3bkjVRKlu s6LDc00K7Jl23U
YzNGlXn5+i0HxxuWonc2GYKFGsN4rFWKVy3Fnpv8Z2D7dNqsVy T5HapEqwIDAQAB
AoGAeYXvEx2mLMQQDgDsyBSgS9dpafCPXkE/IR+W79yxUDQ24yvOeUnPsbC1/OxH
VfapIa0t+JoqylIjp8JNG3jZv/kXhCIg/aI6rZcfRZdvAgAOMMdRmpY/UOiOMWre
xjWWJ9EQPz+zIZwh5MCos8yCPnJukMtGKKdlUiFYWopI+gECQQ DuaQF/eGegQ1uX
Z3FzR563b67FUvmIlEcX2D2O4kjBpOVUZndHNntWhZsIEcK730 MBy9AEBVyECewK
PJZyzZcBAkEA0kT1B0FnxoLLWQqC7oxDmonvC9J+tGokkmpQWz PHAbW6hMHUlOLo
LYzfu/XaHgDpuSz7qgG0pYjQuYIr05VnqwJBAMNKmMOGKbyJ8JkRT0mT PVwdzBgv
Y+CRNbs+kw5cJiUZohGE7egTpOy2/MubYNzsgcMS5Q6mJaazSfsIrmTULAECQQC/
wpOT4lo5995rfeKamuCsd07CgV18O7DOtpZCFp5POOS5Xev5PF Zx9B+20yfwZPTC
I/v/tz6AGJ4CEGzXsVGxAkEAtonciHAJQfAd+R6JpyyAtYxH0U38Mn 83q6nK7d7a
AhSMRTX70s61F2owSDkg/aWR3jmI5CbhUcYPdsbMpH830A==
-----END RSA PRIVATE KEY-----
Hola therealzeta

Pues parece que obtenemos el mismo .key.pem. Este es lo que obtengo:

-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDD0ltQNthUNUfzq0t1GpIyapjzOn1W5fGM5G/pQyMluCzP9YlV
AgBjGgzwYp9Z0J9gadg3y2ZrYDwvv8b72goyRnhnv3bkjVRKlu s6LDc00K7Jl23U
YzNGlXn5+i0HxxuWonc2GYKFGsN4rFWKVy3Fnpv8Z2D7dNqsVy T5HapEqwIDAQAB
AoGAeYXvEx2mLMQQDgDsyBSgS9dpafCPXkE/IR+W79yxUDQ24yvOeUnPsbC1/OxH
VfapIa0t+JoqylIjp8JNG3jZv/kXhCIg/aI6rZcfRZdvAgAOMMdRmpY/UOiOMWre
xjWWJ9EQPz+zIZwh5MCos8yCPnJukMtGKKdlUiFYWopI+gECQQ DuaQF/eGegQ1uX
Z3FzR563b67FUvmIlEcX2D2O4kjBpOVUZndHNntWhZsIEcK730 MBy9AEBVyECewK
PJZyzZcBAkEA0kT1B0FnxoLLWQqC7oxDmonvC9J+tGokkmpQWz PHAbW6hMHUlOLo
LYzfu/XaHgDpuSz7qgG0pYjQuYIr05VnqwJBAMNKmMOGKbyJ8JkRT0mT PVwdzBgv
Y+CRNbs+kw5cJiUZohGE7egTpOy2/MubYNzsgcMS5Q6mJaazSfsIrmTULAECQQC/
wpOT4lo5995rfeKamuCsd07CgV18O7DOtpZCFp5POOS5Xev5PF Zx9B+20yfwZPTC
I/v/tz6AGJ4CEGzXsVGxAkEAtonciHAJQfAd+R6JpyyAtYxH0U38Mn 83q6nK7d7a
AhSMRTX70s61F2owSDkg/aWR3jmI5CbhUcYPdsbMpH830A==
-----END RSA PRIVATE KEY-----

Puedes postear qué sello obtienes para ver si tambien nos dá igual?

Hay alguien por ahí que sí le esté resultado el sello, que nos pueda mandar el contenido de aaa010101aaa_CSD_01.key.pem para comparar ???
creo que sería muy útil para los que aún andamos cavando.


Saludos y gracias...
  #92 (permalink)  
Antiguo 12/08/2010, 10:47
 
Fecha de Ingreso: octubre-2009
Mensajes: 46
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por Signals Ver Mensaje
Hola therealzeta

Pues parece que obtenemos el mismo .key.pem. Este es lo que obtengo:

-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDD0ltQNthUNUfzq0t1GpIyapjzOn1W5fGM5G/pQyMluCzP9YlV
AgBjGgzwYp9Z0J9gadg3y2ZrYDwvv8b72goyRnhnv3bkjVRKlu s6LDc00K7Jl23U
YzNGlXn5+i0HxxuWonc2GYKFGsN4rFWKVy3Fnpv8Z2D7dNqsVy T5HapEqwIDAQAB
AoGAeYXvEx2mLMQQDgDsyBSgS9dpafCPXkE/IR+W79yxUDQ24yvOeUnPsbC1/OxH
VfapIa0t+JoqylIjp8JNG3jZv/kXhCIg/aI6rZcfRZdvAgAOMMdRmpY/UOiOMWre
xjWWJ9EQPz+zIZwh5MCos8yCPnJukMtGKKdlUiFYWopI+gECQQ DuaQF/eGegQ1uX
Z3FzR563b67FUvmIlEcX2D2O4kjBpOVUZndHNntWhZsIEcK730 MBy9AEBVyECewK
PJZyzZcBAkEA0kT1B0FnxoLLWQqC7oxDmonvC9J+tGokkmpQWz PHAbW6hMHUlOLo
LYzfu/XaHgDpuSz7qgG0pYjQuYIr05VnqwJBAMNKmMOGKbyJ8JkRT0mT PVwdzBgv
Y+CRNbs+kw5cJiUZohGE7egTpOy2/MubYNzsgcMS5Q6mJaazSfsIrmTULAECQQC/
wpOT4lo5995rfeKamuCsd07CgV18O7DOtpZCFp5POOS5Xev5PF Zx9B+20yfwZPTC
I/v/tz6AGJ4CEGzXsVGxAkEAtonciHAJQfAd+R6JpyyAtYxH0U38Mn 83q6nK7d7a
AhSMRTX70s61F2owSDkg/aWR3jmI5CbhUcYPdsbMpH830A==
-----END RSA PRIVATE KEY-----

Puedes postear qué sello obtienes para ver si tambien nos dá igual?

Hay alguien por ahí que sí le esté resultado el sello, que nos pueda mandar el contenido de aaa010101aaa_CSD_01.key.pem para comparar ???
creo que sería muy útil para los que aún andamos cavando.


Saludos y gracias...
Mira, para la siguiente cadena obtengo los siguientes sellos.

||2.0|A|12|2010-06-16T12:03:07|1|2009|ingreso|Una sola exhibición|17000|0|19720|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Nuevo Léon|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|2|pieza|PC- GENERICA|5000|10000|1|KGS|PC- AVANZADA|7000|7000|IVA|16.00|2720|2720||

u78F8ggFsKqZbgL7dtR1J25tkCMQqqPybpU84KvxXYw98UkSiZ SxQL6BekYN6t9U
utK/fIUPoWajpgedMzpypEAdHfSrX/4N0zkTgjuhSjEb8pJC5F5H1T5aPsWOl5tp
rYQ1y/EWwRYXZxoE9Y1oQqJ3nVx09D6FL0+cmLEhprM=


s3M7mxj1QE98rfaVZ7f4p/n22WeCSpZVZ1iAJ82DjOSf868toPPn7/5D4t5ArRl8
fJBWbmIDxylrIubBvtp7UHV/5pzAtC1ASvM3Ex1+H3s58IGhjA9/S8Po34rECPq1
aKBZnWyuvuAqJiv7v4XQb5xJp66r476TuvZf2p4XXVw=

y por que dos? pues he hecho todo tipo de combinaciones o basicamenet la unica que es posible hacer. En al primera instruccion asumo que es cadenaoriginal lo que se le pasa, segun han explicado la instruccion dgst ya hace la digestion. Y al otra es si en vez de usar al cadena original, utilizo la digestion. Ya no veo que otra cosa puede ser. La digestion la obtengo bien por tanto tengo la cadena en utf-8. A ver si es que tenemos mal el archivo .key.pem pues la generacion del sello esta bien clara.

Shell("C:\OpenSSL\bin\openssl dgst -md5 -sign C:\aaa010101aaa_CSD_01.key.pem -out C:\sellado.txt C:\cadenaoriginal.txt")
System.Threading.Thread.Sleep(500)
Shell("C:\OpenSSL\bin\openssl enc -base64 -in C:\sellado.txt -out C:\sellado64.txt")



------------------------------
||A|1|2005-09-02T16:30:00|1|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|52.5||


JPDkb2IBNrdkPQ+mW00yazFvhknhlaamhX6IHqpeHycIdba3w8 GY2k6ZgVLl5EXK
aNSW+5KoasF62AInfh/hY7me0dsmqUEXkJRUJq/vxenE+qtOtON8zXbYkPAxiUDa
YSCUSCBin/M0nfTtQV4H5gflCje0qECOXHO/Rtnn/Ig=
  #93 (permalink)  
Antiguo 12/08/2010, 14:57
 
Fecha de Ingreso: septiembre-2007
Mensajes: 4
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

He estado llamando al SAT para soporte sobre esto de la facturación electrónica y lo que les puede estar sucediendo amigos, es que los certificados de prueba del SAT caducaron el 31 de julio.... parece que por eso les marca los sellos no válidos..

Sin embargo, yo estoy usando el certificado de la empresa para la que estoy trabajando y también tengo broncas con el sello..

Habrá alguien que ya haya podido generar CFD´s válidos con PHP y que se compadezca de los que aún no lo logramos???
  #94 (permalink)  
Antiguo 12/08/2010, 18:29
 
Fecha de Ingreso: agosto-2010
Mensajes: 10
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por Adiposín Ver Mensaje
He estado llamando al SAT para soporte sobre esto de la facturación electrónica y lo que les puede estar sucediendo amigos, es que los certificados de prueba del SAT caducaron el 31 de julio.... parece que por eso les marca los sellos no válidos..

Sin embargo, yo estoy usando el certificado de la empresa para la que estoy trabajando y también tengo broncas con el sello..

Habrá alguien que ya haya podido generar CFD´s válidos con PHP y que se compadezca de los que aún no lo logramos???
Hola

Bajé hoy del sitio del SAT el conjunto de certificados de muestra y en ellos (o cuando menos en el primero) que vence el próximo 21 de agosto. Osea, que hay que meterle candela a este asunto ...
  #95 (permalink)  
Antiguo 13/08/2010, 07:18
 
Fecha de Ingreso: septiembre-2007
Mensajes: 4
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Amigos, el día de ayer por fin GRACIAS A DIOS!! tuve éxito con el sello digital!!!!

En mi caso, estaba usando estos comandos para generar el sello:

shell_exec('"C:\Archivos de programa\GnuWin32\bin\openssl.exe" dgst -out C:\wamp\www\facturacion\Firma.binario -sign C:\wamp\www\facturacion\cadc810918a67_1008101753s. key.pem C:\wamp\www\facturacion\md5.txt');

shell_exec('"C:\Archivos de programa\GnuWin32\bin\openssl.exe" enc -in C:\wamp\www\facturacion\Firma.binario -a -A -out C:\wamp\www\facturacion\sello.txt');

Pero luego apliqué estos comandos:

shell_exec('"C:\Archivos de programa\GnuWin32\bin\openssl.exe" dgst -md5 -sign C:\wamp\www\facturacion\cadc810918a67_1008101753s. key.pem -out C:\wamp\www\facturacion\sello_paso1.txt c:\wamp\www\facturacion\cadena_orig.txt')

shell_exec('"C:\Archivos de programa\GnuWin32\bin\openssl.exe" enc -base64 -in C:\wamp\www\facturacion\sello_paso1.txt -out c:\wamp\www\facturacion\sello.txt')

y wow!, el sello funcionó!!!

(cadena_orig.txt es la cadena original con formato utf8)

Y para los que desean meterle también el certificado (que es opcional) al CFD, pueden hacerlo con esto:

openssl enc -base64 -in aaa010101aaa_CSD_06.cer -out certificado.txt
  #96 (permalink)  
Antiguo 13/08/2010, 09:44
 
Fecha de Ingreso: octubre-2009
Mensajes: 46
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por Adiposín Ver Mensaje
Amigos, el día de ayer por fin GRACIAS A DIOS!! tuve éxito con el sello digital!!!!

En mi caso, estaba usando estos comandos para generar el sello:

shell_exec('"C:\Archivos de programa\GnuWin32\bin\openssl.exe" dgst -out C:\wamp\www\facturacion\Firma.binario -sign C:\wamp\www\facturacion\cadc810918a67_1008101753s. key.pem C:\wamp\www\facturacion\md5.txt');

shell_exec('"C:\Archivos de programa\GnuWin32\bin\openssl.exe" enc -in C:\wamp\www\facturacion\Firma.binario -a -A -out C:\wamp\www\facturacion\sello.txt');

Pero luego apliqué estos comandos:

shell_exec('"C:\Archivos de programa\GnuWin32\bin\openssl.exe" dgst -md5 -sign C:\wamp\www\facturacion\cadc810918a67_1008101753s. key.pem -out C:\wamp\www\facturacion\sello_paso1.txt c:\wamp\www\facturacion\cadena_orig.txt')

shell_exec('"C:\Archivos de programa\GnuWin32\bin\openssl.exe" enc -base64 -in C:\wamp\www\facturacion\sello_paso1.txt -out c:\wamp\www\facturacion\sello.txt')

y wow!, el sello funcionó!!!

(cadena_orig.txt es la cadena original con formato utf8)

Y para los que desean meterle también el certificado (que es opcional) al CFD, pueden hacerlo con esto:

openssl enc -base64 -in aaa010101aaa_CSD_06.cer -out certificado.txt
Yo no creo que sea la caducidad de los sellos el problema, nuestro problema esta antes de validar el sello. Al aplicarle el algoritmo de encripcion a la llave, esta tiene que devolver el mismo valor a todos. Podrias probar tus comandos con el sello de prueba 1 y poner el resultado del .key.pem. Yo utilizo el comando exactamenet como tu y quisera depurar que hasta el punto de la generacion del sello, obtengo todo bien.

Suerte, al menso eres otro que ya resolvio.
  #97 (permalink)  
Antiguo 14/08/2010, 10:39
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola que tal??? estoy realizando una aplicación para realizar las facturas electronica, mi duda es cual archivo se debe encriptar el resultado del md5? con el archivo key o con el archivo cer???
  #98 (permalink)  
Antiguo 14/08/2010, 10:40
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Mas detalles: estoy utilizando c# y la verdad no se cual archivo se debe de utilizar en el rsa
  #99 (permalink)  
Antiguo 16/08/2010, 11:12
 
Fecha de Ingreso: agosto-2010
Mensajes: 10
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por polacp86 Ver Mensaje
Hola que tal??? estoy realizando una aplicación para realizar las facturas electronica, mi duda es cual archivo se debe encriptar el resultado del md5? con el archivo key o con el archivo cer???
Hola

Es la cadena original la que te sirve de base para generar la digestión con el algoritmo MD5. Hasta ese momento no necesitas el .key o el .pem.

Lo que sí, el .txt de tu cadena original debe ser UTF8 sin BOM para que te de una digestión correcta.

Googlea y baja estas dos aplicaciones que te serán muy útiles: Notepad ++ y XML notepad 2007.

Suerte.
  #100 (permalink)  
Antiguo 16/08/2010, 11:33
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por amoralesh Ver Mensaje
Yo obtuve el xml con opensslkey

¿se puede saber como?
  #101 (permalink)  
Antiguo 18/08/2010, 12:14
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Gracias Signals, finalmente pude obtener el sello digital con c# y openssl, ahora el siguiente paso es generar el archivo xml, el problema es que en la empresa que trabajo hay clientes que requieren la addenda para el xml.
Pero cada cliente cliente maneja una addenda diferente y lo que quisiera hacer es tener una plantilla por cliente y dependiendo del cliente copiarla, agregarle los valores a los atributos y guardala en otro archivo xml y la verdad no tengo idea de como hacerlo en c# ni de como hacer las plantillas.

Agradeceria mucho la ayuda de todos.
  #102 (permalink)  
Antiguo 18/08/2010, 16:21
 
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Todos ustedes han sido tan amables con todo lo que les eh aprendido, que no tengo mas que agradecer.

Y que mejor que con un pequeño aporte.

Tengo una forma de saber los datos del .Cer y aqui se las mando, aunque en relación al número de certificado solo me falta quitar de cada grupo de dos caracteres el de la izquierda.

ok. aqui los pasos en VB.Net 2005

Primeramente necesitamos una clase, la cual llamaremos CerInfo

Este es el codigo.

Imports System
Imports System.Security.Cryptography
Imports System.Security.Permissions
Imports System.IO
Imports System.Security.Cryptography.X509Certificates
Imports Microsoft.VisualBasic




Public Class CertInfo



'Reads a file.
Friend Shared Function ReadFile(ByVal fileName As String) As Byte()
Dim f As New FileStream(fileName, FileMode.Open, FileAccess.Read)
Dim size As Integer = Fix(f.Length)
Dim data(size) As Byte
size = f.Read(data, 0, size)
f.Close()

Return data

End Function

<SecurityPermission(SecurityAction.LinkDemand, Unrestricted:=True)> _
Shared Sub Main2(ByVal args() As String)
'Test for correct number of arguments.
If args.Length < 1 Then
Console.WriteLine("Usage: CertInfo <filename>")
Return
End If
Try
Dim x509 As New X509Certificate2()

'Create X509Certificate2 object from .cer file.
Dim rawData As Byte() = ReadFile(args(0))

x509.Import(rawData)

'Print to console information contained in the certificate.
Console.WriteLine("{0}Subject: {1}{0}", Environment.NewLine, x509.Subject)
Sujeto = x509.Subject
Console.WriteLine("{0}Issuer: {1}{0}", Environment.NewLine, x509.Issuer)
Issuer = x509.Issuer

Console.WriteLine("{0}Version: {1}{0}", Environment.NewLine, x509.Version)
Version = x509.Version
Console.WriteLine("{0}Valid Date: {1}{0}", Environment.NewLine, x509.NotBefore)
NotBefore = x509.NotBefore
Console.WriteLine("{0}Expiry Date: {1}{0}", Environment.NewLine, x509.NotAfter)
NotAfter = x509.NotAfter

Console.WriteLine("{0}Thumbprint: {1}{0}", Environment.NewLine, x509.Thumbprint)
Thumbprint = x509.Thumbprint
Console.WriteLine("{0}Serial Number: {1}{0}", Environment.NewLine, x509.SerialNumber)
SerialNumber = x509.SerialNumber
Console.WriteLine("{0}Friendly Name: {1}{0}", Environment.NewLine, x509.PublicKey.Oid.FriendlyName)
FriendlyName = x509.FriendlyName
Console.WriteLine("{0}Public Key Format: {1}{0}", Environment.NewLine, x509.PublicKey.EncodedKeyValue.Format(True))
EncodedKeyValue = x509.PublicKey.EncodedKeyValue.Format(True)

Console.WriteLine("{0}Raw Data Length: {1}{0}", Environment.NewLine, x509.RawData.Length)
Console.WriteLine("{0}Certificate to string: {1}{0}", Environment.NewLine, x509.ToString(True))
Certificate = x509.ToString(True)

Console.WriteLine("{0}Certificate to XML String: {1}{0}", Environment.NewLine, x509.PublicKey.Key.ToXmlString(False))

'Add the certificate to a X509Store.
Dim store As New X509Store()
store.Open(OpenFlags.MaxAllowed)
store.Add(x509)
store.Close()

Catch dnfExcept As DirectoryNotFoundException
Console.WriteLine("Error: The directory specified could not be found.")
Catch ioExpcept As IOException
Console.WriteLine("Error: A file in the directory could not be accessed.")
Catch nrExcept As NullReferenceException
Console.WriteLine("File must be a .cer file. Program does not have access to that type of file.")
End Try

End Sub


End Class


Perdon pero no sé como poner todo esto en un cuadro de dialogo.

Segundo

Necesitamos algunas variables publicas y las podemos declarar un un modulo al que llamaremos Certificados.vb

Module Certificados
Public Sujeto As String
Public Issuer As String
Public Version As Integer
Public NotBefore As Date
Public NotAfter As Date
Public Thumbprint As String
Public SerialNumber As String
Public FriendlyName As String
Public EncodedKeyValue As String
Public Certificate As String

End Module


Tercero

Necesiamos un control OpenFileDialog1

Cuarto

En nuestra forma debemos tener los siguientes controles de texto

Me.PathKey.Text
Me.Issuer1.Text
Me.Version1.Text
Me.NotBefore1.Text
Me.NotAfter1.Text
Me.Thumbprint1.Text
Me.FriendlyName1.Text
Me.EncodedKeyValue1.Text
Me.Certificate1.Text
Me.NumeroDeCertificado.Text


Quinto


Necesitamos un Botton y en el evento clik, pegaremos este codigo

With OpenFileDialog1

.CheckFileExists = True
.ShowReadOnly = False

.Filter = "All Files|*.cer"
.FilterIndex = 2
If .ShowDialog = System.Windows.Forms.DialogResult.OK Then
Me.PathCer.Text = .FileName


Dim MiArray() As String = {Me.PathCer.Text.Trim}
CertInfo.Main2(MiArray)
Me.PathKey.Text = Sujeto
Me.Issuer1.Text = Issuer
Me.Version1.Text = CStr(Version)
Me.NotBefore1.Text = CStr(NotBefore)
Me.NotAfter1.Text = CStr(NotAfter)
Me.Thumbprint1.Text = Thumbprint
Me.FriendlyName1.Text = FriendlyName
Me.EncodedKeyValue1.Text = EncodedKeyValue
Me.Certificate1.Text = Certificate
Me.NumeroDeCertificado.Text = SerialNumber




End With


Y listo
  #103 (permalink)  
Antiguo 19/08/2010, 10:49
 
Fecha de Ingreso: agosto-2007
Mensajes: 25
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

de igual manera les agradezco a todos por todo el codigo descrito aqui y que hasta el momento ahh sido una super ayuda...!!!

bueno no ehh visto en las 4 paginas

como generar automaticamente la cadena original en base al XML y XSLT que da el SAT que se puede descargar[URL="http://www.sat.gob.mx/sitio_internet/cfd/2/cadenaoriginal_2_0/cadenaoriginal_2_0.xslt"]aqui[/URL]

y bueno aqui esta el codigo

Cita:
private string Cadena(string file_xml)
{
var nTempFile = "ARCHIVO PARA GENERAR LA CADENA .TXT";
var xslt = new XslCompiledTransform();
xslt.Load("RUTA DONDE ESTA GUARDADO EL XSLT");

using (var f = new FileStream(nTempFile, FileMode.OpenOrCreate, FileAccess.Write))
{
xslt.Transform(new XPathDocument(file_xml), null, f);
}
var s = new StreamReader(nTempFile);
return s.ReadToEnd();
}
esta funcion te regresa la cadena con solo mandar el parametro donde se encuentra tu xml

espero les sea de ayuda a algunos y asi no batallar con tratar de leer el XML...

estoy realizando algunas pruebas para integrar OpenSSL a mi proyecto espero pronto tener buenos resultados..

saludos..

Última edición por kornneo; 19/08/2010 a las 10:50 Razón: edicion de un link
  #104 (permalink)  
Antiguo 19/08/2010, 11:01
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola Kornneo:

Podrias poner un ejemplo mas claro del xml, es que la verdad no le entiendo muy bien porque apenas estoy empezando a conocer xml y la verdad estoy un poco desesperada porque necesito manejarlo para generar los comprobantes digitales
  #105 (permalink)  
Antiguo 19/08/2010, 13:29
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 15 años
Puntos: 1
De acuerdo Respuesta: Factura electroncia sat mexico

Que onda a todos expertos ...

Hemos logrado crear el sello digital con VB.Net y Openssl version 1.0 porque la anterior es una porqueria, a continuación mencionamos los pasos que seguimos.

1) Creacion de cadena original: En este punto tengan especial cuidado al poner tipo de "comprobante" y "unidad" en su BD y en su XML, estas deban ser tal cual como las menciona el SAT ("ingreso", "Servicio"), es muy importante que su cadena original sea exactamente igual a la que muestra el validador del SAT (obviamente esta cadena se muestra cuando el XML es correcto). Ojo, chequen que su cadena original no contenga espacios en blanco, retornos de carro (enter) y que no contenga el caracter BOM (marca que se incerta al crear el archivo en UTF-8, ver wikipedia).

2) Generar el archivo PEM, la digestion del archivo PEM para sacar el sello y despues el sello lo convierten a base64 tal como lo indica el usuario "thebman" ella comenzó el posth y su codigo Openssl es el correcto.

3) Copien el sello a su BD, generen su XML y validenlo.


Eso es todo, suerte y muchas gracias a todos por sus aportaciones.
  #106 (permalink)  
Antiguo 19/08/2010, 13:59
 
Fecha de Ingreso: agosto-2007
Mensajes: 25
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por polacp86 Ver Mensaje
Hola Kornneo:

Podrias poner un ejemplo mas claro del xml, es que la verdad no le entiendo muy bien porque apenas estoy empezando a conocer xml y la verdad estoy un poco desesperada porque necesito manejarlo para generar los comprobantes digitales
hola

tendrias que utilizar la clase XmlTextWriter

te pongo un ejemplo sencillo de como utilizarla en C#

Cita:

XlmCFD = new XmlTextWriter("cfd.xml", Encoding.GetEncoding("UTF-8"));
XlmCFD.WriteStartDocument();

XlmCFD.WriteStartElement("Comprobante");

AddAtribute("xmlns", "http://www.sat.gob.mx/cfd/2");
AddAtribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
AddAtribute("xsi:schemaLocation",
"http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd");
AddAtribute("version", "2.0");
//etc...

XlmCFD.WriteStartElement("Emisor");

AddAtribute("rfc", tEmisor.Rows[0]["rfc"].ToString().Replace("-", "").Replace(" ", ""));
AddAtribute("nombre", CadenaValidaXml(tEmisor.Rows[0]["emp"].ToString()));

XlmCFD.WriteEndElement();

XlmCFD.WriteEndElement();

XlmCFD.WriteEndDocument();
XlmCFD.Flush();
XlmCFD.Close();
Ahi tengo una función "CadenaValidaXml" que lo que hace es recorrer el string y quitar espacios de mas en blanco y sobre todo el caracter pipe"|" ya que no se permite poner en la cadena original ("Esto sobre todo en los campos que el usuario tiene acceso")

con esto crearas el XML

y con el xml generado, crearas la cadena original como describí en mi anterior post..

bueno cualquier duda pues estamos para ayudarte.. :D

un saludo y espero si haya quedado claro
  #107 (permalink)  
Antiguo 19/08/2010, 17:23
 
Fecha de Ingreso: julio-2010
Mensajes: 5
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Tengo una pregunta, alguien tiene un XML y qué cadena original y qué .key utilizaron para basarme en eso??? claro, un XML que si esté validado jejeje, muchas gracias...
  #108 (permalink)  
Antiguo 19/08/2010, 18:32
 
Fecha de Ingreso: julio-2010
Mensajes: 5
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por alejimram_22 Ver Mensaje
Que onda a todos expertos ...

Hemos logrado crear el sello digital con VB.Net y Openssl version 1.0 porque la anterior es una porqueria, a continuación mencionamos los pasos que seguimos.

1) Creacion de cadena original: En este punto tengan especial cuidado al poner tipo de "comprobante" y "unidad" en su BD y en su XML, estas deban ser tal cual como las menciona el SAT ("ingreso", "Servicio"), es muy importante que su cadena original sea exactamente igual a la que muestra el validador del SAT (obviamente esta cadena se muestra cuando el XML es correcto). Ojo, chequen que su cadena original no contenga espacios en blanco, retornos de carro (enter) y que no contenga el caracter BOM (marca que se incerta al crear el archivo en UTF-8, ver wikipedia).

2) Generar el archivo PEM, la digestion del archivo PEM para sacar el sello y despues el sello lo convierten a base64 tal como lo indica el usuario "thebman" ella comenzó el posth y su codigo Openssl es el correcto.

3) Copien el sello a su BD, generen su XML y validenlo.


Eso es todo, suerte y muchas gracias a todos por sus aportaciones.
Hola, oye, con: "su código Openssl es el correcto", te refieres a:

OpenSSL-Win32\bin\openssl.exe dgst -md5 -sign archivo.key.pem -out c:\sello1.txt c:\CadenaOriginal.txt

Donde cadenaOriginal es tu archivo con la cadena original claro
despuse solo conviertes a base 64 y listo saludos.

OpenSSL-Win32\bin\openssl.exe enc -base64 -in c:\sello1.txt -out c:\sello_b64.txt

?????

muchas gracias
  #109 (permalink)  
Antiguo 20/08/2010, 09:37
 
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola a todos!

Necesito su ayuda.

1. Entre a la página http://www.openssl.org/source/ y baje la carpeta openssl-1.0.0a.tar la descomprimi e intente correr el install me marca el siguiente error:

c:\openss~1.0a\install.com La CPU NTVDM ha encontrado una instrucción no permitida.
CS:102f IP:5ebc OP:63 0a 20 ff e7 Elija "Cerrar" para finalizar la aplicación

y de ahí no paso, no entiendo como es que se instala y se utiliza, veo que todos los comentarios son utilizando el openssl.exe, pueden explicarme paso a paso como instalarla y utilizarla.

2. Probe con el código que exponen en c# utilizando:

sSourceData = "||2.0|ABCD|2|2010-05-03T14:11:36|49|2008|ingreso|UNA SOLA EXHIBICIÓN|2000.00|0.00|2320.00|PAMC660606ER9|CONT RIBUYENTE PRUEBASEIS PATERNOSEIS MATERNOSEIS|PRUEBA SEIS|6|6|PUEBLA CENTRO|PUEBLA|PUEBLA|PUEBLA|MÉXICO|72000|CAUR39031 2S87|ROSA MARÍA CALDERÓN UIRIEGAS|TOPOCHICO|52|JARDINES DEL VALLE|NUEVO LEON|México|95465|1.00|Servicio|01|Asesoria Fiscal y administrativa|2000.00|2000.00|IVA|16.00|320.00|32 0.00||";

tmpSource = Encoding.UTF8.GetBytes(sSourceData);

tmpHash = new MD5CryptoServiceProvider().ComputeHash(tmpSource);

Console.WriteLine(ByteArrayToString(tmpHash));

static string ByteArrayToString(byte[] arrInput)
{
int i;
StringBuilder sOutput = new StringBuilder(arrInput.Length);
for (i=0;i < arrInput.Length -1; i++)
sOutput.Append(arrInput[i].ToString("x2"));

return sOutput.ToString();
}

De acuerdo a la página del sat debería darme:

Resultado de la digestión MD5 como HEX:

03abe73de4ca428816de4af6f6f737a7

pero a mí me da : 553cedcc032de163cb867c53474ca4

¿Podrian decirme qué estoy haciendo mal en c# o cómo utilizar e openssl?

Gracias
  #110 (permalink)  
Antiguo 20/08/2010, 21:17
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por kornneo Ver Mensaje

como generar automaticamente la cadena original en base al XML y XSLT que da el SAT que se puede descargar[URL="http://www.sat.gob.mx/sitio_internet/cfd/2/cadenaoriginal_2_0/cadenaoriginal_2_0.xslt"]aqui[/URL]

y bueno aqui esta el codigo...


esta funcion te regresa la cadena con solo mandar el parametro donde se encuentra tu xml

espero les sea de ayuda a algunos y asi no batallar con tratar de leer el XML...

estoy realizando algunas pruebas para integrar OpenSSL a mi proyecto espero pronto tener buenos resultados..

saludos..



Muy bueno kornneo muy bueno
  #111 (permalink)  
Antiguo 23/08/2010, 12:32
 
Fecha de Ingreso: agosto-2007
Mensajes: 25
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Bueno ehhh seguido haciendo pruebas con la integracion de las DLLS de openssl a mi proyecto pero aun no logro encontrar los metodos correctos,

espero alguien ya los tenga y pues nos pueda echar una mano.. :D

ahora les quiero comentar que no es necesario tener instalado OpenSSL, solo es necesario bajarse los archivos binarios y ponerlos en la raiz de su proyecto, ahi tambien vienen 1 exe y dos DLLS en el directorio bin, es lo mismo pero sin necesidad de instalarlo, asi que cuando creen su instalador lo pueden agregar y se evitan el estar instalndo openssl en todas las maquinas!!!

otro dato que quiero mencionar es que hay una libreria Opensource donde trabajan con las DLLS de OpenSSL llamada managedOpenSSl que no tienen nada que ver con la Chilkat

espero alguien ya las haya trabajado y nos pueda echar una mano en encontrar los metodos necesarios para generar el PEM y sellar el XML

bueno muchas gracias... y cualquier cosa estare por aqui aportandolo...

saludos.. :D
  #112 (permalink)  
Antiguo 24/08/2010, 15:26
 
Fecha de Ingreso: agosto-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola, Buen Dia...
Bueno, soy otro de los que continuan batallando con las locuras del SAT.
Y como a muchos otros, los sellos no son los mismos aun usando las mismas instrucciones que a otros que si les funciona.
Quiza este ejemplos puedan ayudar a alguien:
Cadena Original:
||2.0|26|2010-08-22T12:48:18|2222222|2010|ingreso|Pago en Una Sola Exhibición|250.00|277.50|AAAA010101AAA|Empresa del Certificado 01 S.A. de C.V.|Calle Colorada|1233|Fraccionamiento Agua Caliente|Cd. Juárez|Entre Plan de Ayala y Plan de Guadalupe|Juárez|Chihuahua|México|32300|Adolfo Lopez Mateos|7853|5|Industrial|Cd. Juárez|Juárez|Chihuahua|México|MARA880911NJ0|Un Cliente De Muestra|Jacarandas|55663|22|Las Flores|Cd. Juárez|Juárez|Chihuahua|México|778966|10.00|Pieza| 1234|Producto Demo uno|25.00|250.00|IVA|11.00|27.50|27.50||

Digestion MD5: 5af03349dcd8681388f0f9c63370398e

Sello VALIDADO usando el certificado de prueba numero 1:
1Ea86RWIyXCWqnsmRtx+EQKjBKXXEST3EImV5q5nwK0ELOCI1H ouKbqYGt833GGG6DBSykrGJJe9+hOJi5JWEBY8DhemOFkSGqvH PTTNCHjnRQpkN7tDVMwFotgO/cLVR+x80oTcVjW8vohRL6HYDsDGH8MRSI98o1fIrFvQuDY=

y este es el CFD debidamente validado con el certificado 01 de prueba:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Comprobante xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" version="2.0" folio="26" fecha="2010-08-22T12:48:18" sello="1Ea86RWIyXCWqnsmRtx+EQKjBKXXEST3EImV5q5nwK0ELOCI1HouKbqYGt833GGG6DBSykrGJJe9+hOJi5JWEBY8DhemOFkSGqvHPTTNCHjnRQpkN7tDVMwFotgO/cLVR+x80oTcVjW8vohRL6HYDsDGH8MRSI98o1fIrFvQuDY=" noAprobacion="2222222" anoAprobacion="2010" formaDePago="Pago en Una Sola Exhibición" noCertificado="10001200000000022517" certificado="MIIDhDCCAmygAwIBAgIUMTAwMDEyMDAwMDAwMDAwMjI1MTcwDQYJKoZIhvcNAQEFBQAwgcMxGTAXBgNVBAcTEENpdWRhZCBkZSBNZXhpY28xFTATBgNVBAgTDE1leGljbywgRC5GLjELMAkGA1UEBhMCTVgxGjAYBgNVBAMTEUFDIGRlIFBydWViYXMgU0FUMTYwNAYDVQQLFC1BZG1pbmlzdHJhY2nzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNp824xLjAsBgNVBAoUJVNlcnZpY2lvIGRlIEFkbWluaXN0cmFjafNuIFRyaWJ1dGFyaWEwHhcNMDgwODIxMTUyMjA4WhcNMTAwODIxMTUyMjA4WjCBmDElMCMGA1UELRMcQUFBMDEwMTAxQUFBIC8gQUFBQTAxMDEwMUFBQTEeMBwGA1UEBRMVIC8gQUFBQTAxMDEwMUhERlJYWDAxMRIwEAYDVQQKEwlNYXRyaXogU0ExEzARBgNVBAsTClVuaWRhZCAxMCAxEjAQBgNVBAMTCU1hdHJpeiBTQTESMBAGA1UEKRMJTWF0cml6IFNBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDpmiW1q9gyzCFtMcbaFDJexk2IpLoTdNXg4ToGRZ/f+hIjmj3N6ODWX1ARNFGYocEHf113GpW5Oe/mj6UqhBpiH4JRTNR4Udb8myJTArIlODynVHuIUuyhKo7gbMbDdXjilTAYY2XWQuQ7aDtWwntUmNg4vAC/F3OtRz3+y9wM5QIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEAafyD4gMsOvq7E3raPntmQlJTxpWwNySqskE7fe23HVL9UKFCUlWWx/W8gluxIX9S19y17iWnGbtmbNddHxG5PznPsy/a8PlwNHjDW0FOpia2LsvDrNcdPiJhzL/1OVagkenffFf8bLEetF3ktxZ7ifcH1yxVxpZ7PS/pe8YIOpWRuMmTV4ypGdsw9TW3HVP5IJ/canuQGPTb3LQ8ojihW2dHnC6ojaWW4GHFSZAPhQJ/DaH/UgFjaQke/RBtoAketfROdG+1qYeA1q/is04O4AXNmMByGp7ZnvGNrO9LDBvs3eKN4ZYcQyjxFEbr1X/xUqHCRF1VEkkC5jJQ1ktC4g==" subTotal="250.00" total="277.50" tipoDeComprobante="ingreso"><Emisor rfc="AAAA010101AAA" nombre="Empresa del Certificado 01 S.A. de C.V."><DomicilioFiscal calle="Calle Colorada" noExterior="1233" colonia="Fraccionamiento Agua Caliente" localidad="Cd. Juárez" referencia="Entre Plan de Ayala y Plan de Guadalupe" municipio="Juárez" estado="Chihuahua" pais="México" codigoPostal="32300"/><ExpedidoEn calle="Adolfo Lopez Mateos" noExterior="7853" noInterior="5" colonia="Industrial" localidad="Cd. Juárez" municipio="Juárez" estado="Chihuahua" pais="México"/></Emisor><Receptor rfc="MARA880911NJ0" nombre="Un Cliente De Muestra"><Domicilio calle="Jacarandas" noExterior="55663" noInterior="22" colonia="Las Flores" localidad="Cd. Juárez" municipio="Juárez" estado="Chihuahua" pais="México" codigoPostal="778966"/></Receptor><Conceptos><Concepto cantidad="10.00" unidad="Pieza" noIdentificacion="1234" descripcion="Producto Demo uno" valorUnitario="25.00" importe="250.00"/></Conceptos><Impuestos totalImpuestosTrasladados="27.50"><Traslados><Traslado impuesto="IVA" tasa="11.00" importe="27.50"/></Traslados></Impuestos></Comprobante>
  #113 (permalink)  
Antiguo 24/08/2010, 17:00
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola alguien experto en xml que me pueda ayudar??????

Mi problema es el siguiente:

Ya genero mi factura en un archivo xml, ahora el punto es que en la empresa que trabajo cada cliente utiliza una addenda diferente por lo que decidi crear la addenda en otro archivo y al final del proceso la copio en el archivo de la factura, el problema es que cuando la copio a la etiqueta de la addenda le aparece un atributo xmlns="" y no se como quitarselo o evitar que aparezca.

<?xml version="1.0" encoding="utf-8"?>
<Comprobante>
<Emisor>
<DomicilioFiscal />
</Emisor>
<Receptor>
<Domicilio/>
</Receptor>
<Conceptos>
<Concepto />
</Conceptos>
<Impuestos>
<Traslados>
<Traslado />
</Traslados>
</Impuestos>
<Addenda xmlns="">
...
</Addenda>
</Comprobante>
  #114 (permalink)  
Antiguo 25/08/2010, 09:34
 
Fecha de Ingreso: agosto-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola Cuates, Buen dia...

Quiza alguien pueda aclararme esta duda: El anexo 20 en la seccion de como generar el sello digital dice textualmente : "Con la clave privada correspondiente al certificado digital del emisor del mensaje y del sello digital,
encriptar la digestión del mensaje obtenida en el paso 1 utilizando para ello el algoritmo de encripción RSA."
Todo lo que he visto en este y en otros foros es que se esta utilizado openssl para FIRMAR la digestion de la cadena digital y que no es lo mismo que ENCRIPTAR.

Yo utilice solo codigo del NET Framework para FIRMAR la digestion de la cadena original y el resultado es exactamente IGUAL que lo que arroja openssl con las instrucciones expuestas en el foro, pero al parecer eso NO es el sello digital.
Alguien sabe como ENCRIPTAR la digestion de la cadena original con openssl? porque ya vi que FIRMAR la cadena no genera el sello digital...

Otras inconsitencias que en visto es que el ALFABETO que se proporciona en el anexo 20 para convertir a Base64 NO CONTIENE el caracter '=', y en el sello digital validado y en el certificado de algunas facturas que visto si esta el caracter '='. Alguien tiene alguna explicacion para esto?

Saludos...

Última edición por MarkX; 25/08/2010 a las 09:47 Razón: Agregar contenido
  #115 (permalink)  
Antiguo 25/08/2010, 12:44
 
Fecha de Ingreso: agosto-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola a TODOS
les comento que finalmente logre obtener un sello digital verificado por el validador del SAT con lo siguiente:

Dim objCert As New X509Certificates.X509Certificate2("archivo.p12", "b0123456789")
Dim lRSA As RSACryptoServiceProvider = objCert.PrivateKey
Dim lhasher As New MD5CryptoServiceProvider()
Dim bytesFirmados As Byte() = lRSA.SignData(System.Text.Encoding.UTF8.GetBytes(p CadenaOriginal), lhasher)
Return Convert.ToBase64String(bytesFirmados)

El problema es que no he podido hacerlo 100% NET debido a que no he encontrado la forma de generar el archivo con formato p12 directamente desde .NET sin utilizar el openssl.

Alguien tiene una idea de como combinar los archivos .key y .cer en uno solo con formato p12 (o bien pfx) SIN UTILIZAR openSSL??


Gracias de Antemano y Saludos
  #116 (permalink)  
Antiguo 25/08/2010, 17:59
 
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por MarkX Ver Mensaje
Hola a TODOS
les comento que finalmente logre obtener un sello digital verificado por el validador del SAT con lo siguiente:

Dim objCert As New X509Certificates.X509Certificate2("archivo.p12", "b0123456789")
Dim lRSA As RSACryptoServiceProvider = objCert.PrivateKey
Dim lhasher As New MD5CryptoServiceProvider()
Dim bytesFirmados As Byte() = lRSA.SignData(System.Text.Encoding.UTF8.GetBytes(p CadenaOriginal), lhasher)
Return Convert.ToBase64String(bytesFirmados)

El problema es que no he podido hacerlo 100% NET debido a que no he encontrado la forma de generar el archivo con formato p12 directamente desde .NET sin utilizar el openssl.

Alguien tiene una idea de como combinar los archivos .key y .cer en uno solo con formato p12 (o bien pfx) SIN UTILIZAR openSSL??


Gracias de Antemano y Saludos
Gracias por todas las aportaciones.
Podrias poner un ejemplo de cómo generas "archivo.p12" por favor.

De antemano gracias
  #117 (permalink)  
Antiguo 25/08/2010, 21:03
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola a todos, alguien ya tiene este codigo en C#.... con VB me sale perfecto el sello pero en C# no me da igual ...ese es el codigo que estoy utilizando...

X509Certificate2 _MiCertificado = new X509Certificate2(@"....cert.p12", "12345");
RSACryptoServiceProvider RSA = (RSACryptoServiceProvider)_MiCertificado.PrivateKe y;
MD5 hasher = MD5CryptoServiceProvider.Create();
byte[] bytesFirmados = RSA.SignData(System.Text.Encoding.UTF8.GetBytes(pD ato), hasher);
return Convert.ToBase64String(bytesFirmados);

Gracias.
  #118 (permalink)  
Antiguo 25/08/2010, 21:16
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Ya encontre la solucion...
El problema era que no estaba mandando la cadena original, el codigo funciona perfectamente...
  #119 (permalink)  
Antiguo 26/08/2010, 08:35
 
Fecha de Ingreso: agosto-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola a todos,
Para generar el archivo P12 encontre esto en otros foros:
1. Convertir la llave privada (archivo .key) a Formato PEM
openssl pkcs8 -inform DER -in aaa010101aaa_CSD_10.key -passin pass:a0123456789 -out aaa010101aaa_CSD_10.key.pem

2. Convertir el Certificado Digital (arhcivo .cer) a Formato PEM
openssl x509 -inform DER -in aaa010101aaa_CSD_01.cer -out aaa010101aaa_CSD_01.cer.pem

3. Generar un archivo PCKS12 usando los 2 archivos PEM generados anteriormente
openssl pkcs12 -export -inkey aaa010101aaa_CSD_01.key.pem -in aaa010101aaa_CSD_01.cer.pem -out aaa010101aaa_CSD_01.p12 -passout pass:b0123456789

El archivo p12 tendra la contraseña b0123456789. Pero pueden ponerla igual a la del archivo .key, creo que seria mas practico.

Saludos y Suerte.
  #120 (permalink)  
Antiguo 26/08/2010, 08:38
 
Fecha de Ingreso: agosto-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Si alguien encuentra la manera de Generar un archivo P12 (o PFX o PCSKS#12) utilizando solo codigo del NET Framework (SIN UTILIZAR OPENSSL), compartanlo, seria de mucha ayuda para no tener que instalar o distribuir el OpenSSL.
Saludos

Etiquetas: factura, mexico, sat
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 39 personas




La zona horaria es GMT -6. Ahora son las 12:12.