aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | 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.
| * | | geoip: Mark CountryCode as repr(transparent)Nick Mathewson2026-04-161-0/+1
| | | |
| * | | geoip: Change CountryCode to NonZeroU16 internallyNick Mathewson2026-04-161-13/+20
| | | | | | | | | | | | | | | | | | | | This lets us guarantee that every bit sequence is a valid Option<CountryCode>.
| * | | geoip: Change DenseRangeMap to use Cow.Nick Mathewson2026-04-161-9/+30
| | | | | | | | | | | | | | | | | | | | This change allows us to provide the parts of the DenseRangeMap on the data segment.
| * | | geoip: rename internal get to get1.Nick Mathewson2026-04-152-41/+40
| | | |
| * | | geoip: Make asn data conditional.Nick Mathewson2026-04-154-97/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This abolishes the NetDefn type, and turns DenseRangeDb into a map to one or (optionally!) two types. For the DBs we ship, which don't have asn information, this saves about 2.5 MiB. (It also probably saves a bit more, since the niche optimization didn't apply to NetDefn as it existed before, since it tried to distinguish Some(None,None) from None.)
| * | | geoip: Migrate code to DenseRangeMap.Nick Mathewson2026-04-155-33/+47
| | | | | | | | | | | | | | | | | | | | This required correcting some errors in our previous ersatz geoip databases.
| * | | geoip: Extract common line-parsing code.Nick Mathewson2026-04-151-47/+71
| | | |
| * | | geoip: Add new internal DenseRangeMap typeNick Mathewson2026-04-154-0/+488
| | | | | | | | | | | | | | | | | | | | This type is more space-efficient than RangeInclusiveMap in the case where most ranges do not have gaps between them.
* | | | Merge branch 'nd-preamble' into 'main'Ian Jackson2026-04-2110-107/+337
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | tor-netdoc: encoding for nd Preamble, and add known_flags field See merge request tpo/core/arti!3864
| * | | | tor-netdoc: Minimally avoid emitting bad netparams keywordsIan Jackson2026-04-211-1/+36
| | | | | | | | | | | | | | | | | | | | | | | | | See torspec#401 and https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3864#note_3397715
| * | | | tor-netdoc: Fix c&p error in commentIan Jackson2026-04-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3864#note_3397714