aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | | tor-netdoc: ItemValueEncodable for OverloadGeneralClara Engler2026-06-172-1/+2
|/ / / / / / / /
* | | | | | | | Merge branch 'display-range' into 'main'Clara Engler2026-06-172-24/+61
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: port policies: Encode with reject if it's shorter See merge request tpo/core/arti!4108
| * | | | | | | | tor-netdoc: placate clippyIan Jackson2026-06-161-1/+1
| | | | | | | | |
| * | | | | | | | tor-netdoc: port policies: Encode with reject if it's shorterIan Jackson2026-06-151-9/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When trying to repro a live consensus, I discovered that `reject 25` turned into `accept 1-24,26-65535`.
| * | | | | | | | tor-netdoc: port policies: tests: reformatIan Jackson2026-06-151-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use // to force rustdoc to multi-line layout. That makes the layout uniform across all these test cases, and will make the next commit clearer.
| * | | | | | | | tor-netdoc: port policies: Provide .invertedIan Jackson2026-06-151-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll want this in a moment, not just invert in place. I was tempted to remove the mutating form, but there are at least two call sites.
| * | | | | | | | tor-netdoc: port policies: Simplify display with iter_joinIan Jackson2026-06-151-6/+2
| | | | | | | | |
| * | | | | | | | tor-netdoc: port policies: Declare iter return value as CloneIan Jackson2026-06-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's Copy, in fact. But Copy iterators are a hazard.
| * | | | | | | | tor-netdoc: port policies: Provide display method on PortRangesIan Jackson2026-06-152-11/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're going to want this for a more clever formatting algorithm.
* | | | | | | | | Merge branch 'ahf/fix-wasm-build' into 'main'David Goulet2026-06-161-1/+1
|\ \ \ \ \ \ \ \ \ | |_|_|_|_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | Use wasm_js for getrandom in tor-bytes. See merge request tpo/core/arti!4119
| * | | | | | | | Use wasm_js for getrandom in tor-bytes.Alexander Hansen Færøy2026-06-161-1/+1
|/ / / / / / / /
* | | | | | | | Merge branch 'relay-platform-encode' into 'main'Ian Jackson2026-06-162-4/+21
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Encoding for RelayPlatform See merge request tpo/core/arti!4114
| * | | | | | | | tor-netdoc: Add ItemValueEncodable for RelayPlatformClara Engler2026-06-162-0/+14
| | | | | | | | |
| * | | | | | | | tor-netdoc: Implement ItemValueParseable instead for RelayPlatformClara Engler2026-06-162-4/+7
| | |_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ItemArgumentParseable does not make much sense because the field is effectively a free-form field similar to ContactInfo.
* | | | | | | | Merge branch 'edcert-papercuts' into 'main'Ian Jackson2026-06-161-38/+8
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix small edcert papercuts See merge request tpo/core/arti!4112
| * | | | | | | | tor-netdoc: Remove unequal key check from edcertsClara Engler2026-06-161-16/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As a follow up to !4022 and discussed on IRC: > Since we don't think we need to check the keys are different I think > it's OK to delete the thing in the tests that insists we have such a > check. > [...] > We are the relying party here. That MUST is directed to the signing > party. As reliers we don't need to check it.
| * | | | | | | | tor-netdoc: Merge edcert tests togetherClara Engler2026-06-161-22/+4
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a TODO as discussed in !4022. Review with --color-moved.
* | | | | | | | Merge branch 'reconfig-check' into 'main'David Goulet2026-06-161-15/+42
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | arti-client: Warn if `reconfigure()` possibly left the client in an inconsistent state See merge request tpo/core/arti!4101
| * | | | | | | | arti-client: warn if reconfig left client in inconsistent stateSteven Engler2026-06-111-15/+42
| | | | | | | | |
* | | | | | | | | Merge branch 'flowctrl-tests' into 'main'opara2026-06-163-15/+435
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-proto: Add unit test for `XonXoffReader` See merge request tpo/core/arti!4093
| * | | | | | | | | tor-proto: add a unit test for `XonXoffReader`Steven Engler2026-06-162-1/+399
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'futures' version bump is needed so that our test can use `UnboundedSender::try_recv()` in the minimal-versions CI test.
| * | | | | | | | | tor-proto: add `DrainRateNotifier` trait for `XonXoffReader`Steven Engler2026-06-101-13/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will allow us to add a unit test for `XonXoffReader`.
| * | | | | | | | | tor-cell: impl `PartialEq + Eq` on `XonKbpsEwma`Steven Engler2026-06-101-1/+1
| | | | | | | | | |
* | | | | | | | | | Merge branch 'bump-chutney-2026-06' into 'main'Jim Newsome2026-06-162-5/+11
|\ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bump chutney and add additional middle nodes to chutney test net Closes #2463 See merge request tpo/core/arti!4111
| * | | | | | | | | chutney test network: add 4 suitable middle/guard/vg relaysJim Newsome2026-06-151-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the chutney bump in the previous commit alone, we hit arti#2463 consistently. According to the spec, a hidden service using vanguards-lite needs 2 guards and 4 vanguards <https://spec.torproject.org/vanguards-spec/index.html>. All 6 of those relays need to be Fast and Stable. At least the 2 guards also need to be Measured. (Probably the 4 vanguards too, but I haven't verified). authority relays are never considered Measured. Prior to the chutney bump, none of the relays were, but since chutney!142, we create a bandwidth file to ensure the non-authorities *are* Measured, and will get the Fast flag. (IIUC, tor doesn't apply the bandwidth measurements to authorities). Maybe the presence of *some* measured relays gets us out of some fallback path that was getting used before to allow unmeasured relays? Adding the additional relays seems to fix the issue.
| * | | | | | | | | Bump chutney to get Stable flag fixJim Newsome2026-06-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is primarily to get chutney!149. This should fix arti#2463, but I haven't been able to repro locally to verify. I suspect it'll mitigate some of the other difficult-to-repro cases of arti#2209 as well.
* | | | | | | | | | Merge branch 'fix-authcert' into 'main'Clara Engler2026-06-161-1/+2
|\ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: fix EncodedAuthCert parsing See merge request tpo/core/arti!4104
| * | | | | | | | | tor-netdoc: fix EncodedAuthCert parsingIan Jackson2026-06-151-1/+2
| | |_|/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It would swallow the whole rest of the document, leading to bizarre output on re-encoding. There is no test case for this in-tree (which is why this is cfg "incomplete"), but I have a full roundtrip test of a vote (which contains an authcert) in a wip branch, which detected this problem.
* | | | | | | | | Merge branch 'string-slice-types' into 'main'Ian Jackson2026-06-153-36/+21
|\ \ \ \ \ \ \ \ \ | |_|_|_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | Avoid string slices in netdoc types See merge request tpo/core/arti!4103
| * | | | | | | | tor-netdoc: Replace string slice in LongIdentClara Engler2026-06-151-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit replaces the use of string slices in LongIdent by using .strip_prefix() and .split_once() instead.
| * | | | | | | | tor-netdoc: Use .rsplit_once() in AddrPortPatternClara Engler2026-06-151-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaces the use of a string slice in conjuction with .rfind() with a call to .rsplit_once().
| * | | | | | | | tor-netdoc: Replace string slice in address parse helperClara Engler2026-06-151-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit replaces the use of a string slice in an address parse helper by replacing calls to `.starts_with` / `.ends_with` to calls with `.strip_prefix` / `.strip_suffix` and using the respective `.is_some()` for the boolean like value, making the result functionally equivalent.
| * | | | | | | | tor-netdoc: Use .split_once() in IpPatternClara Engler2026-06-151-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit replaces the use of string slices in IpPattern with a call to split_once(). Either review as it is or with --word-diff=color.
| * | | | | | | | tor-netdoc: Use .split_once() in PortRangeClara Engler2026-06-151-17/+10
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit replaces a string slice use in PortRange with a call to .split_string(). Either review the change as an entire rewrite, as the function in itself is pretty small or use --color-moved --color-moved-ws=ignore-all-space if you want to verify that the lines regarding a port range without a hyphen is still using the same logic.
* | | | | | | | Merge branch 'rs-stats' into 'main'Ian Jackson2026-06-155-3/+11
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: routerstatus entries: Add `stats` item (votes only) See merge request tpo/core/arti!4097
| * | | | | | | tor-netdoc: rs.rs: tidy importsIan Jackson2026-06-151-2/+3
| | | | | | | |
| * | | | | | | tor-netdoc: routerstatus entries: Add `stats` item (votes only)Ian Jackson2026-06-155-2/+9
|/ / / / / / /
* | | | | | | Merge branch 'rename-auth-auth-auth' into 'main'Clara Engler2026-06-152-11/+9
|\ \ \ \ \ \ \ | |_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | tor-netdoc: Rename variants in VerifyGeneralTrustedAuthorities See merge request tpo/core/arti!4099
| * | | | | | tor-netdoc: Rename variants in VerifyGeneralTrustedAuthorities (fmt)Ian Jackson2026-06-111-3/+1
| | | | | | |
| * | | | | | tor-netdoc: Rename variants in VerifyGeneralTrustedAuthoritiesIan Jackson2026-06-112-9/+9
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a wip branch I added a variant, and clippy complained. In this case, I agree with clippy. warning: all variants have the same postfix: `Authorities` --> crates/tor-netdoc/src/doc/netstatus.rs:2335:1 | 2335 | / pub(crate) enum VerifyGeneralTrustedAuthorities<'r> { 2336 | | /// Trust these authorities. 2337 | | TrustTheseAuthorities { 2338 | | /// The HKP_auth_id_rsa ... | 2357 | | }, 2358 | | } | |_^ | = help: remove the postfixes and use full paths to the variants instead of glob imports = help: for further information visit https://rust-lang.github.io/rust-clippy/beta/index.html#enum_variant_names note: the lint level is defined here --> crates/tor-netdoc/src/lib.rs:9:9 | 9 | #![warn(clippy::all)] | ^^^^^^^^^^^ = note: `#[warn(clippy::enum_variant_names)]` implied by `#[warn(clippy::all)]`
* | | | | | Merge branch 'destroy' into 'main'opara2026-06-123-29/+12
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Always use destroy reason NONE in circuit handshake code Closes #2466 See merge request tpo/core/arti!4088
| * | | | | tor-proto: circ handshake now always uses NONE destroy reasonSteven Engler2026-06-122-29/+5
| | | | | |
| * | | | | tor-cell: document that destroy reason should be NONESteven Engler2026-06-121-0/+7
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | The spec was recently updated in [1], so we should make this clearer in our code comments. [1]: https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/490
* | | | | Merge branch 'verify-general' into 'main'Ian Jackson2026-06-114-100/+245
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: overhaul consensus verification, in preparation for parse2 ns verification See merge request tpo/core/arti!4065
| * | | | | tor-netdoc: verify_general: explain an exhaustive patternIan Jackson2026-06-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/4065#note_3423331
| * | | | | tor-netdoc: consensuses: Add a TODO about validate's signatureIan Jackson2026-06-111-0/+2
| | | | | |
| * | | | | tor-netdoc: consensuses: Introduce VerifyGeneralTrustedAuthorities (fmt)Ian Jackson2026-06-112-10/+9
| | | | | |
| * | | | | tor-netdoc: consensuses: Introduce VerifyGeneralTrustedAuthoritiesIan Jackson2026-06-113-11/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids passing the threshold around as a bare usize, separated out from the list of trusted authorities. Roughly as discussed in https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/4065#note_3423775 But, VGTA::HazardouslyAssumeAllAuthCertsAreRealAuthorities contains n_authorities, not the thtreshold. That's what its user has, and that allows us to centralise the threshold calculation somewhat. The situation with votes in poc is a bit odd now: we pass one cert and then there's one authority so the threshold of 1 is calculated rather than literal. That's OK, but also we perhaps aren't going to use verify_general for votes in the production.
| * | | | | tor-netdoc: certs: Use .contains() in one placeIan Jackson2026-06-111-1/+1
| | | | | |
| * | | | | tor-netdoc: Apply deferred rustfmt import churnIan Jackson2026-06-112-3/+2
| | | | | |