fix(dependency): update cryptography import (#22744)

Co-authored-by: Daniel Draper <daniel.draper@understand.ai>
This commit is contained in:
Daniel Draper 2023-01-31 11:11:26 +01:00 committed by GitHub
parent 17dfa657f9
commit e18bf3f449
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 11 deletions

View File

@ -60,7 +60,7 @@ cron-descriptor==1.2.24
# via apache-superset # via apache-superset
croniter==1.0.15 croniter==1.0.15
# via apache-superset # via apache-superset
cryptography==3.4.7 cryptography==39.0.0
# via # via
# apache-superset # apache-superset
# paramiko # paramiko
@ -93,7 +93,9 @@ flask-compress==1.13
flask-jwt-extended==4.3.1 flask-jwt-extended==4.3.1
# via flask-appbuilder # via flask-appbuilder
flask-login==0.6.0 flask-login==0.6.0
# via flask-appbuilder # via
# apache-superset
# flask-appbuilder
flask-migrate==3.1.0 flask-migrate==3.1.0
# via apache-superset # via apache-superset
flask-sqlalchemy==2.5.1 flask-sqlalchemy==2.5.1
@ -150,7 +152,6 @@ markupsafe==2.1.1
# via # via
# jinja2 # jinja2
# mako # mako
# werkzeug
# wtforms # wtforms
marshmallow==3.13.0 marshmallow==3.13.0
# via # via
@ -284,6 +285,7 @@ werkzeug==2.1.2
# via # via
# flask # flask
# flask-jwt-extended # flask-jwt-extended
# flask-login
wtforms==2.3.3 wtforms==2.3.3
# via # via
# apache-superset # apache-superset

View File

@ -80,7 +80,7 @@ setup(
"colorama", "colorama",
"croniter>=0.3.28", "croniter>=0.3.28",
"cron-descriptor", "cron-descriptor",
"cryptography>=3.3.2", "cryptography>=39.0.0,<40",
"deprecation>=2.1.0, <2.2.0", "deprecation>=2.1.0, <2.2.0",
"flask>=2.1.3, <2.2", "flask>=2.1.3, <2.2",
"flask-appbuilder>=4.1.6, <5.0.0", "flask-appbuilder>=4.1.6, <5.0.0",

View File

@ -74,9 +74,8 @@ import markdown as md
import numpy as np import numpy as np
import pandas as pd import pandas as pd
import sqlalchemy as sa import sqlalchemy as sa
from cryptography import x509
from cryptography.hazmat.backends import default_backend from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.backends.openssl.x509 import _Certificate from cryptography.x509 import Certificate, load_pem_x509_certificate
from flask import current_app, flash, g, Markup, render_template, request from flask import current_app, flash, g, Markup, render_template, request
from flask_appbuilder import SQLA from flask_appbuilder import SQLA
from flask_appbuilder.security.sqla.models import Role, User from flask_appbuilder.security.sqla.models import Role, User
@ -1550,7 +1549,7 @@ def override_user(user: Optional[User], force: bool = True) -> Iterator[Any]:
delattr(g, "user") delattr(g, "user")
def parse_ssl_cert(certificate: str) -> _Certificate: def parse_ssl_cert(certificate: str) -> Certificate:
""" """
Parses the contents of a certificate and returns a valid certificate object Parses the contents of a certificate and returns a valid certificate object
if valid. if valid.
@ -1560,9 +1559,7 @@ def parse_ssl_cert(certificate: str) -> _Certificate:
:raises CertificateException: If certificate is not valid/unparseable :raises CertificateException: If certificate is not valid/unparseable
""" """
try: try:
return x509.load_pem_x509_certificate( return load_pem_x509_certificate(certificate.encode("utf-8"), default_backend())
certificate.encode("utf-8"), default_backend()
)
except ValueError as ex: except ValueError as ex:
raise CertificateException("Invalid certificate") from ex raise CertificateException("Invalid certificate") from ex

View File

@ -910,7 +910,6 @@ class TestUtils(SupersetTestCase):
def test_ssl_certificate_parse(self): def test_ssl_certificate_parse(self):
parsed_certificate = parse_ssl_cert(ssl_certificate) parsed_certificate = parse_ssl_cert(ssl_certificate)
self.assertEqual(parsed_certificate.serial_number, 12355228710836649848) self.assertEqual(parsed_certificate.serial_number, 12355228710836649848)
self.assertRaises(CertificateException, parse_ssl_cert, "abc" + ssl_certificate)
def test_ssl_certificate_file_creation(self): def test_ssl_certificate_file_creation(self):
path = create_ssl_cert_file(ssl_certificate) path = create_ssl_cert_file(ssl_certificate)