Esocial Classes - Gerar, assinar e transmitir - em harbour puro

10 views
Skip to first unread message

Marcelo Antonio Lázzaro Carli

unread,
3:18 PM (1 hour ago) 3:18 PM
to Marcelo Antonio Lázzaro Carli

Esocial-classes

eSocial Bridge for Harbour 🚀 Uma biblioteca nativa e de alta performance desenvolvida em Harbour para geração, validação e assinatura digital dos eventos de SST (Saúde e Segurança do Trabalho) e demais obrigações do eSocial. Contempla TODOS os eventos.

O grande diferencial deste projeto é a ponte criptográfica (esocial_crypto.prg), que realiza a assinatura digital SHA256 utilizando diretamente as APIs nativas do ecossistema Windows (CryptoAPI). Isso elimina completamente a dependência de executáveis externos (como OpenSSL via linha de comando ou utilitários de terceiros), garantindo maior velocidade, segurança e facilidade de distribuição do seu sistema.

  • Gestão de Certificados Modernizada: Seleção, leitura e extração de chaves públicas/privadas de certificados digitais instalados no repositório do Windows (MY) de forma 100% nativa. Dispensa totalmente o uso do antigo e problemático CAPICOM.dll.
  •  

Principais Características Ponte Criptográfica Nativa (esocial_crypto.prg): Assinatura digital padrão XML-DSIG usando a CryptoAPI do Windows (crypt32.dll / advapi32.dll) através de código C acoplado via #pragma BEGINDUMP.

Geração Automatizada de XML: Classes estruturadas que geram os Schemas XML rigorosamente dentro das regras e versões vigentes do eSocial (Ex: Evento S-2221 - Exame Toxicológico).

Abstração de Complexidade: Orientação a Objetos simples e intuitiva para preenchimento de informações do empregador, trabalhador e dados clínicos/laboratoriais.

Compatibilidade Total: Pronto para compilação com Harbour 3.2+ utilizando o compilador C Borland (bcc).

🛠️ Como Funciona? (Exemplo de Uso) Integrar os eventos do eSocial ao seu sistema ERP se resume a poucas linhas de código:

Snippet de código

#include "hbclass.ch"

PROCEDURE Main() LOCAL oS2221, cXml

// Instancia o evento S-2221 (Exame Toxicológico)

oS2221 := TEsocialEventoS2221():New()

oS2221:SetAmbiente( "2" ) // Produção Restrita

oS2221:SetEmpregador( "1", "99999999999999" )

oS2221:SetTrabalhador( "122434108269", "M12345", "101" )

oS2221:SetMedico( "Dr. Marcelo Lazzaro", "999999", "SP" )

oS2221:SetEventoToxico( "2026-06-02", "68467240000134", "TX12345678" )

// Gera o XML bruto limpo

cXml := oS2221:ToXml()

// Pronto para passar pela esocial_crypto para assinatura digital!

? "XML gerado com sucesso!"

RETURN

🏗️ Como Compilar O projeto utiliza o gerenciador de compilação hbmk2 nativo do Harbour. Certifique-se de vincular as bibliotecas de sistema do Windows responsáveis pela criptografia:

Bash @echo off setlocal

set "PATH=C:\Borland\bcc58\Bin;C:\MiniGUI\Harbour\bin\bin;%PATH%" set "HB_COMPILER=bcc"

:: Executa a compilação enviando a saída para o filtro FINDSTR, eliminando linhas que contenham "Warning" C:\MiniGUI\Harbour\bin\hbmk2.exe demo_classes.prg esocial_classes.prg esocial_crypto.prg -comp=bcc -lhbwin -LC:\Borland\bcc58\Lib\PSDK -lcrypt32 -ladvapi32 -q -w0 2>&1 | findstr /V /I /C:"Warning"

rem pause endlocal

👥 Autores e Filosofia do Projeto Este projeto nasceu da união de esforços de desenvolvedores que acreditam na evolução contínua da linguagem Harbour para sistemas de missão crítica corporativos:

Franklin Brasil — Concepção do projeto, arquitetura de classes de negócios do eSocial, mapeamento das regras de validação governamentais.

Marcelo Antonio Lázzaro — mapeamento das regras de validação governamentais e testes de integração ERP.

🤝 Compromisso com a Comunidade Harbour Este projeto não tem a pretensão de concorrer com nenhuma solução comercial ou biblioteca Open Source existente no ecossistema Harbour.

O objetivo principal desta classe é acrescentar uma alternativa técnica e gratuita para a comunidade, servindo como material de estudo e fornecendo uma fundação sólida de código nativo para quem precisa resolver o desafio da assinatura digital SHA256 (padrão eSocial) diretamente em C/Harbour, sem intermediários. Toda contribuição, correção ou melhoria enviada via Pull Request será muito bem-vinda para fortalecer nossa comunidade!

📄 Licença Este projeto está sob a licença MIT - consulte o arquivo LICENSE para obter detalhes. Você está livre para usar, modificar e distribuir comercialmente esta ponte criptográfica.

 

https://github.com/malcarli1/Esocial-classes

 

 

Att.

 

                Marcelo A. L. Carli

                      Marília/SP

         Capital Nacional do Alimento ®

      https://malc-informatica.ueniweb.com

                 Insta: @malcarli25

      Email / Skype: marcelo...@gmail.com

 

******************************************************************************

Se for repassar, apague o meu nome e endereço.

Ajude a combater a propagação de vírus e spams

coloque TODOS os destinatários em CÓPIA OCULTA (Cco / Bcc)

******************************************************************************

 

 


Não contém vírus.www.avast.com
Reply all
Reply to author
Forward
0 new messages