Ir para conteúdo
  • Cadastre-se

dev botao

Assinatura MD5 em BPE (SC)


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 574 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde, em Santa Catarina é necessário utilizar a criptografia MD5 na tag <infCpl> do BPE (https://www.sef.sc.gov.br/arquivos_portal/servicos/160/Anexo_II___Ato_DIAT_n__07_2022.pdf) conforme o texto a seguir:

IV – concretizada a venda, registrar no campo “infCpl” do XML do respectivo BP-e o número do DAV que originou a operação, o Identificador único do DAF (IdDAF) que gerou o conteúdo de informação relativo ao XML, e a assinatura MD5 do PAF-BP-e, com o seguinte formato: #DAV “N”, onde N representa o número do Documento Auxiliar de Venda, #DAF “X” onde X representa o Identificador único do DAF, #GPS “P” onde P representa o Posicionamento Global de instalação do PAF-BP-e (ex: -27.58983,-48.5503673), ou do dispositivo móvel onde é executado Módulo Específico Embarcado do PAF-BP-e (MEE).

Exemplo:

#DAV1234567890123 

#DAF1234567890ABCDEF123456 (Base64URL)

#GPS-27.541234,-48.503573

#MD51234567890ABCDEF123456

 

<infAdic>
            <infCpl>#DAV0000000012824#GPS-27.20171,-49.63195#MD5F315C16FC27303FE66C6A1286D5E930A</infCpl>
</infAdic>

Poderiam me ajudar quanto a em que momento deve ser gerado o MD5? ( O texto não especifica o momento da geração do MD5, se é antes ou depois da assinatura digital com certificado e envio pra SEFA...)

a) Gera o xml e calcula o md5 e depois assina digitalmente ou

b) Gera o xml, assina digitalmente e depois calcula o MD5 ???

c) ou Não é o arquivo todo que é considerado na assinatura MD5 e so depois do cálculo e incluida a informação na tag infcpl..

d) ???

Ja econtrei aqui no forum um código que gera o MD5 de um arquivo com o Indy:

function MD5(const fileName : string) : string;
var
  idmd5 : TIdHashMessageDigest5;
  fs : TFileStream;
begin
  idmd5 := TIdHashMessageDigest5.Create;

  fs := TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite) ;
  try
    result := idmd5.HashStreamAsHex(fs);
  finally
    fs.Free;
    idmd5.Free;
  end;
end;

 

 

 

 

Postado
46 minutos atrás, Italo Giurizzato Junior disse:

Boa tarde Sandro,

No meu entendimento todas essas informações serão geradas, concatenadas e informadas no campo InfCpl, depois o XML deve ser gerado, assinado, validado e por fim enviado para a SEFAZ. 

A duvia esta ai, se gero o MD5 na tag infcpl e depois assino o xml com o certificado digital, como é feita a checagem posterior deste arquivo pelo MD5, ja que foi alterado o arquivo original que agora está com a seção <signature> preenchida?

Se uso o MD5Checker do arquivo todo ele não corresponde mais com o código que foi gerado no XML, pois inclusive consta o próprio código MD5 na tag infcpl alem da tag signature preenchida...

Então suponho que no momento da geração do MD5 algumas informações não devam ser incluídas?

Não sei se consegui explicar a minha dúvida sobre a checagem deste MD5 pós transmissão.

É possível checar o MD5 a partir de um arquivo neste caso, ou tem de ser desmembrado pra checagem?

Postado
50 minutos atrás, Italo Giurizzato Junior disse:

Sandro,

O MD5 vai ser gerado em cima do XML do BP-e ou em cima de outra coisa?

Pelo o que eu entendi devemos gerar o MD5 do PAF-BPe.

Quem é o PAF-BPe ?

PAF-Bpe é O Programa Aplicativo Fiscal – Bilhete de Passagem Eletrônico (PAF-BP-e)

Tem razão Italo, devem ser informações do software emissor do BPE, nada a ver com o xml do BPE em si.

 

  • Este tópico foi criado há 574 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.