Commit Graph

6452 Commits

Author SHA1 Message Date
Nick Mathewson 1442763f3d hspool: Accept any T:CircTarget.
Previously, we only accepted an OwnedCircTarget, which would have
kept us from getting a circuit that was aimed at a specialized
CircTarget that gave us LinkSpecs in a raw order.
2023-05-10 11:00:57 -04:00
Nick Mathewson d26da331be test_linkspecs: tidy order of linkspecs
This is pure code movement.
2023-05-10 11:00:57 -04:00
Nick Mathewson e919ade062 Move responsibility for linkspec sorting to CircTarget.
This change is necessary so that we can build Extend2 messages
that have their LinkSpecs appear in a verbatim order as provided
in an INTRODUCE2 message or in a HS descriptor.
2023-05-10 11:00:57 -04:00
Nick Mathewson 6584bbc424 Merge branch 'upgrade-bumpalo' into 'main'
bump to latest version of bumpalo to appease cargo_audit.

See merge request tpo/core/arti!1175
2023-05-09 19:34:52 +00:00
Nick Mathewson 66aff12f19 bump to latest version of bumpalo to appease cargo_audit. 2023-05-09 15:08:58 -04:00
Alexander Færøy 24051b1d1a Merge branch 'ticket_839' into 'main'
Downgrade and clarify message about dir replacment time.

Closes #839

See merge request tpo/core/arti!1171
2023-05-09 13:14:11 +00:00
Alexander Færøy 867663f2e5 Merge branch 'print-stati-feature' into 'main'
print both static sqlite/tls when 'static' feature is used

See merge request tpo/core/arti!1169
2023-05-09 13:12:51 +00:00
Nick Mathewson e6aa947c45 Downgrade and clarify message about dir replacment time.
Closes #839
2023-05-08 14:01:19 -04:00
Nick Mathewson 52de1ab27e Merge branch 'update-deps' into 'main'
Update deps

Closes #844 and #841

See merge request tpo/core/arti!1170
2023-05-08 16:45:56 +00:00
trinity-1686a 6d25a81a01 allow rustls-webpki license 2023-05-08 18:22:43 +02:00
trinity-1686a fe68f0a119 fix a couple clippy lints 2023-05-08 18:01:28 +02:00
trinity-1686a a8fd2d390e update rustls to 0.21 2023-05-08 18:01:00 +02:00
trinity-1686a 7d50a34a3a update rsa to 0.9.x 2023-05-08 17:24:23 +02:00
trinity-1686a f390440bbf print both static sqlite/tls when 'static' feature is used 2023-05-08 16:59:35 +02:00
gabi-250 3725939aba Merge branch 'shuffle-hsdirs' into 'main'
tor-netdir: Shuffle the list of HS dirs used for downloading descriptors.

See merge request tpo/core/arti!1155
2023-05-04 17:20:20 +00:00
Gabriela Moldovan 6b9e37e07c
tor-netdir: Shuffle the list of HS dirs used for downloading descriptors.
We'll probably need the hsdir list to be shuffled deterministically for
testing purposes (this might be desirable, for example, when we write a
test for HS descriptor download retries).

Signed-off-by: Gabriela Moldovan <gabi@torproject.org>
2023-05-04 17:53:58 +01:00
Nick Mathewson 64b4744166 Merge branch 'rpc_mgr' into 'main'
Refactor RPC once more; institute capabilities-style authentication; expose a Client.

Closes #820

See merge request tpo/core/arti!1160
2023-05-04 14:58:45 +00:00
Nick Mathewson da185223c0 objmap: move types to top of file. 2023-05-04 10:37:27 -04:00
Nick Mathewson 7918904b99 Note/clean more TODOs in objmap. 2023-05-04 10:37:27 -04:00
Nick Mathewson 6fb5d08103 RPC: Make the "client" return optional. 2023-05-04 10:37:27 -04:00
Nick Mathewson 0e3fa38c03 RPC: Make "Weak" and "Strong" entries separate.
Now there can be one of each, since we want references and handles
to be conceptually separate.

