tor: add inital tor controller implementation

In this commit, we add our inital implementation of a Tor Controller.
This commit includes the ability for the controller to automatically
signal the Tor daemon to create a v2 onion service. This will be
expanded later on to support creating v3 onion services.

Before allowing the controller to interact with the Tor daemon, the
connection must be authenticated first. This commit includes support for
the SAFECOOKIE authentication method as a sane default.

Co-Authored-By: Eugene <crypt-iq@users.noreply.github.com>
This commit is contained in:
Wilmer Paulino
2018-04-26 02:44:12 -04:00
parent 5d29dea21a
commit d6c2957f3c
2 changed files with 459 additions and 5 deletions

View File

@@ -2,11 +2,17 @@ tor
===
The tor package contains utility functions that allow for interacting with the
Tor daemon. So far, supported functions include routing all traffic over Tor's
exposed socks5 proxy and routing DNS queries over Tor (A, AAAA, SRV). In the
future more features will be added: automatic setup of v2 hidden service
functionality, control port functionality, and handling manually setup v3 hidden
services.
Tor daemon. So far, supported functions include:
* Routing all traffic over Tor's exposed SOCKS5 proxy.
* Routing DNS queries over Tor (A, AAAA, SRV).
* Limited Tor Control functionality (synchronous messages only). So far, this
includes:
* Support for SAFECOOKIE authentication only as a sane default.
* Creating v2 onion services.
In the future, the Tor Control functionality will be extended to support v3
onion services, asynchronous messages, etc.
## Installation and Updating