@@ -1868,10 +1868,6 @@ class SimpleBackgroundTests(unittest.TestCase):
18681868
18691869 def setUp (self ):
18701870 self .server_context = ssl .SSLContext (ssl .PROTOCOL_TLS_SERVER )
1871-
1872- if has_tls_version ('TLSv1_3' ):
1873- self .server_context .set_ciphersuites ('TLS_AES_256_GCM_SHA384' )
1874-
18751871 self .server_context .load_cert_chain (SIGNED_CERTFILE )
18761872 server = ThreadedEchoServer (context = self .server_context )
18771873 self .enterContext (server )
@@ -2118,33 +2114,6 @@ def test_ciphers(self):
21182114 cert_reqs = ssl .CERT_NONE , ciphers = "^$:,;?*'dorothyx" )
21192115 s .connect (self .server_addr )
21202116
2121- @requires_tls_version ('TLSv1_3' )
2122- def test_ciphersuites (self ):
2123- # Test successful TLS 1.3 handshake
2124- with test_wrap_socket (socket .socket (socket .AF_INET ),
2125- cert_reqs = ssl .CERT_NONE ,
2126- ciphersuites = "TLS_AES_256_GCM_SHA384" ,
2127- min_version = ssl .TLSVersion .TLSv1_3 ) as s :
2128- s .connect (self .server_addr )
2129- self .assertEqual (s .cipher (),
2130- ("TLS_AES_256_GCM_SHA384" , "TLSv1.3" , 256 ))
2131-
2132- # Test mismatched TLS 1.3 cipher suites
2133- with test_wrap_socket (socket .socket (socket .AF_INET ),
2134- cert_reqs = ssl .CERT_NONE ,
2135- ciphersuites = "TLS_AES_128_GCM_SHA256" ,
2136- min_version = ssl .TLSVersion .TLSv1_3 ) as s :
2137- with self .assertRaises (ssl .SSLError ):
2138- s .connect (self .server_addr )
2139-
2140- # Test unrecognized TLS 1.3 cipher suite name
2141- with self .assertRaisesRegex (ssl .SSLError ,
2142- "No cipher suite can be selected" ):
2143- with socket .socket (socket .AF_INET ) as sock :
2144- s = test_wrap_socket (sock , cert_reqs = ssl .CERT_NONE ,
2145- ciphersuites = "XXX" ,
2146- min_version = ssl .TLSVersion .TLSv1_3 )
2147-
21482117 def test_get_ca_certs_capath (self ):
21492118 # capath certs are loaded on request
21502119 ctx = ssl .SSLContext (ssl .PROTOCOL_TLS_CLIENT )
@@ -2274,6 +2243,53 @@ def test_transport_eof(self):
22742243 self .assertRaises (ssl .SSLEOFError , sslobj .read )
22752244
22762245
2246+ @requires_tls_version ('TLSv1_3' )
2247+ class SimpleBackgroundTestsTLS_1_3 (unittest .TestCase ):
2248+ """Tests that connect to a simple server running in the background"""
2249+
2250+ def setUp (self ):
2251+ ciphers = [cipher ['name' ] for cipher in ctx .get_ciphers ()
2252+ if cipher ['protocol' ] == 'TLSv1.3' ]
2253+
2254+ self .matching_cipher = ciphers [0 ]
2255+ self .mismatched_cipher = ciphers [- 1 ]
2256+
2257+ self .server_context = ssl .SSLContext (ssl .PROTOCOL_TLS_SERVER )
2258+ self .server_context .set_ciphersuites (self .matching_cipher )
2259+ self .server_context .load_cert_chain (SIGNED_CERTFILE )
2260+ server = ThreadedEchoServer (context = self .server_context )
2261+ self .enterContext (server )
2262+ self .server_addr = (HOST , server .port )
2263+
2264+ def test_ciphersuites (self ):
2265+ # Test unrecognized TLS 1.3 cipher suite name
2266+ with self .assertRaisesRegex (ssl .SSLError ,
2267+ "No cipher suite can be selected" ):
2268+ with socket .socket (socket .AF_INET ) as sock :
2269+ s = test_wrap_socket (sock , cert_reqs = ssl .CERT_NONE ,
2270+ ciphersuites = "XXX" ,
2271+ min_version = ssl .TLSVersion .TLSv1_3 )
2272+
2273+ # Test successful TLS 1.3 handshake
2274+ with test_wrap_socket (socket .socket (socket .AF_INET ),
2275+ cert_reqs = ssl .CERT_NONE ,
2276+ ciphersuites = self .matching_cipher ,
2277+ min_version = ssl .TLSVersion .TLSv1_3 ) as s :
2278+ s .connect (self .server_addr )
2279+ self .assertEqual (s .cipher ()[0 ], self .matching_cipher )
2280+
2281+ # Test mismatched TLS 1.3 cipher suites
2282+ if self .matching_client != self .mismatched_cipher :
2283+ with test_wrap_socket (socket .socket (socket .AF_INET ),
2284+ cert_reqs = ssl .CERT_NONE ,
2285+ ciphersuites = self .mismatched_cipher ,
2286+ min_version = ssl .TLSVersion .TLSv1_3 ) as s :
2287+ with self .assertRaises (ssl .SSLError ):
2288+ s .connect (self .server_addr )
2289+ else :
2290+ self .skipTest ("Multiple TLS 1.3 ciphers are not available" )
2291+
2292+
22772293@support .requires_resource ('network' )
22782294class NetworkedTests (unittest .TestCase ):
22792295
0 commit comments