summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiromu Asahina <hiromu.asahina.az@hco.ntt.co.jp>2023-03-17 23:16:04 +0900
committerHiromu Asahina <hiromu.asahina.az@hco.ntt.co.jp>2023-03-17 23:48:02 +0900
commitf5db9801c23bde15d162a67d4fd6621e5bd09719 (patch)
tree3afe3dda1df8c8ebd6810d155bc3df982ef9e0b7
parentc08d97672dcd40f8d927f91e59049053cfe3b5e4 (diff)
downloadkeystone-f5db9801c23bde15d162a67d4fd6621e5bd09719.tar.gz
Remove Dependency on Cryptography >=36.0.0
The mTLS OAuth2.0 in Keystone uses a parameter that is only availble on cryptography 36.0.0 or later. Users may have to upgrade cryptography which is already installed, which can be unreasonably hassle. This patch introduces an alternative for that parameter. [1] https://cryptography.io/en/latest/changelog/#v36-0-0 Closes-bug: 2009600 Change-Id: Idffe269b62797bb2935429f4069e878a177db04f
-rw-r--r--keystone/common/utils.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/keystone/common/utils.py b/keystone/common/utils.py
index 792c17951..3f8088f27 100644
--- a/keystone/common/utils.py
+++ b/keystone/common/utils.py
@@ -479,8 +479,9 @@ def get_certificate_subject_dn(cert_pem):
try:
cert = x509.load_pem_x509_certificate(cert_pem.encode('utf-8'))
for item in cert.subject:
- name, value = item.rfc4514_string(
- attr_name_overrides=ATTR_NAME_OVERRIDES).split('=')
+ name, value = item.rfc4514_string().split('=')
+ if item.oid in ATTR_NAME_OVERRIDES:
+ name = ATTR_NAME_OVERRIDES[item.oid]
dn_dict[name] = value
except Exception as error:
LOG.exception(error)
@@ -501,8 +502,9 @@ def get_certificate_issuer_dn(cert_pem):
try:
cert = x509.load_pem_x509_certificate(cert_pem.encode('utf-8'))
for item in cert.issuer:
- name, value = item.rfc4514_string(
- attr_name_overrides=ATTR_NAME_OVERRIDES).split('=')
+ name, value = item.rfc4514_string().split('=')
+ if item.oid in ATTR_NAME_OVERRIDES:
+ name = ATTR_NAME_OVERRIDES[item.oid]
dn_dict[name] = value
except Exception as error:
LOG.exception(error)