summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | testdata2: Patch lines starting with "@"Clara Engler2026-04-071-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit patches so-called at-lines in cached-descriptors.new and cached-microdescs.new, as ctor adds those annotations manually in order to store metadata, which renders this to become an invalid network document.
| * | | | | | | testdata: Embed testdata2/README update into scriptClara Engler2026-04-071-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit embeds the message added in 509145592452a5aeca573af00579233 into the generated README.
| * | | | | | | testdata2: Fix directory structure in zip archiveClara Engler2026-04-071-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The data resides in `shadow.chutney.data/hosts/host` now and not at the the top-level anymore. A fix might include to use wildcards, but I feel this is potentially more error-prone.
| * | | | | | | testdata2: Use absolute paths using gitClara Engler2026-04-071-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit removes the use/dependency of relatives path by obtaining the root path of the repository using a git command. Doing it this way allows us to avoid things such as `../../..` which is not a good pattern as it creates a dependency upon the directory structure.
* | | | | | | | Merge branch 'normal-item-arg-ip-addr' into 'main'Ian Jackson2026-04-081-0/+2
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: impl NormalItemArgument for IpAddr See merge request tpo/core/arti!3867
| * | | | | | | | tor-netdoc: impl NormalItemArgument for IpAddrIan Jackson2026-04-081-0/+2
| | |_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I want this for `dir-source` in authority entries in netstatus docs. According to the spec that's an "IP address" which ought to include v6, and indeed the type in Arti right now is IpAddr. The implication of this is that we don't think that anywhere in the Tor netdocs has a v4 or v6 address, without port, where the v6 address in square brackets.
* | | | | | | | Merge branch 'fix-help-msg' into 'main'Nick Mathewson2026-04-086-4/+19
|\ \ \ \ \ \ \ \ | |_|_|_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | arti: Fix arti -h Closes #2038 See merge request tpo/core/arti!3860
| * | | | | | | arti: tests: Add regression test for `arti -h`hjrgrn2026-04-085-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add regression test - Update README
| * | | | | | | arti: Fix help message display orderhjrgrn2026-04-081-4/+6
| | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Call `clap_app`'s metadata methods after `augment_subcommands`. If `about` is set before `augment_subcommands`, the subcommand enums' doc comment overrides it. Now, all metadata (e.g. about, version) is set after augmentation for consistency and correct help output.
* | | | | | | Merge branch 'create-fast' into 'main'opara2026-04-0824-106/+1122
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for handling CREATE_FAST cells and launching a circuit reactor See merge request tpo/core/arti!3846
| * | | | | | | tor-proto: replace use of `ChannelDirection` with `CircIdRange`Steven Engler2026-04-084-25/+16
| | | | | | | |
| * | | | | | | Revert "tor-proto: change `CreateResponse` to `restricted_msg!`"Steven Engler2026-04-082-29/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9c38daf2d3548feca2ff555f5bd52165add0d20c.
| * | | | | | | tor-proto: add a `From<$ttype>` impl for `RestrictedChanMsgSet`Steven Engler2026-04-081-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is needed for the revert in the following commit.
| * | | | | | | tor-{proto,chanmgr}: change how channels accept a CREATE* handlerSteven Engler2026-04-089-103/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of giving the `CreateRequestHandler` to the channel after it's constructed, we integrate it into the handshake so that we can give it to the channel constructor. The `ChannelType` is no longer part of the `Channel`. Some of the tests could be cleaned up slightly now that the channel doesn't need the `ChannelType`, but I don't want to conflict with !3853.
| * | | | | | | tor-proto: simplify error handling in `CreateRequestHandler::handle_create()`Steven Engler2026-04-081-71/+85
| | | | | | | |
| * | | | | | | tor-proto: rename `CircIdRange::is_allowed_by_peer()` to `is_allowed_for_peer()`Steven Engler2026-04-081-2/+2
| | | | | | | |
| * | | | | | | tor-proto: remove TODO about `UniqId` overflowSteven Engler2026-04-081-2/+2
| | | | | | | |
| * | | | | | | tor-proto: handle incoming RELAY_EARLY messagesSteven Engler2026-04-081-2/+10
| | | | | | | |
| * | | | | | | arti-relay: add support for a `CreateRequestHandler`Steven Engler2026-04-085-2/+202
| | | | | | | |
| * | | | | | | tor-chanmgr: add support for a `CreateRequestHandler`Steven Engler2026-04-084-4/+93
| | | | | | | |
| * | | | | | | tor-proto: add `Channel::set_create_request_handler()`Steven Engler2026-04-082-2/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can't pass the request handler during the `Channel` constructor since it would require conditionally compiled function arguments, which aren't nice.
| * | | | | | | tor-proto: add `CreateRequestHandler`Steven Engler2026-04-084-0/+442
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for handling CREATE* messages on channels.
| * | | | | | | tor-proto: extend `RelayHandshakeError`Steven Engler2026-04-081-1/+27
| | | | | | | |
| * | | | | | | tor-proto: add a `CreateRequest` restricted msg setSteven Engler2026-04-081-1/+11
| | | | | | | |
| * | | | | | | tor-proto: change `CreateResponse` to `restricted_msg!`Steven Engler2026-04-082-19/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This better fits with existing code that uses `restricted_msg!` and is a bit more flexible.
| * | | | | | | tor-proto: derive `strum::EnumDiscriminants` for `Algorithm`Steven Engler2026-04-082-1/+5
| | | | | | | |
| * | | | | | | tor-proto: small cleanup of legacy codeSteven Engler2026-04-081-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I think it was written like this because earlier versions of rust didn't allow references to temporaries like `&mut rand::rng()` and needed them to be bound to a variable. But this isn't necessary anymore and so the comment doesn't make sense.
| * | | | | | | arti-relay: use 'tor-proto/flowctl-cc' featureSteven Engler2026-04-081-1/+1
| | | | | | | |
| * | | | | | | tor-proto: change channel to use `Runtime`Steven Engler2026-04-086-26/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When used for relay channels, the channel reactor will soon need to spawn relay circuit reactors.
| * | | | | | | tor-proto: support relay circs in channel's `CircMap`Steven Engler2026-04-082-11/+87
| | | | | | | |
| * | | | | | | tor-proto: rename `CircEnt::Open` to `CircEnt::OpenOrigin`Steven Engler2026-04-082-18/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And rename `CircMap::add_ent()` to `add_origin_ent()`.
| * | | | | | | tor-proto: add `CircIdRange::is_allowed_by_peer()`Steven Engler2026-03-311-0/+8
| | | | | | | |
| * | | | | | | tor-proto: add `CircIdRange::integer_range()`Steven Engler2026-03-311-6/+15
| | | | | | | |
* | | | | | | | Merge branch 'netdoc-fixes' into 'main'Clara Engler2026-04-083-3/+8
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: Three fixes to parsing and encoding See merge request tpo/core/arti!3862
| * | | | | | | | tor-netdoc: Constructor: Produce better error when field isn't DefaultIan Jackson2026-04-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The type error's span now points at the field type, rather than into the macro.
| * | | | | | | | tor-netdoc: encoding: Fix a Result to be $P::ResultIan Jackson2026-04-071-1/+1
| | | | | | | | |
| * | | | | | | | tor-netdoc: Fix handling of netdoc(skip) in NetdocParseableFieldsIan Jackson2026-04-071-1/+6
| | |/ / / / / / | |/| | | | | |
* | | | | | | | keymgr: Fix ephemeral keystore cert encoding bug (fmt)Gabriela Moldovan2026-04-081-6/+3
| | | | | | | |
* | | | | | | | keymgr: Fix ephemeral keystore cert encoding bugGabriela Moldovan2026-04-084-28/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a bug that was causing the ephemeral keystore to retrieve certs in a format that couldn't be handled by the `KeyMgr`. This caused all certificate retrievals from `EphemeralKeystore` done via the `KeyMgr` to fail with an internal error. For context, the only supported cert type is `TorEd25519Cert`, which is a pre-encoded certificate (i.e. a type wrapper over a `Vec<u8>`). These certificates are stored as-is by the Arti native keystore (the bytes are written to a file on disk). When retrieving a `TorEd25519Cert`, the Arti keystore uses `parse_certificate_erased()` to parse the cert into a `ParsedEd25519Cert` before returning it as a type-erased `ErasedKey`. This works as intended with the `KeyMgr` retrieval and downcasting logic, which expects the certificate to be returned in the `ParsedCert` format specified in the `ToEncodableCert` implementation. Before this change, the ephemeral keystore, on the other hand, did not play well with the `KeyMgr` when it came to cert retrieval: it would incorrectly store the `KeystoreItem` as-is, and retrieve it as an `ErasedKey` using the `ErasedKey::into_erased()` implementation. This would then cause the `KeyMgr` to fail to downcast the `ErasedKey` to the correct type (because the returned erased item was of a different type than `ParsedCert`). This commit also removes `KeystoreItem::into_erased()`, which was a footgun (because certificates are not actually supposed to be retrieved in the format returned by `CertData::into_erased()`).
* | | | | | | | arti-relay: Retrieve the signing key cert from the keystoreGabriela Moldovan2026-04-081-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The API for retrieving certs exists now, so we don't need to regenerate the cert each time. This addresses a TODO.
* | | | | | | | arti-relay: Reuse cert_expiry calculationGabriela Moldovan2026-04-081-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For readability.
* | | | | | | | arti-relay: Move comment closer to the durations it refers toGabriela Moldovan2026-04-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We forgot to move this comment when we replaced the hard-coded durations with top-level constants.
* | | | | | | | arti-relay: Use more descriptive names for the key lifetimesGabriela Moldovan2026-04-081-20/+20
| | | | | | | |
* | | | | | | | Merge branch 'memquota-add-parent' into 'main'gabi-2502026-04-084-48/+165
|\ \ \ \ \ \ \ \ | |_|_|_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | memquota: Add new add_parent() API Closes #2427 See merge request tpo/core/arti!3829
| * | | | | | | memquota: Say what kind of errors add_parent() returnsGabriela Moldovan2026-04-071-2/+2
| | | | | | | |
| * | | | | | | memquota: Add dedicated variant for duplicate child errorGabriela Moldovan2026-04-073-2/+12
| | | | | | | |
| * | | | | | | memquota: Expand on the prepare_parent_aid() docsGabriela Moldovan2026-04-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Applies the suggestion from https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3829#note_3388033
| * | | | | | | memquota: Adjust Account::add_parent() docsGabriela Moldovan2026-04-071-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As suggested by @Diziet
| * | | | | | | proto: Link the memquota circ acc with the outbound chan accGabriela Moldovan2026-03-301-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #2427
| * | | | | | | memquota: Make prepare_parent_aid() error message more genericGabriela Moldovan2026-03-301-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is now used by `Account::add_parent()` too.