Ir para conteúdo
  • Cadastre-se

dev botao

Não lista certificados Store Windows


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

Recommended Posts

Olá, desculpe criar esse tópico, mas to desesperado, depois que atualizei os fonts e o lazarus, meus sistema sisplesmente parou de listar os certificados no Store do windows.

*Meu codigo

NF.SSL.SSLType := LT_TLSv1_2; //Protocolo de Segurança de Comunicação
  NF.SSL.SSLHttpLib := httpWinHttp; //Gerenciador da Comunicação
  NF.SSL.SSLCryptLib := cryWinCrypt; //Gerenciador de Certificado
  NF.SSL.SSLXmlSignLib := xsLibXml2; //Gerenciador de Assinatura

  NF.SSL.LerCertificadosStore;

  for I := 0 to pred(NF.SSL.ListaCertificados.Count) do
    ComboBoxListaCertificados.Items.Add(NF.SSL.ListaCertificados[I].RazaoSocial +
      ' | ' + NF.SSL.ListaCertificados[I].NumeroSerie); 

*Arquivo ACBr.inc

// Descomente a linha abaixo, se você quer que seu Executável NÃO dependa das DLLs LibXML2, LibXMLSEC, (NÃO RECOMENDADO)
{.$DEFINE DFE_SEM_OPENSSL}
// Comente a linha abaixo, se você quer que seu Executável dependa das DLLs LibXMLSEC (NAO RECOMENDADO)
{$DEFINE DFE_SEM_XMLSEC}
// Descomente a linha abaixo, se você quer que seu Executável NÃO dependa das DLLs LibXML2. (NAO RECOMENDADO)
{.$DEFINE DFE_SEM_LIBXML2}
// Descomente a linha abaixo, se você não utiliza a obsoleta Capicom para Criptografia (RECOMENDADO)
{$DEFINE DFE_SEM_CAPICOM}
// Descomente a linha abaixo, se você não utiliza a obsoleta MSXML para Assinatura de XML (RECOMENDADO)
{$DEFINE DFE_SEM_MSXML}
// Descomente a linha abaixo, se você não deseja adicionar a Dependência da INDY nos seus Projetos
{$DEFINE DFE_SEM_INDY}

*Dlls

libcrypto-1_1.dll
libexslt.dll
libiconv.dll
libmysql.dll
libssl-1_1.dll
libxml2.dll
libxslt.dll

procurei bastante antes de criar esse tópico, nem o exemplo que vem no ACBr esta listando os certificados, me ajudem por favor.

Link para o comentário
Compartilhar em outros sites

5 minutos atrás, BigWings disse:

Os certificados estão instalados para o usuário ou máquina local?

Você pode tentar alterar o local:

image.png

Oi, muito obrigado pela atenção, já tentei todas as opções do storelocation, já fiz o downgrade do lazarus para o 2.0.8, já atualizei os fontes e nada.

nem no meu sistema nem no exemplo.

Eu não entendo, foi depois da atualização dos fontes ACBr, eu sempre deixo a copia dos fontes anteriores guardadas, mas dessa vez acabei apagando.

estou testando com os certificados A1 instalados no Windows, mas minha necessidade é nos clientes de cartão A3, pois os A1 eu pego direto pelo arquivo, mas não aparece nem acessa nem o A1 nem o A3 do store.

 

Link para o comentário
Compartilhar em outros sites

2 horas atrás, Antonio Tota disse:

Amigo, conseguiu resolver?  Estou com o mesmo problema.

Ainda não, mas um jeito tenho que dar, assim que eu descobrir a solução compartilho aq, se vc conseguir antes me avisa por favor, vou pegar a parte da tarde pra mexer só com isso, hj sai se DEUS quiser

Link para o comentário
Compartilhar em outros sites

  • Solution
1 hora atrás, RibaSoft disse:

Ainda não, mas um jeito tenho que dar, assim que eu descobrir a solução compartilho aq, se vc conseguir antes me avisa por favor, vou pegar a parte da tarde pra mexer só com isso, hj sai se DEUS quiser

