Como assinar nfe (AssinaturaA1) com certificado digital em binario ou bufferizado na memoria? pois está salvo na base de dados

50 views
Skip to first unread message

Luiz H

unread,
Apr 9, 2024, 10:11:11 AMApr 9
to PyNFe
os certificados dos clientes estão salvos na base de dados em binario .
vi que se eu simplesmente salvar um arquivo e chamar a assinatura funciona . mas gostaria de não ter que gerar esse IO , é possível utilizar o certificado direto da memoria?

Message has been deleted

Luiz H

unread,
Apr 9, 2024, 1:17:16 PMApr 9
to PyNFe
Segue modificação para implementação, caso queira. (alteração em amarelo)

Arquivo certificado.py
faz uma verificação se o que foi passado no certificado é binário, atribui o bin e segue, else , seu código para abrir o arquivo inalterado.
funcionando perfeitamente.


def separar_arquivo(self, senha, caminho=False):
"""Separa o arquivo de certificado em dois: de chave e de certificado 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.
"""

if type(self.caminho_arquivo) is bytes:
cert_conteudo = self.caminho_arquivo #binario
else:
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

if not isinstance(senha, bytes):
Reply all
Reply to author
Forward
0 new messages