Skip to content

Connect to hidden service through socks5 proxy #28

@TheCharlatan

Description

@TheCharlatan

I would like to connect a Brontide or Brontozaur session to a hidden service. This is typically done through a socks5 proxy. Currently I don't see a way to do that with the current state of this crate (though I may be mistaken).

The socks crate allows its user to create a Socks5Stream, which is similar to a TcpStream of the std library. A TcpStream is also what runs the connection currently used for both Brontide and Brontozaur. Once a Socks5Stream is established and connected, it can be consumed and transformed into a TcpStream.

Currently it is possible to re-create the low-level types to establish a BrontozaurSession. However the members of the BrontozaurSession are private to the Session module, so it can't be re-created from scratch with an injected Socks5Stream.

In order to support connecting to a hidden service, I thus see three possibilities. Either make the members of the Session public, or pass in a user-defined existing TcpStream, or create a Socks5Stream in the encrypted connection module if a Onion address is provided. The last option would also require an additional proxy address to be passed in.

@dr-orlovsky I am keen to implement any of these options, do you have an opinion here?

Metadata

Metadata

Assignees

No one assigned

    Labels

    *privacy*Issues affecting user data privacy / confidentialityquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions