sgcIndy — funkcje

Rozszerzone komponenty Indy TCP/IP z obsługą OpenSSL 1.1/3.0, uwierzytelnianiem XOAuth2 i ulepszoną siecią dla Delphi i Free Pascal.

Nowoczesna obsługa OpenSSL

Zaktualizuj swoje aplikacje Indy do najnowszych bibliotek OpenSSL i standardów TLS.

OpenSSL 1.1

Pełna obsługa OpenSSL 1.1.x z TLS 1.2 i TLS 1.3. Zamiennik dla starszej integracji Indy z OpenSSL.

OpenSSL 3.0

Obsługa najnowszej serii OpenSSL 3.x z nową architekturą dostawców, zgodnością z FIPS i ulepszonym zarządzaniem zestawami szyfrów.

TLS 1.3

Pełnoprawna obsługa TLS 1.3 z wznawianiem 0-RTT, lepszą wydajnością uzgadniania i nowoczesnymi zestawami szyfrów.

XOAuth2 i rozszerzony TCP/IP

Uwierzytelnianie XOAuth2

Wbudowana obsługa XOAuth2 dla Gmail, Outlook i innych dostawców OAuth 2.0. Uwierzytelniaj połączenia SMTP, IMAP i POP3 z nowoczesnymi przepływami OAuth.

Rozszerzony TCP/IP

Ulepszona obsługa połączeń, zarządzanie keep-alive, kontrola limitów czasu i zarządzanie buforem w stosunku do standardowych komponentów Indy.

Darmowy i otwarty

sgcIndy jest bezpłatny. Kompatybilny z Delphi 7 do RAD Studio 13 oraz Free Pascal/Lazarus. Bez opłat licencyjnych ani tantiem.

Klient SSH — TIdSSHClient

W pełni funkcjonalny klient SSH 2.0 do bezpiecznych połączeń zdalnych. Wykonuj polecenia, otwieraj interaktywne powłoki i konfiguruj przekazywanie portów — wszystko przez zaszyfrowane kanały.

Bezpieczne zdalne wykonywanie

TIdSSHClient obsługuje pełny cykl życia SSH: wymianę wersji, negocjację kluczy, uwierzytelnianie użytkownika i zarządzanie kanałami. Połącz się z dowolnym serwerem SSH i uruchamiaj polecenia, otwieraj powłoki lub przekazuj porty przez przejrzyste API komponentu Delphi.

  • Uwierzytelnianie hasłem, kluczem publicznym i klawiaturą interaktywną
  • Execute() — uruchom zdalne polecenie i pobierz wynik w jednym wywołaniu
  • RequestShell / RequestPTY — otwórz interaktywne sesje terminalowe
  • Przekazywanie portów — tunelowanie TCP/IP lokalne i zdalne przez OpenDirectTCPIP i RequestForwarding
  • Wiele kanałów — otwórz wiele równoczesnych sesji przez jedno połączenie
SSH_Example.pas
var
  SSH: TIdSSHClient;
  Output: string;
begin
  SSH := TIdSSHClient.Create(nil);
  try
    SSH.Host := 'server.example.com';
    SSH.Port := 22;
    SSH.Authentication.Username := 'admin';
    SSH.Authentication.Password := 'secret';
    SSH.Connect;

    // Execute a command and get output
    Output := SSH.Execute('ls -la /var/log');
    Memo1.Text := Output;

    SSH.Disconnect;
  finally
    SSH.Free;
  end;
end;

Uwierzytelnianie

Metody uwierzytelniania hasłem, kluczem publicznym (RSA, ECDSA, ED25519) i klawiaturą interaktywną. Wczytuj klucze prywatne z plików PEM z opcjonalnym hasłem. Weryfikacja klucza hosta przez zdarzenie OnSSHHostKey.

Nowoczesna kryptografia

Wymiana kluczy Curve25519, ECDH i Diffie-Hellman. Szyfry AES-CTR i AES-GCM. Uwierzytelnianie wiadomości HMAC-SHA2. Konfigurowalne preferencje algorytmów przez właściwość Algorithms.

Kanały i podsystemy

Otwieraj wiele kanałów przez jedno połączenie za pomocą OpenChannel. Żądaj exec, shell lub podsystemu (np. SFTP) dla każdego kanału. Wysyłaj dane, sygnały i EOF niezależnie dla każdego kanału.

Keep-alive i limity czasu

Konfigurowalny interwał keep-alive i maksymalna liczba prób do wykrywania martwych połączeń. Limity czasu połączenia i odczytu przez SSHOptions. Automatyczne ponowne generowanie kluczy przez Rekey().

Przekazywanie portów

