Indy OpenSSL 1.1.1 IO Handler s podporou TLS 1.3

vložil Radek Červinka 1. prosince 2020 18:27

Na github v projektu Indy se objevil PULL přidávající podporu OpenSSL 1.1.1 což mimo jiné znamená toužebně vyhlížené TLS 1.3, které bylo ještě před půl rokem v nedohlednu. Momentálně je ve stavu review, ale diskuze pod ním, a to co jsem zkoušel vypadá velmi funkčně - s podporou od D7, přes Lazarus až po Delphi 10.4.x (je to v komentářích uvedeno).

Jedná se pouze o minimální úpravy, opravdu přidává v podstatě pouze nový IO handler, přičemž původní pro 1.0.2 zůstává bez poskvrny, plus pár změn v konstantách, což ale může být problém, protože by to chtělo rekompilaci Indy. Ale naštěstí přímo v komentářích je zmíněna úprava s IdOpenSSL_IdCTypesEx.zip, která nově přidané typy vyčleňuje do samostatné jednotky (a stačí jen přidat do uses IO hadleru). Pak není třeba rekompilace, ale jedná se opravdu jen o nový IO handler pro stávající Indy z instalace Delphi (pro zajímavost podle screenshotu total commnandera v češtině bych možná dokázal i uhodnout zemi autora úpravy).

Minimální testovací program:

program testhttp;
{$APPTYPE CONSOLE}
{$R *.res}
uses
  System.SysUtils, idhttp, IdOpenSSLIOHandlerClient ;
var
  IdHTTP: TIdHTTP;
  s: string;begin
  try
    IdHTTP:= TIdHTTP.Create(nil);
    try
      IdHTTP.IOHandler := TIdOpenSSLIOHandlerClient.Create(nil);
      (idHttp.IOHandler as TIdOpenSSLIOHandlerClient).Options.VerifyServerCertificate := False;
      s:=IdHTTP.Get('https://tls13.1d.pw/');
      writeln(s);
//       readln;
    finally
      IdHTTP.Free;
    end;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.

Všimněte si v kódu nového IO handleru a nastavování jeho parametrů přes Options pro případ, že je budete hledat. Jsou tam i další věci ohledně certifikátů.

V ukázkovém příkladě https://tls13.1d.pw/ je TLS 1.3 only web, který dává info o podpoře TLS u klienta. Já myslím, že je to od autora skvělá práce.

Tagy:

Komponenty

Komentování ukončeno

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy).

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX a na iPhone a Android.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Poslední komentáře

Comment RSS