HOWTO. BorlandC y OpenSSL

HOWTO. BorlandC y OpenSSL

Postby thefull » Thu Feb 23, 2012 8:23 am

-----------------------------------------------------------------------------------------
HOWTO.. COMO CREAR LA LIBRERIA OPENSSL y NO MORIR EN EL INTENTO
-----------------------------------------------------------------------------------------
1) Lo primero es bajarse el OpenSSL, el cogido la última 1.0.0.f, pero supongo que con la g funcionará igual, http://www.slproweb.com/download/Win32O ... 1_0_0g.exe
Ojo , coger el que es sobre 16 Megas.

2) Después tenemos que indicar a Harbour donde está la instalación del openssl;
set HB_WITH_OPENSSL=C:\openssl\include

3)El problema que se presenta es que si ahora intentamos generar la libreria openssl, /harbour/contrib/hbssl, la librería libeay32.lib, que
la genera a partir de la DLL, nos dará error a la hora de linkar.
La solución a este problema, gracias a Daniel Garcia, es hacer lo siguiente;
impdef libeay32.def libeay32.dll
El def que obtenemos, es similar a este;
Code: Select all  Expand view  RUN
LIBRARY     LIBEAY32.DLL

EXPORTS
    ACCESS_DESCRIPTION_free        @1994; ACCESS_DESCRIPTION_free
    ACCESS_DESCRIPTION_it          @2751; ACCESS_DESCRIPTION_it
    ACCESS_DESCRIPTION_new         @1925; ACCESS_DESCRIPTION_new
... ETC....
 


Lo tenemos que convertir a esto, fijate que solo tiene los _ delante
Code: Select all  Expand view  RUN
LIBRARY     LIBEAY32.DLL

EXPORTS
    _ACCESS_DESCRIPTION_free        @1994; ACCESS_DESCRIPTION_free
    _ACCESS_DESCRIPTION_it          @2751; ACCESS_DESCRIPTION_it
    _ACCESS_DESCRIPTION_new         @1925; ACCESS_DESCRIPTION_new
...ETC...
 


4) Una vez que tenemos el .DEF modificado, procederemos a crear la libreria;
implib libeay32.lib libeay32.def

Ahora esta libreria ya la tienes listas para usar sin problemas.
Esta es la única que da problema, parar usar openssl, veréis en el directorio las 4 librerías que necesitas más las dlls.
Solo tienes que coger la que hemos generado y sustituirla por la que genero Harbour.


Saludos
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 731
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: HOWTO. BorlandC y OpenSSL

Postby Carles » Thu Feb 23, 2012 8:42 am

Gracias Rafa !!!
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1137
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: HOWTO. BorlandC y OpenSSL

Postby Antonio Linares » Thu Feb 23, 2012 9:01 am

Rafa,

Muchas gracias! :-)

Puestos a pedir, podrias mostrarnos algún ejemplo sencillo de como lo estás usando ? gracias :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42111
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: HOWTO. BorlandC y OpenSSL

Postby thefull » Thu Feb 23, 2012 9:35 am

Buenas Antonio.
Estamos implementando para portugal la firma electronica, que es un hash sha1 que va asociada a la factura.
Estoy haciendo pruebas sobre ello, no tengo muy claro que hace que y como funciona, estoy mirando la ayuda en openssl para
averiguarlo, pero no es muy complicado de entender

Este ejemplo me lo proporciona Martin Gamez, muchas gracias desde aqui.

Code: Select all  Expand view  RUN
#include "hbssl.ch"

Function main(  )
   Local  cTx, signed, txt, sig , cString, privatekey

   cString := GetPrivateKey()  // Es una funcion que devuelve una clave privada.PEM
   cPassword := "este es mi password"  // Si nuestra clave privada tiene password
   SSL_INIT()

   cadorg  = "hola mundo"   // Cadena original
 
   co     := alltrim(cadorg)
   coutf8 := co            // SI necesitamos conversion a utf-8 , por poner un ejemplo.

   PrivateKey := EVP_PKEY_NEW()
   bio := BIO_new_mem_buf( cString )
   keyPtr := PEM_READ_BIO_RSAPRIVATEKEY( bio , cPassword )

   EVP_PKEY_ASSIGN_RSA(PrivateKey,keyPtr)

   ctx := EVP_MD_CTX_create()
   EVP_MD_CTX_init( ctx )
   signed := ""
   EVP_SignInit_ex(ctx,HB_EVP_MD_SHA1)   // Aqui tenemos SHA1 , hay algunos más
   EVP_SignUpdate(ctx, coutf8 )
   EVP_SignFinal(ctx, @signed, PrivateKey)
   sellodigital := HB_BASE64ENCODE(signed)
   EVP_cleanup()
   ? sellodigital

return sellodigital
 


Saludos
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 731
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: HOWTO. BorlandC y OpenSSL

