Functies — sgcIndy | eSeGeCe

sgcIndy-functies

Uitgebreide Indy TCP/IP-componenten met OpenSSL 1.1/3.0-ondersteuning, XOAuth2-authenticatie en verbeterd netwerken voor Delphi en Free Pascal.

Moderne OpenSSL-ondersteuning

Breng je Indy-toepassingen up-to-date met de nieuwste OpenSSL-bibliotheken en TLS-standaarden.

OpenSSL 1.1

Volledige ondersteuning voor OpenSSL 1.1.x met TLS 1.2 en TLS 1.3. Drop-in-vervanging voor de legacy Indy-OpenSSL-integratie.

OpenSSL 3.0

Ondersteuning voor de nieuwste OpenSSL 3.x-serie met de nieuwe provider-architectuur, FIPS-compliance en verbeterd beheer van cipher suites.

TLS 1.3

Eersteklas TLS 1.3-ondersteuning met 0-RTT-hervatting, verbeterde handshake-prestaties en moderne cipher suites.

XOAuth2 & uitgebreid TCP/IP

XOAuth2-authenticatie

Ingebouwde XOAuth2-ondersteuning voor Gmail, Outlook en andere OAuth 2.0-providers. Authenticeer SMTP-, IMAP- en POP3-verbindingen met moderne OAuth-flows.

Uitgebreid TCP/IP

Verbeterde verbindingsafhandeling, keep-alive-beheer, timeout-controle en bufferbeheer boven op standaard Indy-componenten.

Gratis & open

sgcIndy is gratis te gebruiken. Compatibel met Delphi 7 tot en met RAD Studio 13 en Free Pascal/Lazarus. Geen licentiekosten of royalty's.

SSH-client — TIdSSHClient

Volledige SSH 2.0-client voor veilige externe verbindingen. Voer commando's uit, open interactieve shells en stel port forwarding in — alles over versleutelde kanalen.

Veilige externe uitvoering

TIdSSHClient handelt de volledige SSH-levenscyclus af: versie-uitwisseling, sleutelonderhandeling, gebruikersauthenticatie en kanaalbeheer. Verbind met elke SSH-server en voer commando's uit, open shells of forward poorten met een nette Delphi-component-API.

  • Password, public key & keyboard-interactive-authenticatie
  • Execute() — voer in één aanroep een extern commando uit en haal de output op
  • RequestShell / RequestPTY — open interactieve terminalsessies
  • Port forwarding — lokale en externe TCP/IP-tunneling via OpenDirectTCPIP en RequestForwarding
  • Multi-channel — open meerdere gelijktijdige sessies over één verbinding
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;

Authenticatie

Wachtwoord, public key (RSA, ECDSA, ED25519) en keyboard-interactive-methoden. Laad private keys uit PEM-bestanden met optionele passphrase. Host-key-verificatie via het OnSSHHostKey-event.

Moderne cryptografie

Curve25519-, ECDH- en Diffie-Hellman-sleuteluitwisseling. AES-CTR- en AES-GCM-ciphers. HMAC-SHA2-berichtauthenticatie. Configureerbare algoritmevoorkeuren via de Algorithms-property.

Kanalen & subsystemen

Open meerdere kanalen over één verbinding met OpenChannel. Vraag per kanaal exec, shell of een subsysteem (zoals SFTP) aan. Verstuur data, signalen en EOF onafhankelijk per kanaal.

Keep-alive & timeouts

Configureerbaar keep-alive-interval en max-count om dode verbindingen te detecteren. Connect- en read-timeouts via SSHOptions. Automatische rekey-ondersteuning via Rekey().

Port forwarding

Lokaal-naar-extern tunneling met OpenDirectTCPIP. Extern-naar-lokaal forwarding met RequestForwarding en CancelForwarding. Tunnel elk TCP-verkeer door de versleutelde SSH-verbinding.

Uitgebreide events

OnSSHChannelData voor binnenkomende data, OnSSHChannelExitStatus voor commando-resultaten, OnSSHAuthBanner voor server-banners en OnSSHError voor foutafhandeling. Volledig event-gedreven architectuur.

SFTP-client — TIdSFTPClient

Veilige bestandsoverdracht over SSH. Upload, download en beheer externe bestanden en mappen met voortgangsregistratie en volledige attribuutondersteuning.

Veilige bestandsbewerkingen

