Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connect to hidden service through socks5 proxy #28

Open
TheCharlatan opened this issue Aug 20, 2022 · 1 comment
Open

Connect to hidden service through socks5 proxy #28

TheCharlatan opened this issue Aug 20, 2022 · 1 comment
Labels
*privacy* Issues affecting user data privacy / confidentiality question Further information is requested
Milestone

Comments

@TheCharlatan
Copy link
Contributor

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?

@dr-orlovsky
Copy link
Member

Sorry for a late reply, had a number of conference talks in a row.

Thank you for proposing solution to this. I think the best way forward will be adding a new constructor to the BrontozaurSession which will take an Onion address and will do all dirty work internally, finally instantiating the self with TcpStream internally. What do you think?

@dr-orlovsky dr-orlovsky added question Further information is requested *privacy* Issues affecting user data privacy / confidentiality labels Sep 9, 2022
@dr-orlovsky dr-orlovsky modified the milestones: v0.8.0, v1.0.0 Sep 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
*privacy* Issues affecting user data privacy / confidentiality question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants