1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
Description: Compat with bookworm's python3-cryptography
Author: Thomas Goirand <zigo@debian.org>
Forwarded: no
Last-Update: 2024-09-16
Index: octavia/octavia/common/tls_utils/cert_parser.py
===================================================================
--- octavia.orig/octavia/common/tls_utils/cert_parser.py
+++ octavia/octavia/common/tls_utils/cert_parser.py
@@ -16,6 +16,7 @@
import base64
import hashlib
+import cryptography
from cryptography.hazmat import backends
from cryptography.hazmat.primitives import serialization
from cryptography import x509
@@ -300,7 +301,11 @@ def get_cert_expiration(certificate_pem)
try:
cert = x509.load_pem_x509_certificate(certificate_pem,
backends.default_backend())
- return cert.not_valid_after_utc
+ cryptography_version = int(cryptography.__version__.split('.')[0])
+ if cryptography_version >= 42:
+ return cert.not_valid_after_utc
+ else:
+ return cert.not_valid_after
except Exception as e:
LOG.exception('Unreadable Certificate.')
raise exceptions.UnreadableCert from e
Index: octavia/octavia/tests/unit/common/tls_utils/test_cert_parser.py
===================================================================
--- octavia.orig/octavia/tests/unit/common/tls_utils/test_cert_parser.py
+++ octavia/octavia/tests/unit/common/tls_utils/test_cert_parser.py
@@ -15,6 +15,7 @@
import datetime
from unittest import mock
+import cryptography
from cryptography import x509
from octavia.common import data_models
@@ -246,10 +247,16 @@ class TestTLSParseUtils(base.TestCase):
def test_get_cert_expiration(self):
exp_date = cert_parser.get_cert_expiration(sample_certs.X509_EXPIRED)
- self.assertEqual(
- datetime.datetime(2016, 9, 25, 18, 1, 54,
- tzinfo=datetime.timezone.utc),
- exp_date)
+
+ cryptography_version = int(cryptography.__version__.split('.')[0])
+ if cryptography_version >= 42:
+ self.assertEqual(
+ datetime.datetime(2016, 9, 25, 18, 1, 54,
+ tzinfo=datetime.timezone.utc),
+ exp_date)
+ else:
+ self.assertEqual(datetime.datetime(2016, 9, 25, 18, 1, 54),
+ exp_date)
# test the exception
self.assertRaises(exceptions.UnreadableCert,
|