summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | hsclient: remove now-needless "allow(unused)" markers.Nick Mathewson2026-05-071-3/+0
| | | | | | | |
| * | | | | | | circmgr: Modernize and correct saturating_mul_f64Nick Mathewson2026-05-071-19/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Duration::try_from_secs_f64 has existed since Rust 1.66, so we can use it now. It seems wrong to treat "infinity" and "negative infinity" as "one second", so make them actually saturating. Additionally, document behavior for infinity and negative infinity, and document that the NaN behavior isn't documented. (And secretly NaN behavior return a number on the same order of magnitude as the input.)
| * | | | | | | circmgr: Avoid half-steps in our timeout_scale calculationNick Mathewson2026-05-071-12/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This strategy is safe because (outside of our tests) we never look at the actual values of timeout_scale, but only at their ratios.
| * | | | | | | circmgr, hsclient: Introduce and use a OneWay timeout estimator.Nick Mathewson2026-05-072-16/+18
| | | | | | | |
| * | | | | | | hsclient: Move and correct timeouts for waiting for RENDEZVOUS2Nick Mathewson2026-05-071-66/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This time we _do_ need to use the BuildCircuit estimator, since we have to consider the peer's circuit building. The peer may be using full vanguards, so we need to use 5 as their maximum hop estimate. Additionally, their circuit may be longer than ours, so we ought to possibly wait a bit longer for them to get our INTRODUCE2. There are XXXXs here about OneWay timeout estimators, for immediate followup.
| * | | | | | | hsclient: move and correct timeouts for intro/ack.Nick Mathewson2026-05-071-30/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The circmgr handles timeouts on its own, so we can let it do that. Use the actual circuit length for calculating round-trip timeouts.
| * | | | | | | hsclient: Move and correct timeouts for establishing rend circuits.Nick Mathewson2026-05-072-34/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The circmgr code handles circuit timeouts, so we don't need to include that redundantly. Also, we look at the circuit to find out its number of hops, so that we estimate the timeout more accurately.
| * | | | | | | hsclient: Move and correct timeouts for hsdescriptor downloads.Nick Mathewson2026-05-072-17/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hspool operations already include their own timeouts, so we don't need to recalculate them. For the directory related operations, we now calculate the timeouts based on actual circuit lengths, and use those timeouts on the operations themselves.
| * | | | | | | circmgr: Add num_hops members to mock tunnel types.Nick Mathewson2026-05-071-0/+38
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | We'll use these for timeout estimations.
* | | | | | | proto: Remove an allow for a now-pedantic warning.Nick Mathewson2026-05-071-6/+0
| | | | | | |
* | | | | | | hsservice, llcrypto, SecurityResponse: use cfg({true,false})Nick Mathewson2026-05-072-4/+4
| | | | | | |
* | | | | | | tor-config::derive: use cfg(true) and cfg(false)Nick Mathewson2026-05-071-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rust 1.88 added these, so we no longer have to use `any()` for false and `all()` for true.
* | | | | | | tor-basic-utils: remove `flatten`Nick Mathewson2026-05-072-15/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is no longer needed since we require Rust 1.89. Nobody was using it.
* | | | | | | tor-basic-utils: Update comment about std::fmt::from_fn.Nick Mathewson2026-05-071-1/+1
|/ / / / / / | | | | | | | | | | | | | | | | | | We now know when it was stabilized, so we can say when to use it.
* | | | | | Merge branch 'release-2.3.0-remove-semver-md' into 'main'Ian Jackson2026-05-076-83/+0
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | release: Remove semver.md files. See merge request tpo/core/arti!3955
| * | | | | | release: Remove semver.md files.Wesley Aptekar-Cassels2026-05-066-83/+0
| | | | | | |
* | | | | | | tor-rtcompat: De-version self-dev-dependency to remove it during publishIan Jackson2026-05-071-1/+10
| |/ / / / / |/| | | | |
* | | | | | Merge branch 'release-2.3.0-update-release-date' into 'main'Ian Jackson2026-05-061-1/+1
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | release: Bump release date for 2.3.0. See merge request tpo/core/arti!3953
| * | | | | release: Bump release date for 2.3.0.Wesley Aptekar-Cassels2026-05-061-1/+1
| | | | | |
* | | | | | Merge branch 'release-2.3.0-version-bumps' into 'main'Ian Jackson2026-05-0657-548/+548
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | release: Version bumps See merge request tpo/core/arti!3952
| * | | | | | release: Bump tor- and arti- crate versions.Wesley Aptekar-Cassels2026-05-0656-524/+524
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cargo set-version -p arti-client 0.42.0 cargo set-version -p arti-config 0.42.0 cargo set-version -p arti-relay 0.42.0 cargo set-version -p arti-rpc-client-core 0.42.0 cargo set-version -p arti-rpcserver 0.42.0 cargo set-version -p arti-testing 0.42.0 cargo set-version -p arti-ureq 0.42.0 cargo set-version -p tor-async-utils 0.42.0 cargo set-version -p tor-basic-utils 0.42.0 cargo set-version -p tor-bytes 0.42.0 cargo set-version -p tor-cell 0.42.0 cargo set-version -p tor-cert 0.42.0 cargo set-version -p tor-cert-x509 0.42.0 cargo set-version -p tor-chanmgr 0.42.0 cargo set-version -p tor-checkable 0.42.0 cargo set-version -p tor-circmgr 0.42.0 cargo set-version -p tor-config 0.42.0 cargo set-version -p tor-config-path 0.42.0 cargo set-version -p tor-consdiff 0.42.0 cargo set-version -p tor-dirclient 0.42.0 cargo set-version -p tor-dircommon 0.42.0 cargo set-version -p tor-dirmgr 0.42.0 cargo set-version -p tor-dirserver 0.42.0 cargo set-version -p tor-error 0.42.0 cargo set-version -p tor-events 0.42.0 cargo set-version -p tor-general-addr 0.42.0 cargo set-version -p tor-geoip 0.42.0 cargo set-version -p tor-guardmgr 0.42.0 cargo set-version -p tor-hsclient 0.42.0 cargo set-version -p tor-hscrypto 0.42.0 cargo set-version -p tor-hsrproxy 0.42.0 cargo set-version -p tor-hsservice 0.42.0 cargo set-version -p tor-key-forge 0.42.0 cargo set-version -p tor-keymgr 0.42.0 cargo set-version -p tor-linkspec 0.42.0 cargo set-version -p tor-llcrypto 0.42.0 cargo set-version -p tor-log-ratelim 0.42.0 cargo set-version -p tor-memquota 0.42.0 cargo set-version -p tor-memquota-cost 0.42.0 cargo set-version -p tor-netdir 0.42.0 cargo set-version -p tor-netdoc 0.42.0 cargo set-version -p tor-persist 0.42.0 cargo set-version -p tor-proto 0.42.0 cargo set-version -p tor-protover 0.42.0 cargo set-version -p tor-ptmgr 0.42.0 cargo set-version -p tor-relay-crypto 0.42.0 cargo set-version -p tor-relay-selection 0.42.0 cargo set-version -p tor-rpcbase 0.42.0 cargo set-version -p tor-rpc-connect 0.42.0 cargo set-version -p tor-rtcompat 0.42.0 cargo set-version -p tor-rtmock 0.42.0 cargo set-version -p tor-socksproto 0.42.0 cargo set-version -p tor-units 0.42.0
| * | | | | | release: Bump safelog version to 0.8.2.Wesley Aptekar-Cassels2026-05-0621-21/+21
| | | | | | |
| * | | | | | release: Bump arti version to 2.3.0.Wesley Aptekar-Cassels2026-05-063-3/+3
| |/ / / / /
* | | | | | Merge branch 'release-may-2026' into 'main'Ian Jackson2026-05-062-0/+4
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | Release prep (fixup-features) See merge request tpo/core/arti!3949
| * | | | | release: Run fixup-features.Wesley Aptekar-Cassels2026-05-052-0/+4
| |/ / / /
* / / / / Revert "rpc: Suppress a clippy false positive that appears with current beta"Nick Mathewson2026-05-041-2/+1
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9447e48d0c698d51c75706d5efedcd6142c82f2a, which told Clippy to ignore a warning that (I think) no longer occurs. (Clippy was complaining that we were _naming_ a function in a const-context that wasn't const-stable at our MSRV. But it's fine to _name_ a non-const function in that case: we just can't _call_ it.) See https://github.com/rust-lang/rust-clippy/issues/15792 for more info on the clippy bug. AFAICT the warning no longer appears with current beta, nightly, or stable versions.
* | | | Merge branch 'ticket_2517' into 'main'Alexander Hansen Færøy2026-05-042-18/+12
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | Upgrade to hickory-proto 0.26.1 Closes #2517 See merge request tpo/core/arti!3942
| * | | Upgrade to hickory-proto 0.26.1Nick Mathewson2026-05-022-18/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes https://rustsec.org/advisories/RUSTSEC-2026-0120.html and https://rustsec.org/advisories/RUSTSEC-2026-0119.html Neither of these is relevant for Arti, but we may as well upgrade. This change required some code changes, since the upgrade from 0.25 changed some of the old APIs. Closes #2517.
* | | | Merge branch 'directory-signature-hash-algo' into 'main'Clara Engler2026-04-3010-25/+123
|\ \ \ \ | |/ / / |/| / / | |/ / | | | Unknown keyword handling fixes; use a more principled type for directory signature hash algo See merge request tpo/core/arti!3923
| * | tor-netdoc: Use poc's DirectorySignatureHashAlgoIan Jackson2026-04-291-7/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | This type is now directly suitable for use in directory signatures. While we're changing its type, rename the digest algorithm name field from `digestname` to `digest_algo`. (The spec says `algorithm` but I don't think we're going to reuse `direcctory-signature` for non-RSA signatures so this is just the hash algorithm.)
| * | tor-netdoc: Promote DirectorySignatureHashAlgo from poc as nasty macroIan Jackson2026-04-292-12/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We want DirectorySignatureHashAlgo for prod's directory Signature type. However, for complex cfg gate and macro scoping reasons, we can't just move the definition out of poc. Hence this rather unpleasant intermediate state. This will go away, and become normal again, when we can abolish poc's signatures and have poc use a prod signature type. Review with git show --color=always --color-moved-ws=allow-indentation-change --color-moved
| * | tor-netdoc: poc: make DirectorySignatureHashAlgo serialise properlyIan Jackson2026-04-291-0/+1
| | |
| * | tor-netdoc: Introduce KeywordOrStringIan Jackson2026-04-293-0/+48
| | | | | | | | | | | | | | | We're going to use this for `directory-signature`'s hash algorithm, which the current code always treats as a string!
| * | tor-netdoc: Improvement to Unknown API: make it exhaustiveIan Jackson2026-04-292-1/+2
| | |
| * | tor-netdoc: Improvement to Unknown API: make disregarding more explicitIan Jackson2026-04-293-1/+19
| | | | | | | | | | | | | | | Make the operation of disregarding the possible existence of already-discarded information, more explicit.
| * | tor-netdoc: Move FromStr and Display from NormalItemArgument to implsIan Jackson2026-04-294-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows implementing NormalItemArgument for types that can only be parsed, or only displayed - or other combinations. I noticed this restriction while inventing a type I later decided was unnecessary. I still think it's a good change. There is no practical impact elsewhere, since in practice downstream code implements NormalItemArgument rather than relying on it.
* | | tor-netdoc: Abolish the hsdesc-inner-docs featureIan Jackson2026-04-302-7/+2
| | | | | | | | | | | | | | | | | | | | | Part of #2492 phase 3. This feature was experimental, so now that there are no cfg use gates, we can abolish it right away.
* | | tor-netdoc: Un-gate every cfg feature = "hsdesc-inner-docs"Ian Jackson2026-04-304-15/+7
| | | | | | | | | | | | Part of #2492 phase 2.
* | | Merge branch 'fix-constructor' into 'main'Ian Jackson2026-04-2918-47/+35
|\ \ \ | | | | | | | | | | | | | | | | tor-cert: stabilise/abolish "encode" feature, and fix builder naming See merge request tpo/core/arti!3926
| * | | tor-cert: Remove the "encode" cargo featureIan Jackson2026-04-297-10/+9
| | | | | | | | | | | | | | | | This was experimental. Everything gated by it has been stabilised.
| * | | tor-cert: Stabilise everything gated by feature = "encode" (fmt)Ian Jackson2026-04-291-2/+1
| | | |
| * | | tor-cert: Stabilise everything gated by feature = "encode"Ian Jackson2026-04-295-18/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is widely used in-tree already. I don't think it makes sense to feature-gate it. There are some (perhaps rather thin) tests for both the Ed25519Builder and EncodedRsaCrosscert. It is possible we might want to change the API further, but this is still a 0.x crate so that's not going to be a problem. We'll remove the actual cargo feature in the next commit.
| * | | tor-cert: Ed25519CertBuilder: do builder fn renameIan Jackson2026-04-297-14/+12
| | | | | | | | | | | | | | | | | | | | | | | | Change all call sites. This completes the rename.
| * | | tor-cert: Ed25519CertBuilder: do type rename everywhereIan Jackson2026-04-292-12/+8
| | | | | | | | | | | | | | | | Abolish the type alias and change call references.
| * | | tor-cert: Ed25519CertBuilder: rename from Ed25519CertConstructorIan Jackson2026-04-292-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a perfectly ordinary builder type. There isn't any reason why it ought to be called "constructor". And, nowadays, we have things in tor-netdoc called Constructor that take a different approach. Briefly, leave a temporary compat alias, to make diffs more comprehensible. Currently this experimental, so no semver implications.
* | | | Merge branch 'testdata2-dirserver-prep' into 'main'Ian Jackson2026-04-293-2/+4
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Preperation work for upcoming tor-dirserver test refactoring See merge request tpo/core/arti!3931
| * | | tor-dirserver: Add tor-checkable as dev-dependencyClara Engler2026-04-281-0/+1
| | | | | | | | | | | | | | | | | | | | This is required to do some signature validation on legacy types in an upcoming commit.
| * | | tor-dirserver: Fix for missing_extra_infos() for NULLClara Engler2026-04-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If extra-infos is set to NULL, which might be the case for micro descriptors or even router descriptors because the field is optional there, this SQL query fails because it cannot LEFT JOIN server.extra_unsigned_sha1 when this field is NULL. To fix this, we simply add an additional clause to the WHERE statement that filters such rows out.
| * | | tor-dirserver: Make fingerprint optional in router_descriptorClara Engler2026-04-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit changes the schema to make the fingerprint optional. Reason for this is, that microdescriptors are also stored in this table and microdescriptors only contain an OPTIONAL onion-key, meaning it may not always be possible to determine this value from a microdescriptor, thereby making it silly to require it here.
* | | | Merge branch 'relayids_serde_default' into 'main'Alexander Hansen Færøy2026-04-291-2/+6
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | linkspec: Add serde(default) to fields in RelayIds. See merge request tpo/core/arti!3933