Ir para conteúdo
  • Cadastre-se

dev botao

ACBrDFeSSL Obrigando DLLs


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

Recommended Posts

Bom dia pessoal! Estou muito grato por ter obtido ajuda da ACBr para assinar os arquivos do Bloco X (PAF-ECF) para Santa Catarina.

Instanciei e configurei um objeto da classe TDFeSSL para poder usar a assinatura no meu PDV. Até aí tudo bem, embarquei as DLLs necessárias junto ao sistema PDV para realizar a assinatura (optei por LibXML2.)

O problema é que no meu sistema de Gestão fiz uma configuração de Certificado de Assinatura padrão, e pra não acessar a janela de seleção de certificado do Windows (que dá Access Violation quando tem o programa dos Bancos instalado), uso a TDFeSSL para acessar a lista de certificados ( StoreName := 'My' e LerCertificadosStore(); ) . Estou usando Delphi 7 . Configurei a proprieadade SSLCryptLib como cryWinCrypt, justamente pra não precisar solicitar DLLs extras.

No ACBr.inc eu deixei descomentado as diretivas

{$DEFINE DFE_SEM_OPENSSL}

{$DEFINE DFE_SEM_XMLSEC}

{$DEFINE DFE_SEM_LIBXML2}

 

O problema:

Mesmo assim, ao executar meu sistema, está pedindo a libxml2.dll e uma série de dlls relacionadas! 

No librarypath está apontando para o ACBr.inc correto. Já até adicionei as diretivas direto no fonte, e nada. No sistema de gestão, só quero acessar a store de certificados pra listá-los num combo, e gravar o número de série, mais nada. Não envolve assinatura. Pq a exigência dessas DLLs?

Existe alguma outra classe que posso usar para esse objetivo que não dependa dessas DLLs (só use Crypt32?)

Muito obrigado mesmo pela ajuda!!

Tenham um ótimo dia e semana.

 

Editado por Gustavo Espíndola
Link para o comentário
Compartilhar em outros sites

  • Moderadores
19 minutos atrás, Gustavo Espíndola disse:

No ACBr.inc eu deixei descomentado as diretivas

{$DEFINE DFE_SEM_OPENSSL}

{$DEFINE DFE_SEM_XMLSEC}

{$DEFINE DFE_SEM_LIBXML2}

Após fazer essa alteração, você recompilou/reinstalou o ACBr?

Se não faça isso, de preferência marcando a opção de remover os arquivos antigos do disco.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores
24 minutos atrás, Gustavo Espíndola disse:

Mesmo assim, ao executar meu sistema, está pedindo a libxml2.dll e uma série de dlls relacionadas! 

Após mudar o ACBr.inc, rode novamente o ACBrInstall, para que todas as BPLs sejam recompiladas

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

5 minutos atrás, BigWings disse:

Após fazer essa alteração, você recompilou/reinstalou o ACBr?

Se não faça isso, de preferência marcando a opção de remover os arquivos antigos do disco.

Bom, não tentei reinstalar, acredito que a cada reinstalação é gerado um novo ACBr.inc na pasta lib/delphi/libd7 baseando-se nos checkbox marcados no instalador, não é? posso ter entendido errado, porém..

mas mesmo colocando as diretivas direto no fonte, na unit ACBrDFeSSL.pas, continua exigindo as dlls...

Vou fazer o teste do mesmo jeito, obrigado!

1 minuto atrás, Daniel Simoes disse:

Após mudar o ACBr.inc, rode novamente o ACBrInstall, para que todas as BPLs sejam recompiladas

Ok!! obrigado! Vou tentar! Mas assim, devo alterar o ACBr.inc da fontes/ACBrComum antes de reinstalar? ou da Lib/Delphi/LibD7? Obrigado!!

Editado por Gustavo Espíndola
Link para o comentário
Compartilhar em outros sites

2 horas atrás, Daniel Simoes disse:

Após mudar o ACBr.inc, rode novamente o ACBrInstall, para que todas as BPLs sejam recompiladas

 

2 horas atrás, Daniel Simoes disse:

Após mudar o ACBr.inc, rode novamente o ACBrInstall, para que todas as BPLs sejam recompiladas


Boa tarde!

Bom, reinstalei com o instalador após mudar o .inc no Fontes/ACBrComum e também no Libd7, e mesmo assim continua solicitando a dll...

bom, uso o objeto somente assim (muito simples):

Instancio, carrego a store e percorro a lista concatenando os dados:

          CertBlocoX := TDFeSSL.Create;
          CertBlocoX.SSLCryptLib := cryWinCrypt;          
          CertBlocoX.StoreName := 'My';
          CertBlocoX.LerCertificadosStore;

aqui eu carrego o certificado pelo número de série pra acessar a data de vencimento e SubjectName...

      CertBlocoX.Clear;
      CertBlocoX.SSLCryptLib := cryWinCrypt;                                                                
      CertBlocoX.NumeroSerie := String(cbCertBlocoX.Properties.Items[cbCertBlocoX.SelectedItem].Value);
      CertBlocoX.CarregarCertificado;
      

Nos dois casos, só configuro a CryptLib, HTTPClass e SignLib ficam como None... e o ACBr.inc como postei acima.

Lembrando que forcei as diretivas direto no .pas e mesmo assim solicita as dlls..

Desde já, muito obrigado!

 

*edit* verifiquei e BPLs e DCUs foram todos regerados..

Editado por Gustavo Espíndola
Link para o comentário
Compartilhar em outros sites

  • Administradores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2053 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.