File: compat-python3-cryptography-bookworm.patch

package info (click to toggle)
octavia 16.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,172 kB
  • sloc: python: 99,766; sh: 2,437; pascal: 450; makefile: 114; ruby: 18
file content (63 lines) | stat: -rw-r--r-- 2,471 bytes parent folder | download | duplicates (2)
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,