Browse Source

Merge pull request #92 from seocam/cert-excpt-handling

Melhoria no tratamento de excessões na abertura do arquivo do certificado
pull/100/head
Leonardo 5 years ago
committed by GitHub
parent
commit
9cb36da6b3
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      pynfe/entidades/certificado.py

16
pynfe/entidades/certificado.py

@ -35,11 +35,21 @@ class CertificadoA1(Certificado):
e retorna a string. Se caminho for True grava na pasta temporaria e retorna e retorna a string. Se caminho for True grava na pasta temporaria e retorna
o caminho dos arquivos, senao retorna o objeto. Apos o uso devem ser excluidos com o metodo excluir.""" o caminho dos arquivos, senao retorna o objeto. Apos o uso devem ser excluidos com o metodo excluir."""
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
# Carrega o arquivo .pfx, erro pode ocorrer se a senha estiver errada ou formato invalido. # Carrega o arquivo .pfx, erro pode ocorrer se a senha estiver errada ou formato invalido.
try: try:
pkcs12 = crypto.load_pkcs12(open(self.caminho_arquivo, "rb").read(), senha)
except Exception as e:
raise Exception('Falha ao carregar certificado digital A1. Verifique local e senha.')
pkcs12 = crypto.load_pkcs12(cert_conteudo, senha)
except crypto.Error as exc:
raise Exception('Falha ao carregar certificado digital A1. Verifique a senha do certificado.') from exc
except Exception as exc:
raise Exception('Falha ao carregar certificado digital A1. Causa desconhecida.') from exc
if caminho: if caminho:
cert = crypto.dump_certificate(crypto.FILETYPE_PEM, pkcs12.get_certificate()) cert = crypto.dump_certificate(crypto.FILETYPE_PEM, pkcs12.get_certificate())

Loading…
Cancel
Save