mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
gh-116333: Relax error string text expectations in SSL-related tests (GH-116334)
* Relax error string text expectations in SSL-related tests As suggested [here][1], this change relaxes the OpenSSL error string text expectations in a number of tests. This was specifically done in support of more easily building CPython [AWS-LC][2], but because AWS-LC is a fork of [BoringSSL][3], it should increase compatibility with that library as well. In addition to the error string relaxations, we also add some guards around the `tls-unique` channel binding being used with TLSv1.3, as that feature (described in [RFC 6929][4]) is [not defined][5] for TLSv1.3. [1]: https://discuss.python.org/t/support-building-ssl-and-hashlib-modules-against-aws-lc/44505/4 [2]: https://github.com/aws/aws-lc [3]: https://github.com/google/boringssl [4]: https://datatracker.ietf.org/doc/html/rfc5929#section-3 [5]: https://datatracker.ietf.org/doc/html/rfc8446#appendix-C.5
This commit is contained in:
parent
1f72fb5447
commit
c85d84166a
4 changed files with 96 additions and 38 deletions
|
@ -8,6 +8,7 @@ import socketserver
|
|||
import time
|
||||
import calendar
|
||||
import threading
|
||||
import re
|
||||
import socket
|
||||
|
||||
from test.support import verbose, run_with_tz, run_with_locale, cpython_only, requires_resource
|
||||
|
@ -558,9 +559,13 @@ class NewIMAPSSLTests(NewIMAPTestsMixin, unittest.TestCase):
|
|||
self.assertEqual(ssl_context.check_hostname, True)
|
||||
ssl_context.load_verify_locations(CAFILE)
|
||||
|
||||
with self.assertRaisesRegex(ssl.CertificateError,
|
||||
"IP address mismatch, certificate is not valid for "
|
||||
"'127.0.0.1'"):
|
||||
# Allow for flexible libssl error messages.
|
||||
regex = re.compile(r"""(
|
||||
IP address mismatch, certificate is not valid for '127.0.0.1' # OpenSSL
|
||||
|
|
||||
CERTIFICATE_VERIFY_FAILED # AWS-LC
|
||||
)""", re.X)
|
||||
with self.assertRaisesRegex(ssl.CertificateError, regex):
|
||||
_, server = self._setup(SimpleIMAPHandler)
|
||||
client = self.imap_class(*server.server_address,
|
||||
ssl_context=ssl_context)
|
||||
|
@ -954,10 +959,13 @@ class ThreadedNetworkedTestsSSL(ThreadedNetworkedTests):
|
|||
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
|
||||
ssl_context.load_verify_locations(CAFILE)
|
||||
|
||||
with self.assertRaisesRegex(
|
||||
ssl.CertificateError,
|
||||
"IP address mismatch, certificate is not valid for "
|
||||
"'127.0.0.1'"):
|
||||
# Allow for flexible libssl error messages.
|
||||
regex = re.compile(r"""(
|
||||
IP address mismatch, certificate is not valid for '127.0.0.1' # OpenSSL
|
||||
|
|
||||
CERTIFICATE_VERIFY_FAILED # AWS-LC
|
||||
)""", re.X)
|
||||
with self.assertRaisesRegex(ssl.CertificateError, regex):
|
||||
with self.reaped_server(SimpleIMAPHandler) as server:
|
||||
client = self.imap_class(*server.server_address,
|
||||
ssl_context=ssl_context)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue