| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This clarifies that the types apply to pluggable transports only,
and not (typically) to the default plain-old-TCP transport.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
When complete, this crate will handle launching and using pluggable
transports on demand.
|
| | | | |
|
| | | |
| | |
| | |
| | | |
We'll need to sort these out as we implement pluggable transports.
|
| | | |
| | |
| | |
| | |
| | | |
I've tried to name and structure these for consistency, and
comment reasonably well. We'll still probably want to make changes.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
As with `TransportId`, this type only gets complicated when
`pt-client` is enabled: it's meant to stay simple for relays and
non-PT-using clients.
|
| | | | |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Fix nightly clippy
See merge request tpo/core/arti!729
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
Improve docs for ChannelUsage
See merge request tpo/core/arti!737
|
| | | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | | |
Try to clarify more that the ChannelUsage is for describing the
usage for one particular channel request, not for the channel as a
whole. This is a potentially confusing point, so we should spell it
out completely.
|
| |\ \ \ \
| |_|_|/
|/| | |
| | | |
| | | | |
CircMgr: Add an accessor for the CircuitBuilder.
See merge request tpo/core/arti!738
|
| | |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
Without this, actually building circuits manually is a pain.
This API is behind the `experimental-api` feature, and so it does
not require a semver.md entry.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As a matter of good crypto practice, we shouldn't use
short-circuiting checks to compare keys or key-like objects, since
the amount of time taken by those checks can leak information about
their inputs.
I don't think it's actually _necessary_ to use a constant-time
operation in this case, but let's establish the precedent.
This is a follow-up to !724.
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are some places in the protocol where we have an all-zero RSA
identity that does not truly represent a key, but rather represents
an absent or unknown key. For these, it's better to use
`RsaIdentity::is_zero` instead of manually checking for a set of
zero bytes: it expresses the intent better, and ensures that the
operation is constant-time.
I am deliberately not introducing a more general IsZero trait here,
or implementing is_zero for anything else: This is the only one we
seem to need right now. We can generalize it later if we have to.
|
| |\ \
| | |
| | |
| | |
| | | |
Implement onion service Introduce1
See merge request tpo/core/arti!724
|
| | | | |
|