Fonctionnalités sgcIndy
Composants Indy TCP/IP améliorés avec support OpenSSL 1.1/3.0, authentification XOAuth2 et réseau amélioré pour Delphi et Free Pascal.
Composants Indy TCP/IP améliorés avec support OpenSSL 1.1/3.0, authentification XOAuth2 et réseau amélioré pour Delphi et Free Pascal.
Mets tes applications Indy à jour avec les dernières bibliothèques OpenSSL et standards TLS.
Support complet d'OpenSSL 1.1.x avec TLS 1.2 et TLS 1.3. Remplacement prêt à l'emploi pour l'intégration OpenSSL Indy héritée.
Support de la dernière série OpenSSL 3.x avec la nouvelle architecture de providers, la conformité FIPS et une gestion améliorée des suites de chiffrement.
Support TLS 1.3 de premier ordre avec reprise 0-RTT, performances de handshake améliorées et suites de chiffrement modernes.
Support XOAuth2 intégré pour Gmail, Outlook et d'autres fournisseurs OAuth 2.0. Authentifie les connexions SMTP, IMAP et POP3 avec des flux OAuth modernes.
Gestion améliorée des connexions, du keep-alive, des timeouts et des buffers par rapport aux composants Indy standard.
sgcIndy est libre d'utilisation. Compatible avec Delphi 7 à RAD Studio 13 et Free Pascal/Lazarus. Pas de frais de licence ni de redevances.
Client SSH 2.0 complet pour des connexions distantes sécurisées. Exécute des commandes, ouvre des shells interactifs et configure la redirection de port — le tout sur des canaux chiffrés.
TIdSSHClient gère le cycle de vie SSH complet : échange de versions, négociation de clés, authentification utilisateur et gestion des canaux. Connecte-toi à n'importe quel serveur SSH et exécute des commandes, ouvre des shells ou redirige des ports avec une API de composants Delphi propre.
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;
// Exécuter une commande et obtenir la sortie
Output := SSH.Execute('ls -la /var/log');
Memo1.Text := Output;
SSH.Disconnect;
finally
SSH.Free;
end;
end;
Méthodes par mot de passe, clé publique (RSA, ECDSA, ED25519) et clavier interactif. Charge les clés privées depuis des fichiers PEM avec phrase de passe optionnelle. Vérification de la clé d'hôte via l'événement OnSSHHostKey.
Échange de clés Curve25519, ECDH et Diffie-Hellman. Chiffrements AES-CTR et AES-GCM. Authentification de message HMAC-SHA2. Préférences d'algorithmes configurables via la propriété Algorithms.
Ouvre plusieurs canaux sur une seule connexion avec OpenChannel. Demande exec, shell ou sous-système (comme SFTP) par canal. Envoie données, signaux et EOF indépendamment par canal.
Intervalle de keep-alive et nombre max configurables pour détecter les connexions mortes. Timeouts de connexion et de lecture via SSHOptions. Support du re-keying automatique via Rekey().
Tunneling local-vers-distant avec OpenDirectTCPIP. Redirection distant-vers-local avec RequestForwarding et CancelForwarding. Tunnelise n'importe quel trafic TCP via la connexion SSH chiffrée.
OnSSHChannelData pour les données entrantes, OnSSHChannelExitStatus pour les résultats des commandes, OnSSHAuthBanner pour les bannières serveur et OnSSHError pour la gestion d'erreurs. Architecture complètement orientée événements.
Transfert de fichiers sécurisé sur SSH. Upload, download et gestion des fichiers et répertoires distants avec suivi de la progression et support complet des attributs.
TIdSFTPClient est construit par-dessus TIdSSHClient et gère le sous-système SFTP automatiquement. Il fournit une API de haut niveau pour toutes les opérations de fichiers courantes — pas besoin de gérer les canaux SSH ou le protocole SFTP manuellement.
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;
// Téléverser un fichier
SFTP.Put('C:\local\report.pdf',
'/remote/reports/report.pdf');
// Lister le répertoire
Items := SFTP.ListDirectory('/remote/reports');
for i := 0 to Items.Count - 1 do
Memo1.Lines.Add(Items[i].FileName);
// Télécharger un fichier
SFTP.Get('/remote/data.csv',
'C:\local\data.csv');
SFTP.Disconnect;
finally
SFTP.Free;
end;
end;
Get() télécharge les fichiers distants vers un chemin local ou un TStream. Put() téléverse depuis un chemin local ou un TStream. Taille de buffer configurable via SFTPBufferSize pour un débit optimal. OnSFTPProgress se déclenche pendant le transfert avec les octets transférés, la taille totale et un flag Cancel.
ListDirectory() renvoie un TIdSFTPDirectoryItems avec le nom de fichier, la taille, les permissions, les timestamps et le type pour chaque entrée. MakeDirectory() et RemoveDirectory() pour la gestion des dossiers. GetCurrentDirectory() renvoie le chemin de travail distant.
Stat() et LStat() récupèrent la taille, les permissions, UID/GID et les timestamps. SetStat() modifie les attributs distants. FileExists(), DirectoryExists() et FileSize() pour des vérifications rapides. Support des symlinks via Symlink() et ReadLink().
GetFileAsString() lit un fichier distant directement dans une chaîne Delphi. PutFileFromString() écrit une chaîne dans un fichier distant. RealPath() résout les chemins relatifs ou symboliques vers leur emplacement absolu sur le serveur.
Hérite de toutes les authentifications SSH de TIdSSHClient : mot de passe, clé publique (RSA, ECDSA, ED25519) et clavier interactif. Configure les identifiants via la propriété Authentication. Événement OnSSHHostKey pour la vérification du serveur.
OnSFTPProgress suit les octets transférés et la taille totale avec un flag Cancel pour annuler les transferts. OnSFTPError fournit le code d'erreur et le message. OnSFTPStatus pour les mises à jour de statut. OnSFTPDirectoryList se déclenche quand le listage du répertoire se termine.