(The alternative would be to say that an operation either "returns a
handle" or "returns a reference (which may become a handle) unless a
handle already exists.")
2023-05-04 10:37:27 -04:00
Nick Mathewson 7f59d7dae5 Temporarily replace generational-arena with a fake version.
This fake version is completely silly, but it will do the job until
we figure out our MPL2 concerns.
2023-05-04 10:37:27 -04:00
Nick Mathewson 54dabdbd0c RPC: make arti-rpcserver require the arti-client/rpc feature 2023-05-04 10:37:25 -04:00
Nick Mathewson 6cfc387f14 check-licenses: Permit MPL-2.0
The generational-arena crate is distributed under MPL-2.0,
so we need to allow it.

I believe that this license is fine and does not interfere with
our code or our users; the reviewer should double-check.
2023-05-04 10:35:05 -04:00
Nick Mathewson b807e834a3 RPC: Rename session.rs to connection.rs 2023-05-04 10:35:05 -04:00
Nick Mathewson 7845f04908 RPC: rename Session to Connection.
To me, "Session" suggests that we're authenticated, when we are
not necessarily authenticated.  Also, we may eventually want to have
some kind of persistent session object; if we do, then we'll want
Connections to be separate.
2023-05-04 10:35:05 -04:00
Nick Mathewson 94df123932 RPC: Make authentication return a TorClient.
(This is the correct capabilities-based behavior. For now it will only
work if the TorClient uses a PreferredRuntime, but with luck we will
find a solution for #837 soon.)
2023-05-04 10:35:05 -04:00
Nick Mathewson 475da9b802 Add a generational arena for object mapping for RPC.
See the comments on `TypedAddr` for some explanations about
why this is so tricky.  Thanks to @diziet for helping me figure
this out.
2023-05-04 10:35:05 -04:00
Nick Mathewson 9be9ddb902 RPC: Add "register" methods to RequestContext. 2023-05-04 10:35:05 -04:00
Nick Mathewson d7ab388faf RPC: Start on plumbing TorClient into our RPC code
Because of #837, we won't be able to work with _every_ TorClient<R>,
so I'm only going to be using TorClient<PreferredRuntime> for now.
2023-05-04 10:35:03 -04:00
Nick Mathewson 879a453212 RPC: Move the "listen" part of the RPC listener code to `arti`.
Now there's a module in `arti` that runs the loop for an RPC
listener.  The part of the old `listener` module that made
the framed connections is now part of the `Session` object.

There is now yet another a temporary location for the pipe; we
should pick something better.  At least now it's configurable.
2023-05-04 10:30:40 -04:00
Nick Mathewson 25398b5a3b rpc: Make an RpcMgr type to own the DispatchTable.
In the future, this will probably hold more data as well, like a
TorClient and some configuration info.

The TorClient will present an issue; I've made comments about that.

Closes #820
2023-05-04 10:22:27 -04:00
gabi-250 287a619d99 Merge branch 'connect-parse-hsdesc' into 'main'
hs-client: Use a real HsDesc instead of an unparsed string.

See merge request tpo/core/arti!1153
2023-05-03 16:52:27 +00:00
Gabriela Moldovan f6456d469d
tor-error: Add a TODO regarding HS desc parsing errors.
Signed-off-by: Gabriela Moldovan <gabi@torproject.org>
2023-05-03 17:25:36 +01:00
Gabriela Moldovan b168fd36de
hscrypto: Add comment about impl that will be removed after we address #798.
Signed-off-by: Gabriela Moldovan <gabi@torproject.org>
2023-05-03 17:25:32 +01:00
Gabriela Moldovan c2cb96a623
Clarify what the new ErrorKinds mean.
Signed-off-by: Gabriela Moldovan <gabi@torproject.org>
2023-05-03 17:25:29 +01:00
Gabriela Moldovan 30983c764f
tor-netdir: Update tests to parse the descriptor, make test consensus lifetime configurable.
Signed-off-by: Gabriela Moldovan <gabi@torproject.org>
2023-05-03 17:25:25 +01:00
Gabriela Moldovan c6fccbbb01
hsclient: Use a real HsDesc instead of an unparsed string.
Signed-off-by: Gabriela Moldovan <gabi@torproject.org>
2023-05-03 17:25:21 +01:00
Gabriela Moldovan 18cb1671c4
hscrypto: Add From impl for deriving KP_hsc_desc_enc out of KS_hsc_desc_enc.
The `HsClientSecretKeys` stored in the HS client connection context only
have the secret keys. Certain APIs (such as `HsDesc::parse`) expect a
keypair (both `HsClientDescEncKey` and `HsClientDescEncSecretKey`). This
`From` impl makes it possible to get a `HsClientDescEncKey` out of
`HsClientDescEncSecretKey`.

Signed-off-by: Gabriela Moldovan <gabi@torproject.org>
2023-05-03 17:25:17 +01:00
Nick Mathewson 02a0afbae4 Merge branch 'more_dir_logging' into 'main'
Lots more dirmgr log messages

Closes #803

See merge request tpo/core/arti!1163
2023-05-03 15:39:13 +00:00
Nick Mathewson e845a553f3 Upgrade tracing to 0.1.36.
This is the first version to impl Value for String.

With luck, this will get minimal_versions CI passing.
2023-05-03 11:09:21 -04:00
Nick Mathewson a7612ecdf8 DirMgr: More logs in top-level bootstrapping code.
Closes #803, I hope.
2023-05-03 11:08:19 -04:00
Nick Mathewson 8151fa504f DirMgr: more trace!() logs and information in download/load functions.
My goal here is to make sure that we can't confuse
one download operation and another, and that we actually know
what's going on.  Previously, not all state transitions or
attempts to fetch information actually corresponded to a log.
2023-05-03 11:08:19 -04:00
Nick Mathewson b2486bba1e DirMgr: Log at trace! when starting a new "AttemptId". 2023-05-03 11:08:19 -04:00
gabi-250 2c2d9e9425 Merge branch 'hsdesc-parse-decrypt-validate' into 'main'
netdoc: Add a convenience method for HS descriptor parsing.

Closes #809

See merge request tpo/core/arti!1152
2023-05-03 14:34:42 +00:00
Nick Mathewson ca74fb448b Merge branch 'api-sketch' into 'main'
Add a sketch for our FFI/RPC architecture

See merge request tpo/core/arti!1005
2023-05-03 14:05:29 +00:00
Nick Mathewson 65d935c8c1 Merge branch 'finalize_release' into 'main'
Final work for releasing 1.1.4

See merge request tpo/core/arti!1168
2023-05-03 13:01:00 +00:00
Nick Mathewson c65b52e552 Remove semver.md files. 2023-05-03 08:33:20 -04:00
Nick Mathewson 1904cfc8b9 Increment crate versions.
Because of the errorkind bumps, we're calling this a breaking change
in everything lower-level than `arti`.

Generated with:
```
cargo set-version -p tor-basic-utils --bump minor
cargo set-version -p tor-async-utils --bump minor
cargo set-version -p caret --bump minor
cargo set-version -p fs-mistrust --bump minor
cargo set-version -p safelog --bump minor
cargo set-version -p retry-error --bump minor
cargo set-version -p tor-error --bump minor
cargo set-version -p tor-config --bump minor
cargo set-version -p tor-events --bump minor
cargo set-version -p tor-units --bump minor
cargo set-version -p tor-rtcompat --bump minor
cargo set-version -p tor-rtmock --bump minor
cargo set-version -p tor-rpcbase --bump minor
cargo set-version -p tor-llcrypto --bump minor
cargo set-version -p tor-protover --bump minor
cargo set-version -p tor-bytes --bump minor
cargo set-version -p tor-hscrypto --bump minor
cargo set-version -p tor-socksproto --bump minor
cargo set-version -p tor-checkable --bump minor
cargo set-version -p tor-cert --bump minor
cargo set-version -p tor-linkspec --bump minor
cargo set-version -p tor-cell --bump minor
cargo set-version -p tor-proto --bump minor
cargo set-version -p tor-netdoc --bump minor
cargo set-version -p tor-consdiff --bump minor
cargo set-version -p tor-netdir --bump minor
cargo set-version -p tor-congestion --bump minor
cargo set-version -p tor-persist --bump minor
cargo set-version -p tor-chanmgr --bump minor
cargo set-version -p tor-ptmgr --bump minor
cargo set-version -p tor-guardmgr --bump minor
cargo set-version -p tor-circmgr --bump minor
cargo set-version -p tor-dirclient --bump minor
cargo set-version -p tor-dirmgr --bump minor
cargo set-version -p tor-hsclient --bump minor
cargo set-version -p tor-hsservice --bump minor
cargo set-version -p arti-client --bump minor
cargo set-version -p arti-rpcserver --bump minor
cargo set-version -p arti-config --bump minor
cargo set-version -p arti-hyper --bump minor

cargo set-version -p arti --bump patch
cargo set-version -p arti-bench --bump patch
cargo set-version -p arti-testing --bump patch
```
2023-05-03 08:31:11 -04:00
Nick Mathewson 15f4199590 Finalize changelog. 2023-05-03 08:25:25 -04:00