Tunelowanie lokalne do zdalnego przez OpenDirectTCPIP. Przekazywanie zdalne do lokalnego przez RequestForwarding i CancelForwarding. Tuneluj dowolny ruch TCP przez zaszyfrowane połączenie SSH.

Rozbudowane zdarzenia

OnSSHChannelData dla danych przychodzących, OnSSHChannelExitStatus dla wyników poleceń, OnSSHAuthBanner dla banerów serwera i OnSSHError do obsługi błędów. W pełni zdarzeniowa architektura.

Klient SFTP — TIdSFTPClient

Bezpieczny transfer plików przez SSH. Przesyłaj, pobieraj i zarządzaj zdalnymi plikami i katalogami ze śledzeniem postępu i pełną obsługą atrybutów.

Bezpieczne operacje na plikach

TIdSFTPClient jest zbudowany na bazie TIdSSHClient i automatycznie obsługuje podsystem SFTP. Udostępnia wysokopoziomowe API dla wszystkich typowych operacji na plikach — bez potrzeby ręcznego zarządzania kanałami SSH ani protokołem SFTP.

  • Get / Put — pobierz i wyślij pliki według ścieżki lub strumienia
  • ListDirectory — wylistuj zawartość zdalnego katalogu z atrybutami plików
  • Delete / Rename — zarządzaj zdalnymi plikami i katalogami
  • MakeDirectory / RemoveDirectory — twórz i usuwaj foldery
  • OnSFTPProgress — śledź postęp transferu z liczbą przesłanych bajtów, całkowitym rozmiarem i obsługą anulowania
SFTP_Example.pas
var
  SFTP: TIdSFTPClient;
  Items: TIdSFTPDirectoryItems;
  i: Integer;
begin
  SFTP := TIdSFTPClient.Create(nil);
  try
    SFTP.Host := 'sftp.example.com';
    SFTP.Authentication.Username := 'admin';
    SFTP.Authentication.PrivateKeyFile :=
      'C:\Keys\id_rsa';
    SFTP.Connect;

    // Upload a file
    SFTP.Put('C:\local\report.pdf',
      '/remote/reports/report.pdf');

    // List directory
    Items := SFTP.ListDirectory('/remote/reports');
    for i := 0 to Items.Count - 1 do
      Memo1.Lines.Add(Items[i].FileName);

    // Download a file
    SFTP.Get('/remote/data.csv',
      'C:\local\data.csv');

    SFTP.Disconnect;
  finally
    SFTP.Free;
  end;
end;

Transfery plików

Get() pobiera zdalne pliki do lokalnej ścieżki lub TStream. Put() przesyła z lokalnej ścieżki lub TStream. Konfigurowalny rozmiar bufora przez SFTPBufferSize dla optymalnej przepustowości. OnSFTPProgress wyzwala się podczas transferu z liczbą przesłanych bajtów, całkowitym rozmiarem i flagą Cancel.

Operacje na katalogach

ListDirectory() zwraca TIdSFTPDirectoryItems z nazwą pliku, rozmiarem, uprawnieniami, znacznikami czasu i typem dla każdego wpisu. MakeDirectory() i RemoveDirectory() do zarządzania folderami. GetCurrentDirectory() zwraca zdalną ścieżkę roboczą.

Atrybuty plików

Stat() i LStat() pobierają rozmiar, uprawnienia, UID/GID i znaczniki czasu. SetStat() modyfikuje zdalne atrybuty. FileExists(), DirectoryExists() i FileSize() do szybkich sprawdzeń. Obsługa dowiązań symbolicznych przez Symlink() i ReadLink().

Pomocniki łańcuchów

GetFileAsString() odczytuje zdalny plik bezpośrednio do łańcucha Delphi. PutFileFromString() zapisuje łańcuch do zdalnego pliku. RealPath() rozwiązuje ścieżki względne lub symboliczne do ich bezwzględnej lokalizacji na serwerze.

Uwierzytelnianie SSH

Dziedziczy całe uwierzytelnianie SSH z TIdSSHClient: hasło, klucz publiczny (RSA, ECDSA, ED25519) i klawiatura interaktywna. Ustaw dane uwierzytelniające przez właściwość Authentication. Zdarzenie OnSSHHostKey do weryfikacji serwera.

Zdarzenia i postęp

OnSFTPProgress śledzi liczbę przesłanych bajtów i całkowity rozmiar z flagą Cancel do przerywania transferów. OnSFTPError dostarcza kod i komunikat błędu. OnSFTPStatus do aktualizacji stanu. OnSFTPDirectoryList wyzwala się po zakończeniu listowania katalogu.

Uaktualnij swoje komponenty Indy

Pobierz sgcIndy za darmo i wprowadź nowoczesną obsługę TLS do swoich aplikacji.