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.

Moderne OpenSSL-Unterstützung

Bring deine Indy-Anwendungen mit den neuesten OpenSSL-Bibliotheken und TLS-Standards auf den aktuellen Stand.

OpenSSL 1.1

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.

OpenSSL 3.0

Unterstützung für die neueste OpenSSL-3.x-Serie mit neuer Provider-Architektur, FIPS-Konformität und verbesserter Cipher-Suite-Verwaltung.

TLS 1.3

Erstklassige TLS-1.3-Unterstützung mit 0-RTT-Resumption, verbesserter Handshake-Performance und modernen Cipher-Suites.

XOAuth2 & erweitertes TCP/IP

XOAuth2-Authentifizierung

Eingebaute XOAuth2-Unterstützung für Gmail, Outlook und andere OAuth-2.0-Anbieter. Authentifiziere SMTP-, IMAP- und POP3-Verbindungen mit modernen OAuth-Flows.

Erweitertes TCP/IP

Verbesserte Verbindungsverwaltung, Keep-Alive-Steuerung, Timeout-Kontrolle und Buffer-Management gegenüber den Standard-Indy-Komponenten.

Frei & offen

sgcIndy ist kostenlos nutzbar. Kompatibel mit Delphi 7 bis RAD Studio 13 sowie Free Pascal/Lazarus. Keine Lizenzgebühren oder Royalties.

SSH-Client — TIdSSHClient

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.

Sichere Remote-Ausführung

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.

  • Passwort, Public Key & Keyboard-Interactive Authentifizierung
  • Execute() — führe einen Remote-Befehl aus und erhalte die Ausgabe in einem Aufruf
  • RequestShell / RequestPTY — öffne interaktive Terminal-Sitzungen
  • Port-Forwarding — lokales und remote TCP/IP-Tunneling über OpenDirectTCPIP und RequestForwarding
  • Multi-Channel — öffne mehrere gleichzeitige Sitzungen über eine einzige Verbindung
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;

Authentifizierung

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.

Moderne Kryptografie

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.

Channels & Subsysteme

Ö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.

Keep-Alive & Timeouts

Konfigurierbare Keep-Alive-Intervalle und Max-Count zur Erkennung toter Verbindungen. Connect- und Read-Timeouts über SSHOptions. Automatische Re-Keying-Unterstützung über Rekey().

Port-Forwarding

Local-to-Remote-Tunneling mit OpenDirectTCPIP. Remote-to-Local-Forwarding mit RequestForwarding und CancelForwarding. Leite beliebigen TCP-Traffic durch die verschlüsselte SSH-Verbindung.

Umfangreiche Ereignisse

OnSSHChannelData für eingehende Daten, OnSSHChannelExitStatus für Befehlsergebnisse, OnSSHAuthBanner für Server-Banner und OnSSHError für Fehlerbehandlung. Vollständig ereignisgesteuerte Architektur.

SFTP-Client — TIdSFTPClient

Sichere Dateiübertragung über SSH. Lade Remote-Dateien und -Verzeichnisse hoch, herunter und verwalte sie — mit Fortschrittsanzeige und voller Attributunterstützung.

Sichere Dateioperationen

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.

  • Get / Put — lade Dateien per Pfad oder Stream herunter und hoch
  • ListDirectory — liste Inhalte von Remote-Verzeichnissen samt Dateiattributen
  • Delete / Rename — verwalte Remote-Dateien und -Verzeichnisse
  • MakeDirectory / RemoveDirectory — lege Ordner an und entferne sie
  • OnSFTPProgress — verfolge den Übertragungsfortschritt mit übertragenen Bytes, Gesamtgröße und Abbrechen-Unterstützung
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;

File Transfers

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.

Directory Operations

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.

File Attributes

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().

String Helpers

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.

SSH Authentication

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.

Events & Progress

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.

Upgrade Your Indy Components

Download sgcIndy for free and bring modern TLS support to your applications.