sgcIndy-functies
Uitgebreide Indy TCP/IP-componenten met OpenSSL 1.1/3.0-ondersteuning, XOAuth2-authenticatie en verbeterd netwerken voor Delphi en Free Pascal.
Uitgebreide Indy TCP/IP-componenten met OpenSSL 1.1/3.0-ondersteuning, XOAuth2-authenticatie en verbeterd netwerken voor Delphi en Free Pascal.
Breng je Indy-toepassingen up-to-date met de nieuwste OpenSSL-bibliotheken en TLS-standaarden.
Volledige ondersteuning voor OpenSSL 1.1.x met TLS 1.2 en TLS 1.3. Drop-in-vervanging voor de legacy Indy-OpenSSL-integratie.
Ondersteuning voor de nieuwste OpenSSL 3.x-serie met de nieuwe provider-architectuur, FIPS-compliance en verbeterd beheer van cipher suites.
Eersteklas TLS 1.3-ondersteuning met 0-RTT-hervatting, verbeterde handshake-prestaties en moderne cipher suites.
Ingebouwde XOAuth2-ondersteuning voor Gmail, Outlook en andere OAuth 2.0-providers. Authenticeer SMTP-, IMAP- en POP3-verbindingen met moderne OAuth-flows.
Verbeterde verbindingsafhandeling, keep-alive-beheer, timeout-controle en bufferbeheer boven op standaard Indy-componenten.
sgcIndy is gratis te gebruiken. Compatibel met Delphi 7 tot en met RAD Studio 13 en Free Pascal/Lazarus. Geen licentiekosten of royalty's.
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.
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.
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;
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.
Curve25519-, ECDH- en Diffie-Hellman-sleuteluitwisseling. AES-CTR- en AES-GCM-ciphers. HMAC-SHA2-berichtauthenticatie. Configureerbare algoritmevoorkeuren via de Algorithms-property.
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.
Configureerbaar keep-alive-interval en max-count om dode verbindingen te detecteren. Connect- en read-timeouts via SSHOptions. Automatische rekey-ondersteuning via Rekey().
Lokaal-naar-extern tunneling met OpenDirectTCPIP. Extern-naar-lokaal forwarding met RequestForwarding en CancelForwarding. Tunnel elk TCP-verkeer door de versleutelde SSH-verbinding.
OnSSHChannelData voor binnenkomende data, OnSSHChannelExitStatus voor commando-resultaten, OnSSHAuthBanner voor server-banners en OnSSHError voor foutafhandeling. Volledig event-gedreven architectuur.
Veilige bestandsoverdracht over SSH. Upload, download en beheer externe bestanden en mappen met voortgangsregistratie en volledige attribuutondersteuning.
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.
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() 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.
ListDirectory() retourneert TIdSFTPDirectoryItems met bestandsnaam, grootte, rechten, tijdstempels en type per item. MakeDirectory() en RemoveDirectory() voor mapbeheer. GetCurrentDirectory() geeft het externe werkpad terug.
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().
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.