summaryrefslogtreecommitdiff
path: root/Cargo.lock
Commit message (Collapse)AuthorAgeFilesLines
* Bump arti crate to 1.8.0Gabriela Moldovan2025-12-021-1/+1
| | | | | | | | Done using: ``` cargo set-version --bump minor -p arti ```
* Bump all the unstable tor- and arti- crates to 0.37.0.Gabriela Moldovan2025-12-021-48/+48
| | | | | | | | | Done using: ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.37.0 done
* Bump the versions of the non-{arti-,tor-} cratesGabriela Moldovan2025-12-021-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The non-{arti-,tor-} crates are: ``` ./maint/list_crates | rg -v '^(tor|arti)' oneshot-fused-workaround slotmap-careful test-temp-dir fslock-guard hashx equix caret fs-mistrust safelog retry-error futures-copy ``` We split them in the following categories: * crates with no changes (no version bumps): None ``` maint/changed_crates -v "arti-v$LAST_VERSION" 2>&1 >/dev/null | grep -i "no change" | grep -v '\(tor\|arti\)-' ``` * crates that only have non-functional changes (bump the patch version, but not the dependend-on version): - oneshot-fused-workaround - slotmap-careful - test-temp-dir - fslock-guard - equix - caret - safelog - retry-error * crates where functional changes were made, but no APIs were added or broken: - hashx - fs-mistrust - futures-copy * crates where APIs were broken (bump minor): None The bumps from this commit were created using this script: ``` PATCH_NF=( oneshot-fused-workaround slotmap-careful test-temp-dir fslock-guard equix caret safelog retry-error ) PATCH=" hashx fs-mistrust futures-copy " ./maint/bump_nodep "${PATCH_NF[@]}" for crate in $PATCH; do cargo set-version --bump patch -p $crate; done ```
* Merge branch 'saturating-st' into 'main'Clara Engler2025-11-261-0/+7
|\ | | | | | | | | tor-dirserver: Use `saturating-time` See merge request tpo/core/arti!3460
| * tor-dirserver: Use `saturating-time`Clara Engler2025-11-261-0/+7
| | | | | | | | | | | | | | This commit replaces the custom implementation of `SaturatingSystemTime` with the `saturating-time` crate, additionally adding a new type to the `database` module called `Timestamp`, in order to have a convenient wrapper around `ToSql` and `FromSql`.
* | Merge branch 'deftly-151' into 'main'Clara Engler2025-11-261-4/+4
|\ \ | | | | | | | | | | | | Update to derive-deftly 1.5.1 See merge request tpo/core/arti!3494
| * | Update to derive-deftly 1.5.1Ian Jackson2025-11-251-4/+4
| | | | | | | | | | | | To pick up the expect failure error message improvement.
* | | fs-mistrust: Treat "" as a NotFound Path.Nick Mathewson2025-11-241-0/+1
|/ / | | | | | | | | | | | | | | | | This makes fs-mistrust consistent with stat() and mkdir() and friends, which consider "" to be an invalid path. Previously, "" was accepted whenever mistrust was enabled, but rejected whenever mistrust was disabled. Closes #2265.
* | Add `hsc key ctor-migrate` subcommandhjrgrn2025-11-241-0/+1
| |
* | Merge branch 'relay-or-config' into 'main'opara2025-11-191-0/+1
|\ \ | | | | | | | | | | | | arti-relay: Add config options for OR port See merge request tpo/core/arti!3466
| * | arti-relay: listen at configured OR portsSteven Engler2025-11-121-0/+1
| | |
* | | Merge branch 'refactor-http-errors' into 'main'Nick Mathewson2025-11-191-0/+3
|\ \ \ | | | | | | | | | | | | | | | | http-connect: Improve error reporting. See merge request tpo/core/arti!3476
| * | | http_connect: Report end reasons for HTTP CONNECT failures.Nick Mathewson2025-11-191-0/+2
| | | |
| * | | tor-error: Add support for ErrorKind->HTTP status conversionNick Mathewson2025-11-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It makes more sense to have the conversion here, so it can use an exhaustive match over ErrorKind. This isn't the final API; I'm just moving the code from `arti`.
* | | | Merge branch 'relayflags-enumset' into 'main'Ian Jackson2025-11-181-1/+22
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Replace RelayFlags, using enumset See merge request tpo/core/arti!3477
| * | | | tor-netdoc: Remove bitflags from Cargo.tomlIan Jackson2025-11-181-1/+0
| | | | |
| * | | | tor-netdoc: Replace RelayFlag with an enum and RelayFlags with an EnumSetIan Jackson2025-11-181-0/+22
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now: `RelayFlag` is a single flag, which is a different type to `RelayFlags`. `FromStr` and `Display` are now implemented in a normal way for a single flag. We don't use bitflags, with its funky input syntax, any more. Instead, we have a normal enum. No longer is it possible to have a `RelayFlags` with "unknown bits" set (whatever that means). (Therefore, an associated test case for this is now gone.) The names are principally specified just as enum variant names. The enum variant names can be identical to the network document keywords. Briefly, we provide constants in capitals, for the benefit of all the call sites. That means that *this* commit can contain only the primary changes. A few macro-generated things have been adjusted in this commit, but they are actually going to go away. Indentation is now wrong. We'll fix that at the end.
* / / / maint: upgrade num-bigint-dig to 0.8.6Steven Engler2025-11-181-3/+2
|/ / / | | | | | | | | | | | | | | | This appears to resolve the warning: > warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint-dig v0.8.4
* | | Merge branch 'x509-tls-cert' into 'main'Nick Mathewson2025-11-131-0/+14
|\ \ \ | |/ / |/| | | | | | | | | | | | | | x509: Support generating the keys and certs that relays need for TLS Closes #2205 See merge request tpo/core/arti!3349
| * | x509: Support generating the keys and certs that relays need.Nick Mathewson2025-11-121-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Although we never need to actually check the signature on the other party's x509 certificate, A relay does need a certificate and a private key in order to be a proper TLS server. In this function, I've added support for making an ersatz P-256 certificate certifying a P-256 key. See the code for info about the rationale here. (Tor supports this, since it doesn't look at the key at all: only the TLS layer cares about that.) native_tls and rustls expect to get their keys and certs in different forms, so this code provides them. (Note that we don't expect to use native_tls with relays in the first place, but it might be useful for lower-level interop testing.) Closes #2205.
* | | Merge branch 'v6only' into 'main'opara2025-11-121-0/+1
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | tor-rtcompat: Use a consistent listen implementation, and set `IPV6_V6ONLY` for listening sockets on `cfg(unix)` Closes #2246 See merge request tpo/core/arti!3457
| * | tor-rtcompat: use a consistent `listen()` implementationSteven Engler2025-11-101-0/+1
| |/ | | | | | | | | | | This gives us a consistent `listen()` implementation across runtimes, and gives us flexibility to customize the bind/listen process for TCP sockets.
* | Merge branch 'relay-bin-4' into 'main'opara2025-11-111-0/+1
|\ \ | |/ |/| | | | | arti-relay: Add OR port listener task See merge request tpo/core/arti!3396
| * arti-relay: add OR port listener taskSteven Engler2025-11-051-0/+1
| | | | | | | | | | This does not yet get the OR port from the config, and the channel manager doesn't yet do anything with the incoming connection.
* | Bump derive-deftly to 1.5.0Ian Jackson2025-11-071-4/+4
| | | | | | | | | | | | | | This has the meta attributes with optional values feature and also hygiene rework for modules. The breaking changes don't break arti.
* | arti: Experimental support for tokio-consoleNick Mathewson2025-11-061-9/+82
| | | | | | | | | | | | This is controlled by a new option, `logging.tokio_console.enabled`. It requires building with `--cfg tokio_unstable`. See documentation and comments for more information.
* | Bump derive-deftly to 1.4.0Ian Jackson2025-11-061-4/+4
|/ | | | | | This will let us use the new modules feature. There are no breaking changes to beta features in 1.4.0.
* Bump pwd-grp, deduplicating derive-deftlyIan Jackson2025-11-051-59/+31
| | | | Fixes #2136
* proto: use assert_matches in circuit.rs tests.Nick Mathewson2025-11-041-0/+1
| | | | | | | | | Unlike assert!(matches!(..)), assert_matches prints the value of the expression on a failure. Probably we should use this macro more widely in the future. This might help diagnose recurrences of #2232
* Merge branch 'use_futures_copy' into 'main'Nick Mathewson2025-11-031-0/+2
|\ | | | | | | | | Replace copy_interactive with futures-copy. See merge request tpo/core/arti!3416
| * Replace copy_interactive with futures-copy.Nick Mathewson2025-10-301-0/+2
| | | | | | | | | | | | | | | | This change lets us avoid spawning extra tasks (due to one-direction nature of copy_interactive), and avoid some lock contention (due to use of AsyncReadExt::split). Addresses part of #786.
* | maint: downgrade generic-array to 0.14.7Steven Engler2025-10-301-2/+2
| | | | | | | | | | | | | | | | | | ```bash cargo update generic-array --precise 0.14.7 ``` See https://gitlab.torproject.org/tpo/core/arti/-/issues/2234 and https://github.com/RustCrypto/traits/issues/2036.
* | maint: ran `cargo update`Steven Engler2025-10-301-468/+427
|/
* tor-dirserver: Add SaturatingSystemTimeClara Engler2025-10-301-0/+1
| | | | | | This commit changes various things in the dirmirror operation, namely the use of a SystemTime wrapper type that provides saturation on both ends.
* tor-dirserver: Make database full syncClara Engler2025-10-301-54/+34
| | | | | | | | | | This commit makes the entire database operations synchronous, thereby replacing deadpool with r2d2. The full motivation is outlined in a rustdoc comment at the top of the `database` module, but it can be summarized to the fact that SQLite is by design inherently synchronous due to directly interfacing with the file system.
* tor-dirserver: Implement download timeoutClara Engler2025-10-301-0/+3
| | | | | | | | | | This commit starts work in the `mirror::operation` module by implementing the functions for calculating the `Duration` to wait from a given `SystemTime` until the point in time when the dirmirror should download new documents from the authorities again. Also, this commit introduces new error types and internal helper functions in order to fulfill this purpose better.
* tor-dirserver: Outline the `mirror` APIClara Engler2025-10-301-0/+1
| | | | | | This commit introduces the `mirror` module which is fairly boilerplate at the moment. However, everything of it is very well documented using rustdoc, thereby more or less creating a design document.
* maint: bump minor versions of all published cratesSteven Engler2025-10-291-60/+60
| | | | | | | ```bash readarray -t publish < <(cargo metadata --format-version 1 | jq -r '.packages[] | select((.id | startswith("path+file:///")) and (.rust_version != null) and (.publish == null or .publish == true or .publish != [])) | .name') for package in "${publish[@]}"; do echo "$package:"; cargo set-version --bump minor -p "$package"; done ```
* New futures-copy crate to replace copy_interactive.Nick Mathewson2025-10-281-0/+14
| | | | | | | | | | This crate's API is loosely based on some of tokio's functions, and its implementation strategy is loosely based on futures::io::copy. It's designed to be generally useful outside of the arti ecosystem. Should help with the original challenge of #786.
* Merge branch 'http_connect_v2' into 'main'Nick Mathewson2025-10-281-7/+11
|\ | | | | | | | | | | | | Implement HTTP CONNECT proxy support in Arti. Closes #2221 See merge request tpo/core/arti!3391
| * http_connect: write our own hyper-futures replacementNick Mathewson2025-10-281-12/+1
| |
| * http_connect: Implement stream isolationNick Mathewson2025-10-281-0/+1
| |
| * arti: Implement a "bilingual" HTTP CONNECT proxy.Nick Mathewson2025-10-281-7/+20
| | | | | | | | | | | | | | | | | | | | | | 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-281-0/+1
| | | | | | | | | | This will let us speak HTTP CONNECT as well; there is a stub for initiating an http proxy.
* | arti-relay: use `Void` for `TorRelay::run`Steven Engler2025-10-271-0/+1
|/
* proto: Add the channel authentication dataDavid Goulet2025-10-231-0/+1
| | | | | | | | | | | 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]>
* arti-relay: initialize the `StateDirectory` and `FsStateMgr`Steven Engler2025-10-211-0/+1
|
* tor-dirserver: Don't expose rusqlite::Error in PoolClara Engler2025-10-151-0/+1
|
* tor-dirserver: Create database moduleClara Engler2025-10-151-0/+1
| | | | | This commit renames the schema module to the database module in order to perform better error handling while redesigning the API.
* arti-relay: add mainloopSteven Engler2025-10-081-0/+2
|