Página 2 de 3

Re: Creación de CFDI 3.2

Publicado: Lun Sep 24, 2012 6:55 am
por inspirionweb
Disculpa tengo problemas al pasar el parametro de la contraseña en el cosigo me dice que son muchos parametros.
Me puedes decir que estoy haciendo equivocado.


Public Shared Function ObtenerSelloDigital(ByVal cadenaOriginal As String, ByVal rutaLlavePrivada As String, ByVal password As String) As String
Dim passwordSeguro As New SecureString()
passwordSeguro.Clear()
For Each c As Char In password.ToCharArray()
passwordSeguro.AppendChar(c)
Next
Dim llavePrivadaBytes As Byte() = System.IO.File.ReadAllBytes(rutaLlavePrivada)
Dim rsa As RSACryptoServiceProvider = JavaScience.opensslkey.DecodeEncryptedPrivateKeyInfo(llavePrivadaBytes, passwordSeguro) aqui es donde me dice que son muchos parametros
Dim hasher As New SHA1CryptoServiceProvider()
Dim bytesFirmados As Byte() = rsa.SignData(System.Text.Encoding.UTF8.GetBytes(cadenaOriginal), hasher)
Dim selloDigital As String = Convert.ToBase64String(bytesFirmados)
Return selloDigital

End Function

Re: Creación de CFDI 3.2

Publicado: Mar Sep 25, 2012 8:43 am
por jasistemas
Que estas usando?, un .pem?? x que ese programa yo lo uso y le envio el .key directamente y NO DEBE PASAR por esa funcion.

RSACryptoServiceProvider rsa = DecodeEncryptedPrivateKeyInfo(pkcs8encprivatekey, passwordArchivoKeyTmp ); // Esta rutina no se usa


Debe pasar por aqui (con .key):
// PASO 5.- RUTINA VALIDA PARA ARCHIVOS DER (PKCS8, .key y .cer)
// nos devolvera un objeto tipo RSACryptoServiceProvider
//----------------
// Accede a la rutina donde SOLICITARA EL PASSWORD del .KEY
Debug.Print("------------ PASO X 5 de DecodeDERKey");
// OK esta es la parte que SI SE USA
rsa = DecodeEncryptedPrivateKeyInfo(keyblob,passwordArchivoKeyTmp ); //PKCS #8 encrypted

saludos
Juan Arturo

Re: Creación de CFDI 3.2

Publicado: Mié Oct 10, 2012 9:35 am
por rent84
Hola AlgusDark

Solo para preguntar en donde puedo conseguir la DLL de OpenSSLKey.cs y la foma para implementarlo en mi proyecto, lo estoy haciendo con Visual Basic 6 y aun no puedo sellar el XML.

De antemano garcias.

Re: Creación de CFDI 3.2

Publicado: Jue Oct 11, 2012 10:07 am
por jasistemas
Nativa, buscalo como tal "OpenSSLKey.cs" en San Google, no es dll, es CODIGO FUENTE nativo en C# que puedes integrar en tu proyecto .net.

Si requieres algo mas completo con codigo fuente o como implementarlo (en .net, VB, VFP), busca mi post en el foro "Soluciones Propias y de Terceros", alli estan mis datos de contacto.

http://www.validacfd.com/phpbb3/viewtopic.php?f=14&t=1016&p=12727&hilit=jasistemas%40hotmail.com#p12727
Saludos
Juan Arturo Gomez

Re: Creación de CFDI 3.2

Publicado: Mar Oct 16, 2012 4:30 pm
por alf
La clase opensslkey.cs la agregas a tu proyecto...

Y así la usas:

http://www.validacfd.com/phpbb3/viewtopic.php?f=17&t=2092&p=17847#p17847

Re: Creación de CFDI 3.2

Publicado: Vie Nov 30, 2012 10:00 am
por jreynac
Muchas felicidades AlgusDark, por tu aporte, por cierto como se genera la secuencia del codigo:
1.- Generar el codigo que usas para el boton (hasta ahi no hay problema).
Pero ya de ahi me pierdo como usuar lo siguiente:
Public Shared Function GetCadenaOriginal(ByVal xmlDoc As String, ByVal fileXSLT As String) As String
Public Shared Function ObtenerSelloDigital(cadenaOriginal As String, rutaLlavePrivada As String, password As String) As String
Public Sub AplicarSelloDigital(selloDigitalOriginal As String)

