summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | proto: Fix broken doc link in extend handlerGabriela Moldovan2026-04-231-1/+3
| | | |
| * | | proto: Extract EXTEND2 handling into a new moduleGabriela Moldovan2026-04-232-200/+254
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | The EXTEND2 handling logic is fairly self-contained, so I'm moving it outside of the `Forward` handler. This refactoring enables us to add more context to the handler (i.e. the inbound channel identities needed for #2415) without cluttering the `Forward` implementation. I recommend reviewing this commit with `git diff --color-moved`.
* | | Merge branch 'routerdescs2-types' into 'main'Clara Engler2026-04-238-11/+403
|\ \ \ | | | | | | | | | | | | | | | | Introduce router descriptor types See merge request tpo/core/arti!3908
| * | | tor-netdoc: Fix B16U debug implementationClara Engler2026-04-221-1/+1
| | | | | | | | | | | | | | | | Replaces "B16" by "B16U".
| * | | tor-netdoc: Fix FixedB16U debug implementationClara Engler2026-04-221-1/+1
| | | | | | | | | | | | Replaces "FixedB16" by "FixedB16U"
| * | | tor-netdoc: Add TODO for FixedB16U's Display implementationClara Engler2026-04-221-0/+1
| | | |
| * | | tor-netdoc: Add spec links to all routerdesc typesClara Engler2026-04-221-0/+8
| | | | | | | | | | | | | | | | This commit adds spec links to all relevant routerdesc types.
| * | | tor-netdoc: Add spec link to RouterDescClara Engler2026-04-221-0/+4
| | | | | | | | | | | | | | | | This commit adds a specification link to the RouterDesc struct.
| * | | tor-netdoc: pub mod routerdescClara Engler2026-04-223-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit replaces `pub use routerdesc::*` with `pub mod routerdesc` alongside making the required changes in types.rs to not directly prelude these types but to introduce them in their own module, as that is the primary advantage of having these types there.
| * | | tor-netdoc: ItemArgumentParseable for RelayPlatformClara Engler2026-04-222-0/+13
| | | | | | | | | | | | | | | | | | | | This commit implements ItemArgumentParseable for RelayPlatform which we will need in the parse2 version of RouterDesc eventually.
| * | | tor-netdoc: Public SpFingerprintClara Engler2026-04-223-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We will need this type in public fields of the router descriptor data type at one point, most notably for the `fingerprint` item. No need to update semver.md because this type is, for whatever reason, already contained there (in main)?
| * | | tor-netdoc: Test AddrPolicy's parse2 accumulatorClara Engler2026-04-221-0/+58
| | | | | | | | | | | | | | | | | | | | This commit adds a test for the recent parse2 accumulator to see whether it accumulates the policies as expected.
| * | | tor-netdoc: NetdocParseableFields for AddrPolicyClara Engler2026-04-222-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | This commit implements NetdocParseableFields for AddrPolicy, which will be required, because this field accumulates exit policies in a firewall like order, making the use of it necessary.
| * | | tor-netdoc: NormalItemArgument for AddrPortPatternClara Engler2026-04-222-0/+4
| | | | | | | | | | | | | | | | | | | | This commit implements NormalItemArgument for AddrPortPattern because we will need it later for an accumulator.
| * | | tor-netdoc: Derive PartialEq,Eq for addrpolicy.rsClara Engler2026-04-222-2/+4
| | | | | | | | | | | | | | | | | | | | This commit derives PartialEq and Eq for a few types in addrpolicy.rs, as we will need these for a few unit tests later on.
| * | | tor-netdoc: Add TODO for BTreeSet in RelayFamilyIdsClara Engler2026-04-221-1/+5
| | | | | | | | | | | | | | | | | | | | The inner Vec ought to be better of as a BTreeSet as that would save us dedup and sort calls.
| * | | tor-netdoc: Add dedup() to RelayFamilyIdsClara Engler2026-04-222-0/+6
| | | | | | | | | | | | | | | | | | | | We will need this later for outputting RelayFamilyIds in a fashion compatible with the current API.
| * | | tor-netdoc: Add sort() to RelayFamilyIdsClara Engler2026-04-222-0/+6
| | | | | | | | | | | | | | | | | | | | We will need this later for outputting RelayFamilyIds in a fashion compatible with the current API.
| * | | tor-netdoc: Add ExtraInfoDigestsClara Engler2026-04-223-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | This commit adds the ExtraInfoDigests structure storing the, if present, mandatory SHA-1 hash and optional SHA-256 hash of the extra-info document associated with the router descriptor it is referenced from.
| * | | tor-cert: Derive Debug, Clone for SigCheckedCertClara Engler2026-04-222-0/+2
| | | | | | | | | | | | | | | | | | | | Most other certificate types do so too and we will need it in tor-netdoc.
| * | | tor-netdoc: Add RouterDescIntroItemClara Engler2026-04-223-2/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds RouterDescIntroItem which will serve as the introduction item for router descriptors, that is, a line with the keyword "router" followed by the nickname, the IPv4 address, and a few ports.
| * | | tor-netdoc: Eq for NicknameClara Engler2026-04-222-1/+2
| | | | | | | | | | | | | | | | | | | | This derives Eq for Nickname because we will need it for unit tests that will be added later on.
| * | | tor-netdoc: Add OverloadGeneral typeClara Engler2026-04-223-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | This type comes from the specification and indicates overload information about a relay. We will use it in router descriptors at one point, hence why we are adding it already.
| * | | tor-netdoc: Test SpFingerprint 10x4 requirementClara Engler2026-04-221-0/+60
| | | | | | | | | | | | | | | | | | | | This commit adds a test to verify the 10x4 character requirement for SpFingerprint.
| * | | tor-netdoc: ItemArgumentParseable for SpFingerprintClara Engler2026-04-221-0/+32
| | | |
| * | | tor-netdoc: Speclink for SpFingerprint rustdoc commentClara Engler2026-04-221-0/+2
| | | |
| * | | tor-netdoc: Introduce FixedB16UClara Engler2026-04-221-0/+31
| | | | | | | | | | | | | | | | | | | | This commit introduces FixedB16U which is a FixedB64 pedant for B16U. It will be required for ExtraInfoDigests.
| * | | tor-netdoc: Add test for NumericBooleanClara Engler2026-04-221-0/+13
| | | | | | | | | | | | | | | | | | | | This commit adds a round-trip test for NumericBoolean to ensure that 0 is false and 1 is true.
| * | | tor-netdoc: Add NumericBooleanClara Engler2026-04-223-1/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a new type, NumericBoolean, which implements NormalItemArgument in order to be parseable with parse2. It works very simple, namely it can be used to decode/encode a boolean as a `0` (false) or `1` (true) which is found in a few places around tor-netdoc. The reason why this is its own type instead of implementing NormalItemValue for the bool primitive is, that booleans are special numerical types and to be future-proof against other oddities, a separate wrapper type makes most sense.
* | | | Merge branch 'netdoc-features-1' into 'main'Clara Engler2026-04-222-4/+16
|\ \ \ \ | |/ / / |/| | | | | | | | | | | tor-netdoc: cargo feature rationalisation, phase 1 See merge request tpo/core/arti!3910
| * | | tor-netdoc: Introduce the `incomplete` cargo featureIan Jackson2026-04-212-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | Part of #2492 phase 1. No semver note because this is an experimental feature.
| * | | tor-netdoc: Make the document type features imply each other and `encode`Ian Jackson2026-04-211-2/+6
| | |/ | |/| | | | | | | | | | | | | Part of #2492 phase 1. No semver note because this is an undocumented transitional phase.
* | | Merge branch 'webpki-again' into 'main'gabi-2502026-04-221-2/+2
|\ \ \ | | | | | | | | | | | | | | | | Update rustls-webpki to fix RUSTSEC-2026-0104 See merge request tpo/core/arti!3913
| * | | Update rustls-webpki to fix RUSTSEC-2026-0104Ian Jackson2026-04-221-2/+2
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | As I wrote in !3893, > I don't think we rely on webpki in Tor. Our example code for eg > `arti-ureq` would be affected, but of couse anyone using that would have > their own binary crate with their own lockfile. Therefore this is not a vulnerability of any kind in Arti.
* | | Merge branch 'ntor-keys-struct' into 'main'David Goulet2026-04-216-35/+105
|\ \ \ | |/ / |/| | | | | | | | relay: Sort Ntor keys by valid_until See merge request tpo/core/arti!3899
| * | relay: Modify RelayNtorKeys to use a constructorDavid Goulet2026-04-214-42/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because of the sorting requirement and the fact that a `KeyMgr` can have multiple Ntor keys, the caller now explicitly extract the two Ntor keys it wants from the `KeyMgr` and then creates a `RelayNtorKeys` object with them. Future changes (#2495) will move this into a view and warn if there are more than 2 keys. Signed-off-by: David Goulet <[email protected]>
| * | proto: Make the CreateRequestHandler::new() take the ntor keysDavid Goulet2026-04-213-16/+28
| | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | relay: Use the new RelayNtorKeys for the create handlerDavid Goulet2026-04-212-37/+32
| | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | relay-crypto: Add RelayNtorKeys struct holding both Ntor keysDavid Goulet2026-04-211-0/+48
| | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | relay: Sort Ntor keys by valid_untilDavid Goulet2026-04-211-1/+15
|/ / | | | | | | | | | | | | | | | | This is when we get them from the keystore so we can have a concept of ordering in the SmallVec. Future commit will transform this into a struct handling both keys. Signed-off-by: David Goulet <[email protected]>
* | Merge branch 'rust-1.95-warnings' into 'main'Nick Mathewson2026-04-215-19/+11
|\ \ | | | | | | | | | | | | Fix new warnings from Rust 1.95 See merge request tpo/core/arti!3902
| * | dirserver: Skip warnings re SaturatingTime::saturating_duration_sinceNick Mathewson2026-04-211-0/+2
| | | | | | | | | | | | | | | Rust 1.95 warns us that this is an experimental API that could be stabilized in the future.
| * | dirmgr: Use HashMap::into_values.Nick Mathewson2026-04-211-2/+2
| | |
| * | circmgr: simplify a loop counter.Nick Mathewson2026-04-211-3/+1
| | |
| * | tor-netdoc: Simplify sort_by to sort_by_keyNick Mathewson2026-04-211-1/+1
| | |
| * | tor-proto: Simplify a match+if statement.Nick Mathewson2026-04-211-13/+5
| |/
* | Merge branch 'geoip-datasegment' into 'main'Nick Mathewson2026-04-219-649639/+856
|\ \ | | | | | | | | | | | | Geoip: Move the data into the .data segment completely, and into an out-of-tree crate. See merge request tpo/core/arti!3900
| * | Remove tor-geoip/data.Nick Mathewson2026-04-162-649499/+0
| | |
| * | geoip: Use tor-geoip-db as source of data.Nick Mathewson2026-04-164-16/+51
| | |
| * | geoip: Add export functionalityNick Mathewson2026-04-163-0/+75
| | | | | | | | | | | | | | | This is perma-unstable: We'll use it to make an export tool, but that's it.