Pesquisar na Comunidade
Showing results for tags 'wincrypt'.
Encontrado 16 registros
-
-
Contexto UF Espírito Santo Revisão ACBR 20096 Projeto ACBrNFCe Configurações SSL WinCrypt XML MSXML2 {$DEFINE USE_MINGW} Habilitado O Problema Espírito Santo, em geral, nos dias de sexta-feira (com maior incidência) tendem a ter tempo de resposta no servidor SVRS bem alto, tempos geralmente acima de 21 segundos, e nós temos acompanhando um número ligações relacionadas a timeout, o que não seria um problema se o servidor não efetivasse a nota mesmo depois do timeout gerando uma duplicidade. Mas porque não entrar em contingência? Acontece que esses picos de timeout costumam serem passageiros e de curta duração, e não exclusivos da sexta-feira, e ficar na contingência não é um cenário ideal, sendo que a internet está sempre disponível. (na imagem acima, painel monitor para o SEFAZ Virtual RS, na última sexta-feira de manhã) (se você entrar nesse painel, não vai ver o ano de 2020, para conseguir visualizar, você precisa injetar o HTML com a opção de 2020) A Solução (que não está funcionando) Existem vários tópicos aqui no fórum, explicando sobre onde, como, e porque configurar o timeout, nós fizemos isso, definimos por média 60 segundos, porque era o máximo em condições normais que o servidor registrava, o que em teoria teria resolvido o problema, inclusive gostaria de registrar o seguinte: function TACBrWinHTTPReqResp.SetConnectionTimeOut: Boolean; A função WinHttpSetTimeouts estava recebendo o timeout de 60000 normalmente, conforme inspecionado em tempo de depuração. Porém em todas os testes que fizemos, com tempos de timeouts diferentes (60s, 240s e etc..), sempre o cronometro para em 21 segundos. Os testes foram realizados conforme vídeo do DANEL testando o timeout adicionando uma porta ao final das URL existentes no arquivo INI da ACBRNFe. (Exemplo do INI) (Pontos de verificação no WinHttpSendRequest, caso alguém for realizar os testes) C:\DL\T\ac\Fontes\ACBrTCP\ACBrWinHTTPReqResp.pas O "Possível" por quê Pesquisando sobre "Timeout" + "WinHttpSendRequest" encontrei um tópico justamente a respeito disso na MSDN americana, porém quem respondeu (segundo o autor) trabalhava no time de rede do Windows, dizendo: Segundo ele (se eu entendi bem), o uso de timeouts está descontinuado, e que não existe nenhum parte exposta via a API do WinHTTP para controlar esses tempos de troca de pacotes explicitados por ele na resposta. (Link Original Aqui) OpenSSL: A Solução (que funciona em partes) Os mesmos testes feitos com a OpenSSL funcionam corretamente, o timeout é respeitado conforme informado e com precisão, porém temos o problema dos certificados A3, logo as pessoas com certificado A3 continuariam com o problema. (Pontos de verificação na unit HTTP da OpenSSL, caso alguém for realizar os testes) C:\DL\T\ac\Fontes\ACBrDFe\ACBrDFeHttpOpenSSL.pas Em quanto terminava de escrever esse tópico senti a necessidade de testar na DEMO da ACBr diretamente, sem o Mingw, por segurança, e o mesmo ocorreu, porém no nosso programa testamos com envio da nota em homologação, e na demo com o status. A Pergunta Teria como alguém realizar os mesmos testes para confirmar isso? Existe alguma solução para A3 que não a Capicom e a WinCrypt? Alguém já passou por isso, e conseguiu uma solução?
-
Erro: 12175 - Um ou mais erros foram encontrados no certificado Secure Sockets Layer (SSL) enviado pelo servidor. Todas as atualizações do Windows foram instaladas, e as configurações WinCrypt também estão corretas. Aconteceu a mesma coisa a algumas semanas atrás, mas importei a raizV5 do certificado e passou a funcionar normalmente. Fiz a mesma importação, mas desta vez não deu certo. Alguém poderia me ajudar ?
-
Bom dia, mais alguem está tendo problema com a emissão de NFSe para a cidade de João Pessoa, utilizando a WinCrypt? Tenho o seguinte erro: "Um ou mais erros foram encontrados no certificado Secure Sockets Layer (SSL) enviado pelo servidor"
- 4 replies
-
- nfse
- joao pessoa
- (e 4 mais)
-
Boa tarde. Comecei a utilizar o WinCrypt em minhas aplicações, porém está retornando o seguinte erro ao consultar o status: "Um ou mais erros foram encontrados no certificado Secure Sockets Layer (SSL) enviado pelo servidor" Gerei a Demo do ACBrNFe e está provocando o mesmo erro ao consultar o status. Utilizando o OpenSSL consulta o status corretamente. Alguém tem alguma ideia do que pode estar provocando este problema? Máquina utilizada: Windows Server 2008 R Muito obrigado.
-
Tenho visto muitas pessoas com problemas de configurações na parte do certificado na mudança da NFe 3.10 para a 4.0, ASSIM COMO EU. Gostaria de saber se tem algum passo a passo para tal configuração. Por exemplo, na minha maquina esta funcionando a 4.0 normalmente com Windows 7 64bits e numa outra com WINDOWS SERVER 2008 também. SSLCryplib = cryCapicom SSLHttpLib = httpIndy SSLLiB = LibCapicomDelphiSoap SSLCMLSignLib = xsMsxmLCapicom Nas configurações da internet no windows, guia avançado: TSL 1.0 , 1.1 e 1.2 marcados assim como as 3 opções de Certificado. Agora estou tentando configurar num servidor com Windows 2012 Server onde já roda a versão 3.10 com as seguintes configurações: SSLCryplib = cryWinCrypt SSLHttpLib = httpWinHttp SSLLiB = libWinCrypt SSLCMLSignLib = xsLibXml2 Nas configurações da internet no windows, guia avançado: TSL 1.0 , 1.1 e 1.2 marcados assim como as 3 opções de Certificado. POREM a VERSAO 4.0 não funciona! Tenho o erro 12030 - A conexão com o servidor foi redefinida ou encerrada, ou um protocolo SSL incompatível foi encontrado SSLCryplib = cryWinCrypt SSLHttpLib = httpWinHttp SSLLiB = libWinCrypt SSLCMLSignLib = xsLibXml2 Nas configurações da internet no windows, guia avançado: SSL 2.0, SSL 3.0, TSL 1.0 , 1.1 e 1.2 marcados assim como as 3 opções de Certificado.
-
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ês http://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
- 23 replies
-
- 93
-
Possível alteração WinCrypt - CPF errado
um tópico no fórum postou GuilhermeCosta Dúvidas Gerais sobre o ACBr
Boa tarde Senhores, Utilizo a WinCrypt para pegar algumas informações do certificado, uma das informações que utilizo é a do CNPJ/CPF do mesmo. Porém me deparei com um problema ao utilizar e-CPF, onde o atributo CNPJ esta sendo preenchido de forma incorreta, para corrigir o problema alterei a seguinte função no arquivo ACBrDFeWinCrypt.pas.pas: function GetTaxIDFromExtensions(ACertContext: PCCERT_CONTEXT ): String; var pExtension: PCERT_EXTENSION; pNameInfo: PCERT_ALT_NAME_INFO ; ABlob: CERT_NAME_BLOB; aOID: AnsiString; begin Result := ''; if Assigned(ACertContext) then begin pExtension := GetCertExtension(ACertContext, szOID_SUBJECT_ALT_NAME2); if pExtension <> Nil then begin pNameInfo := DecodeCertExtensionToNameInfo(pExtension, szOID_SUBJECT_ALT_NAME2); if pNameInfo <> Nil then begin try ABlob := GetOtherNameBlobFromNameInfo(pNameInfo, '2.16.76.1.3.3'); // Informações de P.F. ou P.J. if ABlob.cbData > 0 then begin aOID := PAnsiChar(ABlob.pbData); aOID := AdjustAnsiOID(aOID); Result := copy(Trim(aOID), 1, 14); end; if (Result = '') then begin ABlob := GetOtherNameBlobFromNameInfo(pNameInfo, '2.16.76.1.3.1'); // Informações de P.F. if ABlob.cbData > 0 then begin aOID := PAnsiChar(ABlob.pbData); aOID := AdjustAnsiOID(aOID); //Result := copy(Trim(aOID), 9, 11); Result := copy(Trim(aOID), 10, 11); end; end; finally Freemem(pNameInfo); end; end; end; end; end; O comando copy estava pegando da posição 9 e alterei para 10. O erro apresentado ocorreu com dois certificado diferentes do tipo A3 e-CPF da serasa. Como não tenho outro eCPF de uma outra certificadora, gostaria de saber se alguem está utilizando WinCrypt com eCPF e se o atributo CNPJ esta sendo preenchido corretamente. Obrigado.- 6 replies
-
- wincrypt
- certificado
-
(e 1 mais)
Tags:
-
Atualmente utilizo o SSLLib = libCapicomDelphiSoap, só que preciso implementar no sistema o WinCrypt. Estou tentando emitir uma NF-e em homologação utilizando o WinCrypt com as seguintes configurações: SSLLib = libWinCrypt CryptLib = cryWinCrypt HttpLib = httpWinHttp XMLSignLib = xsMsXML Só que ao tentar verificar o status do serviço um erro ocorre: --------------------------- Acbrnfe_demo --------------------------- WebService Consulta Status serviço: - Inativo ou Inoperante tente novamente. Erro Interno: 12032 Erro HTTP: 0 Falha Recebendo Dados. Erro:Erro: 12032 - 2\Exemplos\ACBrDFe\ACBrNFe\Delph¼� <-- Esta mensagem de erro aqui varia toda vez que tento enviar --------------------------- --------------------------- Se eu trocar o HttpLib para httpWinINet ou httpOpenSSL funciona corretamente. Alguém saberia me informar porque o erro ocorre e como corrigir? Meu SO é Windows 10 e utilizo Delphi 7
- 1 reply
-
- wincrypt
- erro interno
-
(e 1 mais)
Tags:
-
"Tópico Bye Bye CAPICOM" - Valor default das novas propriedades
um tópico no fórum postou Gabriel Bonzanini ACBrNFe
Bom dia. Estou tendo problemas com alguns clientes depois da última atualização referente à comunicação com os certificados digitais. Gostaria de saber como ajustar as propriedades para que os componentes trabalhem da mesma forma utilizada anteriormente ao refactoring. Reparei que o valor defaul para as propriedades é 'none': constructor TGeralConf.Create(AConfiguracoes: TConfiguracoes); begin ... FSSLLib := libNone; FSSLCryptLib := cryNone; FSSLHttpLib := httpNone; ... end; Dependendo do sistema operacional do cliente, estão sendo apresentados os seguintes erros: Método "Enviar" não implementado em: TDFeSSLHttpClass; Parâmetro incorreto; Falha em obter Provedor de Cripotografia do Certificado. Erro: 80090016. Como proceder? Obrigado. -
CARACTERES INVÁLIDOS CAMPO CNPJ - SSL.LerCertificadosStore; (WinCrypt)
um tópico no fórum postou Victor H. Gonzales - Panda ACBrNFe
Boa tarde, no campo ACBrNFe.SSL.ListaCertificados.RazaoSocial está vindo 2 caracteres no inicio da string #$13 e #$E. para remediar de momento alterei ACBrDFeWinCrypt.pas adicionando no método GetTaxIDFromExtensions stringReplace destes caracteres. aOID := StringReplace(aOID,#$13,'',[rfReplaceAll]); aOID := StringReplace(aOID,#$E,'',[rfReplaceAll]); *Obs: não são todos os certificados que estão acontecendo isto, é somente 1 ou outro que está vindo esse "lixo" no buffer; Versão atualizada em 30/06/2017 ACBR - Alterações :: linhas 498,499 e 510,511 ACBrDFeWinCrypt.pas Senhores admin, Favor excluir o post ou trancar, o mesmo foi resolvido rodando o apagarAcbr.bat e instalando novamente... Era algum arquivo que estava bagunçando; Desculpe o post inconveniente; Obrigado -
Bom dia! Estou tentando mudar da CAPICOM para WinCrypt mas está dando o erro abaixo ao compilar. Qual o motivo? [dcc32 Error] ACBrDFeXsMsXml.pas(152): E2197 Constant object cannot be passed as var parameter Obrigado, Fábio
- 3 replies
-
- error
- acbrdfexsmsxml
-
(e 1 mais)
Tags:
-
Fiz essa configuração somente: ACBrCTe1.Configuracoes.Geral.SSLLib := libWinCrypt; Não funcionou, ao enviar o CT-e retorna uma tela de erro vazia (sem mensagem de erro). Voltando para libCapicom o CT-e é enviado normalmente. Falta mais alguma configuração? O certificado é A1 e está instalado em um micro com Windows7 32 Professional original. Não informei caminho do pfx, nem senha como já fazia antes. Mas também tentar informar e o retorno foi vazio. A série e a data de validade do certificado (vence em 2018) aparecem corretamente.
-
Problemas com contingência com libWinCrypt
um tópico no fórum postou mbbortolini NFC-e - Nota Fiscal do Consumidor Eletrônica
Estou tentando abandonar o Capicom e no teste da contingência estou enfrentando um pequeno problema que não consegui resolver. Detalhe, para simular a contingência estou desativando a rede do PC, então isso pode ser um tratamento da própria dll, mas vamos lá; Esta é a mensagem que aparece : Na prática não é a mensagem que é o problema, mas é que após esta mensagem a execução é interrompida. Meu código está desta forma : try ACBrNFe.Enviar; except // códigos de tratamento de erro e contingência, dependendo do retorno; end; Então como a execução é interrompida, não chega neste except, para antes; Ainda, é certo tratar assim, ou é melhor fazer pelo evento ACBrNFeTransmitError ?- 2 replies
-
- contigencia
- nfce
-
(e 1 mais)
Tags: