mirror of
https://github.com/python/cpython.git
synced 2025-09-26 10:19:53 +00:00
[3.12] gh-116333: Relax error string text expectations in SSL-related tests (GH-116334) (GH-117136)
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/rfc5929GH-section-3
[5]: https://datatracker.ietf.org/doc/html/rfc8446GH-appendix-C.5
(cherry picked from commit c85d84166a
)
Co-authored-by: Will Childs-Klein <willck93@gmail.com>
This commit is contained in:
parent
ea290f8f19
commit
05c5bece78
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