SHA1 con OpenSSL (SOLUCIONADO)

La libreria OpenSSL es la mas usada para generar el sello digital, independientemente del lenguaje aqui encontraras informacion de como usar la libreria
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
mtymty
Mensajes: 10
Registrado: Mié Feb 16, 2011 12:14 pm

Re: SHA1 con OpenSSL (SOLUCIONADO)

Mensajepor mtymty » Mié Feb 16, 2011 12:21 pm

Saludos
He leido con mucho interés sus soluciones. Desgraciadamente soy una ignorante en el tema OPENSSL... tengo un desarrollo en VFP y me funcionaba de maravillas, el problema fue en el cambio mde SHA1... conseguí una aplicación pero la cadena me la arroja en los 40 caracteres , supongo que debo de hacer algo con la llave pero ahí ya me atoré...

En resumen...

Si el sistema corre en Windows, y bajo OpenSSl e ingreso los comandos en el VFOX (desde Vfox se corren aplicaciones instaladas en windows) y continuo es posible? o estoy diciendo una barbaridad?

SI tengo la cadena original y OpenSSl no es instalable en windows, puedo hacer a manera de "parche" una aplicación en la web para "traducir" los sellos mientras logro hacerlo en Vfox? (Urgen 3 facturas)

Disculpando si lo que escribo es tonto

Se agradecen ayudas

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: SHA1 con OpenSSL (SOLUCIONADO)

Mensajepor Dado » Mié Feb 16, 2011 1:43 pm

mtymty escribió:Saludos
He leido con mucho interés sus soluciones. Desgraciadamente soy una ignorante en el tema OPENSSL... tengo un desarrollo en VFP y me funcionaba de maravillas, el problema fue en el cambio mde SHA1... conseguí una aplicación pero la cadena me la arroja en los 40 caracteres , supongo que debo de hacer algo con la llave pero ahí ya me atoré...

En resumen...

Si el sistema corre en Windows, y bajo OpenSSl e ingreso los comandos en el VFOX (desde Vfox se corren aplicaciones instaladas en windows) y continuo es posible? o estoy diciendo una barbaridad?

SI tengo la cadena original y OpenSSl no es instalable en windows, puedo hacer a manera de "parche" una aplicación en la web para "traducir" los sellos mientras logro hacerlo en Vfox? (Urgen 3 facturas)

Disculpando si lo que escribo es tonto

Se agradecen ayudas


Partiendo de que comentas "....tengo un desarrollo en VFP...." la pregunta es, tienes el codigo fuente? porque si es asi cambiar de MD5 a SHA1 es tan simple como cambiar tres letras, sin importar la libreria que uses, todas he visto que es muy simple el cambio.

Puedes publicar aqui las 5 o 10 lineas de tu codigo fuente donde calculas el sello, de esa forma podemos ver en donde tienes que cambiarle.....
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

mtymty
Mensajes: 10
Registrado: Mié Feb 16, 2011 12:14 pm

Re: SHA1 con OpenSSL (SOLUCIONADO)

Mensajepor mtymty » Jue Feb 17, 2011 3:31 pm

Sí, tego el código fuente. Lo tomé de Internet de Halcón Divino por cierto, y funcionaba de maravillas...el problema es que en la parte que señalo roja ahí no sé cómo usar el sha1... bajé un app de portalfox pero me genera sólo los 40 caracteres, de ahí a hacer el sello con el key y el cer estoy perdida

mMil gracias por tu interés


Procedure SelloDigital

* Se genera el Sello Digital y ademas te da el numero de serie del certificado y el certificado
* Para obtener el sello digital tienes que instalar el componente ActiveX ChilKat



* Objetos
loPkey = CreateObject('Chilkat.PrivateKey')
If swError
MessageBox("No se puede crear el objeto Chilkat.PrivateKey",16+0,"Error")
return
endif
loRsa = CreateObject('Chilkat.Rsa')
If swError
MessageBox("No se puede crear el objeto Chilkat.Rsa",16+0,"Error")
return
endif
loCert = CreateObject('Chilkat.Cert')
If swError
MessageBox("No se puede crear el objeto Chilkat.Cert",16+0,"Error")
return
endif

* Load the Certificado
loCert.LoadFromFile(ArchivoCertificado)
If swError
MessageBox("No se encontro el archivo de certificado " + ArchivoCertificado ,16+0,"Error")
return
endif

* Load the private key from an RSA PEM file: * loPkey.LoadPemFile("myKey.pem")
loPkey.LoadPkcs8EncryptedFile(ArchivoKey, PasswordKey)
If swError
MessageBox("No se encontro el archivo de Llave (*.key) " + ArchivoKey ,16+0,"Error")
return
endif

* Get the private key in XML format:
lcPkeyXml = loPkey.GetXml()
If swError
MessageBox("No se obtener la llave privada " ,16+0,"Error")
return
endif


* Error
IF (lnSuccess <> 1) THEN
MessageBox("No se pudo desbloquer el componente ChilKat" ,16+0,"Error")
return
ENDIF

* Import the private key into the RSA component:
lnSuccess = loRsa.ImportPrivateKey(lcPkeyXml)
If swError
MessageBox("No se pudo importar la llave dentro del componente RSA " ,16+0,"Error")
Return
ENDIF

* OpenSSL uses BigEndian byte ordering:
loRsa.LittleEndian = 0
lorsa.Charset = "utf-8"
loRsa.EncodingMode = "base64"

strSello = loRsa.SignStringENC(strOriginal,"md5")
If swError
MessageBox("No se pudo obtenre el sello digital " ,16+0,"Error")
Return
ENDIF

