Autor Téma: Synapse a 64 bitové OpenSSL DLL  (Přečteno 4029 krát)

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 119
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Synapse a 64 bitové OpenSSL DLL
« kdy: 23-10-2019, 14:36:20 »
Má někdo zkušenosti s použitím Synapse 64 bit + OpenSSL DLL 64 bit.  Pro 32 bitovou aplikaci stačí přejmenovat knihovny  na libeay32.dll a ssleay32.dll a nakopírovat do složky s aplikací (případně do prohledávcí cesty). V případě 64 bitu příslušný ekvivalent nefunguje.
« Poslední změna: 30-10-2019, 09:58:53 od Radek Červinka »

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 119
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Re:Synapse a 64 bitové OpenSSL DLL
« Odpověď #1 kdy: 23-10-2019, 15:43:50 »
Tak si odpovím sám ... zřejmě stačí přejmenovat 64 bitové knihovny stejně jak 32 bitové .... tzn.  libeay32.dll a ssleay32.dll ... ještě ověřím a dám vědět.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2835
  • Karma: 134
    • Verze Delphi: D2007, XE3, DX10
Re:Synapse a 64 bitové OpenSSL DLL
« Odpověď #2 kdy: 23-10-2019, 15:59:19 »
Tak si odpovím sám ... zřejmě stačí přejmenovat 64 bitové knihovny stejně jak 32 bitové .... tzn.  libeay32.dll a ssleay32.dll ... ještě ověřím a dám vědět.
No ciste teoreticky muzes zkusit nadefinovat jmena knihoven v ssl_openssl_lib.pas a pokud to bude fungovat, tak se domluvit s Lukasem, aby tu zmenu adoptoval.

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 119
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Re:Synapse a 64 bitové OpenSSL DLL
« Odpověď #3 kdy: 23-10-2019, 16:11:24 »
To by asi šlo. Ale dalším experimentováním jsem zjistil, že se to na jiném PC dožaduje i knihovny s původním názvem libcrypto-1_1-x64.dll. Po startu to zahlásí, že chybí libcrypto-1_1-x64.dll, aplikace se spustí ale odesílání mailů na portu 587 (šifrovaná komunikace) a nebo 465 (TLS / SSL tunel) z aplikace nefunguje.
« Poslední změna: 30-10-2019, 09:59:39 od Radek Červinka »

Offline pepak

  • Guru
  • *****
  • Příspěvků: 1498
  • Karma: 37
    • Pepak.net
Re:Synapse a 64 bitové OpenSSL DLL
« Odpověď #4 kdy: 23-10-2019, 17:57:29 »
Proto je právě lepší upravit ten pas...
« Poslední změna: 30-10-2019, 09:59:49 od Radek Červinka »

Offline geby

  • Plnoletý
  • ***
  • Příspěvků: 223
  • Karma: 16
    • Verze Delphi: 7, 2007, XE2, 10.2
    • Synapse
Re:Synapse a 64 bitové OpenSSL DLL
« Odpověď #5 kdy: 23-10-2019, 19:33:40 »
No, já to hlavně celé musím upravit na novější verze OpenSSL, verze 1.1 tam moc nefunguje.
64bitove verze jsem tam nezkoušel vůbec, takže nevím, jestli to někde nenarazí na problém 32 vs. 64 bitový integer/Pointer.
« Poslední změna: 30-10-2019, 10:00:10 od Radek Červinka »

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 119
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Re:Synapce a 64 bitové OpenSSL DLL
« Odpověď #6 kdy: 23-10-2019, 21:59:51 »
32 bitová varianta aplikace jede alespoň pro moje účely bez problému. Má tedy smysl sahat do zdrojáků nebo mám počkat na úpravenou Synapsy ?

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2654
  • Karma: 103
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Synapse a 64 bitové OpenSSL DLL
« Odpověď #7 kdy: 29-10-2019, 11:25:32 »
32 bitová varianta aplikace jede alespoň pro moje účely bez problému. Má tedy smysl sahat do zdrojáků nebo mám počkat na úpravenou Synapsy ?

Tady je 64bit verze s podporou Linux a MAC OSX64 a 64bit OpenSSL - https://github.com/TetrisSQC/SynapseTCP/tree/master/Source
« Poslední změna: 30-10-2019, 10:00:22 od Radek Červinka »
Embarcadero MVP - Czech republic

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2654
  • Karma: 103
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Synapse a 64 bitové OpenSSL DLL
« Odpověď #8 kdy: 29-10-2019, 11:27:13 »
32 bitová varianta aplikace jede alespoň pro moje účely bez problému. Má tedy smysl sahat do zdrojáků nebo mám počkat na úpravenou Synapsy ?

Tady je 64bit verze s podporou Linux a MAC OSX64 a 64bit OpenSSL - https://github.com/TetrisSQC/SynapseTCP/tree/master/Source

