| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | |
| | | |
| | | |
| | | |
| | | | |
The previous indentation was making it think that we had rust code
where none existed.
|
| | | | |
| | | |
| | | |
| | | | |
Also, document another invariant.
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
This can't be used in a consistency-preserving way.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Using Option<T> as an alias for T was too clever indeed, and it
meant that our HashMaps were declared with the wrong types.
Putting flags here instead gives us an extension point that we can
use in the future.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Every element in the set has up to N keys, each of which may have differnt
types. No value for any key may correspond to more than one element in
the set.
These properties can be provided, via a macro, for values of N between 1
and $BIG_ENOUGH.
We'll use this to implement a type that holds HasRelayIds.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
Implement a SOCKS client handshake
See merge request tpo/core/arti!746
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Per a suggestion from Diziet, clarify that the socks handshake code
only wants you to drain your buffers when it tells you to.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
I don't expect us to need this information much, but we may as well
hang on to it.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Try to do it in constant time, to avoid even the smell of
side-channel attacks.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
These tests include a few reference cases, as well as a little
framework to make sure that the client and the proxy implementation
will handshake with one another successfully.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously we would report it as authenticating using the empty
string.
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Also, have it enforce more correctness properties.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This type is by analogy to `RemoteProtocolFailed`; we'll use it for
cases when the Socks proxy refuses to talk to us.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Retain "SocksHandshake" as a deprecated synonym.
Also, make an (on-by-default) feature for SocksProxyHandshake.
(There is about to be a SocksClientHandshake as well.)
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Since these don't expose any Runtime-based APIs, they don't have
a breaking change.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
(Since the APIs for the `Schedule::sleep*` functions changed, this
is a breaking change in tor-rtcompat. Therefore, the Runtime trait
in tor-rtcompat is now a different trait. Therefore, anything that
uses the Runtime trait in its APIs has also broken.)
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | |_|_|/
|/| | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The warning `clippy::bool_to_int_with_if` is meant to shout at you
when you say `if x { 1 } else { 0 }` and instead suggest that you
say `inttype::from(x)`.
I agreed with this for the case in tor-cert, where we are literally
converting a boolean into a flag.
I don't agree with this in tor-netdoc, where we are using a boolean
to decide how many fields to skip in a given document format. So
for this case, I decided to clean up the code a little by renaming
"skip" to "n_skip", and changing the boolean to use an enum instead.
|
| | |/ /
|/| |
| | |
| | |
| | |
| | | |
Also, document the features.
Closes #588.
|
| | | |
| | |
| | |
| | | |
https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/91
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
This seems a minimal API for such a thing.
|
| | | |
| | |
| | |
| | | |
This repetition was getting repetitive.
|
| |/ /
| |
| |
| |
| | |
The config parsing wants this. Also there are some anomalies in the
types here that ought to be tidied up.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Enforce SafeLogging on the console.
Closes #553
See merge request tpo/core/arti!742
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously we always assumed that the console was ephemeral, and so
we disabled safe logging. But the console can be piped to journald.
And even if we enforce isatty there's no guarantee that the user
isn't using some kind of terminal that logs to disk or something.
Best just to enable SafeLogging unconditionally. I've added a note
about where and how we might re-enable this.
Closes #553.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Their omission was an oversight.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This covers only the most basic notions of working with bridges:
that we need a separate set of guards, and that they have to
come from the list of known bridges.
|
| |/ /
| |
| |
| |
| |
| |
| | |
This type goes in tor-guardmgr, since that's where decisions about
circuits' first hops are made.
There are a lot of "todo"s here for us to resolve.
|
| |\ \
| | |
| | |
| | |
| | | |
Implement Introduce2 tor cell
See merge request tpo/core/arti!736
|
| | | |
| | |
| | |
| | |
| | | |
Reuse the same Introduce inner body implementation
of Introduce1.
|
| | | | |
|