| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | |
|
| | | |
| | |
| | |
| | | |
Also fix a bug in decoding, where we accepted too-short strings.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We don't want to call this "unix path" anywhere, since it
corresponds to _any_ case where the ability to negotiate a
successful connection means that the client is authorized.
We also don't want to call it "none": The authentication
is inherent to the connection, not nonexistent.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously participants in the cookie protocol only bound the peer
nonce in their MACs. With this change, they bind both nonces.
This change is _probably_ not necessary for security, but it can't
hurt. It follows a general principle that Adam Langley told me a
long time ago: you won't regret binding more, but you might regret
binding less.
|
| | | |
| | |
| | |
| | |
| | | |
Since this is a secret value, it's probably best not to copy it
all over the place.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
(Since Windows doesn't have unix sockets, this is the option
that will work everywhere.)
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
Now that we have a solid idea of how connections happen,
it's clear we won't need to enable this negotiation mechanism.
|
| | | |
| | |
| | |
| | | |
Conforms to rpc-cookie-sketch.md.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
We want to load cookies only after we've connected and gotten a
banner.
|
| | | | |
|
| |\ \ \
| |_|/
|/| |
| | |
| | | |
Update P101 numbers for Q4-2024
See merge request tpo/core/arti!2711
|
| | |/ |
|
| |\ \
| | |
| | |
| | |
| | | |
arti-relay: remove 'override_net_params' config
See merge request tpo/core/arti!2709
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
We think that for relays, the 'override_net_params' config option is
overly broad and a footgun. We can always re-add this back later if we
want to, but for now the focus will be on exposing specific config
options for features that are okay to be changed by users.
|
| |\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | | |
tor-proto: Initial KIST support (Linux-only)
Closes #1728, #1729, and #1730
See merge request tpo/core/arti!2706
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This also removes the TODO that was addressed by adding the kist params
to this type.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This moves the `NetParameters -> KistParams` conversion to
`tor-chanmgr`.
Prompted by
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2706#note_3147557
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This renames UnsupportedStreamOpsHandle to NoOpStreamOpsHandle for
clarity (the old name kind of sounded like the name of an error type).
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Closes #1730, #1728
|
| | | |
| | |
| | |
| | |
| | | |
Needed for the chanmgr to be able to update existing channels with new
KIST settings read from the consensus.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This will enable us to update the channel's KIST configuration whenever
there is a change in the consensus or config.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This is unfortunately necessary, because after the channel handshake, we
need to give the channel reactor a `StreamOps` handle to the underlying
stream.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
We're about to add a trait bound that forces `MockTlsStream` to impl
`StreamOps`.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Needed for cases where we wrap an object that implements `StreamOps` in
an external type, thereby losing access to the `StreamOps`
functionality. For example, during the channel handshake, we `.split()`
the stream that implements `StreamOps`, which leaves us with a
`SplitSink` and a `SplitStream`, neither of which implement `StreamOps`.
Getting a handle to the underlying object that implements `StreamOps`
(for example, a file handle) *before* the stream is `.split()` enables
us to use `StreamOps` to manipulate the underlying split stream.
This commit also introduces a special `UnsupportedStreamOpsHandle`,
which is a type that implements `StreamOps`, but always returns an
error. This type is meant to simplify error handling and usage, and is
meant to be used in cases where `StreamOps` is not supported. TODO: the
name of this type is pretty confusing (it's very similar to
`UnsupportedStreamOp`, which is an error type), and should probably be
renamed to something else (`NoOpStreamOpsHandle`,
`BrokenStreamOpsHandle`, `DummyStreamOpsHandle` come to mind...).
Note: this changes the `StreamOps` trait to be slightly different from
what I originally envisioned in !2660 and #1769
|