Results 1 to 8 of 8

Thread: libeay.lib en ssleay32.lib vernieuwen

  1. #1

    libeay.lib en ssleay32.lib vernieuwen

    Niet direct een Delphi vraagje maar (Borland/Codegear/Embarcaero) C++.

    Ik heb een Delphi programma wat met SOAP over https communiceert met een server, maar alle verwerking en communicatie zit in routines in een dll - de huidige versie is van 2012. Die is ooit in dit project gemaakt, ik heb de code gelukkig teruggevonden, maar die blijkt van 2010 te zijn - en C++.

    Nu zijn er mogelijk problemen met de beveiligde verbinding: ik moet overstappen naar TLS 1.2 en ik weet niet of die al in deze versie sis besloten; de kans is aanwezig dat dat niet het geval is. Dus moet ik de .dll herbouwen. Op zich geen probleem, ware het niet dat in de code expliciet is opgenomen:

    Code:
    #pragma link "libeay32.lib"
    #pragma link "ssleay32.lib"
    Kennelijk is het project erop ingericht dat de libraries statisch gelinked worden.

    Die bestanden zijn er wel, OpenSSL098 van 2011. dus (te) oud, en dus kan de gevraagde TLS 1.2 ontbreken - wat ik nu nodig heb. Dus ik wil nieuwe versies gebruiken.
    Ik kan echter alleen een libeay32.lib vinden (recent) maar geen ssleay32.lib (wel .dll van beide).

    Nu hoef ik niet de meest recente versies te hebben (liever niet, zelfs, omdat ik nog moet ontwikkelen in een 32-bit XP omgeving), als er maar TLS1.2 in zit. Helaas ontbreekt de tijd en kennis om die libraries zelf aan te maken. Heeft iemand een link naar deze bestanden, of een suggestie zonder (al te grote) wijzigingen in de code?

  2. #2
    Ik gebruik zelf de losstaande dlls, en die zijn o.a. via Embarcadero te vinden, maar daar vind je volgens mij helaas niet de libs.

    Je zou kunnen proberen om ze uit de source code te bouwen, maar dat is misschien niet triviaal. Bovendien is er sinds 1.0 e.e.a. veranderd, in ieder geval de naam van de libs zelf.

    Al met al weet ik niet wat het handigst is om te doen.. :/
    1+1=b

  3. #3
    Bouwen vanaf de sources lijkt me inderdaad geen triviale zaak. Zeker niet iets voor de korte termijn.
    BUT NOT AL IS LOST Zelfs

    Via embarcadero site:

    Option 2 - Download the OpenSSL compressed library files
    - en daar gevonden in LinkLibs/ directory: die bevat de zips met de .lib bestanden.
    Omdat er nogal wat gewjzigd schijnt te zijn in 1.x.x.ten opzichte van 0.9.8 (waaronder naamgeving van routines) hou ik het voorlopig bij 0.9.8, al is het de voorlaatste versie (zg).

  4. #4
    Maar ja - dan gaat er met link wat mis:

    [ILINK32 Error] Error: 'S:\PROJECTS\OPENSSL098\ZG\LIBEAY32.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
    het gaat om Codegear C++Builder 2007. Readme van de library geeft aan dat dit gebouwd is met Micosoft Visial C__ 2008 (Express dEdition):
    *** Build Information Win32 ***

    Built with: Microsoft Visual C++ 2008 Express Edition
    The Netwide Assembler (NASM) v2.11.08 Win32
    Strawberry Perl v5.22.0.1 Win32 Portable
    Windows PowerShell
    FinalBuilder 7

    Commands: perl configure VC-WIN32
    ms\do_nasm
    adjusted ms\ntdll.mak (replaced "/MD" with "/MT")
    adjusted ms\version32.rc (Indy Information inserted)
    nmake -f ms\ntdll.mak
    nmake -f ms\ntdll.mak test
    Overigens: de laatste 1.0.2 versie levert geen compilatie-problemen op, maar geeft dezelfde foutmelding met link..

  5. #5
    Blijkt na eenig zoeken dat toch een iets andere weg bewandeld moet worden:

    ** vergeet de .lib bestanden, die kan je niet gebruiken....
    ** Haal de .dll''s op.; Het handigst is die neer te zetten op de plaats waar de .libs verwacht worden.
    ** cd naar die locatie
    ** implib -a- -c ssleay ssleay.dll
    ** implib -a- -c libeay libeay.dll

    -a zet "_" voor de functie- en procedurenamen, zonder krijg je linkfouten.
    -c houdt cae-sensitinity in stand (logisch voor C++).
    Zonder deze opties gaat het fout met link:een wereld aan unresolved references

    Als het project oorspronkelijk met openssl098 gebouwd is, is openssl 1.x.x niet zonder aanpassingen in de code of gebruikte headerfiles mogelijk: er zijn procedures en functies van naam gewijzigd (uni2asc -> OPENSSL_uni2asc, bijvoorbeeld) en die moeten wel kenbaar gemaakt worden...

  6. #6
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    9,750
    Het waren dus import libs, geen echte statische libs (je had de dlls nog steeds nodig?)??

  7. #7
    De DLL.s had ik (vooral) nodig omdat de librraies die ik vanaf de indy site gehaald had, niet bruikbaar zijn voor C++Builder2007. Met ImpLib zijn die dus om te zteten...

    Nu blijkt evenwel dat de vereiste TLS 1.2 connectie ook pontbreekt in 0.9.8 zh; ik MOET dus wel over naar 1.0.2o. Dat levert nu een probleem op omdat ik headrer-files moet aanpassen die ook van OpenSsl.org afkomsting lijken te zijn (staat in commecnts). Daarom e include-files opgehaald van github en /openssl/includes/openssl/*.h overgemnomen. Afgezien dat wat vreemds aan de hand is met één van de bestanden (openssl.conf.h heeft extra extensie: .in, maar dat is door rename verholpen) gata er van alles mis met build...

    Besloten is om dit te laten liggen en de code om te zetten naar delpji en gewoon in pakket te inttegreren..

  8. #8
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    9,750
    Ik ben geen C (en nog veel minder automake/conf) held, maar is .in niet een automake extensie? Dat moet mogelijk dus nog door autoconf/make gepreprocessed worden.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •