| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
Much of this does not exist yet. It will do by the end of this
branch.
Expand a doc note for ChannelsParamsUpdates too.
|
| | | |
| | |
| | |
| | | |
This is going to change. Centralise it first.
|
| | | |
| | |
| | |
| | | |
This is going to change. Centralise it first.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Replaces 4 open-coded call sites.
I am going to add one more.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is more standard. It also provides the ::build() method.
This isn't a config type, and build failures ought not to happen,
so we use Bug for the error.
|
| | |/
| |
| |
| |
| | |
The rustfmt-mandated different formatting of these two very similar
blocks is bad enough, without them being smooshed together.
|
| |\ \
| |/
|/|
| |
| |
| |
| | |
Mark some circuit-building errors as "transient".
Closes #517
See merge request tpo/core/arti!676
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A "transient" error is one that does not indicate a true failure,
but rather an _expected_ need to retry. When we hit one of these,
we do not count it against the total number of permitted failures.
(We do impose a higher limit on "real failures plus transient
failures", though, to prevent infinite loops in the event of a
programming error.
Closes #517.
|
| |\ \
| | |
| | |
| | |
| | | |
Clarify `REASON_DONE`
See merge request tpo/core/arti!677
|
| |/ / |
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
arti: Add support for process hardening
Closes #364
See merge request tpo/core/arti!672
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a compile-time feature with an associated configuration
flag, both enabled by default.
When it's turned on, hardening prevents the arti process from
dumping core or being attached to by low-privileged processes.
(This is a defense-in-depth measure, not an absolute way to prevent
attacks. For more information, see
[`secmem_proc`](https://docs.rs/secmem-proc/0.1.1/secmem_proc/).)
Closes #364.
|
| |\ \
| |/
|/|
| |
| | |
Fix nightly CI: allow print_stderr in rtt tests.
See merge request tpo/core/arti!673
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
tor-rtcompat: Require that TcpStream be Send
See merge request tpo/core/arti!675
|
| | | | |
|
| |/ /
| |
| |
| | |
The lack of this seems to have been an oversight.
|
| |\ \
| |/
|/|
| |
| | |
fix error running check_licenses
See merge request tpo/core/arti!674
|
| |/
|
|
|
|
|
|
| |
--version was removed in a recent update
we use that to detected whether cargo-license is installed,
now use --help instead
|
| |\
| |
| |
| |
| |
| |
| | |
Reduce the arti crate's API surface; improve semver documentation.
Closes #522, #530, and #532
See merge request tpo/core/arti!664
|
| | | |
|
| | |
| |
| |
| | |
Closes #522.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The remaining unconditionally public APIs are those related to our
configuration objects, and the main_main() API.
The rationale for making main_main() public is to have an actual
entry point.
The rationale for making the config APIs public is:
1. We really do intend for others to be able to read our
configuration files using this API.
2. The structure of our configuration files is already part of our
interface.
Closes #530.
|
| | |
| |
| |
| |
| |
| |
| | |
It remains on-by-default, so users shouldn't notice a difference,
but it may help when we want to save a few bytes of binary size.
Closes #532
|
| |\ \
| | |
| | |
| | |
| | | |
tor-congestion: WIP implementation of RTT estimation
See merge request tpo/core/arti!525
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit implements the round-trip-time estimation algorithm from Tor
proposal 324, validating the implementation against the test vectors
found in C tor. (Note that at the time of writing, the new test vectors
may not be committed to C tor yet, but they will be soon.)
This also adds the necessary consensus parameters to `NetParameters`.
Some of them have been renamed in order to (hopefully) make them more
understandable.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
tor-proto: Add a comment about the tor-proto layer.
Closes #531
See merge request tpo/core/arti!665
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We want to clarify that the tor-proto crate should only know _how_
its objects behave, not _why they behave that way_. (In other
words, we can have a "padding strategy" setting on a channel, but
not a "general usage" setting.)
Closes #531.
|
| |/ / |
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Refactor tor-linkspec once more.
Closes #428
See merge request tpo/core/arti!662
|
| | |\ \
| |/ /
|/| |
| | | |
# Conflicts:
# crates/tor-netdir/semver.md
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Decrease the lifetimes for storing descriptors.
Closes #527
See merge request tpo/core/arti!669
|
| |/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
These values were chosen experimentally, based on those from Tor, to
save disk space without wasting much bandwidth.
Closes #527.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
fix nighly ci
See merge request tpo/core/arti!668
|
| | | |/
| |/| |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
fix fs-misstrust on android
See merge request tpo/core/arti!667
|
| | |/ /
| | |
| | |
| | |
| | |
| | | |
it would fail to link at runtime due to missing getgrnam_r in bionic
and then it would fail again because some directory is group writeable
|
| |\ \ \
| |/ /
|/| |
| | |
| | | |
Update shellexpand, and switch to non-fork
See merge request tpo/core/arti!661
|
| |/ /
| |
| |
| |
| |
| |
| |
| | |
Now we have bus>1 ownership of the crate name `shellexpand`. I have
made a release, and retired `shellexpand-fork`.
The new shellexpand release switches to a (quite similarly) unforked
version of `dirs`.
|
| |\ \
| | |
| | |
| | |
| | | |
Implement establish rendezvous cell
See merge request tpo/core/arti!651
|
| |/ / |
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Revise our handling of the zeroize trait
Closes #254
See merge request tpo/core/arti!655
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Everything that is a secret encryption key, or an input that is used
to produce a secret encryption key, has to get zeroized. And that's
all!
Closes #254.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This does not yet make sure that `SecretBuf` is used where it
_should_ be, but at least it ensures that most uses of `SecretBytes`
will indeed act as intended, and make sure that whatever they
contain is zeroized.
It requires some corresponding changes to method calls for
correctness and type conformance.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This Writer is a simple wrapper around `Vec<u8>` that makes sure
that its contents are cleared whenever they are dropped _or
reallocated_.
The reallocation is the important part here: without that, we risk
not zeroizing the first allocation of the buffer.
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Part of #254.
|