summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* 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
| * fslock-guard: Provide specialized android impls.Nick Mathewson2026-05-282-5/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | We need these because `File::lock()` and `File::try_lock()` claim not to work on Android, and have to be emulated with flock. For more information, see <https://github.com/rust-lang/rust/issues/148325>. Closes #2544. Based on code by @syphyr. Co-Authored-By: syphyr <[email protected]>
| * fslock-guard: Extract calls to {try_,}lockNick Mathewson2026-05-281-2/+18
| | | | | | | | We're about to provide android-only versions of these.
* | Merge branch 'patch-1' into 'main'David Goulet2026-05-282-1/+5
|\ \ | | | | | | | | | | | | feat: Make KeystoreEntry::new() public See merge request tpo/core/arti!3288
| * | feat: Make KeystoreEntry::new() publicAaron Dewes2025-09-292-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 6958b6c8 changed the way the `Keystore` trait works. The `list` method must now return a `KeystoreEntry`. Before this change, it was essentially impossible to implement keystores outside of `tor-keymgr`. For 3rd party users of the Arti API that want to implement a custom keystore, it became essentially impossible to do so. To make this work again, this commit makes KeystoreEntry::new() public, if the experimental-api feature is enabled.
* | | Merge branch 'stream-docs' into 'main'David Goulet2026-05-283-4/+4
|\ \ \ | |_|/ |/| | | | | | | | proto: Replace outdated references to RawCellStream See merge request tpo/core/arti!4036
| * | proto: Replace outdated references to RawCellStreamGabriela Moldovan2026-05-283-4/+4
| | | | | | | | | | | | | | | `RawCellStream` was removed long ago, in c559754116678866eabe525f5b189b50cc78b5cc.
* | | Merge branch 'windows-fileid-check' into 'main'Nick Mathewson2026-05-282-24/+46
|\ \ \ | | | | | | | | | | | | | | | | fslock-guard: Use windows-sys and GetFileInformationByHandleEx. See merge request tpo/core/arti!3974
| * | | fslock-guard: Use windows-sys and GetFileInformationByHandleEx.Nick Mathewson2026-05-122-24/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unlike winapi, windows-sys is maintained (by microsoft), and supports more APIs. We use it elsewhere in our tree, but this was our largest usae of winapi. The GetFileInformationByHandleEx variant includes an explicit buffer size to make errors harder, and enables us to get a 128-bit file identifier, which is (supposedly) even more unique than the 64-bit identifiers we were looking at before.
* | | | tor-netdoc: semver: document Ord implsIan Jackson2026-05-281-0/+1
| | | | | | | | | | | | | | | | | | | | The new encoding impls are feature = "incomplete" so don't need to be here.
* | | | tor-netdoc: implement encoding for votes' `m` itemsIan Jackson2026-05-281-0/+1
| | | |
* | | | tor-netdoc: implement encoding for consensus in votes' `m` itemsIan Jackson2026-05-281-0/+10
| | | | | | | | | | | | | | | | | | | | We will test this when we test round trip parsing/encoding of votes. For now, mark it as incomplete.
* | | | tor-netdoc: derive Ord for RouterStatusMdDigestsVoteIan Jackson2026-05-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sorting by the applicable consensus methods set seems reasonable. The spec doesn't state the order for this. I think that's fine. We can't expect to repro the same consensus with different software, and we will produce stable output.
* | | | tor-netdoc: derive Ord for IdentifiedDigestIan Jackson2026-05-281-1/+1
| | | | | | | | | | | | | | | | The upshot is that we will sort digests by alg name.
* | | | tor-netdoc: derive Ord for ConsensusMethodsIan Jackson2026-05-281-1/+1
| | | |
* | | | tor-netdoc: Fix Ord impl for DigestNameIan Jackson2026-05-282-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we are generating documents that need to be stable, we need to generate the same document regardless of what subset of digest names we understand. So order DigestName by its string representation.
* | | | tor-netdoc: Break out DigestName as AsRef::<str>Ian Jackson2026-05-282-4/+10
| | | |
* | | | tor-proto: remove `use asynchronous_codec as futures_codec` in ↵Neel Chauhan2026-05-271-13/+14
| | | | | | | | | | | | | | | | | | | | | | | | `/channel/handler.rs` Closes #1690.
* | | | tor-netdoc: Run rustfmtClara Engler2026-05-271-18/+11
| | | | | | | | | | | | | | | | No functional change.
* | | | tor-netdoc: Remove virtual/real distinguishmentClara Engler2026-05-271-17/+0
| | | | | | | | | | | | | | | | | | | | Removes a comment about the virtual/real distinguishment in RouterDesc as there are no virtual items left anymore.
* | | | tor-netdoc: Remove family_ids from RouterDescClara Engler2026-05-272-17/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This item is no longer required because we can extract it from family_cert. Unfortunately it requires a breaking change to the getter.
* | | | tor-netdoc: Add From<Ed25519Identity> for RelayFamilyIdClara Engler2026-05-272-0/+7
| | | | | | | | | | | | | | | | We will need it in the next commit.
* | | | tor-netdoc: Add family-cert to RouterDescClara Engler2026-05-272-3/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the family_cert field to RouterDesc using EmbeddedCert logic. Unfortunately, it requires some code gymnastics similar to the (not yet merged) identity-ed25519 certificates, which we also outlined in a comment of a previous commit in the branch. Long story short: The legacy parser and parse2 do not like to co-exist in the same scope due to the self-consuming tor-cert verification chain of which the legacy parser makes heavy use.
* | | | tor-netdoc: Return KeyUnknownCert for happy familiesClara Engler2026-05-271-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | This commit modifies the legacy happy families extractor to also return KeyUnknownCert while adding a comment explaining on why this will be required.