Amigo, descobri uma das causas, mas ainda preciso rastrear mais.

Na procedure TDFeWinCrypt.OpenSystemStore passa um valor para a variável StoreProvider que anteriormente obedecia uma condição e hoje obedece outra

image.png.94286c31db13ba19b437d90022845b11.png

Antes essa condição era: 

image.png.fab28c876530c284961d891e3cc67d73.png

 

Ao retornar essa condição, já me trouxe um Certificado da Lista. 

Acredito que seja um caminho para encontrar a solução

Esse Define UNICODE está em ACBr.inc e é utilizado para uma outra condição. 

 

Aguardamos a ajuda dos amigos do fórum.

 

 

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

1 hora atrás, RibaSoft disse:

Ainda não, mas um jeito tenho que dar, assim que eu descobrir a solução compartilho aq, se vc conseguir antes me avisa por favor, vou pegar a parte da tarde pra mexer só com isso, hj sai se DEUS quiser

Amigo, pra mim resolveu. Preciso saber dos amigos do projeto se isso está correto ou se a solução seria modificar alguma configuração.

 

Att

Link para o comentário
Compartilhar em outros sites

6 horas atrás, Antonio Tota disse:

Amigo, pra mim resolveu. Preciso saber dos amigos do projeto se isso está correto ou se a solução seria modificar alguma configuração.

 

Att

Boa noite, não estou recebendo e-mail com as notificações do fórum, desculpa prometi tirar a tarde pra ver isso e acabou que não consegui, mas devo ir até mais tarde hj vendo isso, muiiiiito obrigado por compartilhar sua solução com a gente, vou experimentar aqui e retorno, DEUS abençoe.

Link para o comentário
Compartilhar em outros sites

7 horas atrás, Antonio Tota disse:

Amigo, descobri uma das causas, mas ainda preciso rastrear mais.

Na procedure TDFeWinCrypt.OpenSystemStore passa um valor para a variável StoreProvider que anteriormente obedecia uma condição e hoje obedece outra

image.png.94286c31db13ba19b437d90022845b11.png

Antes essa condição era: 

image.png.fab28c876530c284961d891e3cc67d73.png

 

Ao retornar essa condição, já me trouxe um Certificado da Lista. 

Acredito que seja um caminho para encontrar a solução

Esse Define UNICODE está em ACBr.inc e é utilizado para uma outra condição. 

 

Aguardamos a ajuda dos amigos do fórum.

 

 

 

Perfeito amigo resolveu aqui na hora, comentei a linha do UNICODE e criei uma como DELPHI2009_UP

//{$IfDef UNICODE}
  {$ifDef DELPHI2009_UP}
   StoreProvider := CERT_STORE_PROV_SYSTEM_W;
  {$ELSE}
   StoreProvider := CERT_STORE_PROV_SYSTEM_A;
  {$ENDIF}; 

Para quem estiver com dificuldade em achar, esse arquivo esta em ...Fontes\ACBrDFe\ACBrDFeWinCrypt.pas

Não sei se essa é a forma correta mas resolveu perfeitamente, realmente tenho muito oq aprender ainda, sem palavras pra agradecer, DEUS abençoe

Link para o comentário
Compartilhar em outros sites

  • Moderadores
Em 11/09/2020 at 14:30, Antonio Tota disse:

Acredito que seja um caminho para encontrar a solução

Aparentemente foi isso mesmo, o Lazarus não aceita o CERT_STORE_PROV_SYSTEM_W.

Enviei a correção pro repositório, rev. 20592.

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

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

1 hora atrás, BigWings disse:

Aparentemente foi isso mesmo, o Lazarus não aceita o CERT_STORE_PROV_SYSTEM_W.

Enviei a correção pro repositório, rev. 20592.

Agradeço o Antonio Totapor ter descoberto o problema e compartilhado e o BigWings, pela sua atenção conosco e ter enviado a correção, da minha parte também está resolvido, DEUS abençoe a todos

Link para o comentário
Compartilhar em outros sites

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