summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | proto: Move CircHop{Inbound,Outbound} out of the client module.Gabriela Moldovan2025-11-172-575/+599
| | | | | | | | | | | | | | | | | | | | | | | | These will be soon used by relays too.
* | | | | | proto: Add constructors for CircHop{Inbound,Outbound}Gabriela Moldovan2025-11-171-19/+46
| | | | | |
* | | | | | proto: Move some of CircHop's impl to CircHop{Inbound,Outbound}Gabriela Moldovan2025-11-171-141/+340
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Inbound/Outbound CircHop states will be used in the relay reactor, so it's helpful to move some of the `CircHop` impl there.
* | | | | | proto: Make the hop in SendRelayCell optional (fmt)Gabriela Moldovan2025-11-171-1/+5
| | | | | |
* | | | | | proto: Make the hop in SendRelayCell optionalGabriela Moldovan2025-11-177-20/+22
| | | | | |
* | | | | | proto: Update SendRelayCell docsGabriela Moldovan2025-11-171-2/+3
| | | | | |
* | | | | | proto: Move SendRelayCell to circhop (fmt)Gabriela Moldovan2025-11-174-5/+5
| | | | | |
* | | | | | proto: Move SendRelayCell to circhopGabriela Moldovan2025-11-175-20/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will be used by relays too, once we modify it to make the `HopNum` optional.
* | | | | | proto: Split CircHop into inbound and outbound components (fmt)Gabriela Moldovan2025-11-171-7/+13
| | | | | |
* | | | | | proto: Split CircHop into inbound and outbound componentsGabriela Moldovan2025-11-171-52/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unlike the client reactor, the relay reactor uses these components in separate tasks. Splitting `CircHop` this way enables us to reuse its parts instead of duplicating them in the relay impl. Eventually, I'd like us to rewrite the client reactor to follow a similar pattern.
* | | | | | proto: Rename cell decoder field for clarityGabriela Moldovan2025-11-141-3/+3
| | | | | |
* | | | | | proto: Avoid exposing stream map field (fmt)Gabriela Moldovan2025-11-141-8/+11
| | | | | |
* | | | | | proto: Avoid exposing stream map fieldGabriela Moldovan2025-11-141-3/+3
| | | | | |
* | | | | | proto: Import StreamMap to reduce cognitive complexityGabriela Moldovan2025-11-141-6/+6
| | | | | |
* | | | | | proto: Move CloseStreamBehavior to top-level stream moduleGabriela Moldovan2025-11-145-26/+29
| | | | | |
* | | | | | proto: Remove extraneous backtick in CloseStreamBehavior docsGabriela Moldovan2025-11-141-1/+1
| |_|_|/ / |/| | | |
* | | | | http_connect: Add AsyncReadExt to fix compilation.Nick Mathewson2025-11-131-2/+2
| | | | |
* | | | | Merge branch 'opentelemetry-options-without-feature-warning' into 'main'Nick Mathewson2025-11-131-1/+17
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | arti: Warning when opentelemetry config is set but not build with feature Closes #2247 See merge request tpo/core/arti!3458
| * | | | | arti: Boyscout fixnield2025-11-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | It seems this config is for tokio-console and not the RPC.
| * | | | | arti: Warning when opentelemetry config is set but not build with featurenield2025-11-131-0/+16
| | | | | |
* | | | | | Merge branch 'http_xsprobe' into 'main'Nick Mathewson2025-11-131-1/+142
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Validate Host header for non-CONNECT requests to HTTP CONNECT port See merge request tpo/core/arti!3429
| * | | | | | http_connect: prevent tests from colliding on directoriesNick Mathewson2025-11-131-5/+16
| | | | | | |
| * | | | | | http_connect: fix to conform to MSRVNick Mathewson2025-11-131-1/+1
| | | | | | |
| * | | | | | http_connect: add a test for Host validation.Nick Mathewson2025-11-131-0/+73
| | | | | | |
| * | | | | | Validate Host header for non-CONNECT requests to HTTP CONNECT portNick Mathewson2025-11-031-1/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This validation makes it harder for an adversarial webpage to probe for the version of arti and its capabilities. See torspec!437.
* | | | | | | Merge branch 'x509-tls-cert' into 'main'Nick Mathewson2025-11-132-40/+221
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | x509: Support generating the keys and certs that relays need for TLS Closes #2205 See merge request tpo/core/arti!3349
| * | | | | | | tor-cert: x509 requires tor-llcrypto/rng-compat.Nick Mathewson2025-11-121-1/+1
| | | | | | | |
| * | | | | | | Rename TlsCertifiedKey to TlsKeyAndCert.Nick Mathewson2025-11-121-4/+4
| | | | | | | |
| * | | | | | | x509: Correct single instance of misnamed certNick Mathewson2025-11-121-1/+1
| | | | | | | |
| * | | | | | | x509: Support generating the keys and certs that relays need.Nick Mathewson2025-11-122-9/+191
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | | x509: Extract serial-number generation into its own function.Nick Mathewson2025-11-121-6/+9
| | | | | | | |
| * | | | | | | x509: Fix an unfinished comment.Nick Mathewson2025-11-121-1/+1
| | | | | | | |
| * | | | | | | x509: refactor lifetime calculationNick Mathewson2025-11-121-27/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This doesn't give precisely the same results as before for leap years, but that should be okay.
* | | | | | | | Merge branch 'config-error' into 'main'opara2025-11-133-13/+30
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | retry-error: Stop trying to dedup error messages See merge request tpo/core/arti!3465
| * | | | | | | | tor-config: fix error source for `ConfigLoadError`Steven Engler2025-11-131-1/+7
| | | | | | | | |
| * | | | | | | | retry-error: stop trying to dedup error msgsSteven Engler2025-11-132-12/+23
| | |_|/ / / / / | |/| | | | | |
* | | | | | | | Merge branch 'prop368-v4' into 'main'Nick Mathewson2025-11-1321-86/+842
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement a usage-based timeout for strongly isolated circuits (prop368) Closes #2237 See merge request tpo/core/arti!3430
| * | | | | | | | Fix another doc link.Nick Mathewson2025-11-131-1/+1
| | | | | | | | |
| * | | | | | | | fix a documentation link.Nick Mathewson2025-11-131-1/+1
| | | | | | | | |
| * | | | | | | | proto: run add_warning to update tunnel_activity.rsNick Mathewson2025-11-121-1/+1
| | | | | | | | |
| * | | | | | | | Fix compilation without all-features.Nick Mathewson2025-11-122-8/+10
| | | | | | | | |
| * | | | | | | | proto: assert that no member of InTunnelActivity needs_drop.Nick Mathewson2025-11-121-1/+15
| | | | | | | | |
| * | | | | | | | circmgr: report errors from update_long_lived_tunnel_last_usedNick Mathewson2025-11-121-21/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (The only error possible is an internal error from calling it with a non-long-lived tunnel.)
| * | | | | | | | proto: Use a ZST-token pattern to enforce correctness for TunnelActivityNick Mathewson2025-11-122-14/+58
| | | | | | | | |
| * | | | | | | | circmgr: In expiration task, try again if we are not yet ready to expire.Nick Mathewson2025-11-121-21/+31
| | | | | | | | |
| * | | | | | | | circmgr: Add a timeout setting for long-lived circuits.Nick Mathewson2025-11-124-3/+30
| | | | | | | | |
| * | | | | | | | circmgr: Implement expiration for long-lived tunnels.Nick Mathewson2025-11-124-22/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code uses the algorithm of prop368: When a tunnel is sufficiently isolated, we want to expire it after it has been disused for a certain amount of time. The implementation is a little tricky, since we need to call an async function on ClientTunnel to look up the disused_since() check. We don't want to call async functions while holding locks, so we need to drop the TunnelList lock before we do the disused_since() calls, and the grab it again. As part of this change, I've had made expiration functions return the earliest time at which any tunnel might expire. We can use this in the future to spawn fewer expiration tasks, and scan the list of tunnels less often.
| * | | | | | | | circmgr: Add a notion of long-lived tunnels.Nick Mathewson2025-11-122-8/+77
| | | | | | | | |
| * | | | | | | | circmgr: Refactor should_expire()Nick Mathewson2025-11-121-24/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of a series of cutoffs, take an object with a set of lifetimes.
| * | | | | | | | circmgr: make expiration functions asyncNick Mathewson2025-11-122-31/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll need them to be async so they can call disused_since() on tunnels.