summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Merge branch 'todo-number' into 'main'Alexander Færøy2024-07-072-2/+2
|\ \ \ | |/ / |/| | | | | | | | Fix two TODO ticket numbers See merge request tpo/core/arti!2224
| * | Fix two TODO ticket numbersIan Jackson2024-06-252-2/+2
| | | | | | | | | | | | | | | I seem to have mistyped this ticket number. We meant #1397 aka "Circuit reactor isn't great", not some release ticket.
* | | Merge branch 'tap-out-phase-1' into 'main'Nick Mathewson2024-06-274-27/+107
|\ \ \ | | | | | | | | | | | | | | | | Make TAP keys optional when parsing documents. See merge request tpo/core/arti!2227
| * | | Make TAP keys optional when parsing documents.Nick Mathewson2024-06-274-27/+107
| | | | | | | | | | | | | | | | | | | | This is the client-side part of phase 1 for proposal 350, which will eventually remove TAP completely from the Tor network.
* | | | arti: Rewrite the hsc prepare-service-discovery-key command (fmt).Gabriela Moldovan2024-06-271-11/+6
| | | |
* | | | arti: Rewrite the hsc prepare-service-discovery-key command.Gabriela Moldovan2024-06-271-10/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The `arti hsc prepare-service-discovery-key` command is now `arti hsc get-key [--key-type=service-discovery]`. Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2212#note_3042903
* | | | arti: Add an arti hsc subcommand.Gabriela Moldovan2024-06-274-1/+169
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds an experimental `arti hsc` subcommand for managing client state and keys. Currently, it only supports the `prepare-service-discovery-keys` operation described in #1281 and `doc/dev/notes/client-auth.md`. A note on terminology: I am referring to services that encrypt the second layer of their descriptor as running in "restricted discovery" mode (because they can only be discovered, i.e. have their IPT points found out, by a set of authorized clients). The corresponding client "auth" keys, being the keys that enable the client to find out the list of intro points, pow-params etc. of the service, are referred to as service "discovery keys". Alternative names I considered: * extra descriptor encryption: accurate, but overly technical. IMO, the CLI should be accessible to users who aren't familiar with the nitty-gritty of the protocol * shielded mode: good, but slightly misleading. Calling it "shielded mode" makes it sound like a universally desirable "extra protection" that should almost always be enabled (which is not the case). Seeing `shielded_mode = off` in the config might be worry operators that don't fully understand what "extra descriptor encryption" or "shielded mode" means * restricted mode: slightly inaccurate. It implies this mechanism is a good substitute for conventional service-side authentication, which it isn't (because client authorization isn't instantaneous) Closes #1281
* | | | arti-client: Add a function for generating client authorization keys.Gabriela Moldovan2024-06-273-1/+90
| | | | | | | | | | | | | | | | Part of #1281
* | | | tor-hscrypto: Add helper for encoding client auth keys in C Tor format.Gabriela Moldovan2024-06-271-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This will enable us to implement the `arti hsc` client subcommand for generating client auth keys (#1281). Closes #1291
* | | | tor-memquota: Fix cargo categoriesIan Jackson2024-06-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | See #1481. I have checked that this category exists.
* | | | Update arti to 1.2.5Ian Jackson2024-06-273-3/+3
| | | | | | | | | | | | | | | | cargo set-version --offline -p arti 1.2.5
* | | | Update versions of 0.x tor-* and arti-* cratesIan Jackson2024-06-2744-355/+355
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | nailing-cargo -uE set-version -p arti-client 0.20.0 nailing-cargo -uE set-version -p arti-relay 0.20.0 nailing-cargo -uE set-version -p arti-rpcserver 0.20.0 nailing-cargo -uE set-version -p tor-async-utils 0.20.0 nailing-cargo -uE set-version -p tor-basic-utils 0.20.0 nailing-cargo -uE set-version -p tor-bytes 0.20.0 nailing-cargo -uE set-version -p tor-cell 0.20.0 nailing-cargo -uE set-version -p tor-cert 0.20.0 nailing-cargo -uE set-version -p tor-chanmgr 0.20.0 nailing-cargo -uE set-version -p tor-checkable 0.20.0 nailing-cargo -uE set-version -p tor-circmgr 0.20.0 nailing-cargo -uE set-version -p tor-config 0.20.0 nailing-cargo -uE set-version -p tor-consdiff 0.20.0 nailing-cargo -uE set-version -p tor-dirclient 0.20.0 nailing-cargo -uE set-version -p tor-dirmgr 0.20.0 nailing-cargo -uE set-version -p tor-error 0.20.0 nailing-cargo -uE set-version -p tor-geoip 0.20.0 nailing-cargo -uE set-version -p tor-guardmgr 0.20.0 nailing-cargo -uE set-version -p tor-hsclient 0.20.0 nailing-cargo -uE set-version -p tor-hscrypto 0.20.0 nailing-cargo -uE set-version -p tor-hsrproxy 0.20.0 nailing-cargo -uE set-version -p tor-hsservice 0.20.0 nailing-cargo -uE set-version -p tor-keymgr 0.20.0 nailing-cargo -uE set-version -p tor-linkspec 0.20.0 nailing-cargo -uE set-version -p tor-llcrypto 0.20.0 nailing-cargo -uE set-version -p tor-log-ratelim 0.20.0 nailing-cargo -uE set-version -p tor-memquota 0.20.0 nailing-cargo -uE set-version -p tor-netdir 0.20.0 nailing-cargo -uE set-version -p tor-netdoc 0.20.0 nailing-cargo -uE set-version -p tor-persist 0.20.0 nailing-cargo -uE set-version -p tor-proto 0.20.0 nailing-cargo -uE set-version -p tor-protover 0.20.0 nailing-cargo -uE set-version -p tor-ptmgr 0.20.0 nailing-cargo -uE set-version -p tor-relay-selection 0.20.0 nailing-cargo -uE set-version -p tor-rpcbase 0.20.0 nailing-cargo -uE set-version -p tor-rtcompat 0.20.0 nailing-cargo -uE set-version -p tor-rtmock 0.20.0 nailing-cargo -uE set-version -p tor-socksproto 0.20.0 nailing-cargo -uE set-version -p tor-units 0.20.0 Each of which runs a rune like cargo set-version --offline -p tor-units 0.20.0
* | | | tor-circmgr: Make client rendezvous circuits EXTENDED instead of SHORT.Gabriela Moldovan2024-06-251-3/+3
|/ / / | | | | | | | | | | | | | | | | | | | | | This updates the code to match the spec. This fixes TROVE-2024-008. Closes #1474
* | | Remove arti-hyperIan Jackson2024-06-254-535/+0
| | | | | | | | | | | | | | | | | | This has been obsolete for a very long time. We have already published a version with a "won't be updated" warning.
* | | Merge branch 'feat' into 'main'gabi-2502024-06-253-2/+3
|\ \ \ | | | | | | | | | | | | | | | | Run maint/fixup-features See merge request tpo/core/arti!2229
| * | | Fix formatting anomaly introduced by fixup-featuresIan Jackson2024-06-251-1/+2
| | | |
| * | | Run maint/fixup-featuresIan Jackson2024-06-253-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Precisely nailing-cargo -Eu run -p fixup-features Cargo.toml These changes are just `full` propagation. Note the `?` in the arti-relay propagation, which is essential: we don't actually *enable* arti-relay at all, with this. Also, there is a formatting anomaly, which I'll fix in a moment.
* | | | Update to statrs 0.17Ian Jackson2024-06-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | No code changes needed. Precisely nailing-cargo -Eu upgrade --incompatible -p statrs
* | | | Update to itertools 0.13.0Ian Jackson2024-06-2519-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | No code changes needed. Precisely nailing-cargo -Eu upgrade --incompatible -p itertools
* | | | Require strum 0.26.3Ian Jackson2024-06-2510-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're about to update to iterools 0.13.0. We must therefore have a version of strum which is not affected by https://github.com/Peternator7/strum/issues/358 Precisely git-grep -l '^strum' | xargs perl -i~ -pe 's{"0\.26"}{"0.26.3"}' No changes to lockfile - we're already using 0.26.3, except perhaps in the minimal versions test.
* | | | Update to derive-deftly 0.13.0Ian Jackson2024-06-2513-14/+14
|/ / / | | | | | | | | | | | | | | | | | | No code changes needed. Precisely nailing-cargo -Eu upgrade --incompatible -p derive-deftly
* / / Rename OptTimestamp to AtomicOptTimestampNeel Chauhan2024-06-243-12/+12
|/ /
* | Merge branch 'doc-warning-20240624' into 'main'Nick Mathewson2024-06-241-2/+2
|\ \ | | | | | | | | | | | | Resolve a rustdoc warning. See merge request tpo/core/arti!2215
| * | Resolve a rustdoc warning.Nick Mathewson2024-06-241-2/+2
| | |
* | | Merge branch 'rpc-docs-part1' into 'main'Nick Mathewson2024-06-241-0/+156
|\ \ \ | |/ / |/| | | | | | | | Write a README for tor-rpcbase See merge request tpo/core/arti!2210
| * | Write a README for tor-rpcbaseNick Mathewson2024-06-241-0/+156
| |/
* | Add a maximum to local_resource_timeout.Nick Mathewson2024-06-242-8/+33
| |
* | local_resource_timeout: Change wait interval to 50 ms.Nick Mathewson2024-06-241-1/+1
| |
* | Rename fslock_timeout to local_resource_timeoutNick Mathewson2024-06-241-11/+16
| | | | | | | | Name chosen to match the error kind that we're detecting.
* | Clarify documentation about blocking.Nick Mathewson2024-06-241-2/+4
| |
* | arti: wait a short while on startup if lockfiles are unavailable.Nick Mathewson2024-06-241-1/+1
| |
* | TorClientBuilder: Wait for a little while if the lockfiles are held.Nick Mathewson2024-06-242-4/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a parameter to TorClientBuilder that control how long we should retry constructing a TorClient if we get a LocalResourceInUse error. When this parameter is not set, we default to 500 milliseconds for async entry points and 0 milliseconds for sync entry points. (`LocalResourceInUse` usually means that a lockfile is held by somebody else; but when the resource is some other type, we typically want the same behavior anyway.) (I really don't want to introduce delays by default for the create_unbootstrapped case, since it previously had no delay at all.) There is now also an async entry point to create an unbootstrapped TorClient. Closes #1464.
* | TorClientBuilder: take self by reference when buildingNick Mathewson2024-06-242-4/+5
|/ | | | | There is no actual reason to consume this type, and taking it by reference allows us to retry.
* tor-circmgr: Clarify the update_last_hop_kind documentation.Gabriela Moldovan2024-06-201-2/+10
|
* tor-circmgr: Rename VanguardPath to PathBuilder.Gabriela Moldovan2024-06-202-13/+12
|
* tor-circmgr: Remove duplicated path building logic from HS pool.Gabriela Moldovan2024-06-201-30/+19
|
* tor-circmgr: Fix clippy warning.Gabriela Moldovan2024-06-201-1/+1
|
* tor-circmgr: Gate vanguard-specific code behind vanguards feature.Gabriela Moldovan2024-06-201-0/+15
| | | | | | | This is just code motion: moving the vanguard-specific parts of `maybe_extend_stub_circuit()` behind the `vanguards` feature will enable us to refactor it to use `select_middle_for_vanguard_circuit()`, which is only available if the `vanguards` feature is enabled.
* tor-circmgr: Break VanguardHsPathBuilder::pick_path into smaller parts (fmt).Gabriela Moldovan2024-06-201-5/+2
|
* tor-circmgr: Break VanguardHsPathBuilder::pick_path into smaller parts.Gabriela Moldovan2024-06-202-118/+259
| | | | | | This is a follow up from https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2186#note_3035525 Closes #1459
* tor-circmgr: Remove unnecessary TODO.Gabriela Moldovan2024-06-201-1/+0
| | | | There's not much to refactor about this line.
* tor-circmgr: Rename HsCircStubKind::len to HsCircStubKind::num_hops.Gabriela Moldovan2024-06-202-5/+5
|
* tor-circmgr: Note which test prevents TROVE-2024-005.Gabriela Moldovan2024-06-201-0/+1
| | | | | | This test is not new (it was added in !2168), but I think it's a good idea to annotate the tests preventing security issues with the TROVE number and/or arti ticket they pertain to.
* tor-circmgr: Write tests for the HsPathBuilder.Gabriela Moldovan2024-06-202-0/+464
| | | | | | | These tests should give us *some* assurance that the upcoming `HsVanguardPathBuilder` refactoring doesn't break anything. Part of #1459
* tor-circmgr: Refactor duplicated circuit stub length calculation.Gabriela Moldovan2024-06-202-27/+26
| | | | Part of #1459
* tor-guardmgr: Make some vanguard test helpers public (fmt).Gabriela Moldovan2024-06-201-10/+5
|
* tor-guardmgr: Make some vanguard test helpers public.Gabriela Moldovan2024-06-202-51/+69
| | | | | | We will soon need these helpers outside of `tor-guardmgr` too. This commit is mainly code motion.
* tor-circmgr: Add a TODO about an unused restriction.Gabriela Moldovan2024-06-201-0/+5
|
* Merge branch 'ticket1432_01' into 'main'David Goulet2024-06-188-0/+67
|\ | | | | | | | | | | | | tls: Support export keying material (RFC 5705) Closes #1432 See merge request tpo/core/arti!2185
| * tls: Support export keying material (RFC 5705)David Goulet2024-06-188-0/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | Add a function to get the keying material as detailed by RFC 5705. Because native-tls doesn't have such support, there is a place holder panic!() for now. This means that for the forseable future, relay would only work with rustls until we figure out a solution for native-tls. Closes #1432 Signed-off-by: David Goulet <[email protected]>