def client_and_server( client_options={}, client_patch=lambda x: None, server_options={}, server_patch=lambda x: None, transport_options={}, ): client = QuicConnection( configuration=QuicConfiguration(is_client=True, **client_options)) client._ack_delay = 0 client_patch(client) server = QuicConnection( configuration=QuicConfiguration(is_client=False, certificate=SERVER_CERTIFICATE, private_key=SERVER_PRIVATE_KEY, **server_options)) server._ack_delay = 0 server_patch(server) # perform handshake client.connect(SERVER_ADDR, now=time.time()) for i in range(3): roundtrip(client, server) yield client, server # close client.close() server.close()
def client_and_server( client_options={}, client_patch=lambda x: None, server_options={}, server_patch=lambda x: None, server_stream_handler=None, transport_options={}, ): client = QuicConnection( configuration=QuicConfiguration(is_client=True, **client_options)) client_patch(client) server = QuicConnection( configuration=QuicConfiguration(is_client=False, certificate=SERVER_CERTIFICATE, private_key=SERVER_PRIVATE_KEY, **server_options), stream_handler=server_stream_handler, ) server_patch(server) # perform handshake create_transport(client, server, **transport_options) yield client, server # close client.close() server.close()
def client_and_server(): client = QuicConnection(is_client=True) server = QuicConnection( is_client=False, certificate=SERVER_CERTIFICATE, private_key=SERVER_PRIVATE_KEY ) # perform handshake create_transport(client, server) yield client, server client.close() server.close()
def test_handle_connection_close_frame_app(self): client = QuicConnection(is_client=True) server = QuicConnection( is_client=False, certificate=SERVER_CERTIFICATE, private_key=SERVER_PRIVATE_KEY, ) # perform handshake client_transport, server_transport = create_transport(client, server) self.assertEqual(client_transport.sent, 4) self.assertEqual(server_transport.sent, 4) # close server.close(error_code=QuicErrorCode.NO_ERROR) self.assertEqual(client_transport.sent, 5) self.assertEqual(server_transport.sent, 5)
def test_decryption_error(self): client = QuicConnection(is_client=True) server = QuicConnection( is_client=False, certificate=SERVER_CERTIFICATE, private_key=SERVER_PRIVATE_KEY, ) # perform handshake client_transport, server_transport = create_transport(client, server) self.assertEqual(client_transport.sent, 4) self.assertEqual(server_transport.sent, 4) # mess with encryption key server.spaces[tls.Epoch.ONE_RTT].crypto.send.setup( tls.CipherSuite.AES_128_GCM_SHA256, bytes(48)) # close server.close(error_code=QuicErrorCode.NO_ERROR) self.assertEqual(client_transport.sent, 4) self.assertEqual(server_transport.sent, 5)