Fundadores Popular Post Daniel Simoes Posted March 20, 2017 Fundadores Popular Post Share Posted March 20, 2017 Olá pessoal, Com o intuito de acabar com a dependência da CAPICOM, nos fontes do Projeto ACBr, apliquei um amplo refactoring, nas Units de ACBrDFeSSL e suas derivadas... O que é CAPICOM ? https://en.wikipedia.org/wiki/CAPICOM Porque usávamos a CAPICOM ? Usar diretamente as APIs do Windows não é uma tarefa simples.... A CAPICOM, facilita um pouco, as tarefas que podem ser feitas com a WinCrypt (ou MS Crypto), para acesso a certificados digitais instalados no Windows Quais as desvantagens da CAPICOM ? A Microsoft condenou a mesma como obsoleta. (esse é o principal motivo) Ela precisa ser registrada no Windows para funcionar Não suporta 64 bits O que será usado no lugar da CAPICOM ? Usaremos diretamente as APIs do Windows, ou seja, a WinCrypt (também conhecida como "MS Crypto" ou "CAPI"). Ou seja, encaramos o desafio e agora usamos apenas métodos da WinCrypt para acessos a Certificados Digitais no Windows. Para facilitar o acesso a API WinCrypt, estamos usando as Units do diretório: "Fontes\Terceiros\CodeGear\", mas especificamente a Unit "ACBr_WinCrypt.pas". Quais as vantagens da WinCrypt ? Ela está presente de forma nativa, em todas as versões do Windows (desde o Windows XP), ou seja, não requer instalação. Possui versões 32 e 64 bits Não requer registro da DLL Não requer a instalação de pacotes .NET ou Java Onde posso encontrar a WinCrypt ? Ela já está instalada, de forma nativa, no seu Windows... com o nome: "crypt32.dll" Se o seu Windows é 64 bits, você encontrará a mesma em: 32 bits: "C:\Windows\SysWOW64" 64 bits "C:\Windows\System32" Se o seu Windows é 32 bits, você encontrará a mesma em: "C:\Windows\System32" O suporte a Delphi7 será mantido ? SIM. Apesar de já anunciarmos o fim do Suporte a D7, tivemos o cuidado de testar as alterações no D7. Para isso, adaptamos as units da pasta "Fontes\Terceiros\CodeGear\" para o suporte a D7... Como configurar para usar a WinCrypt e não a CAPICOM ? A maneira mais simples é configurar a seguinte propriedade: ACBrNFe1.Configuracoes.Geral.SSLLib := libWinCrypt; Na verdade, a propriedade ACBrDFe.Configuracoes.Geral.SSLLib passou a ser virtual... ou seja, ela configurará de forma indireta, as 3 novas bibliotecas de TDFeSSL... Se você ler os fontes, quando rodamos o código acima, o seguinte código será executado. procedure TGeralConf.SetSSLLib(AValue: TSSLLib); case AValue of ..... libWinCrypt: begin SSLCryptLib := cryWinCrypt; SSLHttpLib := httpWinHttp; SSLXmlSignLib := xsMsXml; end; end; Se você deseja uma configuração diferenciada, poderá configurar as bibliotecas individualmente...Exemplo: ACBrNFe1.Configuracoes.Geral.SSLCryptLib := cryWinCrypt; ACBrNFe1.Configuracoes.Geral.SSLHttpLib := httpWinINet; ACBrNFe1.Configuracoes.Geral.SSLXmlSignLib := xsXmlSec; Como remover completamente, as Units da CAPICOM dos meus fontes ? Abra o arquivo \ACBr\Fontes\ACBrComum\ACBr.inc e altere a seguinte linha: {.$DEFINE DFE_SEM_CAPICOM} para: {$DEFINE DFE_SEM_CAPICOM} Ou seja, remova o "." do inicio O que mudou em ACBrDFeSSL ? Muita coisa.... (veja abaixo o trecho do "Change-Log").. Estudar os fontes do projeto Demo "\ACBr\Exemplos\ACBrDFe\ACBrNFe\Delphi", é a melhor maneira de conhecer as modificações. Veja abaixo, um resumo ilustrado: 1 - Agora você pode criar a sua própria janela de escolha de Certificado Veja esse exemplo de código, extraído de ACBrNFe_Demo. onde usamos o método "ACBrNFe1.SSL.LerCertificadosStore", para carregar todos os certificados da Store, definida em "ACBrNFe1.SSL.StoreName", após isso, as informações dos certificados podem ser obtidas em "ACBrNFe1.SSL.ListaCertificados" ACBrNFe1.SSL.LerCertificadosStore; For I := 0 to ACBrNFe1.SSL.ListaCertificados.Count-1 do begin with ACBrNFe1.SSL.ListaCertificados[I] do begin 2 - Agora você pode selecionar as bibliotecas de TDFeSSL, individualmente CryptLib: Permite definir qual será a biblioteca de Criptografia. Ela possui métodos como:"SelecionarCertificado", "CarregarCertificado", "CalcHash". além de propriedades como "DadosCertificado" e "ListaCertificados". TSSLCryptLib = (cryNone, cryOpenSSL, cryCapicom, cryWinCrypt) HttpLib: Usada para acesso HTTP e HTTPs, permitindo informar o Certificado na conexão. Possui métodos como: "Enviar" e propriedades como: "HTTPResultCode" e "InternalErrorCode" TSSLHttpLib = (httpNone, httpWinINet, httpWinHttp, httpOpenSSL, httpIndy); XMLSignLib: Usada para validar XMLs (contra um Schema), assinar um XML, Validar a assinatura existente em um XML. Possui métodos como: "Assinar", "Validar" e "VerificarAssinatura" TSSLXmlSignLib = (xsNone, xsXmlSec, xsMsXml, xsMsXmlCapicom); 3 - Independência das configurações de segurança do I.E. Isso pode ser obtido, se você utilizar SSLHttpLib = "httpWinHttp" ou "httpOpenSSL" Você poderá definir nos seus fontes, independente das configurações do Internet Explorer, configurações como o Tipo de segurança e TimeOut da tentativa de conexão. Essa funcionalidade já estava presente nas Units de acesso que utilizavam o OpenSSL a algum tempo. e agora com a nova Unit que faz acesso a HTTPS, usando a API do Windows chamada "WinHTTP", isso também será possível. O modelo: "httpWinINet" irá usar a API do Windows, chamada "WinINet", a qual já utilizávamos, e ela depende de configurações do I.E. 4 - Carregar o certificado por ArquivoPFX ou DadosPFX, com a WinCrypt ou CAPICOM Essa funcionalidade já estava presente, quando SSLCryptLib = cryOpenSSL. e não estava disponível para CAPICOM. Mas agora isso é possível, com a SSLCryptLib = cryCapicom ou cryWinCrypt. Ou seja, Se você tem um certificado A1, você não precisa instalar o certificado no Windows. Isso pode parecer pouco importante em uma primeira impressão... Mas veja as possibilidades: O certificado A1 poderia estar em um Banco de dados, ou em um Servidor Web, e ser carregado de forma dinâmica pela sua aplicação, independente de ser instalado manualmente no Windows. 5 - Compilar seu Executável em 64 bits Lembre-se que quando você compila o seu programa em 64 bits, todas as DLLs externas de qual ele necessitar, também devem ser de 64 bits. Portanto para isso, você não poderá usar a XMLSignLib = xsMsXml, pois a biblioteca da Microsoft para assinatura de XMLs "MSXML" não possui versão 64 bits. Mas observe que agora você pode usar a biblioteca WinCrypt com a XmlSec, basta configurar corretamente as bibliotecas de criptografia. Nota: Ainda não conseguimos, fazer com que a XMLSec possa usar certificados A3, mas isso deverá ser possível no futuro, pois a XMLSec tem suporte a "MSCrypto" Diagrama de Classes Como posso ajudar ? (Tarefas a serem efetuadas) 1 - Fazer a XmlSec funcionar usando a "mscrypto" Ainda não conseguimos fazer a XMLSec, usar a MSCrypto, atualmente ele apenas usa a "openssl". Porque isso é importante ? Temos vários problemas, com a msxml, como por exemplo: A Microsoft não distribui a mesma, de forma nativa, com o Windows (arquivo msxml5.dll) Ela não suporta 64 bits A licença de uso dassa biblioteca, é valida apenas para quem tem o Office instalado... Portanto, seria ótimo se pudéssemos ficar livres da MSXML, mas para isso, precisamos fazer o ACBr conseguir usar a XMLSec com suporte a MSCrypto (hoje ele só suporta OpenSSL)... Na verdade, já podemos usar WinCrypt + XmlSec, mas apenas para certificados A1, pois o ACBr é capaz de exportar o certificado A1 do Windows, para que o mesmo seja usado pelo OpenSSL. (ele fará isso internamente, e de forma transparente para o usuário) Quando conseguirmos fazer a XmlSec usar a MSCrypto (ou WinCrypt), conseguiremos compilar a aplicação em 64 bits, e com suporte a certificados A3 2 - Compilar os fontes da XMLSec no Windows, em 32 e 64 bits Hoje o único site que distribui a XMLSec já compilada para Windows é https://www.zlatkovic.com/libxml.en.html (Thanks Igor). Entretanto, podemos notar que os binários estão defasados, e não há uma versão 64 bits, com suporte a "mscrypto" Veja como ficou o "Change-Log" do refactoring em ACBrDFeSSL -- ACBrDFeSSL -- [*] Amplo refactoring promovido, separando a classe "TDFeSSLClass" em 3 novas classes: "TDFeSSLCryptClass" - para Carregar certificados e efetuar criptografia "TDFeSSLHttpClass" - para comunicação HTTP/HTTPS com suporte a Certificados "TDFeSSLXmlSignClass" - Para Validar XMLs, validar assinaturas e Assinar XML com Certificados [+] "TSSLLib", adicionado os tipos "libWinCrypt, libCustom" [+] Criada nova classe "TDadosCertificado", para conter os dados do certificado carregado [+] Criada nova classe "TListaCertificados",para conter uma lista de Objetos do tipo TDadosCertificado, com todos os certificados de uma "Store", e após a chamada do método "TDFeSSL.LerCertificadosStore" [+] Adicionada propriedade "TDFeSSL.StoreName: String", usada apenas no Windows. Nome da Store a ser aberta, padrão "MY" [+] Adicionada propriedade "TDFeSSL.StoreLocation: TSSLStoreLocation", usada apenas no Windows. Default "slCurrentUser". TSSLStoreLocation = (slMemory, slLocalMachine, slCurrentUser, slActiveDirectory, slSmartCard); [+] Adicionado o método: "TDFeSSL.LerCertificadosStore", apenas Windows, para carregar todos os Certifcados de "TDFeSSL.StoreName" para a lista de Objetos: "TDFeSSL.ListaCertificados" [+] Adicionado a propriedade "TDFeSSL.DadosCertificado", para permitir acesso aos dados do certificado carregado [+] Adicionada a propriedade "TDFeSSL.SSLCryptLib: TSSLCryptLib" default cryNone; para definir a classe de criptografia TSSLCryptLib = (cryNone, cryOpenSSL, cryCapicom, cryWinCrypt); [+] Adicionada a propriedade "TDFeSSL.SSLHttpLib: TSSLHttpLib" default httpNone; para definir a classe de comunicação HTTP/HTTPS TSSLHttpLib = (httpNone, httpWinINet, httpWinHttp, httpOpenSSL, httpIndy); [+] Adicionada a propriedade "TDFeSSL.SSLXmlSignLib: TSSLXmlSignLib" default xsNone; para definir a classe de assinatura de validação de XML TSSLXmlSignLib = (xsNone, xsXmlSec, xsMsXml, xsMsXmlCapicom); [+] Adicionada a propriedades "TDFeSSL"SSLType: TSSLType" default LT_all; para permitir definir o tipo de criptografia em HTTPS sendo: TSSLType = (LT_all, LT_SSLv2, LT_SSLv3, LT_TLSv1, LT_TLSv1_1, LT_TLSv1_2, LT_SSHv2) suportado apenas em TDFeHttpOpenSSL e TDFeHttpWinHttp -- ACBrDFeConfiguracoes -- [+] Adicionada as propriedades: property SSLCryptLib: TSSLCryptLib property SSLHttpLib: TSSLHttpLib property SSLXmlSignLib: TSSLXmlSignLib [*] Propriedade "SSLLib: TSSLLib" passou a ser virtual, e mantida por compatibilidade. Ajusta-la irá produzir ajustes em "SSLCryptLib", "SSLHttpLib" e "SSLXmlSignLib". Exemplo: if SSLLib = libOpenSSL then begin SSLCryptLib := cryOpenSSL; SSLHttpLib := httpOpenSSL; SSLXmlSignLib := xsXmlSec; end; -- ACBrDFe -- [+] Adicionado suporte a configurações de "SSLCryptLib", "SSLHttpLib", "SSLXmlSignLib" -- ACBrDFeOpenSSL -- [*] Amplo refactoring. Removido código referente a comunicação HTTP/HTTPs que foi migrado para "ACBrDFeHttpOpenSSL" [*] Removido código referente a assinatura digital e Validação de XML, que foi migrado para "ACBrDFeXsXmlSec" -- ACBRDFeWinCrypt -- [+] Nova Unit, para manipular Certificados do Windows e efetuar assinatura digital, usando a Win API WinCrypt (MSCrypto/CAPI) -- ACBrDFeCapicom -- [*] Refactoring, para usar boa parte do código de "ACBRDFeWinCrypt" -- ACBrDFeHttpOpenSSL -- [+] Adicionada nova Unit, derivada de ACBrDFeOpenSSL, criando implementação da classe de TDFeSSLHttpClass para comunicação http e https, usando a Synapse e OpenSSL -- ACBrDFeHttpWinApi -- [+] Adicionada nova Unit, derivada de ACBrDFeCapicom, criando implementação da classe de TDFeSSLHttpClass para comunicação http e https, usando as APIs do Windows WinHttp ou WinINet -- ACBrDFeHttpIndy, ACBrDFeCapicomDelphiSoap -- [*] Unit renomeada de "ACBrDFeCapicomDelphiSoap" para "ACBrDFeHttpIndy", e refatorada para não depender da CAPICOM -- ACBrDFeXsXmlSec -- [+] Adicionada nova Unit, derivada de ACBrDFeOpenSSL, criando implementação da classe de TDFeSSLXmlSignClass usando a Lib XMLSEC -- ACBrDFeXsMsXml -- [+] Adicionada nova Unit, derivada de ACBrDFeCapicom, criando implementação da classe de TDFeSSLXmlSignClass usando a Lib MSXML -- ACBrDFeXsMsXmlCapicom -- [+] Adicionada nova Unit, derivada de ACBrDFeCapicom, criando implementação da classe de TDFeSSLXmlSignMsXml usando a Lib MSXML e CAPICOM -- ACBrDFeException -- [+] Adicionado o exception "EACBrDFeExceptionNoPrivateKey" -- ACBrDFeUtil -- [+] Adicionado o método "SignatureElement: String" (por DSA) Obrigado... e considere nos ajudar, contratando o SAC, por pelo menos 1 mêshttp://www.projetoacbr.com.br/forum/sacv2/sobre/ http://www.projetoacbr.com.br/forum/sacv2/questoes_importantes/http://www.projetoacbr.com.br/forum/sacv2/cadastro/ Fique atento.... Em breve, organizaremos um Webinar sobre essas modificações 84 9 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Moderadores Juliomar Marchetti Posted March 20, 2017 Moderadores Share Posted March 20, 2017 Parabéns Daniel por mais essa inovação no ACBr! 7 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted March 20, 2017 Author Fundadores Share Posted March 20, 2017 Adicionei os seguintes itens, no tópico anterior: Como configurar para usar a WinCrypt e não a CAPICOM ? Como remover completamente, as Units da CAPICOM dos meus fontes ? Como posso ajudar ? (Tarefas a serem efetuadas) 12 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Moderadores Kiko Fernandes Posted March 20, 2017 Moderadores Share Posted March 20, 2017 Parabéns Daniel e toda a equipe ACBr. Uma dúvida: Estas modificações não se aplicam até o momento no ACBrMonitorPLUS correto? Conheça o Portal do Projeto ACBr Ajude o Projeto ACBr crescer - Assine o SAC ACBr Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui Link to comment Share on other sites More sharing options...
Moderadores Juliomar Marchetti Posted March 20, 2017 Moderadores Share Posted March 20, 2017 Boa tarde sim irão ser aplicadas Kiko 1 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Link to comment Share on other sites More sharing options...
Moderadores Kiko Fernandes Posted March 20, 2017 Moderadores Share Posted March 20, 2017 Obrigado @Juliomar Marchetti, pela informação. É que baixei a ultima versão para poder testar a compatibilidade e me perdi nas telas. Pensei que as telas mostradas acima era do Monitor e eu não estava achando, mas ela deve ser do Demo. Td. certo. Um abraço, Obrigado! 1 Conheça o Portal do Projeto ACBr Ajude o Projeto ACBr crescer - Assine o SAC ACBr Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui Link to comment Share on other sites More sharing options...
Celso Marigo Junior Posted March 21, 2017 Share Posted March 21, 2017 Alterações aqui citadas, já implementadas no ACBrMonitorPLUS versão 1.1.0, disponível para downloads dos usuários do SAC no link abaixo. 4 Celso Marigo Junior Conheça o Portal do Projeto ACBr Ajude o Projeto ACBr crescer - Assine o SAC Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted March 25, 2017 Author Fundadores Share Posted March 25, 2017 Apliquei algumas correções nos fontes: Citar -- ACBrDFeHttpOpenSSL, ACBrDFeHttpIndy -- [*] Ajuste para usar a definição MimeType, comforme recebido pela rotina chamadora -- ACBrDFeHttpWinApi -- [*] Ajuste para disparar exceptions, caso o HTTPResultCode não seja 200,201,202 -- ACBrDFeSSL -- [*] Ajuste para que o MimeType padrão, caso nenhum tenha sido informado contenha instrução de UTF8 'application/soap+xml; charset=utf-8' -- ACBrWinHTTPReqResp -- [-] Correção de Erro de comunicação, causado pelo erro no tratamento de "MimeTypes" [+] Adicionada identificação automática do Proxy do Sistema Operacional [-] Correção no método "UpdateErrorCodes", que não lia corretamente o valor de "HTTPResultCode" [-] Correção para que o "HTTPResultCode" seja corretamente atribuído ao termino da requisiçao -- ACBrWinINetReqResp -- [-] Correção no método "UpdateErrorCodes", que não lia corretamente o valor de "HTTPResultCode" [-] Correção para que o "HTTPResultCode" seja corretamente atribuído ao termino da requisição 9 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted April 13, 2017 Author Fundadores Share Posted April 13, 2017 Prezados, por favor atualizem os fontes... apliquei várias correções na ACBrDFeWinCrypt 13/04/2017 -- ACBrDFeWinCrypt -- [-] Correção para não atribuir Senha para certificados A3, de uma segunda instância do ACBrNFe, que utilize o mesmo certificado. (por: DSA) 12/04/2017 -- ACBrDFeWinCrypt -- [*] Ajuste para compilação com a diretiva "DFE_SEM_NCRYPT", para permitir o suporte a Windows XP (por: DSA) -- ACBr_NCrypt -- [*] Ajuste para efetuara carga da DLL com "Delayed", caso a diretiva "USE_DELAYED" esteja ligada, e o compilador suporte carga tardia.. (por: Waldir Paim) http://www.projetoacbr.com.br/forum/topic/36219-ncryptdll-faltando-no-xp/?do=findComment&comment=237206 10/04/2017 -- ACBrDFeWinCrypt -- [-] Ajustes para possível correção de Certificados compatível apenas com "CNG" que causavam o erro "NTE_BAD_PROV_TYPE - 0x80090014", durante a carga do Certificado. http://www.projetoacbr.com.br/forum/topic/36017-provedor-de-criptografia/?do=findComment&comment=236710 (por: DSA) 04/04/2017 -- ACBrDFeCapicom -- [-] Correção no método "GetCNPJFromExtensions", onde ocorria o erro: "Parâmetro Incorreto" (por: DSA) 03/04/2017 -- ACBrDFeCapicom, ACBrDFeWinCrypt -- [-] Possível correção para o erro "Erro Thread da crypt32", quando usando "cryCapicom" -- ACBrDFeWinCrypt -- [*] Ajuste no método "GetCNPJFromExtensions", quebrando-o em vários, para permitir a leitura de diferentes extensões -- ACBrDFeOpenSSL -- [-] Correção na interpretação do conteúdo das extensões do certificado, corrigndo problemas de leitura de CPF/CNPJ de alguns certificados (por: DSA) 27/03/2017 -- ACBrDFeXsXmlSec -- [*] Remoção da dependencia de "libxslt". (por Waldir Paim) http://www.projetoacbr.com.br/forum/topic/35775-sugest%C3%A3o-limpeza-dos-uses-de-algumas-units/?do=findComment&comment=234842 25/03/2017 -- ACBrDFeHttpOpenSSL, ACBrDFeHttpIndy -- [*] Ajuste para usar a definição MimeType, comforme recebido pela rotina chamadora -- ACBrDFeHttpWinApi -- [*] Ajuste para disparar exceptions, caso o HTTPResultCode não seja 200,201,202 -- ACBrDFeSSL -- [*] Ajuste para que o MimeType padrão, caso nenhum tenha sido informado contenha instrução de UTF8 'application/soap+xml; charset=utf-8' 24/03/2017 -- ACBRDFeWinCrypt -- [-] Correção em "PFXDataToCertContextWinApi", que é usada por "CarregarCertificado", quando informado o certificado por: "ArquivoPFX" ou "DadosPFX". Para que seja possível carregar Certificados com número de série, menor do que 16 (por: DSA) http://www.projetoacbr.com.br/forum/index.php?showtopic=35805 22/03/2017 -- ACBrDFeSSL -- [*] Ajustes em "Clear", para evitar problemas quando ocorre a troca de SSLCryptLib via código. -- ACBRDFeWinCrypt -- [*] Ajustes em "CarregarCertificado", para priorizar a busca do certificado por "DadosPFX" seguido de "ArquivoPFX" e depois "NumeroSerie" (por: DSA) 5 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Celso Marigo Junior Posted April 13, 2017 Share Posted April 13, 2017 Acabo de enviar uma nova versão do monitor na área de dowloads, já contendo estas correções. Celso Marigo Junior Conheça o Portal do Projeto ACBr Ajude o Projeto ACBr crescer - Assine o SAC Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted June 21, 2017 Author Fundadores Share Posted June 21, 2017 Novas implementações em ACBrDFeSSL, já no SVN Citar -- ACBrDFeSSL -- [+] Adicionada a propriedade TDadosCertificado.ThumbPrint -- ACBrDFeWinCrypt, ACBrDFeOpenSSL -- [+] Adicionado o método "GetThumbPrint". [*] Método "GetCertInfo" modificado para preencher "DadosCertificado.ThumbPrint" (por: DSA) 3 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
FelipeLopes Posted January 18, 2018 Share Posted January 18, 2018 boa tarde. uma duvida, nessas novas opções só poderemos usar o certificado do tipo A1? Link to comment Share on other sites More sharing options...
Moderadores Juliomar Marchetti Posted January 18, 2018 Moderadores Share Posted January 18, 2018 39 minutos atrás, FelipeLopes disse: boa tarde. uma duvida, nessas novas opções só poderemos usar o certificado do tipo A1? Não assista e irá sanar suas dúvidas 2 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Link to comment Share on other sites More sharing options...
jdazevedo Posted January 19, 2018 Share Posted January 19, 2018 19 horas atrás, Juliomar Marchetti disse: Não assista e irá sanar suas dúvidas Não está aparecendo o video. João Duarte de Azevedo Utilsoft Soluções em Gestão Empresarial Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted January 19, 2018 Author Fundadores Share Posted January 19, 2018 Esse vídeo é exclusivo para membros do SAC do ACBr 2 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
hidenmind Posted February 28, 2018 Share Posted February 28, 2018 Daniel Simões, não usamos AcBr na empresa onde eu trabalho, mas acompanho o fórum e tiro muitas ideias dos fontes de vocês, e vendo essa notícia do fim do uso da capicom aproveito para compartilhar que estou desenvolvendo uma lib que irá assinar o XML apenas com recursos do windows, tudo via windows API com a cryptxml.dll e a crypt32.dll e suas dependências. Queria saber se isso seria relevante para o projeto, caso seja posso disponibilizar no GitHub. Já fiz isso em C++ e quero traduzir para Object Pascal. Um Abraço. 1 Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted February 28, 2018 Author Fundadores Share Posted February 28, 2018 Sim, seria muito interessante... Atualmente já temos a Criptografia e acesso a certificados resolvido, com a ACBrDFeWinCrypt (que usar a API WinCrypt)... e usamos a LibXML2, para fazer "parse" do XML, canonicalização, e inserir a assinatura... Seria interessante ver a cryptxml.dll funcionando... Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
CleitonMaciel Posted March 6, 2018 Share Posted March 6, 2018 (edited) Bom dia, usando as recomendações do post, e testando agora: tirei o registro da capicom, apaguei todas as dll referente a ela. apontei ACBrNFe.Configuracoes.Geral := libWinCrypt; retorna erro: Classe não registrada, ClassID: {88D969E5-F192-11D4-A65F-0040963251E5} isso ocorre por que a capicom não está registrada. O mesmo ocorrer com o acbr demo. Algum detalhe a mais, que não falta fazer? Abraço. Edited March 6, 2018 by CleitonMaciel Link to comment Share on other sites More sharing options...
Moderadores BigWings Posted March 6, 2018 Moderadores Share Posted March 6, 2018 12 minutos atrás, CleitonMaciel disse: apontei ACBrNFe.Configuracoes.Geral := libWinCrypt; retorna erro: Classe não registrada, ClassID: {88D969E5-F192-11D4-A65F-0040963251E5} isso ocorre por que a capicom não está registrada. O mesmo ocorrer com o acbr demo. Se SSLXmlSignLib for xsMsXml (ainda padrão quando SSLib = libWincrypt) precisa registrar a msxml5.dll. Use xsLibXml2. 1 BigWingsAjude o Projeto ACBr crescer - Assine o SAC Link to comment Share on other sites More sharing options...
CleitonMaciel Posted March 6, 2018 Share Posted March 6, 2018 @BigWings, sinceramente não sei o que esta havendo. verifiquei as configurações novamente, refiz a instalação do acbr e percebi que no final ele mesmo assim copia e registra as dll da capicom / openssl deixei a configuração que já estava, ACBrNFe.Configuracoes.Geral := libWinCrypt; Mesmo não usando capicom como esta diz nesse post, tive que registrar ela da mesma forma na estação! Só assim pro sistema rodar liso. Achei que me livraria dessa DLL, mas pelo que estou entendendo não é bem assim! É isso mesmo? Estou certo ou estou errado? Me diz ai!!! Obrigado por dar um retorno. Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted March 6, 2018 Author Fundadores Share Posted March 6, 2018 Use a força... leia os fontes... ACBrNFe1.SSL.SSLXmlSignLib := xsLibXml2; Enviei para o SVN... Citar [*] TGeralConf.SSLLib, modificado para que quando tiver o valor "libWinCrypt", assuma a seguinte configuração: SSLCryptLib := cryWinCrypt; SSLHttpLib := httpWinHttp; SSLXmlSignLib := xsLibXml2; Modificando o uso de xsMsXml para xsLibXml2 (por: DSA) 2 1 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Alexandre Faustinoni Posted June 21, 2018 Share Posted June 21, 2018 Amigos, boa noite. Estou com o seguinte erro ao configurar o componente com as configurações acima citada: SSLLib := libWinCrypt; SSLCryptLib := cryWinCrypt; SSLHttpLib := httpWinHttp; //httpWinINet; SSLXmlSignLib := xsLibXml2; //xsXmlSec; Falha no envio da requisição Erro: 12175 um ou mais erros foram encontrados no certificado secure Sockets layer (ssl) enviado pelo servidor. Mesmo no acbrnfe_demo está dando esse erro. Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted June 21, 2018 Author Fundadores Share Posted June 21, 2018 Por favor crie um novo tópico... fechando... Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted June 25, 2018 Author Fundadores Share Posted June 25, 2018 Importante correção, para o problema de erro 12175 Favor atualizar os fontes e testar novamente... 1 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Recommended Posts