Funzionalità di sgcIndy
Componenti Indy TCP/IP avanzati con supporto OpenSSL 1.1/3.0, autenticazione XOAuth2 e rete migliorata per Delphi e Free Pascal.
Componenti Indy TCP/IP avanzati con supporto OpenSSL 1.1/3.0, autenticazione XOAuth2 e rete migliorata per Delphi e Free Pascal.
Aggiorna le tue applicazioni Indy con le librerie OpenSSL e gli standard TLS più recenti.
Supporto completo per OpenSSL 1.1.x con TLS 1.2 e TLS 1.3. Sostituzione drop-in per l'integrazione OpenSSL legacy di Indy.
Supporto per l'ultima serie OpenSSL 3.x con la nuova architettura basata su provider, conformità FIPS e gestione migliorata delle cipher suite.
Supporto TLS 1.3 di prima classe con ripresa 0-RTT, prestazioni migliorate dell'handshake e cipher suite moderne.
Supporto XOAuth2 integrato per Gmail, Outlook e altri provider OAuth 2.0. Autentica connessioni SMTP, IMAP e POP3 con flussi OAuth moderni.
Gestione migliorata delle connessioni, gestione keep-alive, controllo dei timeout e gestione dei buffer rispetto ai componenti Indy standard.
sgcIndy è gratuito da usare. Compatibile da Delphi 7 fino a RAD Studio 13 e Free Pascal/Lazarus. Nessun costo di licenza o royalty.
Client SSH 2.0 completo per connessioni remote sicure. Esegui comandi, apri shell interattive e configura il port forwarding — tutto su canali crittografati.
TIdSSHClient gestisce l'intero ciclo di vita SSH: scambio di versioni, negoziazione delle chiavi, autenticazione utente e gestione dei canali. Connettiti a qualsiasi server SSH ed esegui comandi, apri shell o inoltra porte con un'API di componenti Delphi pulita.
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;
// Esegui un comando e ottieni l'output
Output := SSH.Execute('ls -la /var/log');
Memo1.Text := Output;
SSH.Disconnect;
finally
SSH.Free;
end;
end;
Metodi tramite password, chiave pubblica (RSA, ECDSA, ED25519) e keyboard-interactive. Carica chiavi private da file PEM con passphrase opzionale. Verifica della chiave host tramite l'evento OnSSHHostKey.
Scambio di chiavi Curve25519, ECDH e Diffie-Hellman. Cipher AES-CTR e AES-GCM. Autenticazione dei messaggi HMAC-SHA2. Preferenze algoritmiche configurabili tramite la proprietà Algorithms.
Apri più canali su una singola connessione con OpenChannel. Richiedi exec, shell o sottosistema (come SFTP) per canale. Invia dati, segnali e EOF in modo indipendente per ciascun canale.
Intervallo di keep-alive e numero massimo configurabili per rilevare connessioni inattive. Timeout di connessione e lettura tramite SSHOptions. Supporto per re-keying automatico tramite Rekey().
Tunneling da locale a remoto con OpenDirectTCPIP. Forwarding da remoto a locale con RequestForwarding e CancelForwarding. Inoltra qualsiasi traffico TCP attraverso la connessione SSH crittografata.
OnSSHChannelData per i dati in arrivo, OnSSHChannelExitStatus per i risultati dei comandi, OnSSHAuthBanner per i banner del server e OnSSHError per la gestione degli errori. Architettura completamente basata su eventi.
Trasferimento sicuro di file su SSH. Carica, scarica e gestisci file e directory remote con tracciamento dell'avanzamento e supporto completo degli attributi.
TIdSFTPClient è costruito sopra TIdSSHClient e gestisce automaticamente il sottosistema SFTP. Fornisce un'API di alto livello per tutte le operazioni comuni sui file — senza bisogno di gestire manualmente canali SSH o il protocollo 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;
// Carica un file
SFTP.Put('C:\local\report.pdf',
'/remote/reports/report.pdf');
// Elenca la directory
Items := SFTP.ListDirectory('/remote/reports');
for i := 0 to Items.Count - 1 do
Memo1.Lines.Add(Items[i].FileName);
// Scarica un file
SFTP.Get('/remote/data.csv',
'C:\local\data.csv');
SFTP.Disconnect;
finally
SFTP.Free;
end;
end;
Get() scarica file remoti in un percorso locale o TStream. Put() carica da un percorso locale o TStream. Dimensione del buffer configurabile tramite SFTPBufferSize per un throughput ottimale. OnSFTPProgress si attiva durante il trasferimento con byte trasferiti, dimensione totale e un flag Cancel.
ListDirectory() restituisce TIdSFTPDirectoryItems con nome file, dimensione, permessi, timestamp e tipo per ogni voce. MakeDirectory() e RemoveDirectory() per la gestione delle cartelle. GetCurrentDirectory() restituisce il percorso di lavoro remoto.
Stat() e LStat() recuperano dimensione, permessi, UID/GID e timestamp. SetStat() modifica gli attributi remoti. FileExists(), DirectoryExists() e FileSize() per controlli rapidi. Supporto ai symlink tramite Symlink() e ReadLink().
GetFileAsString() legge un file remoto direttamente in una stringa Delphi. PutFileFromString() scrive una stringa in un file remoto. RealPath() risolve percorsi relativi o simbolici nella loro posizione assoluta sul server.
Eredita tutta l'autenticazione SSH da TIdSSHClient: password, chiave pubblica (RSA, ECDSA, ED25519) e keyboard-interactive. Imposta le credenziali tramite la proprietà Authentication. Evento OnSSHHostKey per la verifica del server.
OnSFTPProgress traccia i byte trasferiti e la dimensione totale con un flag Cancel per interrompere i trasferimenti. OnSFTPError fornisce codice di errore e messaggio. OnSFTPStatus per gli aggiornamenti di stato. OnSFTPDirectoryList si attiva al completamento dell'elenco delle directory.