Postby devtuxtla » Fri Feb 24, 2012 12:56 am

Hola Rafa.

en realidad estoy muerto desde el inicio.

Preguntas:

1.- como genero la libreria para xHarbour ?

2.- podrias darnos un ejemplo de como generas la lib openssl ?

Seria un buen aporte el como se genera la lib para xharbour.

Gracias ...
Visite Chiapas, el paraiso de México.
devtuxtla
 
Posts: 392
Joined: Tue Jul 29, 2008 1:55 pm

Re: HOWTO. BorlandC y OpenSSL

Postby thefull » Fri Feb 24, 2012 11:47 am

Lo siento, hace tiempo dejé de usar xHarbour, supongo que el procedimiento será igual
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 731
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: HOWTO. BorlandC y OpenSSL

Postby elmoiquique » Fri Feb 28, 2014 1:57 pm

devtuxtla wrote:Hola Rafa.

en realidad estoy muerto desde el inicio.

Preguntas:

1.- como genero la libreria para xHarbour ?

2.- podrias darnos un ejemplo de como generas la lib openssl ?

Seria un buen aporte el como se genera la lib para xharbour.

Gracias ...


Hola

lograste solucionar el tema de la firmar en xharbour
Fivewin-Xharbour 24.09, Iquique, Chile
elmoiquique
 
Posts: 316
Joined: Wed May 16, 2007 9:40 pm
Location: Region de Ñuble, Chile

Re: HOWTO. BorlandC y OpenSSL

Postby horacio » Thu Sep 29, 2016 2:09 pm

Colegas, he generado la librería libeay32.lib, He tomado el código del ejemplo de Rafa en este post y al compilar me arroja estos errores

Code: Select all  Expand view  RUN

Turbo Incremental Link 5.69 Copyright (c) 1997-2005 Borland
Error: Unresolved external '_HB_FUN_GETPRIVATEKEY' referenced from C:\SSL\MAIN.OBJ
Error: Unresolved external '_HB_FUN_SSL_INIT' referenced from C:\SSL\MAIN.OBJ
Error: Unresolved external '_HB_FUN_EVP_PKEY_NEW' referenced from C:\SSL\MAIN.OBJ
Error: Unresolved external '_HB_FUN_BIO_NEW_MEM_BUF' referenced from C:\SSL\MAIN.OBJ
Error: Unresolved external '_HB_FUN_PEM_READ_BIO_RSAPRIVATEKEY' referenced from C:\SSL\MAIN.OBJ
Error: Unresolved external '_HB_FUN_EVP_PKEY_ASSIGN_RSA' referenced from C:\SSL\MAIN.OBJ
Error: Unresolved external '_HB_FUN_EVP_MD_CTX_CREATE' referenced from C:\SSL\MAIN.OBJ
Error: Unresolved external '_HB_FUN_EVP_MD_CTX_INIT' referenced from C:\SSL\MAIN.OBJ
Error: Unresolved external '_HB_FUN_EVP_SIGNINIT_EX' referenced from C:\SSL\MAIN.OBJ
Error: Unresolved external '_HB_FUN_EVP_SIGNUPDATE' referenced from C:\SSL\MAIN.OBJ
Error: Unresolved external '_HB_FUN_EVP_SIGNFINAL' referenced from C:\SSL\MAIN.OBJ
Error: Unresolved external '_HB_FUN_EVP_CLEANUP' referenced from C:\SSL\MAIN.OBJ
* Linking errors *
 


Alguna idea ? Muchísimas gracias

Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: HOWTO. BorlandC y OpenSSL

Postby Antonio Linares » Fri Sep 30, 2016 9:06 am

Estas enlazando la librería hbssl.lib ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42111
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: HOWTO. BorlandC y OpenSSL

Postby horacio » Fri Sep 30, 2016 1:57 pm

Antonio, he añadido esta librería pero obtengo los mismos errores.

Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: HOWTO. BorlandC y OpenSSL

Postby Antonio Linares » Fri Sep 30, 2016 4:44 pm

Prueba tambien con hbssls.lib
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42111
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: HOWTO. BorlandC y OpenSSL

Postby elmoiquique » Sat Oct 01, 2016 4:13 pm

lograste comñpilarla
horacio wrote:Antonio, he añadido esta librería pero obtengo los mismos errores.

Saludos
Fivewin-Xharbour 24.09, Iquique, Chile
elmoiquique
 
Posts: 316
Joined: Wed May 16, 2007 9:40 pm
Location: Region de Ñuble, Chile

Re: HOWTO. BorlandC y OpenSSL

Postby horacio » Sun Oct 02, 2016 1:47 pm

No todavía, mañana en la oficina pruebo y comento

Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: HOWTO. BorlandC y OpenSSL

Postby horacio » Mon Oct 03, 2016 12:48 pm

Antonio, obtengo los mismos errores incorporando la ibrería hbssls.lib. Gracias

Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 32 guests