• Julien Muchembled's avatar
    In a few places, use cryptography API instead of 'openssl' subprocesses · 2a5bc4b0
    Julien Muchembled authored
    The remaining one in loadVerify needs cryptography >= 40.0.0:
    
        try:
            r = crypto.load_certificate(type, cert)
        except crypto.Error as e:
            raise VerifyError('unable to load certificate') from e
        if type != crypto.FILETYPE_PEM:
            cert = crypto.dump_certificate(crypto.FILETYPE_PEM, r)
        cert_crypto = load_pem_x509_certificate(cert)
        try:
            cert_crypto.verify_directly_issued_by(self.ca_crypto)
        except Exception as e:
            raise VerifyError(str(e)) from e
        if strict:
            now = time.time()
            if now < notBefore(self.ca) or now < notBefore(r):
                raise VerifyError('certificate is not yet valid')
            if notAfter(self.ca) < now or notAfter(r) < now:
                raise VerifyError('certificate has expired')
        return r
    2a5bc4b0
registry.py 37.3 KB