Ir para conteúdo
  • Cadastre-se

dev botao

Mesmo executável com WinCrypt e OpenSSL - Diretivas e Dlls


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

Recommended Posts

Postado

Olá pessoal,

Vejam se o meu raciocínio está correto.

Caso queira distribuir um mesmo executável do meu sistema, suportando configurar tanto a WinCrypt e OpenSSL (com MinGW), com somente as 2 possíveis configurações associadas:

- libWinCrypt: SSLCryptLib = cryWinCrypt; SSLHttpLib = httpWinHttp; SSLXmlSignLib = xsLibXml2;

- libOpenSSL: SSLCryptLib = cryOpenSSL; SSLHttpLib = httpOpenSSL; SSLXmlSignLib = xsXmlSec; (com MinGW)

Então em relação às diretivas de compilação, ficariam assim:

{$DEFINE DFE_SEM_OPENSSL}
{$DEFINE DFE_SEM_XMLSEC}
{$DEFINE DFE_SEM_LIBXML2}
{.$DEFINE DFE_SEM_CAPICOM}
{.$DEFINE DFE_SEM_MSXML}
{.$DEFINE DFE_SEM_INDY}

{$DEFINE USE_MINGW}

E em relação as dlls distribuídas junto com o meu executável seriam:

libxml2.dll, libxslt.dll, libexslt.dll, libiconv.dll
e
libxmlsec1.dll, libxmlsec1-openssl.dll, libxml2-2.dll, libexslt-0.dll, libxslt-1.dll, libiconv-2.dll, libintl-8.dll, libltdl-7.dll, libcharset-1.dll, libgcc_s_dw2-1.dll, libwinpthread-1.dll, zlib1.dll

E então pessoal, o entendimento é esse mesmo? Tem alguma coisa que deixei passar?

  • Moderadores
  • Solution
Postado
19 minutos atrás, Fabrício G. Araújo disse:

{$DEFINE DFE_SEM_OPENSSL}
{$DEFINE DFE_SEM_XMLSEC}
{$DEFINE DFE_SEM_LIBXML2}
{.$DEFINE DFE_SEM_CAPICOM}
{.$DEFINE DFE_SEM_MSXML}
{.$DEFINE DFE_SEM_INDY}

Invertido. Dessa forma você só poderá usar CAPICOM e MSXML, já que está desativando OpenSSL, XmlSec e LibXML2.

20 minutos atrás, Fabrício G. Araújo disse:

libxml2.dll, libxslt.dll, libexslt.dll, libiconv.dll

Você não precisa dessas DLLs se vai ativar MinGW.

20 minutos atrás, Fabrício G. Araújo disse:

libxmlsec1.dll, libxmlsec1-openssl.dll, libxml2-2.dll, libexslt-0.dll, libxslt-1.dll, libiconv-2.dll, libintl-8.dll, libltdl-7.dll, libcharset-1.dll, libgcc_s_dw2-1.dll, libwinpthread-1.dll, zlib1.dll

Contei 12 DLLs aí, na pasta ACBr\DLLs\XMLSec\MinGW\32 (assumindo que vai compilar para 32 bits) tem 14, você deve distribuir todas elas junto a sua aplicação.

  • Curtir 2
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

Obrigado por responder @BigWings.

Realmente inverti as diretivas de compilação, bobeira minha mesmo.

Agora não entendi sobre não utilização das dlls da pasta LibXml2, pois a ideia é permitir também a configuração: - libWinCrypt: SSLCryptLib = cryWinCrypt; SSLHttpLib = httpWinHttp; SSLXmlSignLib = xsLibXml2;, ou seja, para certificados A3 utilizaria WinCrypt, e para A1, utilizaria OpenSSL com MinGW, portanto seria um executável só, podendo escolher a configuração. Não teria que distribuir todas as dlls que citei?

Realmente, só teria a opção de 32 bits, e sobre as dlls da MinGW, só copiei do pdf, mas realmente pegaria todas da pasta do MinGW

  • Moderadores
Postado
23 minutos atrás, Fabrício G. Araújo disse:

Agora não entendi sobre não utilização das dlls da pasta LibXml2, pois a ideia é permitir também a configuração: - libWinCrypt: SSLCryptLib = cryWinCrypt; SSLHttpLib = httpWinHttp; SSLXmlSignLib = xsLibXml2;, ou seja, para certificados A3 utilizaria WinCrypt, e para A1, utilizaria OpenSSL com MinGW, portanto seria um executável só, podendo escolher a configuração. Não teria que distribuir todas as dlls que citei?

As DLLs da pasta MinGW substituem essas da pasta LibXML2, você pode usar libWinCrypt normalmente.

Veja a unit libxml2.pas:

{$IFDEF MSWINDOWS}
  {$IFDEF USE_MINGW}
    LIBXML2_SO = 'libxml2-2.dll';
  {$ELSE}
    LIBXML2_SO = 'libxml2.dll';
  {$ENDIF}
{$ELSE}
  LIBXML2_SO = 'libxml2.so';
{$ENDIF}

 

Com MINGW ativado, a libxml2.dll não é usada, mas sim a libxml2-2.dll.

  • Curtir 1
  • Obrigado 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Este tópico foi criado há 2232 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.