|
3 | 3 |
|
4 | 4 | See https://www.python-ldap.org/ for details. |
5 | 5 | """ |
| 6 | +import base64 |
6 | 7 | import errno |
7 | 8 | import linecache |
8 | 9 | import os |
| 10 | +import re |
9 | 11 | import socket |
10 | 12 | import unittest |
11 | 13 | import pickle |
|
20 | 22 | from slapdtest import requires_ldapi, requires_sasl, requires_tls |
21 | 23 | from slapdtest import requires_init_fd |
22 | 24 |
|
23 | | -try: |
24 | | - from ssl import PEM_cert_to_DER_cert |
25 | | -except ImportError: |
26 | | - PEM_cert_to_DER_cert = None |
| 25 | +PEM_CERT_RE = re.compile( |
| 26 | + b'-----BEGIN CERTIFICATE-----(.*?)-----END CERTIFICATE-----', |
| 27 | + re.DOTALL |
| 28 | +) |
27 | 29 |
|
28 | 30 |
|
29 | 31 | LDIF_TEMPLATE = """dn: %(suffix)s |
@@ -446,15 +448,12 @@ def test_get_tls_peercert(self): |
446 | 448 | self.assertTrue(peercert) |
447 | 449 | self.assertIsInstance(peercert, bytes) |
448 | 450 |
|
449 | | - if PEM_cert_to_DER_cert is not None: |
450 | | - with open(self.server.servercert) as f: |
451 | | - server_pem = f.read() |
452 | | - # remove text |
453 | | - begin = server_pem.find("-----BEGIN CERTIFICATE-----") |
454 | | - server_pem = server_pem[begin:-1] |
| 451 | + with open(self.server.servercert, "rb") as f: |
| 452 | + server_cert = f.read() |
| 453 | + pem_body = PEM_CERT_RE.search(server_cert).group(1) |
| 454 | + server_der = base64.b64decode(pem_body) |
455 | 455 |
|
456 | | - server_der = PEM_cert_to_DER_cert(server_pem) |
457 | | - self.assertEqual(server_der, peercert) |
| 456 | + self.assertEqual(server_der, peercert) |
458 | 457 |
|
459 | 458 | def test_dse(self): |
460 | 459 | dse = self._ldap_conn.read_rootdse_s() |
|
0 commit comments