-
Notifications
You must be signed in to change notification settings - Fork 173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update certificado.py #335
base: main
Are you sure you want to change the base?
Conversation
caso certificado seja binário (esteja já carregado em memória (ex.: salvo em bin numa base de dados), ler direto do binario caso contrário (é uma string) mantem a leitura do arquivo
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excelente, pode adicionar esse caso nos testes?
try: | ||
with open(self.caminho_arquivo, "rb") as cert_arquivo: | ||
cert_conteudo = cert_arquivo.read() | ||
except (PermissionError, FileNotFoundError) as exc: | ||
raise Exception( | ||
"""Falha ao abrir arquivo do certificado digital A1. | ||
Verifique local e permissoes do arquivo.""" | ||
) from exc | ||
except Exception as exc: | ||
raise Exception( | ||
"Falha ao abrir arquivo do certificado digital A1. Causa desconhecida." | ||
) from exc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Creio que esse try precise ficar antes do if, todo o carregamento precisa ter o try-catch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Faz mais sentido adicionar outro parâmetro no construtor com um nome que faça sentido, ao certificado binário já carregado, e valor default None, do que passar um binário no caminho_arquivo.
Este pull request visa otimizar o load do certificado. Agora, o código irá verificar se a variavel recebida já está carregada em memória em formato binário, como quando armazenado diretamente em um campo binario de um banco de dados.
Se o certificado estiver nesse formato, o código fará a leitura diretamente do binário.
Caso contrário (se o certificado for fornecido como uma string), o código manterá a leitura de um arquivo.