Ir para conteúdo
  • Cadastre-se

dev botao

Vazamento de memória TDFeSSL


Ver Solução Respondido por Daniel Simoes,

Recommended Posts

  • Moderadores

@Daniel Simoes

Debugou o código para certificar-se que o CryptAcquireContext com a flag CRYPT_DELETEKEYSET tenha sido executado?

Os arquivos temporários que não foram apagados foram criados pelos seus testes?

Lembrando que o comando acima deleta exclusivamente o arquivo que foi criado durante a execução do PFXImportCertStore do mesmo contexto. Arquivos antigos que porventura estiverem na pasta não serão excluídos.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Sim.. eu apaguei toda a pasta "RSA",  e iniciei a conexão.. ele criou os arquivos temporários, passou por CryptAcquireContext com a flag CRYPT_DELETEKEYSET, quando encerrei a aplicação... mas mesmo assim os arquivos temporários ficaram no disco...

Será que ele limpa esses arquivos, em outro processo de limpeza futuro ?

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

  • Fundadores

Humm.. notei que a chamada está falhando...

      Ok := CryptAcquireContext(CryptProv, PAnsiChar(ContainerName), PAnsiChar(ProviderName), ProviderType, CRYPT_DELETEKEYSET);

(Ok fica False)

Vou tentar alguns ajustes...

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

  • Moderadores
1 hour ago, Daniel Simoes said:

Será que ele limpa esses arquivos, em outro processo de limpeza futuro ?

A exclusão do arquivo temporário é feita imediatamente na execução do CryptAcquireContext com a flag CRYPT_DELETEKEYSET.

Fiz testes em minha máquina de desenvolvimento (Windows 11) e em produção (Windows 2019 Server) com sucesso.

Link para o comentário
Compartilhar em outros sites

  • Moderadores
56 minutes ago, Daniel Simoes said:

Humm.. notei que a chamada está falhando...

      Ok := CryptAcquireContext(CryptProv, PAnsiChar(ContainerName), PAnsiChar(ProviderName), ProviderType, CRYPT_DELETEKEYSET);

As variáveis ContainerNameProviderNameProviderType estão sendo preenchidas corretamente na função GetProviderInfo?

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Consegui fazer funcionar no D7, D12 e FPC...

Realmente é a forma como a API trata os tipos "String" de WidString quando usando Unicode ou String, nos Delphis mais antigos... 

Obrigado pela contribuição.. se possível, por favor teste para ver se funciona no seu ambiente...

Commit [r35488]

  • Curtir 1
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

  • Moderadores
Em 04/10/2024 at 10:55, Daniel Simoes disse:

Por favor rode o Instalador, ou apague a pasta  "ACBr\Lib" provavelmente a sua Unit ACBr_WinCrypt não foi recompilada...

Daniel.

Bom dia . mas parece que essa implementação está excluindo a chave privada dos certificados

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
25 minutos atrás, Daniel Simoes disse:

Você Fala dos certificados que foram instalados no Windows e acessados pelo Número de Serie ?

ao que parece sim Daniel. até vi esse commit abaixo

Citar

BigWings — Hoje às 08:52
Sim, o commit 35488 introduziu o problema.

 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
25 minutos atrás, Daniel Simoes disse:

Você Fala dos certificados que foram instalados no Windows e acessados pelo Número de Serie ?

Parece que sim:

https://www.projetoacbr.com.br/forum/topic/68001-o-recipiente-da-chave-não-pode-ser-aberto-erro-80090016/?do=findComment&comment=517680&_rid=775

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.

The popup will be closed in 10 segundos...