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.
Rozszerzone komponenty Indy TCP/IP z obsługą OpenSSL 1.1/3.0, uwierzytelnianiem XOAuth2 i ulepszoną siecią dla Delphi i Free Pascal.
Zaktualizuj swoje aplikacje Indy do najnowszych bibliotek OpenSSL i standardów TLS.
Pełna obsługa OpenSSL 1.1.x z TLS 1.2 i TLS 1.3. Zamiennik dla starszej integracji Indy z OpenSSL.
Obsługa najnowszej serii OpenSSL 3.x z nową architekturą dostawców, zgodnością z FIPS i ulepszonym zarządzaniem zestawami szyfrów.
Pełnoprawna obsługa TLS 1.3 z wznawianiem 0-RTT, lepszą wydajnością uzgadniania i nowoczesnymi zestawami szyfrów.
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.
Ulepszona obsługa połączeń, zarządzanie keep-alive, kontrola limitów czasu i zarządzanie buforem w stosunku do standardowych komponentów Indy.
sgcIndy jest bezpłatny. Kompatybilny z Delphi 7 do RAD Studio 13 oraz Free Pascal/Lazarus. Bez opłat licencyjnych ani tantiem.
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.
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.
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;
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.
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.
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.
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().
Tunelowanie lokalne do zdalnego przez OpenDirectTCPIP. Przekazywanie zdalne do lokalnego przez RequestForwarding i CancelForwarding. Tuneluj dowolny ruch TCP przez zaszyfrowane połączenie SSH.
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.
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.
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.
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;
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.
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ą.
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().
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.
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.
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.