N = loCert.SerialNumber
noCertificado = SubStr(N,02,1)+SubStr(N,04,1)+SubStr(N,06,1)+SubStr(N,08,1)+SubStr(N,10,1)+;
SubStr(N,12,1)+SubStr(N,14,1)+SubStr(N,16,1)+SubStr(N,18,1)+SubStr(N,20,1)+;
SubStr(N,22,1)+SubStr(N,24,1)+SubStr(N,26,1)+SubStr(N,28,1)+SubStr(N,30,1)+;
SubStr(N,32,1)+SubStr(N,34,1)+SubStr(N,36,1)+SubStr(N,38,1)+SubStr(N,40,1)+;
SubStr(N,42,1)+SubStr(N,44,1)+SubStr(N,46,1)+SubStr(N,48,1)+SubStr(N,50,1)

Certificado = SubStr(loCert.GetEncoded(), 1, Len(loCert.GetEncoded()) - 2)


Return

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: SHA1 con OpenSSL (SOLUCIONADO)

Mensajepor Dado » Jue Feb 17, 2011 3:52 pm

mtymty escribió:strSello = loRsa.SignStringENC(strOriginal,"md5")

Return


Quero suponer que ya intentaste :

strSello = loRsa.SignStringENC(strOriginal,"sha1")

o talvez con un guion

strSello = loRsa.SignStringENC(strOriginal,"sha-1")

Es simple sintaxis......
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

mtymty
Mensajes: 10
Registrado: Mié Feb 16, 2011 12:14 pm

Re: SHA1 con OpenSSL (SOLUCIONADO)

Mensajepor mtymty » Jue Feb 17, 2011 4:21 pm

joooooo


No me digas que no dormí en tres días por eso :oops: :oops: :oops: :oops: :oops:

Deja verifico que me lo valide el Sat...por lo pronto skmacccccccccckkkkkk

mtymty
Mensajes: 10
Registrado: Mié Feb 16, 2011 12:14 pm

Re: SHA1 con OpenSSL (SOLUCIONADO)

Mensajepor mtymty » Jue Feb 17, 2011 4:40 pm

YUJUJUUUUUUUUUUUUUUUUUUUUUUUUUUUUuu

Si alguna vez vienes a Monterrey permíteme invitarte una ida al cabrito


Thanks!

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: SHA1 con OpenSSL (SOLUCIONADO)

Mensajepor Dado » Jue Feb 17, 2011 4:51 pm

mtymty escribió:YUJUJUUUUUUUUUUUUUUUUUUUUUUUUUUUUuu

Si alguna vez vienes a Monterrey permíteme invitarte una ida al cabrito


Thanks!


Seria de lujo.......es bien bonito recibir muestras de apoyo, no es por presumir pero tengo invitaciones para Oaxaca, Michoacan, Veracruz, Guadalajara y ahora Monterrey, que padre! pudiera recorrer media Republica y visitar a los amigos........ :D
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

mtymty
Mensajes: 10
Registrado: Mié Feb 16, 2011 12:14 pm

Re: SHA1 con OpenSSL (SOLUCIONADO)

Mensajepor mtymty » Jue Feb 17, 2011 5:05 pm

Y mira que para que te invite una coda de Monterrey!!!!!! Así que sí....tu presume presume jajajjajajaj Gracias y no es de dientes pajuera XD

aalanisg
Mensajes: 17
Registrado: Dom Ene 30, 2011 5:08 pm

Re: SHA1 con OpenSSL (SOLUCIONADO)

Mensajepor aalanisg » Vie Feb 25, 2011 1:39 pm

que tal, estoy usando el mismo codigo de hector el divino para firmar, y lo hace perfecto sin errores. pero al momento de validar en validacfd me muestra entre otros errores este: Esta usando la FIEL y eso no es correcto. DEBE USAR el Certificado de Sello Digital (CSD).

estoy usando los archivos que me da el sat.

xxx821214xxx.cer
xxx821214xxx_1101261111.key
y el password

* Load the Certificado
loCert.LoadFromFile('xxx821214xxx.cer')

* Load the private key from an RSA PEM file: * loPkey.LoadPemFile("myKey.pem")
loPkey.LoadPkcs8EncryptedFile('xxx821214xxx_1101261111.key', PasswordKey)

no se a que se refiera el error, al momento de timbrado me regresa el mismo error. como lo puedo solucionar.

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: SHA1 con OpenSSL (SOLUCIONADO)

Mensajepor Dado » Vie Feb 25, 2011 3:16 pm

aalanisg escribió:que tal, estoy usando el mismo codigo de hector el divino para firmar, y lo hace perfecto sin errores. pero al momento de validar en validacfd me muestra entre otros errores este: Esta usando la FIEL y eso no es correcto. DEBE USAR el Certificado de Sello Digital (CSD).

estoy usando los archivos que me da el sat.

xxx821214xxx.cer
xxx821214xxx_1101261111.key
y el password

* Load the Certificado
loCert.LoadFromFile('xxx821214xxx.cer')

* Load the private key from an RSA PEM file: * loPkey.LoadPemFile("myKey.pem")
loPkey.LoadPkcs8EncryptedFile('xxx821214xxx_1101261111.key', PasswordKey)

no se a que se refiera el error, al momento de timbrado me regresa el mismo error. como lo puedo solucionar.


Debes solicitar OTRO certificado llamado CSD (Certificado de Sello digital) en apariencia es igual que la FIEL, son dos archivos uno CER y otro KEY pero se tramita por separado usando un programa llamado SOLCEDI
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!


Volver a “OpenSSL en general (cualquier lenguaje)”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados