sgcIndy-Funktionen
Erweiterte Indy-TCP/IP-Komponenten mit OpenSSL-1.1/3.0-Unterstützung, XOAuth2-Authentifizierung und verbessertem Netzwerk-Stack für Delphi und Free Pascal.
Erweiterte Indy-TCP/IP-Komponenten mit OpenSSL-1.1/3.0-Unterstützung, XOAuth2-Authentifizierung und verbessertem Netzwerk-Stack für Delphi und Free Pascal.
Bring deine Indy-Anwendungen mit den neuesten OpenSSL-Bibliotheken und TLS-Standards auf den aktuellen Stand.
Volle Unterstützung für OpenSSL 1.1.x mit TLS 1.2 und TLS 1.3. Drop-in-Ersatz für die alte Indy-OpenSSL-Integration.
Unterstützung für die neueste OpenSSL-3.x-Serie mit neuer Provider-Architektur, FIPS-Konformität und verbesserter Cipher-Suite-Verwaltung.
Erstklassige TLS-1.3-Unterstützung mit 0-RTT-Resumption, verbesserter Handshake-Performance und modernen Cipher-Suites.
Eingebaute XOAuth2-Unterstützung für Gmail, Outlook und andere OAuth-2.0-Anbieter. Authentifiziere SMTP-, IMAP- und POP3-Verbindungen mit modernen OAuth-Flows.
Verbesserte Verbindungsverwaltung, Keep-Alive-Steuerung, Timeout-Kontrolle und Buffer-Management gegenüber den Standard-Indy-Komponenten.
sgcIndy ist kostenlos nutzbar. Kompatibel mit Delphi 7 bis RAD Studio 13 sowie Free Pascal/Lazarus. Keine Lizenzgebühren oder Royalties.
Vollwertiger SSH-2.0-Client für sichere Remote-Verbindungen. Führe Befehle aus, öffne interaktive Shells und richte Port-Forwarding ein — alles über verschlüsselte Kanäle.
TIdSSHClient übernimmt den kompletten SSH-Lebenszyklus: Versionsaustausch, Schlüsselaushandlung, Benutzerauthentifizierung und Channel-Verwaltung. Verbinde dich mit jedem SSH-Server und führe Befehle aus, öffne Shells oder leite Ports weiter — mit einer sauberen Delphi-Komponenten-API.
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;
Methoden: Passwort, Public Key (RSA, ECDSA, ED25519) und Keyboard-Interactive. Lade private Schlüssel aus PEM-Dateien mit optionaler Passphrase. Host-Key-Verifizierung über das OnSSHHostKey-Ereignis.
Curve25519-, ECDH- und Diffie-Hellman-Schlüsselaustausch. AES-CTR- und AES-GCM-Cipher. HMAC-SHA2-Message-Authentication. Konfigurierbare Algorithmus-Präferenzen über die Algorithms-Eigenschaft.
Öffne mehrere Channels über eine Verbindung mit OpenChannel. Fordere exec, shell oder Subsystem (wie SFTP) pro Channel an. Sende Daten, Signale und EOF unabhängig pro Channel.
Konfigurierbare Keep-Alive-Intervalle und Max-Count zur Erkennung toter Verbindungen. Connect- und Read-Timeouts über SSHOptions. Automatische Re-Keying-Unterstützung über Rekey().
Local-to-Remote-Tunneling mit OpenDirectTCPIP. Remote-to-Local-Forwarding mit RequestForwarding und CancelForwarding. Leite beliebigen TCP-Traffic durch die verschlüsselte SSH-Verbindung.
OnSSHChannelData für eingehende Daten, OnSSHChannelExitStatus für Befehlsergebnisse, OnSSHAuthBanner für Server-Banner und OnSSHError für Fehlerbehandlung. Vollständig ereignisgesteuerte Architektur.
Sichere Dateiübertragung über SSH. Lade Remote-Dateien und -Verzeichnisse hoch, herunter und verwalte sie — mit Fortschrittsanzeige und voller Attributunterstützung.
TIdSFTPClient setzt auf TIdSSHClient auf und verwaltet das SFTP-Subsystem automatisch. Er bietet eine High-Level-API für alle gängigen Dateioperationen — ohne dass du SSH-Channels oder das SFTP-Protokoll manuell verwalten musst.
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() downloads remote files to a local path or TStream. Put() uploads from a local path or TStream. Configurable buffer size via SFTPBufferSize for optimal throughput. OnSFTPProgress fires during transfer with bytes transferred, total size, and a Cancel flag.
ListDirectory() returns TIdSFTPDirectoryItems with file name, size, permissions, timestamps, and type for each entry. MakeDirectory() and RemoveDirectory() for folder management. GetCurrentDirectory() returns the remote working path.
Stat() and LStat() retrieve size, permissions, UID/GID, and timestamps. SetStat() modifies remote attributes. FileExists(), DirectoryExists(), and FileSize() for quick checks. Symlink support via Symlink() and ReadLink().
GetFileAsString() reads a remote file directly into a Delphi string. PutFileFromString() writes a string to a remote file. RealPath() resolves relative or symbolic paths to their absolute location on the server.
Inherits all SSH authentication from TIdSSHClient: password, public key (RSA, ECDSA, ED25519), and keyboard-interactive. Set credentials via the Authentication property. OnSSHHostKey event for server verification.
OnSFTPProgress tracks bytes transferred and total size with a Cancel flag to abort transfers. OnSFTPError provides error code and message. OnSFTPStatus for status updates. OnSFTPDirectoryList fires when directory listing completes.
Optionale Schutzmaßnahmen, die die TCP-, TLS- und HTTP-Serverkomponenten gegen verbreitete Angriffe absichern. Jede Option ist standardmäßig auf das bisherige Verhalten eingestellt, sodass bestehende Anwendungen nicht beeinträchtigt werden, bis Sie sie aktivieren.
Der Callback zur TLS-Gegenstellenprüfung schlägt nicht mehr fehlerhaft offen aus. Aktivieren Sie TIdSSLOptions.StrictVerify, und das Prüfergebnis von OpenSSL wird durchgesetzt, sodass ein benutzerdefinierter Callback es nur weiter einschränken kann und niemals ein nicht vertrauenswürdiges Zertifikat akzeptiert.
DisableCompression mindert CRIME, DisableRenegotiation blockiert vom Client ausgelöste Renegotiation-DoS, und ServerCipherPreference sorgt dafür, dass die Cipher-Reihenfolge des Servers die Aushandlung gewinnt.
RequestReadTimeout begrenzt die Zeit für den Empfang einer Anfrage, während das neue TIdIOHandler.SetReadDeadline eine Gesamtlesefrist hinzufügt, die langsam tröpfelnde Clients abwehrt, die einen einfachen Inaktivitäts-Timeout immer wieder zurücksetzen.
MaxRequestBodySize begrenzt die Content-Length und den Chunked-Body (antwortet mit 413), MaxHeaderTotalSize begrenzt die gesamten Header-Bytes (antwortet mit 431), und TIdIOHandler.MaxInputBufferSize beschränkt den Eingabepuffer, um speichererschöpfende Lesevorgänge zu verhindern.
StrictRequestParsing weist mehrdeutige Anfragen zurück, die sowohl Content-Length als auch Transfer-Encoding enthalten, sowie negative Chunk-Größen, und die Schleife für Chunked-Trailer-Header ist jetzt begrenzt, um eine Speicher- und CPU-erschöpfende DoS zu verhindern.
Sämtliche Härtung ist optional und standardmäßig auf das bisherige Verhalten eingestellt, ohne Breaking Changes. Aktivieren Sie genau die Schutzmaßnahmen, die Ihre Bereitstellung benötigt, über Delphi 7 bis RAD Studio 13 und Free Pascal hinweg.