summaryrefslogtreecommitdiff
path: root/Cargo.lock
Commit message (Collapse)AuthorAgeFilesLines
* release: Update Cargo.lock files.Wesley Aptekar-Cassels2025-05-011-27/+27
|
* release: Bump arti to 1.4.3.Wesley Aptekar-Cassels2025-05-011-1/+1
| | | | | | ``` cargo set-version --bump patch -p arti ```
* release: Bump all unstable tor/arti crates to 0.30.0Wesley Aptekar-Cassels2025-05-011-46/+46
| | | | | | | | ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.30.0 done ```
* Update rand requirement to 0.9.1Nick Mathewson2025-04-291-31/+30
| | | | | (This is going to be a _requirement_, since rand 0.9.1 has a behavioral change from 0.9.0)
* Run cargo update.Wesley Aptekar-Cassels2025-04-291-251/+161
| | | | | I updated everything except rand, because the new version of rand interacts with #1903, thus requiring more care.
* Upgrade dependencies.Wesley Aptekar-Cassels2025-04-291-3/+3
| | | | | | | | | | | | | | | | 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)
* proto: Implement CGO functions ET and PRFNick Mathewson2025-04-291-0/+31
| | | | | | | 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.
* Replace signal-hook-async-std with async-signal to fix RUSTSEC-2024-0384Vijaya Bhaskar2025-04-261-180/+26
|
* tor-proto: only use congestion control if "flowctl-cc" feature is enabledSteven Engler2025-04-231-0/+1
| | | | | | | 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.
* Merge branch 'proto_enforce' into 'main'Nick Mathewson2025-04-221-0/+9
|\ | | | | | | | | | | | | Enforce recommended and required protocol versions in arti-client Closes #1849 and #1923 See merge request tpo/core/arti!2929
| * arti-client: Small test for evaluating protocol status.Nick Mathewson2025-04-161-0/+2
| |
| * arti-client: Keep a somewhat accurate notion of our release date.Nick Mathewson2025-04-161-0/+1
| | | | | | | | | | | | | | | | | | 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.
| * dirmgr: Backend support for cacheing protocol status.Nick Mathewson2025-04-161-0/+1
| | | | | | | | | | | | | | 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.
| * protover,netdoc: Implement serde for Protocols etc.Nick Mathewson2025-04-161-0/+1
| |
| * New functions to report supported subprotocolsNick Mathewson2025-04-161-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* | tor-events: Removed once_cell dependencyhashcatHitman2025-04-171-1/+0
| | | | | | | | | | - [`once_cell::sync::OnceCell`] has been replaced by [`std::sync::OnceLock`], removing the need for the once_cell dependency.
* | tor-geoip: Removed once_cell dependencyhashcatHitman2025-04-171-1/+0
|/ | | | | - [`once_cell::sync::OnceCell`] has been replaced by [`std::sync::OnceLock`], removing the need for the `once_cell` dependency.
* Remove hsc quiet and force flags in favor of batchhjrgrn2025-04-141-45/+0
|
* Merge branch '1519-integration-or-example-with-ureq' into 'main'Ian Jackson2025-04-091-2/+260
|\ | | | | | | | | arti-ureq: New library which integrates with ureq See merge request tpo/core/arti!2724
| * arti-ureq: New library which integrates with ureqnield2025-04-091-2/+260
| | | | | | | | Fixes #1519
* | Update crossbeam-channel to 0.5.15 to fix cargo auditIan Jackson2025-04-091-2/+2
|/ | | | 0.5.14 is yanked. I am trying to find out why...
* metrics: arti: Reduce features on metrics-exporter-prometheusIan Jackson2025-04-081-66/+2
| | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185869
* tor-hsrproxy: Export a connection count metricIan Jackson2025-04-081-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 > ```
* arti: Optionally set up a Prometheus metrics exporterIan Jackson2025-04-081-2/+191
| | | | | | | | | | | | | 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.
* Run "cargo update" to fix cargo-audit issuesNick Mathewson2025-04-071-88/+80
| | | | | | | | | | | | | | | | | | 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.)
* Bump arti crate to 1.4.2Gabriela Moldovan2025-03-311-1/+1
| | | | | | | | Done using: ``` cargo set-version --bump patch -p arti ```
* Bump all the unstable tor- and arti- crates to 0.29.0.Gabriela Moldovan2025-03-311-45/+45
| | | | | | | | | | Done using: ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.29.0 done ```
* Bump the versions of the non-{arti-,tor-} crates.Gabriela Moldovan2025-03-311-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 ```
* Run cargo update in preparation for release.Gabriela Moldovan2025-03-271-405/+465
|
* Upgrade getrandom dependency to 0.3.2Gabriela Moldovan2025-03-271-15/+19
| | | | | | | | | 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
* Upgrade rustls-wekpki dependency to 0.103.1.Gabriela Moldovan2025-03-271-2/+13
| | | | | | 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
* Upgrade strum dependency to 0.27.1.Gabriela Moldovan2025-03-271-36/+14
| | | | | | | | | 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
* Use CautiousRng for keys going into the KeyMgr.Nick Mathewson2025-03-241-0/+1
|
* llcrypto: new CautiousRng for constructing long-lived keysNick Mathewson2025-03-241-0/+24
| | | | | | This Rng combines inputs from several sources, including OsRng, to minimize the likelihood of falling to a vulnerability in any particular one.
* Merge branch 'named_protovers' into 'main'David Goulet2025-03-201-0/+1
|\ | | | | | | | | | | | | protover: Add support for subprotocol version mnemonics. Closes #1891 See merge request tpo/core/arti!2854
| * protover: Add support for subprotocol version mnemonics.Nick Mathewson2025-03-121-0/+1
| | | | | | | | | | | | | | | | 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.
* | llcrypto: add an rng compatibility shim for dalek-cryptoNick Mathewson2025-03-181-0/+1
| | | | | | | | | | | | | | | | | | 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.
* | Upgrade rand dependency to 0.9.Nick Mathewson2025-03-181-58/+108
| | | | | | | | | | | | (Per discussion at #1774, we think the changes are acceptable.) This commit won't compile on its own; subsequent commits will fix it.
* | netdoc: Reject BOMs and NULs.Nick Mathewson2025-03-171-0/+1
|/ | | | | | | | | | | | 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.
* cargo_audit: Bump ring to 0.17.13.Gabriela Moldovan2025-03-101-2/+2
| | | | | | | | | | | | | | | `ring` versions < 0.17.12 are affected by [RUSTSEC-2025-0009] (potential panic when overflow checks are enabled). I don't believe we are affected, because * we don't use `ring::aead::quic::HeaderProtectionKey::new_mask` * operations using `ring::aead::{AES_128_GCM, AES_256_GCM}` can panic only in very specific circumstances, namely when encrypting/decrypting 64 gigabytes of data in one go, if overflow checks are enabled (and Arti never buffers that much data) [RUSTSEC-2025-0009]: https://rustsec.org/advisories/RUSTSEC-2025-0009
* sqlite: Handle vanished blobs during consensus loadingNick Mathewson2025-03-051-0/+1
| | | | | | | | | Here we move the responsibility for removing ExtDoc entries for vanished blobs into the _caller_ of read_blob(): we want to tidy all such entries in one go. Unlike a (reverted) previous approach, this time we don't need a retry loop.
* Merge branch 'x509-signature-yeet' into 'main'Nick Mathewson2025-03-051-43/+146
|\ | | | | | | | | | | | | Switch from x509-signature to rustls-webpki when using rustls. Closes #1824 and #1854 See merge request tpo/core/arti!2816
| * Require rustls 0.23.20Nick Mathewson2025-03-041-0/+139
| | | | | | | | | | This is the version that introduces `root_hint_subjects()`, which we want our ServerCertVerifier to override.
| * rustls.rs: Replace x509-signature with rustls-webpkiNick Mathewson2025-03-041-43/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The x509-signature crate is archived, and won't see any more releases. Using it is tying us to ring 0.16 internally, which means we depend on two ring versions. Fortunately, rustls-webpki relaxes some of the earlier restrictions from the vanilla webpki crate, which means that its certificate parser now accepts C tor's oddball x509 certificates as valid. With this change, we can delegate to rustls's built-in signature-checking code, and we only have to override its certificate validation. (We still override it with a pile of comments about how we don't validate link certificates much.) I've had to include a few certificates: two are for tests, but one is needed as a placeholder, since we can't construct a rustls certificate validator without a root cert, even if we'll never use it. Closes #1824. Closes #1854.
* | tor-rtmocK; Detect wrong-context blocking_io and spawn_threadIan Jackson2025-03-041-0/+1
|/
* tor-congestion: remove crateSteven Engler2025-03-031-4/+0
|
* Bump arti to 1.4.1Nick Mathewson2025-03-031-1/+1
|
* Bump minor versions in tor-*, arti-*.Nick Mathewson2025-03-031-46/+46
|
* Bump patchlevel for safelog, retry-error, test-temp-dir.Nick Mathewson2025-03-031-3/+3
| | | | | These crates have upgraded to a newer derive_more, and have had no other changes.
* cargo: run 'cargo update' in preparation for releaseSteven Engler2025-02-271-112/+127
|