summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | 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.
| * | | | | | | memquota: Add new Account::add_parent() APIGabriela Moldovan2026-03-302-0/+100
| | | | | | | |
| * | | | | | | memquota: Move parent AId checks to separate function (fmt)Gabriela Moldovan2026-03-301-8/+3
| | | | | | | |
| * | | | | | | memquota: Move parent AId checks to separate functionGabriela Moldovan2026-03-301-40/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I am moving this to another function because we'll soon need to run these same checks in the new `Account::add_parent()` API I'm planning on adding for #2427.
* | | | | | | | Merge branch 'closed-stream-err' into 'main'opara2026-04-072-9/+17
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-proto: Change an error from `CircuitClosed` to `NotConnected` Closes #2421 See merge request tpo/core/arti!3825
| * | | | | | | | arti: fix clippy warnings in `report_proxy_error()`Steven Engler2026-03-301-3/+5
| | | | | | | | |
| * | | | | | | | arti: use report macros in `report_proxy_error()`Steven Engler2026-03-301-5/+6
| | | | | | | | |
| * | | | | | | | arti: don't warn for `NotConnected` errorsSteven Engler2026-03-301-0/+1
| | | | | | | | |
| * | | | | | | | tor-proto: change an error to `NotConnected`Steven Engler2026-03-291-3/+7
| | |_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Returning `CircuitClosed` isn't right here since the circuit may not have closed.
* | | | | | | | tor-netdoc: parse2/encode derive: Use unquoted attributes at call sitesIan Jackson2026-04-076-18/+18
| | | | | | | |
* | | | | | | | tor-netdoc: parse2/encode derive: Show unquoted attributes in the docsIan Jackson2026-04-073-11/+11
| | | | | | | |
* | | | | | | | tor-netdoc: parse2/encode derive: Use meta_quoted rigorousIan Jackson2026-04-073-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `doctype_for_error` attribute needs immediate adjustment, because a string expression value is expected. With `quoted retain`, that would be re-interpreted, silently. This kind of thing is why `quoted rigorous` exists. So change its docs and the one use site. The macros' docs, and the other calls ites, we'll deal with shortly.
* | | | | | | | tor-netdoc: Constructor derive: Use meta_quoted rigorousIan Jackson2026-04-072-4/+4
| |_|_|_|/ / / |/| | | | | |
* | | | | | | Merge branch 'chutney-enable-hs' into 'main'David Goulet2026-04-073-5/+18
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | chutney CI: add hidden services See merge request tpo/core/arti!3858
| * | | | | | | NetDir::pick_relay: add a little more info to error reportsJim Newsome2026-04-021-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In particular to help debug arti#1907
| * | | | | | | NetDir::pick_relay: add some trace loggingJim Newsome2026-04-021-1/+6
| | | | | | | |
| * | | | | | | hsdir_params: add debug log when we fall back to disaster paramsJim Newsome2026-04-021-2/+4
| | | | | | | |
| * | | | | | | tor-hsclient: include period metadata in trace log messageJim Newsome2026-04-021-1/+2
| | | | | | | |
* | | | | | | | tor-proto: lower log level of "removing circuit leg"Steven Engler2026-04-061-1/+1
| |_|_|/ / / / |/| | | | | | | | | | | | | | | | | | | | This appears often in the arti logs, but is a normal thing to happen.