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.
Componentes TCP/IP Indy aprimorados com suporte a OpenSSL 1.1/3.0, autenticação XOAuth2 e rede melhorada para Delphi e Free Pascal.
Atualize suas aplicações Indy com as bibliotecas OpenSSL mais recentes e os padrões TLS atuais.
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.
Suporte à série mais recente do OpenSSL 3.x com a nova arquitetura de providers, conformidade com FIPS e gerenciamento aprimorado de cipher suites.
Suporte de primeira classe a TLS 1.3 com retomada 0-RTT, desempenho aprimorado de handshake e cipher suites modernos.
Suporte nativo a XOAuth2 para Gmail, Outlook e outros provedores OAuth 2.0. Autentique conexões SMTP, IMAP e POP3 com fluxos OAuth modernos.
Tratamento melhorado de conexões, gerenciamento de keep-alive, controle de timeout e gerenciamento de buffer em relação aos componentes Indy padrão.
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 2.0 completo para conexões remotas seguras. Execute comandos, abra shells interativos e configure encaminhamento de portas — tudo por canais criptografados.
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.
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;
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.
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.
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.
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().
Tunelamento local-para-remoto com OpenDirectTCPIP. Encaminhamento remoto-para-local com RequestForwarding e CancelForwarding. Encaminhe qualquer tráfego TCP pela conexão SSH criptografada.
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.
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.
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.
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;
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.
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.
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().
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.
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.
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.