f15cde80de
The previous code would report all failures to build a circuit as failures of the guard. But of course that's not right: If we fail to extend to the second or third hop, that might or might not be the guard's fault. Now we use the "pending status" feature of the GuardMonitor type so that an early failure is attributed to the guard, but a later failure is attributed as "Indeterminate". Only a complete circuit is called a success. We use a new "GuardStatusHandle" type here so that we can report the status early if there is a timeout. |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
README.md |
README.md
tor-circmgr
tor-circmgr
: circuits through the Tor network on demand.
Overview
This crate is part of Arti, a project to implement Tor in Rust.
In Tor, a circuit is an encrypted multi-hop tunnel over multiple relays. This crate's purpose, long-term, is to manage a set of circuits for a client. It should construct circuits in response to a client's needs, and preemptively construct circuits so as to anticipate those needs. If a client request can be satisfied with an existing circuit, it should return that circuit instead of constructing a new one.
Limitations
But for now, this tor-circmgr
code is extremely preliminary; its
data structures are all pretty bad, and it's likely that the API
is wrong too.
The path generation code in this crate is missing a colossal number of features that you'd probably want in production: the paths it generates should not be considered secure.
License: MIT OR Apache-2.0