summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | proto: Run cargo-sortGabriela Moldovan2026-04-011-3/+3
| | | | | | |
| * | | | | | proto: Make tor-relay-crypto an optional dependency (fmt)Gabriela Moldovan2026-04-011-1/+7
| | | | | | |
| * | | | | | proto: Make tor-relay-crypto an optional dependencyGabriela Moldovan2026-04-011-2/+2
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We only need this for `relay` builds. Closes #2450
* | | | | | arti-relay: Remove no-longer needed implsGabriela Moldovan2026-04-012-26/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The specifiers are local to the crate, so we don't need the `valid_until` accessors anymore.
* | | | | | arti-relay: Make the key specifiers pub(crate)Gabriela Moldovan2026-04-011-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | These no longer need to be `pub` now that they're in `arti-relay`.
* | | | | | arti-relay: Move all key specifiers to a new keys module (fmt)Gabriela Moldovan2026-04-012-17/+13
| | | | | |
* | | | | | arti-relay: Move all key specifiers to a new keys moduleGabriela Moldovan2026-04-015-328/+334
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This extracts the key specifier types out of `tor-relay-crypto`, which * makes the code layout consistent with the hidden service crates (the key specifiers are defined in a `keys` module in `tor-hsservice`, while the key wrapper types live in `tor-hscrypto::pk`) * helps reduce the API surface: the key specifiers are only used in `arti-relay`, so we can move them there and make them `pub(crate)` instead of `pub`
* | | | | | relay-crypto: Make the certs module non-pubGabriela Moldovan2026-04-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This doesn't really need to be public.
* | | | | | proto: Add key specifier types for the ntor keysGabriela Moldovan2026-04-011-0/+31
|/ / / / / | | | | | | | | | | | | | | | Part of #2451
* | | | | Merge branch 'authcert-encode-prep' into 'main'Ian Jackson2026-03-319-28/+32
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: Renamings preparatory to authcert encoder See merge request tpo/core/arti!3826
| * | | | | tor-netdoc: Rename `AuthCertUnverified::verify_self_signed`Ian Jackson2026-03-314-16/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This method verifies all the signatures, and checks that the signing authority is in the provided list. Anyway, authcerts aren't really self-signed: they're a signature by KS_auth_id_rsa on KP_auth_sign_rsa. Note that there is also a `verify_selfcert` method which does only some of the checks, and has some code duplication. That will be cleaned up later.
| * | | | | tor-netdoc: encoder: Rename .object() method to .object_bytesIan Jackson2026-03-316-12/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the introduction of the derives for document encoding, we now have a trait ItemObjectEncodable. We will want a method on ItemEncoder that takes an ItemObjectEncodable, and that should be called `object` since it's a better approach than working ad-hoc with tor_bytes::Writeable. (For example, an ItemObjectEncodable knows its own label.) So, rename `object` to `object_bytes`.
* | | | | | Merge branch 'deps-wasm' into 'main'David Goulet2026-03-311-1/+1
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | | | | | | | | | | | | | Update getrandom dependeency See merge request tpo/core/arti!3837
| * | | | | Update getrandom dependeencyIan Jackson2026-03-311-1/+1
| | | | | |
* | | | | | Merge branch 'fixes_mr3791' into 'main'David Goulet2026-03-3116-469/+613
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | | | | | | | | | | | | | Address post-merge comments from nickm's review in mr 3791 See merge request tpo/core/arti!3802
| * | | | | proto: Add debug_assert_eq() when building AuthenticateDavid Goulet2026-03-301-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | | | | cell: Add Authenticate::BODY_LEN as a public constDavid Goulet2026-03-302-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We use this constant value when building the AUTHENTICATE cell to optimize the memory allocation as this won't ever change. Signed-off-by: David Goulet <[email protected]>
| * | | | | linkspec: Rename has_all_public_addresses()David Goulet2026-03-302-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | | | | proto: Import read_msg() instead of refering to itDavid Goulet2026-03-301-19/+4
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | | | | proto: Improve check_relay_identities() documentationDavid Goulet2026-03-301-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | | | | linkspec: Rename has_all_reachable_addresses()David Goulet2026-03-302-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | | | | linkspec: Rename has_all_valid_port() to has_all_nonzero_port()David Goulet2026-03-302-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | | | | linkspec: Move has_all_valid_port() and has_all_reachable_addresses() into ↵David Goulet2026-03-302-35/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ChanTarget Signed-off-by: David Goulet <[email protected]>
| * | | | | proto: Rename RelayIdentities to RelayChannelAuthMaterialDavid Goulet2026-03-3010-108/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This object contains a melting pot of public keys, private keys and certificates. Rename it to reflect that it is channel authentication material and not "identities. https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3791#note_3374454 Signed-off-by: David Goulet <[email protected]>
| * | | | | proto: Remove noop function for initiator channelDavid Goulet2026-03-301-12/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No need to call `set_authenticated()` for a relay initiator channel because relay initiator channel are always authenticated and thus the underlying channel cell codec will always use the R2R restricted message set. This is only useful to a relay responder channel. The naming of that function is not great actually and should probably change. Signed-off-by: David Goulet <[email protected]>
| * | | | | proto: Rename many variables with more fine grained namingDavid Goulet2026-03-307-127/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mostly, identity a `ChanTarget` as a "target" since we juggle with PeerInfo and OwnedChanTarget nowadays. All certificate and keys have very specific names which attempts to match the spec as much as possible. Signed-off-by: David Goulet <[email protected]>
| * | | | | proto: Transform inner into verified after verificationDavid Goulet2026-03-302-20/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only get the inner generic unverified channel into a verified channel after the actual verification in the relay responder handshake. Some variables needed a rename as this was dangerously named. No behavior change. https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3791#note_3374481 Signed-off-by: David Goulet <[email protected]>
| * | | | | proto: Add documentation for the channel verify()David Goulet2026-03-302-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3791#note_3374476 and https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3791#note_3374478 Signed-off-by: David Goulet <[email protected]>
| * | | | | proto: Remove duplicate use of read_msg() helperDavid Goulet2026-03-302-82/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make read_msg() into a helper and use it accross the handshake code. No behavior change. https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3791#note_3374466 Signed-off-by: David Goulet <[email protected]>
| * | | | | proto: Add names to ignored variablesDavid Goulet2026-03-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3791#note_3374465 Signed-off-by: David Goulet <[email protected]>
| * | | | | proto: Set a hardcoded number into a constDavid Goulet2026-03-301-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3791#note_3374462 Signed-off-by: David Goulet <[email protected]>
| * | | | | proto: Fix a set of commentsDavid Goulet2026-03-304-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | | | | proto: Add AuthLogAction enum helperDavid Goulet2026-03-303-13/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can remove the "/* take_slog */ true" pattern and instead have an explicit type at the callsite for semantic. https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3791#note_3374457 Signed-off-by: David Goulet <[email protected]>
| * | | | | proto: Add a type alias for SLOG/CLOG digestDavid Goulet2026-03-307-29/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3791#note_3374457 Signed-off-by: David Goulet <[email protected]>
| * | | | | chanmgr: Always use MaybeSensitive<PeerAddr> when building a channelDavid Goulet2026-03-302-10/+9
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | | | | chanmgr: Add a build_client_channel() helper functionDavid Goulet2026-03-301-59/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This moves the client channel building code into build_client_channel() to match the build_relay_channel() function pattern. No behavior change, just code movement. Small changes were needeed (reference for instance) but no behavior change. https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3791#note_3374448 Signed-off-by: David Goulet <[email protected]>
| * | | | | chanmgr: Move relay target PT validation in validate_relay_target()David Goulet2026-03-301-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | | | | chanmgr: Validate the relay channel target addressesDavid Goulet2026-03-301-1/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure the port is non zero and that all addresses are globally reachable. Notice the use of ChanProto error in this commit instead of UnusableTarget. Relay channel initiator are opened by the circuit reactor meaning from an EXTEND2 request meaning the target is not controlled by us so any errors is a channel protocol violation. UnusableTarget is an internat Bug. https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3791#note_3374447 Signed-off-by: David Goulet <[email protected]>
| * | | | | linkspec: Add OwnedChanTarget address validation helpersDavid Goulet2026-03-301-1/+34
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The has_all_reachable_addresses() should be used to validate the channel target of a request to open a relay channel. The function looks for non routable addresses or, most importantly, private addresses. The other function is to validate that all socket addresses have a non zero port. Signed-off-by: David Goulet <[email protected]>
* | | | | Update to rusqlite 0.39.xIan Jackson2026-03-312-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Relax the r2d2 and rusqlite deps, and manually pick the relevant hunks from `cargo update` in Cargo.lock.
* | | | | Update to ureq 3.3 for arti-ureqIan Jackson2026-03-311-1/+1
| | | | |
* | | | | Update to derive-deftly 0.10.0.Ian Jackson2026-03-3131-32/+32
| |/ / / |/| | | | | | | | | | | There are no breaking changes.
* | | | Remove semver.md files after releaseIan Jackson2026-03-304-5/+0
| | | |
* | | | Merge branch 'release-date' into 'main'Nick Mathewson2026-03-301-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Update release date See merge request tpo/core/arti!3832
| * | | | Update release dateIan Jackson2026-03-301-1/+1
| | | | | | | | | | | | | | | | | | | | As per the release checklist.
* | | | | Update Cargo.lock for hashx and equixIan Jackson2026-03-302-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Made with nailing-cargo -EE --subdir=crates/equix/bench -u fetch nailing-cargo -EE --subdir=crates/hashx/bench -u fetch This is the minimal update; see https://gitlab.torproject.org/tpo/core/arti/-/issues/1984#note_3385367
* | | | | Bump versions: set version of arti to 2.2.0Ian Jackson2026-03-303-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/issues/2436#note_3384773
* | | | | Bump versions: tor-* and arti-* unstable cratesIan Jackson2026-03-3054-516/+516
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/issues/2436#note_3384773 Made with nailing-cargo -Eu set-version -p arti-client 0.41.0 nailing-cargo -Eu set-version -p arti-relay 0.41.0 nailing-cargo -Eu set-version -p arti-rpcserver 0.41.0 nailing-cargo -Eu set-version -p arti-ureq 0.41.0 nailing-cargo -Eu set-version -p arti-rpc-client-core 0.41.0 nailing-cargo -Eu set-version -p tor-basic-utils 0.41.0 nailing-cargo -Eu set-version -p tor-error 0.41.0 nailing-cargo -Eu set-version -p tor-general-addr 0.41.0 nailing-cargo -Eu set-version -p tor-geoip 0.41.0 nailing-cargo -Eu set-version -p tor-memquota-cost 0.41.0 nailing-cargo -Eu set-version -p tor-llcrypto 0.41.0 nailing-cargo -Eu set-version -p tor-cert-x509 0.41.0 nailing-cargo -Eu set-version -p tor-rtcompat 0.41.0 nailing-cargo -Eu set-version -p tor-rtmock 0.41.0 nailing-cargo -Eu set-version -p tor-async-utils 0.41.0 nailing-cargo -Eu set-version -p tor-config 0.41.0 nailing-cargo -Eu set-version -p tor-config-path 0.41.0 nailing-cargo -Eu set-version -p tor-rpc-connect 0.41.0 nailing-cargo -Eu set-version -p tor-log-ratelim 0.41.0 nailing-cargo -Eu set-version -p tor-rpcbase 0.41.0 nailing-cargo -Eu set-version -p tor-memquota 0.41.0 nailing-cargo -Eu set-version -p tor-units 0.41.0 nailing-cargo -Eu set-version -p tor-bytes 0.41.0 nailing-cargo -Eu set-version -p tor-protover 0.41.0 nailing-cargo -Eu set-version -p tor-checkable 0.41.0 nailing-cargo -Eu set-version -p tor-cert 0.41.0 nailing-cargo -Eu set-version -p tor-key-forge 0.41.0 nailing-cargo -Eu set-version -p tor-hscrypto 0.41.0 nailing-cargo -Eu set-version -p tor-socksproto 0.41.0 nailing-cargo -Eu set-version -p tor-linkspec 0.41.0 nailing-cargo -Eu set-version -p tor-cell 0.41.0 nailing-cargo -Eu set-version -p tor-persist 0.41.0 nailing-cargo -Eu set-version -p tor-keymgr 0.41.0 nailing-cargo -Eu set-version -p tor-relay-crypto 0.41.0 nailing-cargo -Eu set-version -p tor-proto 0.41.0 nailing-cargo -Eu set-version -p tor-netdoc 0.41.0 nailing-cargo -Eu set-version -p tor-consdiff 0.41.0 nailing-cargo -Eu set-version -p tor-netdir 0.41.0 nailing-cargo -Eu set-version -p tor-relay-selection 0.41.0 nailing-cargo -Eu set-version -p tor-chanmgr 0.41.0 nailing-cargo -Eu set-version -p tor-ptmgr 0.41.0 nailing-cargo -Eu set-version -p tor-dircommon 0.41.0 nailing-cargo -Eu set-version -p tor-guardmgr 0.41.0 nailing-cargo -Eu set-version -p tor-circmgr 0.41.0 nailing-cargo -Eu set-version -p tor-dirclient 0.41.0 nailing-cargo -Eu set-version -p tor-dirmgr 0.41.0 nailing-cargo -Eu set-version -p tor-dirserver 0.41.0 nailing-cargo -Eu set-version -p tor-hsclient 0.41.0 nailing-cargo -Eu set-version -p tor-hsservice 0.41.0 nailing-cargo -Eu set-version -p tor-hsrproxy 0.41.0
* | | | | Bump versions: minor, with dependenciesIan Jackson2026-03-306-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/issues/2436#note_3384773 Made with cargo set-version --offline --bump minor -p retry-error
* | | | | Bump versions: patchlevel, with dependenciesIan Jackson2026-03-3021-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/issues/2436#note_3384773 Made with cargo set-version --offline --bump patch -p safelog