summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | Implement PartialEq for ProtoStatuses unconditionally.Nick Mathewson2025-04-161-4/+2
| | | |
| * | | netdir: Add a recommended_protocols() to NetDirProviderNick Mathewson2025-04-164-0/+25
| | | |
| * | | dirmgr, netdir: Store protocol requirments as soon as they are validated.Nick Mathewson2025-04-165-5/+60
| | | |
| * | | dirmgr: Backend support for cacheing protocol status.Nick Mathewson2025-04-165-3/+140
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We want to store this separately from the consensus, because we want to access it very early in our load-from-cache process, without checking the consensus that contains it for timeliness.
| * | | protover,netdoc: Implement serde for Protocols etc.Nick Mathewson2025-04-165-4/+47
| | | |
| * | | netdoc: Put all ProtoStatuses into a single Arc<>d objectNick Mathewson2025-04-162-19/+55
| | | | | | | | | | | | | | | | | | | | We'll want this so that we can expose them before we expose the rest of the consensus (which we need to do for spec conformance).
| * | | netdoc: functionality for detecting missing subprotos.Nick Mathewson2025-04-162-2/+100
| | | | | | | | | | | | | | | | Also, add a new ErrorKind for this sort of error.
| * | | New functions to report supported subprotocolsNick Mathewson2025-04-1612-0/+276
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Part of #1849. Note that these functions are distributed across crates, so that if (in the future) we stop doing API breaks with every release, we will get the right outputs. Note also that these functions build the list of protocols out of specific symbolic features, rather than numbers: this makes it easier to avoid errors about "which feature was Relay=4 again", and easier to avoid accidentally referring to a protocol that doesn't exist, like "Consensus" (should be "Cons") or "HsDir" (case is wrong).
| * | | Fix another miscapitalized "MicroDesc"Nick Mathewson2025-04-161-1/+1
| | | |
| * | | protover: Correct capitalization of Micro[Dd]escNick Mathewson2025-04-163-10/+12
| | | | | | | | | | | | | | | | Closes #1923
| * | | protover: Add an implementation for FromIteratorNick Mathewson2025-04-161-0/+37
| | | |
| * | | protover: document and enforce more invariantsNick Mathewson2025-04-161-3/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have places where, if we were to create certain ProtoKinds or NamedProtos with invalid values, we could cause a panic. This isn't remotely triggerable, or even triggerable from outside the protover crate, but it's best to avoid the possibility of future mistakes.
| * | | protover: add names for members of the Link protocol group.Nick Mathewson2025-04-161-0/+27
| | | |
| * | | protover: New function to intersect Protocols sets.Nick Mathewson2025-04-161-0/+53
| | | | | | | | | | | | | | | | | | | | This will be helpful in building a list of protocols from several crates.
| * | | protover: New function to combine (union) Protocols sets.Nick Mathewson2025-04-161-1/+57
| | | | | | | | | | | | | | | | | | | | This will be helpful in building a list of protocols from several crates.
| * | | protover: New function to subtract to Protocols sets.Nick Mathewson2025-04-161-0/+54
| |/ / | | | | | | | | | | | | This will be helpful in checking whether a list of protocols has any unsupported members.
* | | Merge branch 'once-cell-once-lock' into 'main'Nick Mathewson2025-04-229-20/+27
|\ \ \ | | | | | | | | | | | | | | | | various crates: Initial migration from [`once_cell::sync::OnceCell`] to [`std::sync::OnceLock`] See merge request tpo/core/arti!2948
| * | | tor-netdoc: Joined OnceLock import with other std::sync importshashcatHitman2025-04-171-2/+1
| | | | | | | | | | | | | | | | Whoops! Missed that.
| * | | tor-circmgr: Added TODO about replacing OnceCellhashcatHitman2025-04-171-0/+8
| | | | | | | | | | | | | | | | | | | | - [`once_cell::sync::OnceCell`] should be replaced by [`std::sync::OnceLock`] once the blocking methods are stabilized and within our MSRV.
| * | | arti-client: Added TODO about replacing OnceCellhashcatHitman2025-04-171-0/+7
| | | | | | | | | | | | | | | | | | | | - [`once_cell::sync::OnceCell`] should be replaced by [`std::sync::OnceLock`] once the blocking methods are stabilized and within our MSRV.
| * | | tor-events: Removed once_cell dependencyhashcatHitman2025-04-173-8/+5
| | | | | | | | | | | | | | | | | | | | - [`once_cell::sync::OnceCell`] has been replaced by [`std::sync::OnceLock`], removing the need for the once_cell dependency.
| * | | tor-log-ratelim: Replace OnceCell with OnceLockhashcatHitman2025-04-171-3/+2
| | | | | | | | | | | | | | | | | | | | - [`once_cell::sync::OnceCell`] has been replaced by [`std::sync::OnceLock`], resolving a TODO.
| * | | tor-netdoc: Replace OnceCell with OnceLockhashcatHitman2025-04-171-3/+3
| | | | | | | | | | | | | | | | - [`once_cell::sync::OnceCell`] has been replaced by [`std::sync::OnceLock`].
| * | | tor-geoip: Removed once_cell dependencyhashcatHitman2025-04-173-5/+2
|/ / / | | | | | | | | | | | | - [`once_cell::sync::OnceCell`] has been replaced by [`std::sync::OnceLock`], removing the need for the `once_cell` dependency.
* | | Merge branch 'chutney-cargo-build' into 'main'Jim Newsome2025-04-171-2/+9
|\ \ \ | | | | | | | | | | | | | | | | tests: Remove 'cargo build' from chutney setup See merge request tpo/core/arti!2947
| * | | tests: remove 'cargo build' from chutney setupSteven Engler2025-04-171-2/+9
|/ / /
* | | Merge branch 'backticks' into 'main'Nick Mathewson2025-04-162-2/+2
|\ \ \ | |/ / |/| | | | | | | | hashx, tor-persist: fix intra-doc link backticks See merge request tpo/core/arti!2944
| * | hashx, tor-persist: fix intra-doc link backtickshashcatHitman2025-04-162-2/+2
|/ / | | | | | | | | | | | | | | | | | | - Replaced single quotes in [`hashx::rand`] documentation link to [`hashx::rand::RngBuffer`] with backticks so it actually works. - Added a missing backtick to the link to [`tor_persist::state_dir::StateDirectory::instance_peek_storage`] in the documentation of [`tor_persist::state_dir::StateDirectory::with_instance_path_pieces`].
* | Merge branch '1944_new_relay_format_v2' into 'main'Nick Mathewson2025-04-1618-106/+462
|\ \ | | | | | | | | | | | | | | | | | | Implement revised relay cell structure for use with Counter Galois Onion encryption. Closes #1944 See merge request tpo/core/arti!2940
| * | cell: simpler (?) approach to StreamIdReqNick Mathewson2025-04-161-22/+43
| | | | | | | | | | | | | | | | | | Instead of having a StreamIdReq that indicates "None in V1, Any in V0", take an optional RelayCellFormat as an argument.
| * | cell: simpler approach to assert-checking offsetsNick Mathewson2025-04-162-11/+13
| | |
| * | proto: Create StreamTargets with the right RelayCellFormat.Nick Mathewson2025-04-164-8/+27
| | |
| * | cell, proto: Use correct Data sizes for v1 relay cellsNick Mathewson2025-04-167-24/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since v1 cells have a longer tag, they can fit less data into a single cell. Ah well, that's the cost of improved security. The code in data.rs is a little wonky, in that it currently requires its buffer to be exactly the maximum size for a data cell. We have a TODO about fixing that in the future, but for now I've moved it to use a boxed slice rather than a boxed array. Part of #1944.
| * | cell: Remove the deprecated Data::split_from().Nick Mathewson2025-04-162-14/+1
| | |
| * | cell: Implement parsing and encoding for V1 relay cellsNick Mathewson2025-04-163-21/+221
| | | | | | | | | | | | This is the main part of #1944, and will be needed for CGO.
| * | cell: Add a debugging-only method to simplify debug_asserts.Nick Mathewson2025-04-162-12/+12
| | |
| * | cell: Refine StreamIdReq for V1 relay cells, with minimal changesNick Mathewson2025-04-161-8/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fortunately, the type is crate-internal, so this is not a breaking change. The key insight with this change is that, from the _caller's_ POV, the set of cells that are allowed to have StreamIDs has not changed. The only difference is that the V1 relay cell code needs to distinguish unrecognized commands from the SENDME case.
| * | cell: Create an unimplemented RelayCellFormat::V1Nick Mathewson2025-04-161-10/+30
| | |
| * | proto: Use selected format when encoding messagesNick Mathewson2025-04-161-6/+11
| | |
| * | Add a RelayCellFormat argument to encode().Nick Mathewson2025-04-168-19/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | This will let us actually _send_ messages in the right format. This approach is not ideal for packed/fragmented messages; they will need a separate RelayCellEncoder. part of #1944.
| * | Note some places where we need updates for #1944.Nick Mathewson2025-04-167-2/+32
|/ / | | | | | | (Also note a couple of other CGO-related issues)
* | Merge branch 'ticket1950' into 'main'Nick Mathewson2025-04-161-1/+1
|\ \ | | | | | | | | | | | | | | | | | | proto: Avoid panic on non-existent hop number Closes #1950 See merge request tpo/core/arti!2938
| * | proto: Avoid panic on non-existent hop numberNick Mathewson2025-04-111-1/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | In `send_relay_cell()` in `tunnel/reactor/circuit.rs`, replace an unconditional array access (which would cause a panic if `hop_num` were out-of-range) with a checked `get_mut()` call. It's not totally clear whether this can happen in practice, but in either case, an error is probably better than a panic. All of our other lookups in this vector are either checked, or more obviously infallible. Closes #1950.
* | Merge branch 'todo-errordetail' into 'main'David Goulet2025-04-142-2/+8
|\ \ | | | | | | | | | | | | arti-client: Add ErrorDetail::OnionServiceSetup See merge request tpo/core/arti!2923
| * | arti-client: Add ErrorDetail::OnionServiceSetuphjrgrn2025-04-142-2/+8
| | |
* | | Merge branch 'fork' into 'main'David Goulet2025-04-144-0/+73
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Forbid fork, except very carefully before exec Closes #1897 See merge request tpo/core/arti!2925
| * | | arti-client: xref to fork policyIan Jackson2025-04-072-0/+17
| | | |
| * | | tor-rtcompat: xref to fork policy from PreferredRuntimeIan Jackson2025-04-071-0/+11
| | | |
| * | | tor-rtcompat: Add div anchor for policyIan Jackson2025-04-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | We're going to want to make many xrefs to this. This trick with the <div> has worked well for us in derive-deftly.
| * | | tor-rtcompat: Write policy on fork without execIan Jackson2025-04-071-0/+41
| | | |