TIdSFTPClient is gebouwd boven op TIdSSHClient en handelt het SFTP-subsysteem automatisch af. Het biedt een high-level API voor alle gangbare bestandsbewerkingen — je hoeft SSH-kanalen of het SFTP-protocol niet zelf te beheren.

  • Get / Put — download en upload bestanden via pad of stream
  • ListDirectory — toon de inhoud van een externe map met bestandsattributen
  • Delete / Rename — beheer externe bestanden en mappen
  • MakeDirectory / RemoveDirectory — maak en verwijder mappen
  • OnSFTPProgress — volg de overdracht met bytes overgedragen, totale grootte en annulerings-ondersteuning
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;

Bestandsoverdrachten

Get() downloadt externe bestanden naar een lokaal pad of TStream. Put() uploadt vanuit een lokaal pad of TStream. Configureerbare buffergrootte via SFTPBufferSize voor optimale doorvoer. OnSFTPProgress wordt tijdens de overdracht aangeroepen met bytes overgedragen, totale grootte en een Cancel-flag.

Mapbewerkingen

ListDirectory() retourneert TIdSFTPDirectoryItems met bestandsnaam, grootte, rechten, tijdstempels en type per item. MakeDirectory() en RemoveDirectory() voor mapbeheer. GetCurrentDirectory() geeft het externe werkpad terug.

Bestandsattributen

Stat() en LStat() halen grootte, rechten, UID/GID en tijdstempels op. SetStat() wijzigt externe attributen. FileExists(), DirectoryExists() en FileSize() voor snelle controles. Symlink-ondersteuning via Symlink() en ReadLink().

String-helpers

GetFileAsString() leest een extern bestand direct in een Delphi-string. PutFileFromString() schrijft een string naar een extern bestand. RealPath() vertaalt relatieve of symbolische paden naar hun absolute locatie op de server.

SSH-authenticatie

Erft alle SSH-authenticatie van TIdSSHClient: wachtwoord, public key (RSA, ECDSA, ED25519) en keyboard-interactive. Stel credentials in via de Authentication-property. OnSSHHostKey-event voor serververificatie.

Events & voortgang

OnSFTPProgress houdt overgedragen bytes en totale grootte bij met een Cancel-flag om overdrachten af te breken. OnSFTPError levert foutcode en -bericht. OnSFTPStatus voor statusupdates. OnSFTPDirectoryList wordt aangeroepen als de mapinhoud is opgehaald.

Beveiligingsversterking van de server

Optionele beschermingen die de TCP-, TLS- en HTTP-servercomponenten afschermen tegen veelvoorkomende aanvallen. Elke optie heeft als standaardwaarde het vorige gedrag, zodat bestaande toepassingen onaangetast blijven totdat u ze inschakelt.

Certificaatverificatie

De callback voor TLS-peerverificatie faalt niet langer open. Schakel TIdSSLOptions.StrictVerify in en het verificatieresultaat van OpenSSL wordt afgedwongen, zodat een aangepaste callback dit alleen verder kan beperken en nooit een niet-vertrouwd certificaat kan accepteren.

TLS-versterking

DisableCompression beperkt CRIME, DisableRenegotiation blokkeert door de client geïnitieerde renegotiation-DoS, en ServerCipherPreference zorgt ervoor dat de ciphervolgorde van de server de onderhandeling wint.

Slowloris-mitigatie

RequestReadTimeout begrenst de tijd om een verzoek te ontvangen, terwijl de nieuwe TIdIOHandler.SetReadDeadline een totale leesdeadline toevoegt die slow-drip-clients verslaat die een gewone inactiviteitstime-out blijven resetten.

Limieten voor verzoekgrootte

MaxRequestBodySize begrenst de Content-Length en de chunked body (antwoordt met 413), MaxHeaderTotalSize begrenst het totale aantal headerbytes (antwoordt met 431), en TIdIOHandler.MaxInputBufferSize begrenst de invoerbuffer om reads die het geheugen uitputten te stoppen.

Bescherming tegen request smuggling

StrictRequestParsing weigert dubbelzinnige verzoeken die zowel Content-Length als Transfer-Encoding bevatten, evenals negatieve chunkgroottes, en de lus voor de chunked trailer-header is nu begrensd om een DoS door uitputting van geheugen en CPU te voorkomen.

Optioneel & compatibel

Alle versterking is optioneel en heeft als standaardwaarde het vorige gedrag, zonder brekende wijzigingen. Schakel precies de beschermingen in die uw implementatie nodig heeft, van Delphi 7 tot RAD Studio 13 en Free Pascal.

Upgrade je Indy-componenten

Download sgcIndy gratis en breng moderne TLS-ondersteuning naar je toepassingen.