como los mandas llamar y como le pasas los parametros, muchas gracias.

Re: Creación de CFDI 3.2

Publicado: Vie Nov 30, 2012 2:48 pm
por Adriana
Hola, tengo un problema con la generacion de sello 3.2.

Desarrolle el sistema de facturacion en VB6 y facturamos desde el 2010 con la versión 2.2 sin problema, se genera la cadena original y sello sin errores.

Pero estoy empezando a cambiar a versión 3.2, y cuando entro al sitio del SAT para validar el archivo XML me indica que la estructura es correcta pero el sello no valido.
Solo cambie valores en la cadena original y utilize el mismo metodo para generar el sello, que utilizo para version 2.2.

Mi pregunta es: hay algun nuevo parametro a cambiar en la generaion del sello para 3.2?

Aqui envio el resultado que me genera el validador del SAT:

Versión del estándar: 3.2
Codificación
Comprobante expresado en UTF-8
Validación de estructura: Válido
Cadena original del CFDI:
||3.2|2012-11-30T12:32:53|ingreso|PAGO EN UNA SOLA EXHIBICION|60 DIAS FECHA FACT.|57994.20|67273.27|CHEQUE 9444|DISTRITO FEDERAL|DTC810429TA6|DISTRIBUIDORA TEXTIL DEL CENTRO,S. A. DE C. V.|VENUSTIANO CARRANZA|131|PISO 3 3A|CENTRO|MEXICO|CUAUHTEMOC|DISTRITO FEDERAL|MEXICO|06060|GENERAL DE LEY PERSONA MORAL|CDA030519B56|CONFECCIONES DAVANE, S. A. DE C. V.|SAN SALVADOR EL VERDE|22|CENTRO|MEXICO|CUAUHTEMOC|DISTRITO FEDERAL|MEXICO|06080|999.90|MT|CATHERINE ETRO EST. DOM.|58.00|57994.20|IVA|16.00|9279.07|9279.07||
Digestión SHA-1 de cadena original expresada en hexadecimal
96de21d77d4a0aa31c1f9c9ad612de828a484e07
Certificado usado : 00001000000102442892
Certificado reportado : 00001000000102442892
El sello del CFDI no es válido

Re: Creación de CFDI 3.2

Publicado: Sab Dic 01, 2012 7:37 pm
por Dado
Compara el SHA1 que tu calculas vs. los SHA1 que te muestran los validadores, si son iguales entonces el problema no esta en la cadena, si no son iguales entonces las cadenas no son iguales y tienes que corregirla

Re: Creación de CFDI 3.2

Publicado: Mar Dic 04, 2012 8:05 am
por jasistemas
El XML de CFD y el CFDI no son exactamente iguales, comparalos, deben tener el prefijo "cfdi" en cada nodo.

Por otra parte, si ya estas facturando o tus clientes que facturen en CFD 2.2 no tienen ninguna ventaja en que se migren a CFDI (aunque te lo quieran vender)

Re: Creación de CFDI 3.2

Publicado: Jue Ene 31, 2013 3:41 pm
por omh
Hola a todos compañeros

nada mas para comentar 2 cosas acerca de esta libreria, a ver si me pueden ayudar.

1.- en la linea 294 hay un comentario en el metodo DecodeEncryptedPrivateKeyInfo que dice asi "// probably a bad pswd entered" :shock: el cual no indica que hay algo raro o que no se implemento correctamente, me ha pasado alrededor de 5 veces aprox que la momento de ejecutar dicho metodo llega hasta esa linea y regresa nada, tal como si se hubieran equivocado en introducir la clave pero no es asi por que ya he corroborado en el validacfd de Dado y el .key y el password estan correctos, alguien a tenido este problema? lo pudo solucionar?

2.-usando esta misma librearia tiene un comportamiento raro en ambiente web (asp.net) me ha pasado que DecodeEncryptedPrivateKey regresa nada pero moviendo ala configuracion de iis se corrije. tambien me ha pasado que que con ciertos .keys tambien regresa nada pero solo pasa en el ambiente web por que en desktop no tengo ese problema con dicho .key.

si alguien ha tenido estos detalles por favor comente.

Saludos.


Saludos.