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.

Support OpenSSL moderne

Mets tes applications Indy à jour avec les dernières bibliothèques OpenSSL et standards TLS.

OpenSSL 1.1

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.

OpenSSL 3.0

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.

TLS 1.3

Support TLS 1.3 de premier ordre avec reprise 0-RTT, performances de handshake améliorées et suites de chiffrement modernes.

XOAuth2 & TCP/IP amélioré

Authentification XOAuth2

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.

TCP/IP amélioré

Gestion améliorée des connexions, du keep-alive, des timeouts et des buffers par rapport aux composants Indy standard.

Gratuit & ouvert

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 — TIdSSHClient

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.

Exécution distante sécurisée

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.

  • Authentification par mot de passe, clé publique & clavier interactif
  • Execute() — exécute une commande distante et obtient la sortie en un seul appel
  • RequestShell / RequestPTY — ouvre des sessions de terminal interactives
  • Redirection de port — tunneling TCP/IP local et distant via OpenDirectTCPIP et RequestForwarding
  • Multi-canaux — ouvre plusieurs sessions simultanées sur une seule connexion
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;

    // 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;

Authentification

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.

Cryptographie moderne

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

Canaux & sous-systèmes

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.

Keep-Alive & timeouts

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

Redirection de port

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.

Événements riches

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.

Client SFTP — TIdSFTPClient

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.

Opérations de fichiers sécurisées

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.

  • Get / Put — télécharge et téléverse des fichiers par chemin ou flux
  • ListDirectory — liste le contenu d'un répertoire distant avec les attributs de fichiers
  • Delete / Rename — gère les fichiers et répertoires distants
  • MakeDirectory / RemoveDirectory — crée et supprime des dossiers
  • OnSFTPProgress — suit la progression du transfert avec octets transférés, taille totale et support d'annulation
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;

    // 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;

Transferts de fichiers

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.

Opérations sur les répertoires

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.

Attributs de fichiers

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

Helpers de chaînes

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.

Authentification SSH

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.

Événements & progression

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.

Mets à niveau tes composants Indy

Télécharge sgcIndy gratuitement et apporte un support TLS moderne à tes applications.