summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * arti: Implement a "bilingual" HTTP CONNECT proxy.Nick Mathewson2025-10-285-9/+351
| | | | | | | | | | | | | | | | | | | | | | With his commit, our SOCKS ports now accept both SOCKS and HTTP CONNECT requests, per proposal 365. There are still some infelicities, marked with "XXXX" or "TODO". I've tested this with curl, though, and it works. :) Typo-fixes-by: Gabriela Moldovan <[email protected]>
| * arti: Detect proxy protocol _before_ starting SOCKS.Nick Mathewson2025-10-285-27/+90
| | | | | | | | | | This will let us speak HTTP CONNECT as well; there is a stub for initiating an http proxy.
| * Reformat arti/Cargo.tomlNick Mathewson2025-10-281-27/+22
| |
| * arti: Pass a buffered stream to handle_socks_connNick Mathewson2025-10-282-3/+15
| | | | | | | | This will let us implement bilingual HTTP proxies.
| * arti: Renaming around socks/generic proxiesNick Mathewson2025-10-283-40/+43
| | | | | | | | This is _all_ renaming and comment adjustments.
| * arti: Split socks-specific parts out of handle_socks_connNick Mathewson2025-10-282-448/+475
| | | | | | | | | | | | | | | | | | We want to abstract every part of this code that knows that it's speaking SOCKS, so that we can in turn add a new proxy type. Note that several methods and types here have names that are no longer appropriate for their functionality. I'll revise those in a later commit.
| * arti::proxy: Small reformats.Nick Mathewson2025-10-281-5/+7
| | | | | | | | | | (I'm not sure why this wasn't already done, but let's do it as a separate MR.)
| * Rename "arti::socks" to "arti::proxy".Nick Mathewson2025-10-283-3/+3
| | | | | | | | I'm about to add another proxy type.
* | Merge branch 'ci-needs-for-all-jobs' into 'main'wesleyac2025-10-271-3/+30
|\ \ | | | | | | | | | | | | ci: Add needs to almost all jobs. See merge request tpo/core/arti!3370
| * | ci: Add needs to almost all jobs.Wesley Aptekar-Cassels2025-10-271-3/+30
|/ / | | | | | | | | | | | | | | | | | | This also updates some needs statements that existed to order jobs that did not actually have a dependency on each other. The idea here is to run everything with as much parallelism as possible, and if that parallelism causes problems, we should ideally solve it by adding more runner capacity, or taking a closer look at what the actual problem is.
* | Merge branch 'ci-arti-extra-opentelemetry' into 'main'wesleyac2025-10-271-1/+1
|\ \ | | | | | | | | | | | | ci: Enable opentelemetry feature in arti-extra build. See merge request tpo/core/arti!3392
| * | ci: Enable opentelemetry feature in arti-extra build.Wesley Aptekar-Cassels2025-10-231-1/+1
| | | | | | | | | | | | | | | I am interested in enabling opentelemetry in chutney tests to enable easier debugging of failures that pop up in CI.
* | | Merge branch 'tunnel-id-no-more' into 'main'David Goulet2025-10-271-3/+3
|\ \ \ | | | | | | | | | | | | | | | | proto: Avoid identifying relay circuits using TunnelId See merge request tpo/core/arti!3395
| * | | proto: Avoid identifying relay circuits using TunnelIdGabriela Moldovan2025-10-271-3/+3
|/ / / | | | | | | | | | We replaced TunnelId with UniqId in the relay code a while ago.
* | | Merge branch 'relay-bin-4' into 'main'David Goulet2025-10-275-10/+18
|\ \ \ | |_|/ |/| | | | | | | | arti-relay: Use `Void` for `TorRelay::run` See merge request tpo/core/arti!3394
| * | arti-relay: use `Void` for `TorRelay::run`Steven Engler2025-10-275-10/+18
|/ /
* | Merge branch 'ticket1597_09' into 'main'David Goulet2025-10-2312-28/+447
|\ \ | |/ |/| | | | | relay: Channel initiator authentication code See merge request tpo/core/arti!3389
| * relay: Move crate around Cargo.toml for check_toposortDavid Goulet2025-10-231-3/+3
| | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * proto: Remove relay ChannelAuthenticationData builderDavid Goulet2025-10-233-82/+51
| | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * proto: Feature flag some relay specific codeDavid Goulet2025-10-232-8/+15
| | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * proto: Add relay todos for the handshakeDavid Goulet2025-10-231-0/+2
| | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * proto: Use Arc for relay identities objectDavid Goulet2025-10-233-5/+7
| | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * proto: Remove LOG_PREFIX in relay handshakeDavid Goulet2025-10-231-5/+1
| | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * proto: Re-arrange some importsDavid Goulet2025-10-231-3/+1
| | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * proto: Add a note about channel canonicityDavid Goulet2025-10-231-0/+5
| | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * proto: Compute authenticate data after validating certificatesDavid Goulet2025-10-234-15/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is only done if we kept the AUTH_CHALLENGE cell and we have relay identities. In other words, this is only when the UnverifiedChannel was created from a RelayInitiatorHandshake. Note: The check_internal() function is too large and should be refactored in smaller pieces. Note: It is also likely that we need to split UnverifiedChannel and VerifiedChannel as it is getting client or relay members. Not great. Signed-off-by: David Goulet <[email protected]>
| * proto: Add a relay channel builderDavid Goulet2025-10-233-2/+37
| | | | | | | | | | | | | | | | | | | | The client and relay channel builder don't share anything and return different objects hence the seperation. Furthermore, this seperation avoids having the client ChanMgr ability to launch relay channels. Signed-off-by: David Goulet <[email protected]>
| * proto: Add RelayIdentities object holding our keysDavid Goulet2025-10-233-1/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a intermediary object between tor-chanmgr and tor-proto that is when building a relay channel, those keys/certs need to be set in the ChannelBuilder so the tor-proto can use them to authenticate. We avoid that way making tor-proto depending on tor-keymgr for the ultimate goal to avoid tor-proto to have access to all the keys in the KeyMgr. Future commits will introduce a relay channel builder which will use that object to set the keys. Signed-off-by: David Goulet <[email protected]>
| * proto: Add the channel authentication dataDavid Goulet2025-10-235-2/+161
| | | | | | | | | | | | | | | | | | | | | | This commit only adds a struct holding all the authentication data that needs to be built during the verification process after all handshake cells needed for authentication have been sent. It lives in the VerifiedChannel struct so it can be used to build the AUTHENTICATE cell and be sent before the NETINFO. Signed-off-by: David Goulet <[email protected]>
| * proto: Add RelayInitiatorHandshakeDavid Goulet2025-10-235-1/+141
| | | | | | | | | | | | | | This implements the relay initiator side of the handshake up to the creation of an unverified channel. Signed-off-by: David Goulet <[email protected]>
| * proto: Change visibility for some channel objectsDavid Goulet2025-10-233-19/+20
|/ | | | | | | | | | Upcoming code for relay channels are put in the src/relay module and thus we need visibility into some channel generic things. Turns out also we don't need to re-export publicly UnverifiedChannel and VerifiedChannel. Signed-off-by: David Goulet <[email protected]>
* Merge branch 'p2-not-present' into 'main'Ian Jackson2025-10-239-48/+167
|\ | | | | | | | | tor-netdoc: Introduce NotPresent, for absent multiplicity See merge request tpo/core/arti!3386
| * tor-netdoc: impl ItemArgumentParseable for IgnoredIan Jackson2025-10-232-2/+11
| | | | | | | | Change our mind about the logic for encoding an Ignored.
| * tor-netdoc: Abolish ArgumentNotPresent alias, completing the renameIan Jackson2025-10-233-9/+6
| |
| * tor-netdoc: Use NotPresent rather than Option<Ignored> to suppress fieldsIan Jackson2025-10-234-8/+8
| |
| * tor-netdoc: Add unit tests for NotPresent and Ignored objectsIan Jackson2025-10-231-1/+32
| |
| * tor-netdoc: Add unit tests for NotPresent itemsIan Jackson2025-10-233-2/+6
| |
| * tor-netcoc: Introduce NotPresent, for absent multiplicityIan Jackson2025-10-233-9/+88
| | | | | | | | | | | | | | | | | | Currently this is mishandled: the current use sites (in rs/each_variety.rs) use Option<Ignored>, which would reject repeated items with that keyword, which is technically wrong. And encoing will become a problem. Vec<Ignored> would be wrong too. Instead, broaden NotPresent and give it multiplicity impls.
| * tor-netdoc: Move parse2 impls on Ignored to types/misc.rsIan Jackson2025-10-232-23/+22
|/ | | | | | This seems to be where we're putting most of the parse2 impls on these types, now. That makes more sense as parse2 becomes more of a proper thing.
* Merge branch 'release-checklist-updates' into 'main'Ian Jackson2025-10-231-56/+55
|\ | | | | | | | | docs: Move updating steps to end of release checklist. See merge request tpo/core/arti!3383
| * docs: Add note about cargo-sort version to release checklist.Wesley Aptekar-Cassels2025-10-211-5/+6
| |
| * docs: Move updating steps to end of release checklist.Wesley Aptekar-Cassels2025-10-211-51/+49
| | | | | | | | | | | | As discussed at the meeting today, upgrading things at the end of the release instead of the beginning ensures that we have a month of testing everything before we ship updates out to users.
* | Merge branch 'add-tracing-to-update-guardset-internal' into 'main'David Goulet2025-10-221-3/+7
|\ \ | | | | | | | | | | | | tor-guardmgr: Add more tracing to update_guardset_internal. See merge request tpo/core/arti!3388
| * | tor-guardmgr: Add more tracing to update_guardset_internal.Wesley Aptekar-Cassels2025-10-221-3/+7
| | | | | | | | | | | | This would have been useful in looking into #2224.
* | | Merge branch 'p2-flatten-flatten' into 'main'Ian Jackson2025-10-223-3/+41
|\ \ \ | |/ / |/| | | | | | | | tor-netdoc: allow NetdocParseableFields within NetdocParseableFields See merge request tpo/core/arti!3377
| * | tor-netdoc: Document new feature in semver.mdIan Jackson2025-10-221-0/+1
| | |
| * | tor-netdoc: NetdocParseableFields derive: support flatten (test)Ian Jackson2025-10-221-0/+11
| | |
| * | tor-netdoc: NetdocParseableFields derive: support flattenIan Jackson2025-10-221-2/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | This allows a NetdocParseableFields inside a NetdocParseableFields. The code is rather duplicative with the NetdocParseable implementation. This is due to limitations in derive-deftly; see https://gitlab.torproject.org/Diziet/rust-derive-deftly/-/merge_requests/525 where I'm trying to start to address them.
| * | tor-netdoc: NetdocParseableFields derive: break out kw variableIan Jackson2025-10-221-1/+3
|/ / | | | | | | We're going to reuse this.
* | Merge branch 'nd-preamble' into 'main'Ian Jackson2025-10-225-71/+83
|\ \ | | | | | | | | | | | | tor-netdoc: Rename consensus Header to Preamble, etc. See merge request tpo/core/arti!3378