Recursos do sgcIndy

Componentes TCP/IP Indy aprimorados com suporte a OpenSSL 1.1/3.0, autenticação XOAuth2 e rede melhorada para Delphi e Free Pascal.

Suporte moderno a OpenSSL

Atualize suas aplicações Indy com as bibliotecas OpenSSL mais recentes e os padrões TLS atuais.

OpenSSL 1.1

Suporte total a OpenSSL 1.1.x com TLS 1.2 e TLS 1.3. Substituição direta para a integração legada do Indy com OpenSSL.

OpenSSL 3.0

Suporte à série mais recente do OpenSSL 3.x com a nova arquitetura de providers, conformidade com FIPS e gerenciamento aprimorado de cipher suites.

TLS 1.3

Suporte de primeira classe a TLS 1.3 com retomada 0-RTT, desempenho aprimorado de handshake e cipher suites modernos.

XOAuth2 e TCP/IP aprimorado

Autenticação XOAuth2

Suporte nativo a XOAuth2 para Gmail, Outlook e outros provedores OAuth 2.0. Autentique conexões SMTP, IMAP e POP3 com fluxos OAuth modernos.

TCP/IP aprimorado

Tratamento melhorado de conexões, gerenciamento de keep-alive, controle de timeout e gerenciamento de buffer em relação aos componentes Indy padrão.

Gratuito e aberto

O sgcIndy é gratuito para usar. Compatível com Delphi 7 até RAD Studio 13 e Free Pascal/Lazarus. Sem taxas de licença nem royalties.

Cliente SSH — TIdSSHClient

Cliente SSH 2.0 completo para conexões remotas seguras. Execute comandos, abra shells interativos e configure encaminhamento de portas — tudo por canais criptografados.

Execução remota segura

O TIdSSHClient cuida do ciclo de vida completo do SSH: troca de versão, negociação de chaves, autenticação do usuário e gerenciamento de canais. Conecte-se a qualquer servidor SSH e execute comandos, abra shells ou encaminhe portas com uma API de componente Delphi limpa.

  • Autenticação por senha, chave pública e teclado-interativo
  • Execute() — executa um comando remoto e obtém a saída em uma única chamada
  • RequestShell / RequestPTY — abre sessões de terminal interativas
  • Encaminhamento de portas — tunelamento TCP/IP local e remoto via OpenDirectTCPIP e RequestForwarding
  • Multicanal — abre múltiplas sessões simultâneas em uma única conexão
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;

    // Execute a command and get output
    Output := SSH.Execute('ls -la /var/log');
    Memo1.Text := Output;

    SSH.Disconnect;
  finally
    SSH.Free;
  end;
end;

Autenticação

Métodos de senha, chave pública (RSA, ECDSA, ED25519) e teclado-interativo. Carregue chaves privadas a partir de arquivos PEM com passphrase opcional. Verificação de chave do host via evento OnSSHHostKey.

Criptografia moderna

Troca de chaves Curve25519, ECDH e Diffie-Hellman. Cifras AES-CTR e AES-GCM. Autenticação de mensagens HMAC-SHA2. Preferências de algoritmo configuráveis via propriedade Algorithms.

Canais e subsistemas

Abra vários canais em uma única conexão com OpenChannel. Solicite exec, shell ou subsystem (como SFTP) por canal. Envie dados, sinais e EOF independentemente por canal.

Keep-alive e timeouts

Intervalo e contagem máxima de keep-alive configuráveis para detectar conexões mortas. Timeouts de conexão e leitura via SSHOptions. Suporte automático a re-keying via Rekey().

Encaminhamento de portas

Tunelamento local-para-remoto com OpenDirectTCPIP. Encaminhamento remoto-para-local com RequestForwarding e CancelForwarding. Encaminhe qualquer tráfego TCP pela conexão SSH criptografada.

Eventos completos

OnSSHChannelData para dados recebidos, OnSSHChannelExitStatus para resultados de comandos, OnSSHAuthBanner para banners do servidor e OnSSHError para tratamento de erros. Arquitetura totalmente orientada a eventos.

Cliente SFTP — TIdSFTPClient

Transferência segura de arquivos via SSH. Faça upload, download e gerencie arquivos e diretórios remotos com acompanhamento de progresso e suporte completo a atributos.

Operações de arquivo seguras

O TIdSFTPClient é construído sobre o TIdSSHClient e cuida do subsystem SFTP automaticamente. Oferece uma API de alto nível para todas as operações de arquivo comuns — sem precisar gerenciar canais SSH ou o protocolo SFTP manualmente.

  • Get / Put — baixa e envia arquivos por caminho ou stream
  • ListDirectory — lista o conteúdo de um diretório remoto com atributos de arquivo
  • Delete / Rename — gerencia arquivos e diretórios remotos
  • MakeDirectory / RemoveDirectory — cria e remove pastas
  • OnSFTPProgress — acompanha o progresso da transferência com bytes transferidos, tamanho total e suporte ao cancelamento
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;

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

Transferências de arquivos

Get() baixa arquivos remotos para um caminho local ou TStream. Put() envia a partir de um caminho local ou TStream. Tamanho de buffer configurável via SFTPBufferSize para throughput ideal. OnSFTPProgress dispara durante a transferência com bytes transferidos, tamanho total e um flag Cancel.

Operações de diretório

ListDirectory() retorna TIdSFTPDirectoryItems com nome do arquivo, tamanho, permissões, timestamps e tipo para cada entrada. MakeDirectory() e RemoveDirectory() para gerenciamento de pastas. GetCurrentDirectory() retorna o diretório de trabalho remoto.

Atributos de arquivo

Stat() e LStat() recuperam tamanho, permissões, UID/GID e timestamps. SetStat() modifica atributos remotos. FileExists(), DirectoryExists() e FileSize() para verificações rápidas. Suporte a symlinks via Symlink() e ReadLink().

Helpers de string

GetFileAsString() lê um arquivo remoto diretamente para uma string Delphi. PutFileFromString() grava uma string em um arquivo remoto. RealPath() resolve caminhos relativos ou simbólicos para sua localização absoluta no servidor.

Autenticação SSH

Herda toda a autenticação SSH do TIdSSHClient: senha, chave pública (RSA, ECDSA, ED25519) e teclado-interativo. Defina credenciais pela propriedade Authentication. Evento OnSSHHostKey para verificação do servidor.

Eventos e progresso

OnSFTPProgress acompanha bytes transferidos e tamanho total com um flag Cancel para abortar transferências. OnSFTPError fornece código e mensagem de erro. OnSFTPStatus para atualizações de status. OnSFTPDirectoryList dispara quando a listagem do diretório é concluída.

Atualize seus componentes Indy

Baixe o sgcIndy gratuitamente e leve o suporte moderno a TLS para as suas aplicações.