| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
| |
This was done using:
cargo set-version --bump patch -p arti
|
| |
|
|
|
|
|
|
| |
This was done using:
for crate in $(./maint/list_crates | grep -P '^tor-|^arti-'); do
cargo set-version -p $crate 0.31.0
done
|
| |
|
|
|
|
|
|
| |
This is done using:
cargo set-version --bump patch -p fs-mistrust
cargo set-version --bump patch -p equix
cargo set-version --bump patch -p fslock-guard
|
| |\
| |
| |
| |
| | |
Service side Proof-of-Work
See merge request tpo/core/arti!2697
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| | |
This adds PowManager, as described in doc/dev/notes/service-side-pow.md,
hooks it into IptManager and Publisher, and adds code to publish and
rotate seeds, and to keep a updated list of Verifier instances for
currently active seeds.
|
| |/ |
|
| | |
|
| |
|
|
|
|
|
| |
* arti: test: Restructure tests directory
* arti: dep: Add assert_cmd dev-dependency
* arti: test: Update README
* doc: Fix hsc documentation
|
| |
|
|
|
| |
This type differs from `NamedSubver` in that the represented
subprotocol capability isn't necessarily recognized or valid.
|
| | |
|
| |
|
|
|
|
| |
```
cargo set-version --bump patch -p arti
```
|
| |
|
|
|
|
|
|
| |
```
for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do
cargo set-version -p $crate 0.30.0
done
```
|
| |
|
|
|
| |
(This is going to be a _requirement_,
since rand 0.9.1 has a behavioral change from 0.9.0)
|
| |
|
|
|
| |
I updated everything except rand, because the new version of rand
interacts with #1903, thus requiring more care.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Updates:
* hashlink 0.9.1 -> 0.10.0
* Updates hashbrown
* metrics-exporter-prometheus 0.16.2 -> 0.17.0
* Bumps deps
* Minor API change
Not updated:
* rusqlite, due to MSRV incompatibility
* educe (#1257)
* hickroy-proto (https://github.com/hickory-dns/hickory-dns/issues/2956)
|
| |
|
|
|
|
|
| |
These are a tweakable block cipher, and a pseudorandom byte stream.
This commit includes test vectors, which were generated from the
Python reference implementation and confirmed with a less optimized
Rust implementation.
|
| | |
|
| |
|
|
|
|
|
| |
Congestion control is not completely working correctly, and is not fully
implemented (XON/XOFF). This commit adds a new experimental "flowctl-cc"
feature to enable the congestion control extension during the ntor-v3
handshake.
|
| |\
| |
| |
| |
| |
| |
| | |
Enforce recommended and required protocol versions in arti-client
Closes #1849 and #1923
See merge request tpo/core/arti!2929
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
This doesn't need to be perfect, but we need to use it to see
if a consensus is new enough that we should obey its
recommendations.
This commit also adds a script to update or check our release date,
and calls this script from our cargo-publish script.
|
| | |
| |
| |
| |
| |
| |
| | |
We want to store this separately from the consensus,
because we want to access it very early in our load-from-cache
process, without checking the consensus that contains it
for timeliness.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Part of #1849.
Note that these functions are distributed across crates,
so that if (in the future) we stop doing API breaks
with every release, we will get the right outputs.
Note also that these functions build the list of protocols
out of specific symbolic features, rather than numbers:
this makes it easier to avoid errors about "which feature was
Relay=4 again", and easier to avoid accidentally referring to a
protocol that doesn't exist, like "Consensus" (should be "Cons")
or "HsDir" (case is wrong).
|
| | |
| |
| |
| |
| | |
- [`once_cell::sync::OnceCell`] has been replaced by [`std::sync::OnceLock`],
removing the need for the once_cell dependency.
|
| |/
|
|
|
| |
- [`once_cell::sync::OnceCell`] has been replaced by [`std::sync::OnceLock`],
removing the need for the `once_cell` dependency.
|
| | |
|
| |\
| |
| |
| |
| | |
arti-ureq: New library which integrates with ureq
See merge request tpo/core/arti!2724
|
| | |
| |
| |
| | |
Fixes #1519
|
| |/
|
|
| |
0.5.14 is yanked. I am trying to find out why...
|
| |
|
|
|
| |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185869
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This proves the concept. Many more metrics will need to be added
throughout the codebase.
With this compiled in and enabled, I see this with curl:
> ```
> # TYPE arti_hss_proxy_connections_failed_total counter
> arti_hss_proxy_connections_failed_total{nickname="ztest",action="destroy_circuit"} 0
> arti_hss_proxy_connections_failed_total{nickname="ztest",action="ignore_stream"} 0
> arti_hss_proxy_connections_failed_total{nickname="ztest",action="forward"} 0
> arti_hss_proxy_connections_failed_total{nickname="ztest",action="reject_stream"} 0
>
> # TYPE arti_hss_proxy_connections_total counter
> arti_hss_proxy_connections_total{nickname="ztest",action="reject_stream"} 0
> arti_hss_proxy_connections_total{nickname="ztest",action="forward"} 1
> arti_hss_proxy_connections_total{nickname="ztest",action="destroy_circuit"} 0
> arti_hss_proxy_connections_total{nickname="ztest",action="ignore_stream"} 0
>
> # TYPE arti_hss_proxy_connections_ok_total counter
> arti_hss_proxy_connections_ok_total{nickname="ztest",action="destroy_circuit"} 0
> arti_hss_proxy_connections_ok_total{nickname="ztest",action="reject_stream"} 0
> arti_hss_proxy_connections_ok_total{nickname="ztest",action="ignore_stream"} 0
> arti_hss_proxy_connections_ok_total{nickname="ztest",action="forward"} 1
> ```
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
New cargo feature `metrics`, currently experimental.
New config option `metrics.prometheus.listen`. Uses standard `Listen`
syntax, but not every configuration is supported due to upstream
limitations.
If the config option is set, use metrics-exporter-prometheus to offer
an HTTP scrape endpoint. Or, if compiled out, fail.
Currently there are no actual metrics exported at all.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The issues were in:
deranged 0.4.1:
- yanked
- (Issue was a compatibility-break, not security:
https://github.com/jhpratt/deranged/issues/21)
tokio 1.44.1:
- RUSTSEC-2025-0023
- (I believe we're okay, since we don't use tokio's
broadcast channel)
openssl 0.10.71
- RUSTSEC-2025-0022
- (We do not appear to use the affected APIs.)
|
| |
|
|
|
|
|
|
| |
Done using:
```
cargo set-version --bump patch -p arti
```
|
| |
|
|
|
|
|
|
|
|
| |
Done using:
```
for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do
cargo set-version -p $crate 0.29.0
done
```
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The non-{arti-,tor-} crates are:
```
./maint/list_crates | rg -v '^(tor|arti)'
oneshot-fused-workaround
slotmap-careful
test-temp-dir
fslock-guard
hashx
equix
caret
fs-mistrust
safelog
retry-error
```
We split them in the following categories:
* crates with no changes (no version bumps):
```
maint/changed_crates -v "arti-v$LAST_VERSION" 2>&1 >/dev/null | grep -i "no change" | grep -v '\(tor\|arti\)-'
oneshot-fused-workaround: No change.
slotmap-careful: No change.
fslock-guard: No change.
caret: No change.
retry-error: No change.
```
* crates that only have non-functional changes (bump the patch version):
- test-temp-dir
- equix
- fs-mistrust
- safelog
* crates where APIs were broken (bump minor):
- hashx (`RngCore` impl for `SipRand`)
The bumps from this commit were created using this script:
```
PATCH="
test-temp-dir
equix
fs-mistrust
safelog
"
for crate in $PATCH; do
cargo set-version --bump patch -p $crate;
done
MINOR="
hashx
"
for crate in $MINOR; do
cargo set-version --bump minor -p $crate;
done
```
|
| | |
|
| |
|
|
|
|
|
|
|
| |
The `js` feature was replaced by a configuration flag in [0.3.0], so
I've checked in a `.cargo/config.toml` for `tor-llcrypto` and
`tor-bytes` with `RUSTFLAGS` for selecting the `getrandom` backend to
use on wasm32.
[0.3.0]: https://github.com/rust-random/getrandom/blob/master/CHANGELOG.md#030---2025-01-25
|
| |
|
|
|
|
| |
We aren't affected by any of the breaking changes from [0.103.0].
[0.103.0]: https://github.com/rustls/webpki/releases/tag/v%2F0.103.0
|
| |
|
|
|
|
|
|
|
| |
In 0.27.0, strum's MSRV was bumped to 1.66.1, but that's okay because
ours is 1.77.
We aren't affected by any of its [breaking changes].
[breaking changes]: https://github.com/Peternator7/strum/blob/master/CHANGELOG.md#0270
|
| | |
|
| |
|
|
|
|
| |
This Rng combines inputs from several sources,
including OsRng, to minimize the likelihood
of falling to a vulnerability in any particular one.
|
| |\
| |
| |
| |
| |
| |
| | |
protover: Add support for subprotocol version mnemonics.
Closes #1891
See merge request tpo/core/arti!2854
|
| | |
| |
| |
| |
| |
| |
| |
| | |
It's error-prone to have to remember e.g. that "Desc=5"
means "family ID support", so in torspec!251 we added mnemonic names
like DESC_FAMILY_IDS.
Here we use those names in tor-protover.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
dalek-cryptography is still on rand 0.8, so we need a compatibility
shim for the Rng.
Fortunately, since we merged interface-abstraction-of-the-daleks
(!2868), we no longer need to propagate this compatibility layer
throughout our codebase.
|
| | |
| |
| |
| |
| |
| | |
(Per discussion at #1774, we think the changes are acceptable.)
This commit won't compile on its own; subsequent commits will fix it.
|
| |/
|
|
|
|
|
|
|
|
|
|
| |
Per <https://spec.torproject.org/dir-spec/netdoc.html>,
our netdocs never have a BOM, and never have internal NULs.
This makes Arti reject such documents.
For arguments on why it's okay to increase parser strictness,
see the (forthcoming) proposal 356 at torspec!342,
and see older discussion at torspec#296.
Closes #1739.
|