summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | DirMgr: Clarify dead_code status on storage methods.Nick Mathewson2024-05-141-2/+5
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | Per comments on #1383, we're keeping these methods. This commit replaces the "TODO" comments with comments explaining why it's okay that this methods are unused. Part of #1383.
| * | Merge branch 'rpc_stream_integration_v3' into 'main'Nick Mathewson2024-05-1411-75/+523
| |\ \ | | | | | | | | | | | | | | | | RPC: Allow SOCKS applications to create streams. See merge request tpo/core/arti!2143
| | * | RPC: Use a slightly less awful workaround in socks.rsNick Mathewson2024-05-141-20/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem was that Rust won't let us say ``` type ConnTarget<R> = Arc<dyn ClientConnectionTarget>; ``` because the R parameter wasn't used. Previously we solved this by using a macro instead of a type definition, which is ugly. I had been thinking previously I would need to declare some kind of additional wrapper type, and had shrunk from the verbosity. But @diziet pointed out that I could just use a 2-tuple unconditionally. It's still not beautiful, but it is less hideous than before.
| | * | RPC: Add notes about ClientConnectionTargetNick Mathewson2024-05-141-0/+7
| | | | | | | | | | | | | | | | | | | | Document its relation to the method system, and possible future evolution.
| | * | RPC: Require DynClone for ClientConnectionError.Nick Mathewson2024-05-143-5/+8
| | | |
| | * | RPC: Seal ClientConnectionError.Nick Mathewson2024-05-141-2/+19
| | | |
| | * | RPC: Document RpcDataSTream state transitions.Nick Mathewson2024-05-141-1/+19
| | | |
| | * | RPC: Rename RpcDataStream::{Waiting => Launching}Nick Mathewson2024-05-141-5/+9
| | | | | | | | | | | | | | | | Also, improve documentation.
| | * | proto: Fix compilation with stream-ctrl but not experimental-api.Nick Mathewson2024-05-142-2/+2
| | | |
| | * | Remove excess indentation from last commit.Nick Mathewson2024-05-141-14/+11
| | | | | | | | | | | | | | | | (This is a separate commit to make the branch more readable)
| | * | RPC: Refactor socks interpretation to remove stream id, add isolation.Nick Mathewson2024-05-141-41/+41
| | | |
| | * | RPC: RpcDataStream type to act as a "stream-shaped hole"Nick Mathewson2024-05-146-0/+242
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The application creates these, using a new-stream-handle RPC command, on an object that can actually create streams. Then later, the application provides the (global) identity of one of these objects when it's making a SOCKS connection. This causes the object to take hold of a `DataStreamCtrl`.
| | * | RPC: Add a trait that can be the target of SOCKS requestsNick Mathewson2024-05-126-28/+174
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (These will later become objects that can receive any application request, once we have HTTP connect.) For now, Session and TorClient implement this trait; but soon there will be a new type to hold on to the created DataStreamCtrl. There are some XXXXs here, marking code that is too ugly to live. I should fix it before I merge this branch.
| * / Suppress a false positive for a new lint on Rust BetaIan Jackson2024-05-131-0/+1
| |/
| * Fix rustdoc errors from !2140.Nick Mathewson2024-05-091-2/+2
| |
| * Merge branch 'rpc_stream_preliminaries' into 'main'Nick Mathewson2024-05-0914-51/+240
| |\ | | | | | | | | | | | | RPC: Preliminaries for RPC-stream integration See merge request tpo/core/arti!2140
| | * RPC: Un-parameterize RpcSession.Nick Mathewson2024-05-092-30/+43
| | | | | | | | | | | | | | | | | | | | | Instead, add a trait so that we can hold TorClient<R> and invoke only the methods on it that we need. This is a partial revert of 47f012829d3381fd896c6b6f20961fbfe2f40f6d.
| | * RPC: Use one cast table entry per type.Nick Mathewson2024-05-091-29/+47
| | |
| | * tor-rpcbase: Add facility to downcast to Arc<dyn Trait>.Nick Mathewson2024-05-093-9/+84
| | | | | | | | | | | | | | | Previously we could only downcast to &dyn Trait, which is not adequate.
| | * Make cast_to_trait inherent on dyn Object.Nick Mathewson2024-05-091-4/+10
| | | | | | | | | | | | | | | This makes `ObjectRefExt` less necessary, and will let us make it Arc-only.
| | * rpcserver: rename streams.rs to codecs.rs.Nick Mathewson2024-05-093-2/+2
| | | | | | | | | | | | I think I'm going to add another stream management module here.
| | * proto: Expose wait_for_connection as a part of the DataStream API.Nick Mathewson2024-05-091-1/+1
| | |
| | * rpc: Mark TorClient as exposed outside of sessionNick Mathewson2024-05-091-1/+6
| | |
| | * rpc: Teach RpcSession to expose and isolate clients.Nick Mathewson2024-05-091-1/+39
| | |
| | * Make RpcSession parameterized.Nick Mathewson2024-05-093-22/+23
| | | | | | | | | | | | | | | | | | This change allows it to hold a TorClient<R> that isn't type-erased. We'll use this for cases when we need to get the client directly and call functions on it.
| | * rpc: Add an isolated-client method on TorClient.Nick Mathewson2024-05-092-3/+27
| | |
| | * rpc::invoker_ent_list: allow trailing comma.Nick Mathewson2024-05-091-1/+1
| | |
| | * rpc: Add helper type for methods that return a single id.Nick Mathewson2024-05-092-0/+9
| | |
| * | Merge branch 'vanguard-todos' into 'main'gabi-2502024-05-097-75/+117
| |\ \ | | | | | | | | | | | | | | | | tor-guardmgr: Address some vanguard-related TODOs See merge request tpo/core/arti!2139
| | * | tor-guardmgr: Map NoSuitableRelay errors to ErrorKind::NoPath.Gabriela Moldovan2024-05-091-2/+1
| | | |
| | * | tor-circmgr: Remove TODO expressing doubt about VanguardHsPathBuilder.Gabriela Moldovan2024-05-091-2/+0
| | | | | | | | | | | | | | | | | | | | I don't think it's all wrong, this was left over from the first draft implementation.
| | * | tor-guardmgr: Add an error variant for when the vanguard mode is unsuitable.Gabriela Moldovan2024-05-092-8/+25
| | | |
| | * | tor-guardmgr: Return a BootstrapRequired error if all the sets are empty (fmt).Gabriela Moldovan2024-05-091-1/+6
| | | |
| | * | tor-guardmgr: Return a BootstrapRequired error if all the sets are empty.Gabriela Moldovan2024-05-092-14/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, `select_vanguard` returned a `NoSuitableRelay` error if it was unable to select a relay to use as a vanguard. We now distunguish the "there are no suitable relays in the vanguard sets" (`NoSuitableRelays`) error case from the "our vanguard sets are empty" (`BootstrapRequired`) one.
| | * | tor-guardmgr: Fix typo in documentation.Gabriela Moldovan2024-05-091-1/+1
| | | |
| | * | tor-guardmgr: Add a BootstrapRequired error for VanguardMgr.Gabriela Moldovan2024-05-091-0/+9
| | | |
| | * | tor-guardmgr: Move VanguardMgrError to a separate module.Gabriela Moldovan2024-05-092-40/+50
| | | | | | | | | | | | | | | | | | | | This is about to grow another variant, so I'm moving it to a dedicated `err` module.
| | * | tor-guardmgr: Remove a nonsensical TODO.Gabriela Moldovan2024-05-091-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | The `match` below it is fine, there's no need to rewrite it. (I think this TODO is actually dupe of the the TODO above it).
| | * | tor-guardmgr: Remove TODO about removing Vanguard abstraction.Gabriela Moldovan2024-05-091-3/+0
| | | | | | | | | | | | | | | | | | | | I think it's alright to keep it: it gives us the flexibility to extend it later on, if needed.
| | * | tor-guardmgr: Remove unnecessary clippy allow.Gabriela Moldovan2024-05-091-1/+0
| | | |
| | * | tor-guardmgr: Remove a TODO HS-VANGUARDS.Gabriela Moldovan2024-05-091-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | This TODO doesn't really need to be implemented: we can test the `VanguardMgr` just the same without it (`GuardMgrInner` is similar, in that it doesn't mock the rng).
| | * | tor-circmgr: Downgrade some TODO HS-VANGUARDs.Gabriela Moldovan2024-05-092-2/+2
| | | |
| | * | tor-guardmgr: Remove dead_code allow.Gabriela Moldovan2024-05-091-1/+0
| | |/
| * / tor-keymgr: Fix nightly warnings.Gabriela Moldovan2024-05-091-6/+6
| |/ | | | | | | This is a follow-up from !2131
| * Merge branch 'keymgr-ephemeral-refactor' into 'main'gabi-2502024-05-0911-616/+830
| |\ | | | | | | | | | | | | | | | | | | tor-keymgr: Refactor code shared between ArtiNativeKeystore and ArtiEphemeralKeystore Closes #1362 and #1367 See merge request tpo/core/arti!2131
| | * Revert "tor-keymgr: Fix now-failing test."Gabriela Moldovan2024-05-081-0/+16
| | | | | | | | | | | | This reverts commit 9ea35caeb1ed23fd029627d04819debc41d85c77.
| | * tor-keymgr: Validate the KeyType when inserting into the ephemeral keystore.Gabriela Moldovan2024-05-081-0/+20
| | | | | | | | | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2131#note_3028014
| | * tor-keymgr: Add function for extracting the KeyType of an ssh key.Gabriela Moldovan2024-05-082-0/+50
| | |
| | * tor-keymgr: Fix newly failing tests (fmt).Gabriela Moldovan2024-05-081-33/+62
| | |
| | * tor-keymgr: Fix newly failing tests.Gabriela Moldovan2024-05-082-59/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This updates the keymgr tests to be slightly more robust. These tests attach some metadata to each key, such as the "nickname" of the key (which only exists for testing purposes), whether the key was auto-generated, and the keystore ID of the keystore from which the key was retrieved. Previously, the metadata was encoded in the key "material" itself (the test "keys" were actually just `String`s with a hacky `EncodableKey` implementation that abused the "encrypted" variant of `KeypairData`). This was only possible because we had access to the key internals (through `SshKeyData::Public`/`SshKeyData::Private`), but since the internals are inaccessible now, the tests need to be updated.