@@ -56,16 +56,19 @@ def separar_arquivo(self, senha, caminho=False):
56
56
"Falha ao abrir arquivo do certificado digital A1. Causa desconhecida."
57
57
) from exc
58
58
59
+ if not isinstance (senha , bytes ):
60
+ senha = str .encode (senha )
61
+
59
62
# Carrega o arquivo .pfx, erro pode ocorrer se a senha estiver errada ou formato invalido.
60
63
try :
61
64
(
62
65
chave ,
63
66
cert ,
64
67
) = pkcs12 .load_key_and_certificates (
65
- cert_conteudo , str . encode ( senha )
68
+ cert_conteudo , senha
66
69
)[:2 ]
67
- except ValueError as e :
68
- if "bad decrypt " in str (e ).lower ():
70
+ except Exception as e :
71
+ if "invalid password " in str (e ).lower ():
69
72
raise Exception (
70
73
"Falha ao carregar certificado digital A1. Verifique a senha do"
71
74
" certificado."
@@ -82,7 +85,7 @@ def separar_arquivo(self, senha, caminho=False):
82
85
with tempfile .NamedTemporaryFile (delete = False ) as arqchave :
83
86
arqchave .write (
84
87
chave .private_bytes (
85
- Encoding .PEM , PrivateFormat .TraditionalOpenSSL , NoEncryption ()
88
+ Encoding .PEM , PrivateFormat .PKCS8 , NoEncryption ()
86
89
)
87
90
)
88
91
self .arquivos_temp .append (arqchave .name )
@@ -97,7 +100,7 @@ def separar_arquivo(self, senha, caminho=False):
97
100
98
101
# Chave, string decodificada da chave privada
99
102
chave = chave .private_bytes (
100
- Encoding .PEM , PrivateFormat .TraditionalOpenSSL , NoEncryption ()
103
+ Encoding .PEM , PrivateFormat .PKCS8 , NoEncryption ()
101
104
)
102
105
103
106
return chave , cert
0 commit comments