|
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