Exemplo n.º 1
0
    def test_client_only(self, tctx: context.Context):
        """Test TLS with client only"""
        playbook, client_layer, tssl_client = make_client_tls_layer(tctx)
        client_layer.debug = "  "
        assert not tctx.client.tls_established

        # Send ClientHello, receive ServerHello
        data = tutils.Placeholder(bytes)
        assert (
                playbook
                >> events.DataReceived(tctx.client, tssl_client.bio_read())
                << tls.TlsClienthelloHook(tutils.Placeholder())
                >> tutils.reply()
                << tls.TlsStartHook(tutils.Placeholder())
                >> reply_tls_start()
                << commands.SendData(tctx.client, data)
        )
        tssl_client.bio_write(data())
        tssl_client.do_handshake()
        # Finish Handshake
        interact(playbook, tctx.client, tssl_client)

        assert tssl_client.obj.getpeercert(True)
        assert tctx.client.tls_established

        # Echo
        _test_echo(playbook, tssl_client, tctx.client)
        other_server = context.Server(None)
        assert (
                playbook
                >> events.DataReceived(other_server, b"Plaintext")
                << commands.SendData(other_server, b"plaintext")
        )
Exemplo n.º 2
0
 def test_basic(self):
     s = context.Server(("address", 22))
     assert repr(s)
     assert str(s)
     s.timestamp_tls_setup = 1607780791
     assert str(s)
     s.alpn = b"foo"
     s.sockname = ("127.0.0.1", 54321)
     assert str(
         s) == "Server(address:22, state=closed, alpn=foo, src_port=54321)"
Exemplo n.º 3
0
    def create(self, method: str, url: str) -> None:
        try:
            req = http.HTTPRequest.make(method.upper(), url)
        except ValueError as e:
            raise exceptions.CommandError("Invalid URL: %s" % e)

        c = context.Client(("", 0), ("", 0), req.timestamp_start - 0.0001)
        s = context.Server((req.host, req.port))

        f = http.HTTPFlow(c, s)
        f.request = req
        f.request.headers["Host"] = req.host
        self.add([f])
Exemplo n.º 4
0
 def __init__(self, ctx: context.Context):
     super().__init__(ctx, context.Server(None))
Exemplo n.º 5
0
 def test_basic(self):
     s = context.Server(("address", 22))
     assert repr(s)
Exemplo n.º 6
0
def tconn() -> context.Server:
    return context.Server(None)