Assinatura Digital (registro EAD)

Bematech

Assinatura Digital (registro EAD)

 

A Bematech disponibiliza uma dll chamada "sign_bema.dll" que permite gerar as chaves pública e privada, além de assinar o arquivo com o registro EAD, conforme exigências do Convênio PAF-ECF.

 

Importante saber:

  • O Fisco possui um programa chamado "eECFc" que faz a validação do arquivo com base na chave pública informada.

  • A software-house deverá criar um arquivo XML com o seguinte conteúdo:

<?xml version="1.0" ?>

<empresa_desenvolvedora>

 <nome></nome>

   <chave>

     <modulo></modulo>

     <expoente_publico>03</expoente_publico>

   </chave>

</empresa_desenvolvedora>

 

Onde:

  • Na TAG <nome> deve ser informado o nome da software-house.

  • Na TAG <modulo> deve ser informada a chave pública gerada.

  • Na TAG <expoente_publico> deve ser informado o expoente de validação. Para Bematech o expoente é 03.

  • A nomenclatura do arquivo é formada pelo nome da sofware-house mais a extensão ".xml", exemplo: "TESTE.xml".

  • O arquivo .xml deve ser salvo na pasta "SHOUSE", localizada onde o "eECFc" foi instalado.

Observação:

  • A "libeay32.dll" deve estar junta com a "sign_bema.dll" na pasta da aplicação para que as funções possam ser executadas corretamente.

A "sign_bema.dll" possui as seguintes funções:

A declaração destas funções em VB é:

 

Private Declare Function genkkey Lib "sign_bema.dll" (ByVal cChavePublica As String, ByVal cChavePrivada As String) As Integer

 

Private Declare Function setLibType Lib "sign_bema.dll" (iTipo as Integer) As Integer

 

Private Declare Function generateEAD Lib "sign_bema.dll" (ByVal cNomeArquivo As String, ByVal cChavePublica As String, ByVal cChavePrivada As String, ByVal cEAD As String, ByVal iSign As Integer) As Integer

 

Private Declare Function validateFile Lib "sign_bema.dll" (ByVal cNomeArquivo As String, ByVal cChavePublica As String, ByVal cChavePrivada As String) As Integer

 

Private Declare Function md5FromFile Lib "sign_bema.dll" (ByVal cNomeArquivo As String, ByVal MD5 As String) As Integer

 

A declaração destas funções em Delphi é:

 

function genkkey( cChavePublica: String; cChavePrivada: String ): integer; stdcall; external 'sign_bema.dll';

 

function setLibType( iTipo: integer ): integer; stdcall; external 'sign_bema.dll';

 

function generateEAD( cNomeArquivo: String; cChavePublica: String; cChavePrivada: String; cEAD:String; iSign: Integer): integer; stdcall; external 'sign_bema.dll';

 

function validateFile( cNomeArquivo: String; cChavePublica: String; cChavePrivada: String ): integer; stdcall; external 'sign_bema.dll';

 

function md5FromFile( NomeArq: String; MD5: String ): integer; stdcall; external 'sign_bema.dll';