Características de sgcIndy
Componentes Indy TCP/IP mejorados con soporte de OpenSSL 1.1/3.0, autenticación XOAuth2 y mejoras de red para Delphi y Free Pascal.
Componentes Indy TCP/IP mejorados con soporte de OpenSSL 1.1/3.0, autenticación XOAuth2 y mejoras de red para Delphi y Free Pascal.
Actualiza tus aplicaciones Indy con las últimas bibliotecas OpenSSL y los estándares TLS más recientes.
Soporte completo de OpenSSL 1.1.x con TLS 1.2 y TLS 1.3. Reemplazo directo de la integración heredada de OpenSSL en Indy.
Soporte de la última serie OpenSSL 3.x con la nueva arquitectura de proveedores, conformidad con FIPS y mejor gestión de las suites de cifrado.
Soporte de primera clase de TLS 1.3 con reanudación 0-RTT, mejor rendimiento del handshake y suites de cifrado modernas.
Soporte integrado de XOAuth2 para Gmail, Outlook y otros proveedores de OAuth 2.0. Autentica conexiones SMTP, IMAP y POP3 con flujos OAuth modernos.
Mejor gestión de conexiones, control de keep-alive, control de timeouts y gestión de buffers respecto a los componentes Indy estándar.
sgcIndy es de uso gratuito. Compatible con Delphi 7 hasta RAD Studio 13 y con Free Pascal/Lazarus. Sin tarifas de licencia ni regalías.
Cliente SSH 2.0 con todas las funciones para conexiones remotas seguras. Ejecuta comandos, abre shells interactivos y configura reenvío de puertos, todo sobre canales cifrados.
TIdSSHClient gestiona el ciclo de vida SSH completo: intercambio de versiones, negociación de claves, autenticación de usuario y gestión de canales. Conéctate a cualquier servidor SSH y ejecuta comandos, abre shells o reenvía puertos con una API de componentes Delphi limpia.
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;
// Ejecuta un comando y obtiene la salida
Output := SSH.Execute('ls -la /var/log');
Memo1.Text := Output;
SSH.Disconnect;
finally
SSH.Free;
end;
end;
Métodos de contraseña, clave pública (RSA, ECDSA, ED25519) y teclado interactivo. Carga claves privadas desde archivos PEM con frase de paso opcional. Verificación de clave de host mediante el evento OnSSHHostKey.
Intercambio de claves Curve25519, ECDH y Diffie-Hellman. Cifrados AES-CTR y AES-GCM. Autenticación de mensajes HMAC-SHA2. Preferencias de algoritmos configurables mediante la propiedad Algorithms.
Abre varios canales sobre una sola conexión con OpenChannel. Solicita exec, shell o un subsistema (como SFTP) por canal. Envía datos, señales y EOF de forma independiente por canal.
Intervalo y conteo máximo de keep-alive configurables para detectar conexiones muertas. Timeouts de conexión y lectura mediante SSHOptions. Soporte de re-keying automático con Rekey().
Túneles locales a remotos con OpenDirectTCPIP. Reenvío remoto a local con RequestForwarding y CancelForwarding. Tuneliza cualquier tráfico TCP a través de la conexión SSH cifrada.
OnSSHChannelData para datos entrantes, OnSSHChannelExitStatus para resultados de comandos, OnSSHAuthBanner para los banners del servidor y OnSSHError para la gestión de errores. Arquitectura totalmente basada en eventos.
Transferencia segura de archivos sobre SSH. Sube, descarga y gestiona archivos y directorios remotos con seguimiento del progreso y soporte completo de atributos.
TIdSFTPClient se construye sobre TIdSSHClient y gestiona el subsistema SFTP automáticamente. Proporciona una API de alto nivel para todas las operaciones comunes con archivos, sin necesidad de gestionar manualmente canales SSH ni el protocolo 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;
// Sube un archivo
SFTP.Put('C:\local\report.pdf',
'/remote/reports/report.pdf');
// Lista el directorio
Items := SFTP.ListDirectory('/remote/reports');
for i := 0 to Items.Count - 1 do
Memo1.Lines.Add(Items[i].FileName);
// Descarga un archivo
SFTP.Get('/remote/data.csv',
'C:\local\data.csv');
SFTP.Disconnect;
finally
SFTP.Free;
end;
end;
Get() descarga archivos remotos a una ruta local o TStream. Put() sube desde una ruta local o TStream. Tamaño de buffer configurable mediante SFTPBufferSize para un rendimiento óptimo. OnSFTPProgress se dispara durante la transferencia con bytes transferidos, tamaño total y una bandera Cancel.
ListDirectory() devuelve TIdSFTPDirectoryItems con nombre de archivo, tamaño, permisos, marcas de tiempo y tipo para cada entrada. MakeDirectory() y RemoveDirectory() para la gestión de carpetas. GetCurrentDirectory() devuelve la ruta de trabajo remota.
Stat() y LStat() obtienen tamaño, permisos, UID/GID y marcas de tiempo. SetStat() modifica los atributos remotos. FileExists(), DirectoryExists() y FileSize() para comprobaciones rápidas. Soporte de symlinks mediante Symlink() y ReadLink().
GetFileAsString() lee un archivo remoto directamente en una cadena Delphi. PutFileFromString() escribe una cadena en un archivo remoto. RealPath() resuelve rutas relativas o simbólicas a su ubicación absoluta en el servidor.
Hereda toda la autenticación SSH de TIdSSHClient: contraseña, clave pública (RSA, ECDSA, ED25519) y teclado interactivo. Establece credenciales mediante la propiedad Authentication. Evento OnSSHHostKey para la verificación del servidor.
OnSFTPProgress rastrea los bytes transferidos y el tamaño total con una bandera Cancel para abortar transferencias. OnSFTPError proporciona código y mensaje de error. OnSFTPStatus para actualizaciones de estado. OnSFTPDirectoryList se dispara cuando termina el listado del directorio.