A taky OpenSSL 1.1 a  Android :-)
« Poslední změna: 30-10-2019, 10:00:33 od Radek Červinka »
Embarcadero MVP - Czech republic

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 119
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Re:Synapse a 64 bitové OpenSSL DLL
« Odpověď #9 kdy: 30-10-2019, 09:43:29 »
Díky, jdu to hned zkusit
« Poslední změna: 30-10-2019, 10:00:44 od Radek Červinka »

Offline Jirka

  • Hrdina
  • ****
  • Příspěvků: 253
  • Karma: 9
    • Verze Delphi: XE2
Re:Synapse a 64 bitové OpenSSL DLL
« Odpověď #10 kdy: 20-12-2019, 17:37:20 »
No, já to hlavně celé musím upravit na novější verze OpenSSL, verze 1.1 tam moc nefunguje.

Ahoj
Mohu se zeptat jak to vypadá s novou verzí  Synapse pro OpenSLL 1.1 , zatím jsem to zmenil v   dle rady PF1957 v souboru ssl_openssl_lib.pas a prozatím to funguje ,ale nevím zda tam může být nějaká jiná nástraha, takže bych radší originál úpravu.
Děkuji

Update -  bavím se o 32bit verzi

Offline geby

  • Plnoletý
  • ***
  • Příspěvků: 223
  • Karma: 16
    • Verze Delphi: 7, 2007, XE2, 10.2
    • Synapse
Re:Synapse a 64 bitové OpenSSL DLL
« Odpověď #11 kdy: 21-12-2019, 17:42:28 »
Je to smutné, ale nějak se mi nedostává času...

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 119
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Re:Synapse a 64 bitové OpenSSL DLL
« Odpověď #12 kdy: 13-01-2020, 10:05:16 »
32 bitová varianta aplikace jede alespoň pro moje účely bez problému. Má tedy smysl sahat do zdrojáků nebo mám počkat na úpravenou Synapsy ?

Tady je 64bit verze s podporou Linux a MAC OSX64 a 64bit OpenSSL - https://github.com/TetrisSQC/SynapseTCP/tree/master/Source

A taky OpenSSL 1.1 a  Android :-)


Konečně jsem se k tomu dostal a bohužel to nejde přeložit (při pokusu o vytvoření bpl) - je tam nepořádek PChar a PAnsiChar...

třeba tady mimepart.pas
      CopyLinesFromStreamUntilBoundary(AStx,AEtx,FPrePart,FBoundary);



  DecodePartHeader;
  // Extract prepart
  if FPrimaryCode=MP_MULTIPART then
    begin
      CopyLinesFromStreamUntilBoundary(AStx,AEtx,FPrePart,FBoundary);
      FAttachInside := FAttachInside or ___HasUUCode(FPrePart);
    end;
  // Extract body part
  if FPrimaryCode=MP_MULTIPART then


Offline pepak

  • Guru
  • *****
  • Příspěvků: 1498
  • Karma: 37
    • Pepak.net
Re:Synapse a 64 bitové OpenSSL DLL
« Odpověď #13 kdy: 15-01-2020, 12:39:32 »
No, já to hlavně celé musím upravit na novější verze OpenSSL, verze 1.1 tam moc nefunguje.
64bitove verze jsem tam nezkoušel vůbec, takže nevím, jestli to někde nenarazí na problém 32 vs. 64 bitový integer/Pointer.
Které části jsou podle tebe zralé na aktualizaci? Protože už delší dobu zkouším různé verze OpenSSL v SYnapsi v rámci klientského spojení a až na dílčí úpravy (podpora různě pojmenovaných knihoven pro různé verze OpenSSL, vynucení, aby všechny knihovny byly ve stejném adresáři atd.) bych řekl, že to tam funguje dobře - a to i v OpenSSL 3.0, jak jsem si teď zkoušel, a také v x64. Neřešil jsem serverovou stranu, tam to možná bude horší. Ale klientskou bych ti případně mohl v nějaké podobě poslat (asi nejspíš posloupnost patchů proti SVN trunku), pokud je naděje, že se to dostane do trunku.

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 119
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Re:Synapse a 64 bitové OpenSSL DLL
« Odpověď #14 kdy: 15-01-2020, 13:50:47 »
Já se nedostal ani k testování toho hlavního co potřebuju - podpora SSL v 64 bitové aplikaci. Celou Synapsi mám zabalenou v bpl knihovně. Ta puvodní verze jde zkompilovat do balíku úplně v pohodě a vše funguje (tedy kromě podpory SSL v 64-bitu).  Tady ta upravená verze zkolabuje během kompilace na binec v PChar a PAnsiChar. Zkoušel jsem to trochu upravit - ale jednak je to na spoustě míst a druhak se nechci hrabat v cizí zdrojáku když do toho úplně tak nevidím. Takže pokud existuje nějaká funkční verze, budu rád ....