MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_bio_handshake

Method test_bio_handshake

Lib/test/test_ssl.py:2156–2190  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2154 return ret
2155
2156 def test_bio_handshake(self):
2157 sock = socket.socket(socket.AF_INET)
2158 self.addCleanup(sock.close)
2159 sock.connect(self.server_addr)
2160 incoming = ssl.MemoryBIO()
2161 outgoing = ssl.MemoryBIO()
2162 ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
2163 self.assertTrue(ctx.check_hostname)
2164 self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED)
2165 ctx.load_verify_locations(SIGNING_CA)
2166 sslobj = ctx.wrap_bio(incoming, outgoing, False,
2167 SIGNED_CERTFILE_HOSTNAME)
2168 self.assertIs(sslobj._sslobj.owner, sslobj)
2169 self.assertIsNone(sslobj.cipher())
2170 self.assertIsNone(sslobj.version())
2171 self.assertIsNone(sslobj.shared_ciphers())
2172 self.assertRaises(ValueError, sslobj.getpeercert)
2173 # tls-unique is not defined for TLSv1.3
2174 # https://datatracker.ietf.org/doc/html/rfc8446#appendix-C.5
2175 if 'tls-unique' in ssl.CHANNEL_BINDING_TYPES and sslobj.version() != "TLSv1.3":
2176 self.assertIsNone(sslobj.get_channel_binding('tls-unique'))
2177 self.ssl_io_loop(sock, incoming, outgoing, sslobj.do_handshake)
2178 self.assertTrue(sslobj.cipher())
2179 self.assertIsNone(sslobj.shared_ciphers())
2180 self.assertIsNotNone(sslobj.version())
2181 self.assertTrue(sslobj.getpeercert())
2182 if 'tls-unique' in ssl.CHANNEL_BINDING_TYPES and sslobj.version() != "TLSv1.3":
2183 self.assertTrue(sslobj.get_channel_binding('tls-unique'))
2184 try:
2185 self.ssl_io_loop(sock, incoming, outgoing, sslobj.unwrap)
2186 except ssl.SSLSyscallError:
2187 # If the server shuts down the TCP connection without sending a
2188 # secure shutdown message, this is reported as SSL_ERROR_SYSCALL
2189 pass
2190 self.assertRaises(ssl.SSLError, sslobj.write, b'foo')
2191
2192 def test_bio_read_write_data(self):
2193 sock = socket.socket(socket.AF_INET)

Callers

nothing calls this directly

Calls 15

wrap_bioMethod · 0.95
ssl_io_loopMethod · 0.95
socketMethod · 0.80
addCleanupMethod · 0.80
assertTrueMethod · 0.80
assertIsNoneMethod · 0.80
assertIsNotNoneMethod · 0.80
connectMethod · 0.45
assertEqualMethod · 0.45
load_verify_locationsMethod · 0.45
assertIsMethod · 0.45
cipherMethod · 0.45

Tested by

no test coverage detected