diff --git a/attributs.py b/attributs.py index 3aeffc6..c8173f6 100644 --- a/attributs.py +++ b/attributs.py @@ -1517,13 +1517,16 @@ class certificat(Attr): def _format_cert(self, certificat): import OpenSSL - if certificat.startswith('-----BEGIN CERTIFICATE-----'): - certificat = ssl.PEM_cert_to_DER_cert(certificat) try: + if certificat.startswith('-----BEGIN CERTIFICATE-----'): + certificat = ssl.PEM_cert_to_DER_cert(certificat) x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, certificat) - except: - certificat = base64.b64decode(certificat) - x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, certificat) + except Exception: + try: + certificat = base64.b64decode(certificat) + x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, certificat) + except Exception: + raise ValueError("Format du certificat invalide, est-il bien au format DER ou PEM ?") data = {} data['subject'] = dict(x509.get_subject().get_components()) data['issuer'] = dict(x509.get_issuer().get_components())