Ejemplo n.º 1
0
    def load_from_tor_stem(cls, stem_controller: Controller):
        bridges: List[str] = []
        if stem_controller.get_conf("UseBridges") != "0":
            bridges = stem_controller.get_conf("Bridge", multiple=True)

        for proxy_type in PROXY_TYPES:
            val = stem_controller.get_conf(proxy_type)
            if val is not None:
                auth = [
                    stem_controller.get_conf(opt)
                    for opt in PROXY_AUTH_OPTIONS[proxy_type]
                ]

                proxy = TorConnectionProxy.from_tor_value(proxy_type,
                                                          val,
                                                          auth_values=auth)
                break
        else:
            proxy = TorConnectionProxy.noproxy()

        config = cls(bridges=bridges, proxy=proxy)

        return config
Ejemplo n.º 2
0
def peer_tunnel(tor_controller: Controller, peer):
    socks_port = tor_controller.get_conf('SocksPort')

    class Connected:
        connected = False

    send_buffer = []
    rec_buffer = []
    rec_address = None

    yam.client(1, peer, socks_port, send_buffer, rec_buffer, Connected)
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        ip = '127.0.0.1'
        s.bind((ip, 0))
        s.listen(1)
        port = s.getsockname()[1]
        serv = tor_controller.create_ephemeral_hidden_service(
            {1337: '127.0.0.1:' + str(port)},
            key_content='ED25519-V3',
            await_publication=True,
        )
        rec_address = serv.service_id
        conn, addr = s.accept()
        yam.server(1, tor_controller, conn, send_buffer, rec_buffer, Connected)