summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Merge branch 'client_bootstrap_ctd' into 'main'gabi-2502026-06-022-4/+101
|\ \ \ | | | | | | | | | | | | | | | | client: Reflect manually disabled bootstrap in status See merge request tpo/core/arti!4047
| * | | client: Reflect manually disabled bootstrap in statusNick Mathewson2026-06-022-4/+101
| |/ / | | | | | | | | | | | | If we have made bootstrapping manual, and not launched a bootstrap, we now reflect this as the reason that bootstrapping is blocked.
* | | tor-chanmgr: Add doccomments and fix typo.Wesley Aptekar-Cassels2026-06-022-2/+4
| | |
* | | tor-chanmgr: Refactor metrics code slightly.Wesley Aptekar-Cassels2026-06-022-194/+161
| | |
* | | tor-chanmgr: Split out channels built error metrics.Wesley Aptekar-Cassels2026-06-022-7/+206
| | |
* | | tor-chanmgr: Separate inbound/outbound channel metrics.Wesley Aptekar-Cassels2026-06-022-8/+10
| | |
* | | metrics: Add descriptions and units for existing metrics.Wesley Aptekar-Cassels2026-06-021-5/+29
| | |
* | | Upgrade metrics to 0.24.6.Wesley Aptekar-Cassels2026-06-023-3/+3
| | | | | | | | | | | | | | | | | | This fixes the minimal-versions test, since the new code in chanmgr sets descriptions for the metrics, which is a feature not supported by the previous version.
* | | tor-chanmgr: Add metrics.Wesley Aptekar-Cassels2026-06-024-3/+49
| | | | | | | | | | | | | | | | | | This adds a structure to initialize metrics when the `ChanMgr` is created, and adds a counter for the total number of channels built, broken down by success and failure.
* | | tor-netdoc: ns_variety_definition_macros: Use coherent orderingIan Jackson2026-06-021-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | At some earlier point in the development of this scheme, the ordering was different (as it is in poc). Update all the references in the docs, to the various varieties, so that they are always plain, md, vote, like ns_type! et al take.
* | | tor-netdoc: ns_variety_definition_macros: Minor grammar fixIan Jackson2026-06-021-1/+1
| | |
* | | tor-netdoc: Remove a TODO that we've doneIan Jackson2026-06-021-1/+0
|/ / | | | | | | We do now support encoding.
* | Merge branch 'minor-doc-fix' into 'main'gabi-2502026-06-021-1/+1
|\ \ | | | | | | | | | | | | proto: Fix typo in ResolveCmdChecker docs See merge request tpo/core/arti!4035
| * | proto: Fix typo in ResolveCmdChecker docsGabriela Moldovan2026-05-281-1/+1
| | | | | | | | | | | | This returns a boxed `ResolveCmdChecker`, not a `DataCmdChecker`.
* | | tor-netdoc: Add spec link for RelayPlatformClara Engler2026-06-021-0/+3
| | |
* | | tor-netdoc: Round-trip test for RelayPlatform encodingClara Engler2026-06-021-0/+7
| | |
* | | tor-netdoc: Implement Display for RelayPlatformClara Engler2026-06-022-0/+12
| | |
* | | tor-netdoc: Store platform of TorVersion in Option (fmt)Clara Engler2026-06-021-1/+3
| | | | | | | | | | | | No functional change, just rustfmt.
* | | tor-netdoc: Store platform of TorVersion in OptionClara Engler2026-06-022-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit changes RelayPlatform::TorVersion to store the platform to an Option<String> instead of a String because storing a missing/not present platform as the empty String feels wrong in my opinion. Besides, we will soon need to add encoding for this type, making now a good time to change it.
* | | tor-netdoc: Refactor RelayPlatform testsClara Engler2026-06-021-21/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This refactors the RelayPlatform test to store the test vectors in an array and iterate over it, comparing it with the expected output. This is a lot better than the current version, where there is not just a lot of copy and pasted code but also some tests that only check for an okay value. Unfortunately, there is not an easy way to review this with --color-moved or something. Personally, I would recommend to review each original test vector (i.e. a line starting with `let p =` followed by a string literal) and verify that the exact same string literal is still present within the new test vector. Afterwards, verifying the assertion logic should be easy, as it is a one-liner.
* | | Merge branch 'debug-weights' into 'main'Jim Newsome2026-06-011-9/+17
|\ \ \ | |_|/ |/| | | | | | | | NetDir::pick_relay: preemptively handle empty sequence See merge request tpo/core/arti!4034
| * | NetDir::pick_relay: preemptively handle empty sequenceJim Newsome2026-05-271-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `choose_weighted` behavior given an empty sequence isn't well documented and has changed over time. Handle it ourselves for consistency. Currently, the `choose_weighted` behavior appears to be to return WeightError::InvalidInput. This means the corresponding `is_empty` branch when handling WeightError::InsufficientNonZero was never exercised. (Though may have been with previous versions of the rand crate).
* | | Remove semver.md files post-releaseGabriela Moldovan2026-06-019-66/+0
| | |
* | | Merge branch '2.4.0-bumps' into 'main'arti-v2.4.0gabi-2502026-06-0161-676/+764
|\ \ \ | | | | | | | | | | | | | | | | Version bumps for the 2.4.0 release See merge request tpo/core/arti!4039
| * | | Bump arti crate to 2.4.0Gabriela Moldovan2026-06-013-3/+3
| | | |
| * | | Bump all the unstable tor- and arti- crates to 0.43.0Gabriela Moldovan2026-06-0155-527/+527
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Done using: ``` for crate in $(./maint/list-crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.43.0 done ```
| * | | Run cargo update for {hashx,equix}/benchGabriela Moldovan2026-06-012-125/+213
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Done using ``` (cd crates/hashx/bench && cargo update) (cd crates/equix/bench && cargo update) ```
| * | | Bump the versions of the non-{arti-,tor-} cratesGabriela Moldovan2026-06-0117-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The non-{arti-,tor-} crates are: ``` ./maint/list-crates | rg -v '^(tor|arti)' oneshot-fused-workaround web-time-compat slotmap-careful test-temp-dir fslock-guard hashx equix caret fs-mistrust safelog retry-error futures-copy ``` We split them in the following categories: * crates with no changes (no version bumps): ``` oneshot-fused-workaround: No change. web-time-compat: No change. slotmap-careful: No change. test-temp-dir: No change. caret: No change. safelog: No change. retry-error: No change. futures-copy: No change. ``` Obtained with: ``` maint/changed-crates -v "arti-v$LAST_VERSION" 2>&1 >/dev/null | grep -i "no change" | grep -v '\(tor\|arti\)-' ``` * crates that only have non-functional changes (bump the patch version, but not the dependend-on version): - equix * crates where functional changes were made, but no APIs were broken (bump patch): - fs-mistrust * crates where APIs were broken (bump minor): - hashx - fslock-guard The bumps from this commit were created using this script: ``` PATCH_NF=( equix ) PATCH=" fs-mistrust " MINOR=" hashx fslock-guard " ./maint/bump-nodep "${PATCH_NF[@]}" for crate in $PATCH; do cargo set-version --bump patch -p $crate; done for crate in $MINOR; do cargo set-version --bump minor -p $crate; done ```
* | | | Update release dateGabriela Moldovan2026-06-011-1/+1
|/ / /
* | | tor-netdoc: Use spec comment for identity-ed25519Clara Engler2026-06-011-2/+1
| | |
* | | tor-netdoc: Small spelling fixClara Engler2026-06-011-1/+1
| | |
* | | tor-netdoc: Fix RouterDesc::ed_identity expect msgClara Engler2026-06-011-1/+1
| | |
* | | tor-netdoc: Store identity_ed25519 in EmbeddedCert logic (fmt)Clara Engler2026-06-011-1/+2
| | | | | | | | | | | | Just rustfmt.
* | | tor-netdoc: Store identity_ed25519 in EmbeddedCert logicClara Engler2026-06-012-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit changes the tpye of `RouterDesc::identity_ed25519` to be of EmbeddedCert. Using the inner keys as the verified values is fine because the legacy parser continues to verify the legacy cert, as it extracts its timestamp and signature to the Vec it verifies in the end.
* | | tor-netdoc: Extract KeyUnknownCert for identity cert (fmt)Clara Engler2026-06-011-8/+6
| | | | | | | | | | | | Just rustfmt.
* | | tor-netdoc: Extract KeyUnknownCert for identity certClara Engler2026-06-011-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit modifies the legacy parser code in an ugly way to also return a copy of the KeyUnknown certificate, which will be required for an EmbeddedCert<> construction. This is not nice but unavoidable in a setup that makes use of the self-consuming tor_cert certificate chain, like the legacy parser code.
* | | tor-netdoc: Add master-key-ed25519Clara Engler2026-06-012-2/+12
| | |
* | | arti-relay: Make the metrics feature non-experimentalGabriela Moldovan2026-06-011-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | `maint/fixup-features` was complaining that `metrics` was reachable from `full` and also `__is_experimental`. I'm making `metrics` a non-experimental feature, because the whole of `arti-relay` is experimental (so there is really no need mark any of its individual features as experimental right now).
* | | dirmgr: Run maint/fixup-featuresGabriela Moldovan2026-06-011-0/+1
| | |
* | | dirpublish: Run maint/fixup-featuresGabriela Moldovan2026-06-011-1/+9
| | |
* | | Merge branch 'ticket2548_01' into 'main'David Goulet2026-05-285-879/+888
|\ \ \ | | | | | | | | | | | | | | | | relay: Remove locking from crypto task key view See merge request tpo/core/arti!4028
| * | | relay: Remove docs type link that are outside scopeDavid Goulet2026-05-281-5/+5
| | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | | relay: Recompute valid_until cache in view constructorDavid Goulet2026-05-283-15/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The recompute of the valid_until cache is done now in the constructor of FullKeyView so the view is directly usable once built. Else, the caller always need to call the recompute function which is error prone especially when used as a throwaway view. Also, without this change, building the view and then attempting to log the public keys would fail. Signed-off-by: David Goulet <[email protected]>
| * | | relay: Introduce src/task/crypto/keys.rsDavid Goulet2026-05-283-694/+745
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move all key related action function to keys.rs in order to alleviate crypto.rs. The Reactor will get more functionnalities soon so cleanup. No behavior change, just code movement. Related to #2548
| * | | relay: Rename try_rotate_keys_no_lock()David Goulet2026-05-281-11/+14
| | | | | | | | | | | | | | | | | | | | | | | | Remove the _no_lock() since no more locks now. Signed-off-by: David Goulet <[email protected]>
| * | | relay: Make FullKeyView pub(super)David Goulet2026-05-282-13/+10
| | | | | | | | | | | | | | | | | | | | | | | | Now, the FullKeyView is officially only seen by the crypto task. Signed-off-by: David Goulet <[email protected]>
| * | | relay: Remove locking of FullKeyViewDavid Goulet2026-05-282-114/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No need for the valid_until cache locking that used to ensure coherent view accross tasks. As we move towards having the FullKeyView be solely owned by the crypto task, no need for locking. Future commit will introduce a control command channel which will be used to get keys for other tasks. The valid_until cache is kept though because it helps with key lookups to avoid walking all keys each time. Signed-off-by: David Goulet <[email protected]>
| * | | relay: Rename try_generate_keys()David Goulet2026-05-282-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename it to init_keys() so it capture the semantic of initialization especially that now it returns a InitKeyMaterial. This is so we don't use this function outside initialization in the future. Signed-off-by: David Goulet <[email protected]>
| * | | relay: Make FullKewView solely owned by the crypto taskDavid Goulet2026-05-283-61/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This moves commit makes it that FullKewView is not visible outside the crypto task. For this, we need to keep the KeyMgr in the inert tor relay struct until it is passed to the crypto task. The public keys logging is moved to the run() function of the crypto task and the try_generate_keys() now returns an InitKeyMaterial struct which contains the channel authentication key material (for ChanMgr) and the Ntor keys for the CREATE2 handler. This way, we cut the need of the FullKeyView in the main thread. Related to #2548 Signed-off-by: David Goulet <[email protected]>
* | | | Merge branch 'fslock-guard-android' into 'main'Nick Mathewson2026-05-282-7/+88
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | fslock-guard: Provide specialized android impls. Closes #2544 See merge request tpo/core/arti!4030