Commit Graph

4926 Commits

Author SHA1 Message Date
Ian Jackson b162d005a7 tor-proto conversation API: Rename to ConversationFinished
Was UninstallHandler.  We are going to talk more about conversations
and less about handlers (although, the fact of there being a handler
will still be visible).
2023-06-30 18:02:04 +01:00
Ian Jackson 408c8f30ad tor-proto circuit: Make reactor::run_once modulae-private
Nothing else wants this and having it pub(super) is confusing.
2023-06-30 17:34:50 +01:00
Ian Jackson 21c564fa01 tor-hsclient: Mock traits: Work around an async boobytrap 2023-06-30 17:34:01 +01:00
Nick Mathewson 27bd990a79 Remove semver.md files for 1.1.6 2023-06-30 10:28:53 -04:00
Gabriela Moldovan 3afe810a3b keymgr: Fix broken doc link. 2023-06-30 14:41:33 +01:00
Nick Mathewson de13a7319b Bump patchlevel versions on crates with smaller changes
Done with the commands below.

The following crates have had various changes, and should get a
patchlevel bump. Since they are pre-1.0, we do not need to
distinguish new APIs from other changes.

```
cargo set-version --bump patch -p arti-client
cargo set-version --bump patch -p safelog
cargo set-version --bump patch -p tor-bytes
cargo set-version --bump patch -p tor-cert
cargo set-version --bump patch -p tor-circmgr
cargo set-version --bump patch -p tor-config
cargo set-version --bump patch -p tor-consdiff
cargo set-version --bump patch -p tor-dirclient
cargo set-version --bump patch -p tor-dirmgr
cargo set-version --bump patch -p tor-error
cargo set-version --bump patch -p tor-hsservice
cargo set-version --bump patch -p tor-linkspec
cargo set-version --bump patch -p tor-llcrypto
cargo set-version --bump patch -p tor-netdir
cargo set-version --bump patch -p tor-netdoc
cargo set-version --bump patch -p tor-proto
cargo set-version --bump patch -p tor-rpcbase
cargo set-version --bump patch -p tor-socksproto
```

This crate has new features, but no new non-experimental Rust APIs.
So even though it is post-1.0, it gets a patchlevel bump.

```
cargo set-version --bump patch -p arti
```
2023-06-30 08:42:21 -04:00
Nick Mathewson 65e81bf0ca Bump minor versions on crates with breaking changes
Done with:
```
cargo set-version --bump minor -p tor-hsclient
cargo set-version --bump minor -p arti-rpcserver
cargo set-version --bump minor -p tor-hscrypto
cargo set-version --bump minor -p tor-cell
```
2023-06-30 08:38:16 -04:00
Nick Mathewson 40768a9f61 Bump versions on crates with nonfunctional changes
These crates have had nonfunctional changes only, mostly due to !1271,
or ac90cb7500, or documentation changes: crates that depend on
them do not require a version bump.

```
arti-bench
arti-config
arti-hyper
arti-testing
caret
fs-mistrust
retry-error
tor-async-utils
tor-basic-utils
tor-chanmgr
tor-checkable
tor-congestion
tor-consdiff
tor-events
tor-guardmgr
tor-persist
tor-protover
tor-ptmgr
tor-rtcompat
tor-rtmock
tor-units
```
2023-06-30 08:30:55 -04:00
gabi-250 8c1e96a22c Merge branch 'arti-path-bug' into 'main'
keymgr: Allow periods in ArtiPath and ArtiPathComponent.

See merge request tpo/core/arti!1358
2023-06-30 11:30:45 +00:00
Gabriela Moldovan a61071f7b6 keystore: Change the dummy HsClientSpecifier to "default". 2023-06-30 11:49:07 +01:00
Gabriela Moldovan 35e063702f keymgr: Update ArtiPath and ArtiPathComponent docs.
The docs were lying, we actually support UTF-8 paths (though we might
later decide to restrict the charset further).
2023-06-30 11:49:05 +01:00
Gabriela Moldovan 474f273b6c keymgr: Allow periods in ArtiPath and ArtiPathComponent.
The `ArtiPath` of a client auth key contains the `HsId` of the onion
Since the `HsId` contains a `.onion` component, let's allow `.` for now.
In the future, we may want to update the code (and keystore structure)
to strip away the `.onion` part before building the `ArtiPath`.
2023-06-30 11:48:27 +01:00
Ian Jackson 5d99725c65 Merge branch 'keymgr-docs' into 'main'
keymgr: Downgrade "TODO hs" to "TODO HSS"

See merge request tpo/core/arti!1360
2023-06-30 10:48:25 +00:00
Ian Jackson 88527d14c8 Merge branch 'fix-unfortunate-merge-outcome' into 'main'
arti-client: Rename KeyStore to Keystore.

See merge request tpo/core/arti!1359
2023-06-30 10:41:58 +00:00
Ian Jackson a7334f86ae Merge branch 'docsrs-fix' into 'main'
Add a missing "experimental-api" rustdoc notation

See merge request tpo/core/arti!1353
2023-06-30 10:41:12 +00:00
Ian Jackson f177a5bde4 Merge branch 'fixup-features' into 'main'
Run fixup-features on current `main`

See merge request tpo/core/arti!1352
2023-06-30 10:38:53 +00:00
Gabriela Moldovan 90183368a2 keymgr: Downgrade "TODO hs" to "TODO HSS"
This TODO doesn't need to block the release.
2023-06-30 11:16:28 +01:00
Gabriela Moldovan e899c41135 arti-client: Rename KeyStore to Keystore.
`KeyStore` was renamed to `Keystore` globally in !1355. This fixes a
compile error caused an unfortunate series of non-conflicting (from
git's POV) but incompatible merges:

* !1356 added a line threferencing an error variant that capitalizes the
  "s" in "KeyStore" (`ErrorDetail::KeyStore`)
* !1356 landed just before !1355 (the global renaming). Since there was
  no conflict between the 2, we're now in a state where the code added
  in !1356 is referencing an `ErrorDetail` variant that no longer
  exists.
2023-06-30 11:01:58 +01:00
Alexander Færøy 60f6fe7460 Merge branch 'keymgr-naming' into 'main'
keymgr: Rename KeyStore to Keystore globally.

See merge request tpo/core/arti!1355
2023-06-30 00:11:17 +00:00
Gabriela Moldovan 458af6e007 keymgr: Fix another infinite loop around Keymgr error handling.
This `From` impl was just calling itself recursively...
2023-06-29 23:30:28 +01:00
Gabriela Moldovan 36606a66dd keymgr: Rename KeyStore to Keystore globally.
We've been capitalizing the "s" in "KeyStore" inconsistently. This
`s/KeyStore/Keystore/g` across the codebase.
2023-06-29 22:46:15 +01:00
Nick Mathewson 8fe79b5a1d Add a missing "experimental-api" rustdoc notation 2023-06-29 17:18:23 -04:00
Nick Mathewson a88fa71f25 Resolve XXXs from fixup-features.
Some of these seem spurious: it looks like fixup-features resolved
an issue and then complained about it too.  I'll investigate further.
2023-06-29 17:14:00 -04:00
Nick Mathewson f8ee830a94 Run "cargo sort". 2023-06-29 17:10:27 -04:00
Nick Mathewson 23c67d92e6 Run "fixup-features". 2023-06-29 17:09:52 -04:00
Nick Mathewson 6e2b48c6b9 Merge branch 'rustdoc_fix' into 'main'
Fix a rustdoc link.

See merge request tpo/core/arti!1351
2023-06-29 20:53:41 +00:00
Ian Jackson 3c85863aa1 Merge branch 'exp' into 'main'
tor-error: Make KeystoreFsPermissions experimental for now

See merge request tpo/core/arti!1350
2023-06-29 19:55:06 +00:00
Ian Jackson 9ef65775c9 Merge branch 'validate-client-spec' into 'main'
keymgr: Validate ArtiPaths, replace HsClientSpecifier with generic ArtiPathComponent

See merge request tpo/core/arti!1262
2023-06-29 19:49:30 +00:00
gabi-250 09cb5eed4e Merge branch 'keymgr-config' into 'main'
arti-client: Add keystore_dir to StorageConfig.

See merge request tpo/core/arti!1312
2023-06-29 19:30:41 +00:00
Ian Jackson e299c2b4f7 Merge branch 'keymgr' into 'main'
tor-keymgr: Adjust stability guarantees for release

Closes #934

See merge request tpo/core/arti!1346
2023-06-29 19:27:14 +00:00
Ian Jackson 16a00846bd Run rustfmt 2023-06-29 19:59:26 +01:00
Ian Jackson 69129bf2b4 tor-error: Make KeystoreFsPermissions experimental for now
Let's defer this decision.
2023-06-29 19:51:04 +01:00
Ian Jackson effded7728 tor-keymgr: When keymgr enabled, enable tor-error's experimental too 2023-06-29 19:51:04 +01:00
Nick Mathewson 90b5ce7fd7 Merge branch 'stabilize-hs-client' into 'main'
Mark all {hs,onion-serivce}-client features as non-experimental.

Closes #896

See merge request tpo/core/arti!1347
2023-06-29 18:50:30 +00:00
Ian Jackson 5ea89846b1 Merge branch 'default' into 'main'
Turn off HS client connections by default

See merge request tpo/core/arti!1345
2023-06-29 18:48:43 +00:00
Nick Mathewson 474c313ab0 Fix a rustdoc link. 2023-06-29 14:33:34 -04:00
Gabriela Moldovan 541e56fce4 arti-client: Fix clippy lint. 2023-06-29 19:30:48 +01:00
Gabriela Moldovan c9f4ef010f keymgr: Remove unstable ErrorKind, use internal! for ArtiPath errors. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan f81d16ff9b keymgr: Validate the individual ArtiPahtComponents of ArtiPath.
This also implicitly forbids leading and trailing slashes in an
`ArtiPath`.
2023-06-29 19:28:22 +01:00
Gabriela Moldovan 0ebb002de8 keymgr: Rephrase ArtiPath docs.
This updates the docs with Diziet's suggested doc improvements.
2023-06-29 19:28:22 +01:00
Gabriela Moldovan b5e190d05d keymgr: Remove ArtiPath normalization, introduce additional restrictions. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan d59c3bdea9 keymgr: Document how ArtiPath validation is actually supposed to work. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan e8ef82b78d keymgr: Move validation requirements to the ArtiPath docs. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan 66e6ab3f9e keymgr: Make ArtiPath platform-independent by always using '/' as a separator. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan b8b8a0d3ac hsclient: Make HsClientSpecifier a newtype instead of a type alias. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan adfde95703 keymgr: Add tests for ArtiPath validation. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan f56ed918b0 keymgr: Validate ArtiPath and ArtiPathComponent. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan 2825dfc2bc keymgr: Derive Into for ArtiPath and ArtiPathComponent. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan 0972fc5b2d keymgr: Define an error type for bad `ArtiPathComponents`. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan 20713b24bf arti-client, hsclient: Typealias HsClientSpecifier to ArtiPathComponent.
`ArtiPathComponent` is a more generic version of `HsClientSpecifier`.
2023-06-29 19:28:22 +01:00
Gabriela Moldovan 095faf9c5c keymgr: Derive Display for ArtiPath and ArtiPathComponent. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan 89238f25a6 keymgr: Define `ArtiPathComponent`.
An `ArtiPathComponent` is a substring of an `ArtiPath`. An
`ArtiPathComponent` will be validated according to the same rules as
`ArtiPath`.

In the future we can replace `HsClientSpecifier` with
`ArtiPathComponent` (they both serve the same purpose except
`ArtiPathComponent` is more generic).
2023-06-29 19:28:22 +01:00
Ian Jackson 954e20bb50 tor-keymgr: Add missing footnote 2023-06-29 19:26:15 +01:00
Gabriela Moldovan 28fae4d1fd arti-client: Make keystore_dir an experimental option. 2023-06-29 19:19:51 +01:00
Ian Jackson aa55fd8c13 arti-client: StreamPrefs: Add security note 2023-06-29 19:01:33 +01:00
Ian Jackson d8e185a4bb Turn off HS client connections by default
As per IRC discussion, re lack of Vanguards.
2023-06-29 19:01:33 +01:00
Ian Jackson ea0fb30b2e arti-client tests: Explicitly enable .onion in most tests
These tests include tests of .onion, which we are disabling by
default.  So we must make some prefs that enable them.
2023-06-29 19:01:30 +01:00
Gabriela Moldovan 4693359d8b arti-client: Add TODO regarding keystore_dir deserialization. 2023-06-29 18:59:27 +01:00
Gabriela Moldovan 434a8b3f0d arti cfg tests: Add declare_exceptions for storage.keystore_dir.
This moves `storage.keystore_dir` to a separate `declare_exceptions`
block and explains why we have this exception.
2023-06-29 18:59:27 +01:00
Gabriela Moldovan 65f85b813c tor-config: Remove semver.md
The APIs mentioned in semver.md are all `experimental` now so we don't
really need the file anymore.
2023-06-29 18:59:27 +01:00
Gabriela Moldovan 26eefdc564 tor-config: Make ItemOrBool an experimental feature. 2023-06-29 18:59:27 +01:00
Gabriela Moldovan 373fd6acd2 example-config: Temporarily remove keystore_dir example.
Let's remove this until we figure out how the config should behave when
the `keymgr` feature is disabled (should it accept or reject
`keystore_dir = true`?)
2023-06-29 18:59:27 +01:00
Gabriela Moldovan 0ce5fd8f92 arti-client: Fix clippy lints.
Part of #891
2023-06-29 18:59:27 +01:00
Gabriela Moldovan 0c5c25f470 arti-client: Load keystore dir and permissions from config.
Part of #891
2023-06-29 18:59:27 +01:00
Gabriela Moldovan c93fac997e arti-client: Add expand_keystore_dir function.
Part of #891
2023-06-29 18:59:27 +01:00
Gabriela Moldovan 67db6e3127 arti-client: Add keystore_dir to StorageConfig. 2023-06-29 18:59:27 +01:00
Gabriela Moldovan 450fa5c474 config: Add ItemOrBool helper for deserializing a bool or a value.
This will enable us to support the new `keystore_dir` field, which can
be either a boolean indicating whether the keystore is disabled or
enabled and initialized with the default keystore dir, or a string which
points to a custom keystore directory (and implies the keystore is
enabled):
```
# use this path, fail if compiled out
# keystore = "/path/to/arti/keystore"
#
# use default path, fail if compiled out
# keystore = true
#
# disable
# keystore = false
```

Part of #891
2023-06-29 18:59:27 +01:00
Ian Jackson c90f9308c5 Merge branch 'timeouts' into 'main'
tor-hsclient: Use estimated timeouts

See merge request tpo/core/arti!1342
2023-06-29 17:19:53 +00:00
Ian Jackson 729bff6ff9 Merge branch 'maxintro3' into 'main'
tor-netdoc: Handle anomalous numbers of introduction points

See merge request tpo/core/arti!1332
2023-06-29 17:09:46 +00:00
Nick Mathewson d164a9dac2 Mark all {hs,onion-serivce}-client features as non-experimental. 2023-06-29 13:09:37 -04:00
Ian Jackson f5532eafe7 tor-keymgr: Replace whole-crate-is-unstable warning
arti-client is going to use this so it can't be whole-crate-unstable,
but it can be rapidly-changing.
2023-06-29 17:47:54 +01:00
gabi-250 d960e7c15f Merge branch 'keymgr-docs' into 'main'
keymgr: Fix keymgr docs

See merge request tpo/core/arti!1343
2023-06-29 16:45:07 +00:00
Ian Jackson 6addbd056b tor-keymgr features: Document that "keymgr" is experimental 2023-06-29 17:44:51 +01:00
Ian Jackson eb12a6e665 tor-keymgr features: Make "keymgr" disabled by default 2023-06-29 17:43:25 +01:00
Ian Jackson 9f3ec25a08 tor-hsclient: Add some notes about timeouts and hops 2023-06-29 17:41:49 +01:00
Ian Jackson a604989ba7 tor-hsclient: Use estimated timeouts for introduction and rendezvous (fmt) 2023-06-29 17:41:49 +01:00
Ian Jackson 202104d05c tor-hsclient: Use estimated timeouts for introduction and rendezvous
Replacing RPT_IPT_TIMEOUT is not entirely straightforward.
2023-06-29 17:41:49 +01:00
Ian Jackson d48215a961 tor-hsclient: Use estimated timeout for hsdir fetches (fmt) 2023-06-29 17:41:49 +01:00
Ian Jackson 2563256f42 tor-hsclient: Use estimated timeout for hsdir fetches 2023-06-29 17:41:49 +01:00
Ian Jackson a84460426f tor-hsclient: Provide bodge constant for circuit length 2023-06-29 17:41:49 +01:00
Ian Jackson fe2935d7c5 tor-hsclient: Plumb timeout estimation machinery 2023-06-29 17:41:49 +01:00
Ian Jackson a7d1efe2ce tor-circmgr: Provide estimate_timeout as a method on HsCircPool 2023-06-29 17:41:49 +01:00
Nick Mathewson b9530d0762 Merge branch 'netdir_by_rsa_experimental_apis' into 'main'
netdir: Conditionally expose APIs for working with unusable relays; document what "usable" means.

See merge request tpo/core/arti!1325
2023-06-29 16:08:51 +00:00
Gabriela Moldovan 429e5d2512 keymgr: Fix dummy keymgr doc links.
`Error` is private to `dummy.rs` so let's not mention it in the docs of
the public items.
2023-06-29 17:08:14 +01:00
Gabriela Moldovan 7bdc28014e keymgr: Add missing dummy implementation for KeyType::arti_extension.
This fixes a rustdoc warning when building with:

```
cargo doc --locked --offline -p arti --no-default-features --features=full,onion-service-client
```
2023-06-29 17:08:14 +01:00
Ian Jackson 8133f8e456 Merge branch 'debug' into 'main'
tor-hsclient: Reimplement Debug for MockCirc

See merge request tpo/core/arti!1324
2023-06-29 15:46:25 +00:00
Ian Jackson 2b2ecfbb39 tor-hsclient: Reimplement Debug for MockCirc
This is less code.  Also it now dumps the connect_called field which
was introduced in the meantime.
2023-06-29 16:11:03 +01:00
Ian Jackson 799480d885 Merge branch 'circparams' into 'main'
tor-hsclient: Use proper CircParameters

Closes #935

See merge request tpo/core/arti!1340
2023-06-29 15:03:40 +00:00
Gabriela Moldovan 4941a88494 keymgr: Fix wrong_key_type test.
The string representation of `SshKeyAlgorithm` on `main` changed between
the time the tests were introduced and the time they were merged.
2023-06-29 15:21:27 +01:00
Nick Mathewson 930ecc9eda Merge branch 'handshake-error' into 'main'
tor-hsclient: Handle handshake completion error correctly

See merge request tpo/core/arti!1336
2023-06-29 13:44:48 +00:00
Ian Jackson 5c85ba5cf8 tor-hsclient: Use proper CircParameters
Fixes #935
2023-06-29 14:24:24 +01:00
Ian Jackson f73c06314c tor-circmgr: Expose CircParameters from NetParameters construction
As per #935.

I called this "circparameters_from_netparameters" not
"circparameters_from_netparams" because the type is "NetParameters"
not "NetParams".
2023-06-29 14:24:19 +01:00
Ian Jackson 355b40bf84 tor-hsclient: err: Mention RENDEZVOUS2 in actual messages (fmt) 2023-06-29 14:05:25 +01:00
Ian Jackson 855898ef2f tor-hsclient: err: Rename to RendezvousCompletionCircuitError
Thsi is a bit of a mouthful now, but it is comprehensible.

As per
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1336#note_2917235
2023-06-29 14:04:17 +01:00
Ian Jackson d055e105fa tor-hsclient: err: Mention RENDEZVOUS2 in actual messages 2023-06-29 14:02:50 +01:00
gabi-250 9407fe1ab5 Merge branch 'keymgr-tests' into 'main'
keymgr: Add tests for ArtiNativeKeyStore

See merge request tpo/core/arti!1337
2023-06-29 13:02:07 +00:00
Ian Jackson b13aa66a16 tor-hsclient: err: Move doc comment to correct impl
See
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1336#note_2917236
2023-06-29 13:59:33 +01:00
Ian Jackson 4f8c718c09 tor-hsclient: err: Mention RENDEZVOUS2 2023-06-29 13:57:38 +01:00
Ian Jackson bfad582d1e tor-hsclient: err: Reword comments about error 2023-06-29 13:56:12 +01:00
Nick Mathewson 9790f820f7 netdir: add crosslinks to our definition of "usable". 2023-06-29 08:53:59 -04:00
Nick Mathewson a902f320b5 netdir: document what we mean by a "usable" relay. 2023-06-29 08:53:59 -04:00
Nick Mathewson 7ac362eba7 netdir: Conditionally expose some by_rsa APIs as experimental.
Network-health wants these to see whether a given relay is listed in
the consensus.

cc @juga
2023-06-29 08:53:59 -04:00
Nick Mathewson 83552b559f Merge branch 'netdir_todos' into 'main'
Resolve or defer most TODO HS items in tor-netdir.

See merge request tpo/core/arti!1310
2023-06-29 12:48:32 +00:00
Nick Mathewson 9c853e5b54 Merge branch 'badonion_error_2' into 'main'
arti_client: Move BadOnion from TorAddrError to ErrorDetail.

Closes #932

See merge request tpo/core/arti!1331
2023-06-29 12:48:04 +00:00
Nick Mathewson 76376b2abd netdir: Remove a TODO HS
The function this comment is asking us to write is `circtarget_from_pieces`.
2023-06-29 08:19:37 -04:00
Nick Mathewson c565a67689 Downgrade TODO HS on HsDirParams::compute().expect()
(Adding comments explaining that these errors are really
unlikely to occur, unless there is a bug in our code or in Rust's
time handling.)
2023-06-29 08:19:37 -04:00
Nick Mathewson 768452d9e5 netdir: Defer a TODO HS but add a comment
This issue with walking over the ring is  an issue we really must
solve on the services timeframe, as is the one about looking only at
the rings for which a blinded ID is germane.
2023-06-29 08:19:37 -04:00
Nick Mathewson 2bdf10db84 netdir: take n_replicas and spread_fetch from consensus parameters
This makes them configurable, since we allow the user to override
any consensus parameter.
2023-06-29 08:19:37 -04:00
Nick Mathewson 3db0f74e22 netdir: Downgrade/remove/defer some TODO hs entries. 2023-06-29 08:19:37 -04:00
Nick Mathewson 0c43801598 netdir: remove some now-needless warning suppressions. 2023-06-29 08:19:37 -04:00
Nick Mathewson f2a6754c88 dirmgr: use voting_period. 2023-06-29 08:19:37 -04:00
Nick Mathewson a9da1283bc netdir: remove unnecessary wraps from srv_interval, extract_srvs 2023-06-29 08:19:37 -04:00
Nick Mathewson 4803f6447d netdir: Move voting_period() to netdoc::Lifetime
I was going to add a comment about "doing this if we need the voting
period anywhere else" but it turns out that we also use it in dirmgr.
2023-06-29 08:19:37 -04:00
Nick Mathewson 6c06acc02c arti_client: Add a warning comment to TorAddrError. 2023-06-29 08:16:51 -04:00
Nick Mathewson 800061e70e arti_client: Move BadOnion from TorAddrError to ErrorDetail.
This variant can never be constructed when parsing a TorAddr, so it
doesn't make sense to have it in TorAddrError: the use can never see
it unless they enable `error_detail`.

Not a semver break because the client feature is not yet stable.

Closes #932.
2023-06-29 08:16:51 -04:00
gabi-250 b059e02093 Merge branch 'keymgr-x25519-keys' into 'main'
keymgr: Add support for x25519 keys.

Closes #900

See merge request tpo/core/arti!1321
2023-06-29 11:46:03 +00:00
Gabriela Moldovan 294bb728cf keymgr: Add a TODO about implementing and testing has_key_bundle. 2023-06-29 12:10:35 +01:00
Gabriela Moldovan 68c91223f1 keymgr: Add some basic insert and remove tests. 2023-06-29 12:10:35 +01:00
Gabriela Moldovan 4d5f414017 keymgr: Add assert_found! test helper. 2023-06-29 11:54:54 +01:00
Gabriela Moldovan 91573c6cbc keymgr: Add some key retrieval tests for ArtiNativeKeyStore. 2023-06-29 11:54:54 +01:00
Gabriela Moldovan fd3b42688d keymgr: Add a gen_keys param to init_keystore.
This will enable future tests to optionally initialize the test key
store with some test keys.
2023-06-29 11:54:54 +01:00
Gabriela Moldovan bc447524c2 keymgr: Add tests for ArtiNativeKeyStore::key_path. 2023-06-29 11:54:54 +01:00
Gabriela Moldovan 89d52fff3e keymgr: Derive Debug for ArtiNativeKeyStore. 2023-06-29 11:49:31 +01:00
Gabriela Moldovan ff02270307 keymgr: Add tests for ssh key handling.
Part of #895
2023-06-29 11:49:31 +01:00
Gabriela Moldovan 16a7bb4624 keymgr: Return the key, not Box<()>.
This fixes a bug which caused the function to always return a
type-erased `()` instead of the actual key!
2023-06-29 11:49:31 +01:00
gabi-250 d999ea07ba Merge branch 'config-option' into 'main'
arti cfg tests: exception declaration improvements

See merge request tpo/core/arti!1330
2023-06-29 10:43:00 +00:00
Nick Mathewson c1ab36dbec Merge branch 'cleanup-todos-circmgr' into 'main'
Resolve a few "TODO HS" items in circmgr.

See merge request tpo/core/arti!1322
2023-06-28 20:14:24 +00:00
Nick Mathewson 48f7fbbc96 Merge branch 'lifecycle_doc_tweaks' into 'main'
Documentation, mostly on channel and circuit lifecycles

See merge request tpo/core/arti!1318
2023-06-28 20:06:58 +00:00
Nick Mathewson 02878518b8 circmgr: Refactor duplicate logic.
These two functions are only slightly different, and benefit from
taking a Fn.
2023-06-28 15:28:52 -04:00
Nick Mathewson 6affb50c1a circmgr: Remove a "TODO HS" about path restrictions.
I looked through the C tor source code and couldn't find any
additional path restrictions.
2023-06-28 15:28:52 -04:00
Nick Mathewson d32ba9ed18 circmgr: Defer two "TODO HS" in hspool
One of these is test-related; one is vanguards-related.
2023-06-28 15:28:52 -04:00
Nick Mathewson 4ad1a5c6ac ChanMgr: Tweak documentation a bit.
Adjust formatting, add more references to lower-level APIs, and
clarify lifetimes a little more.
2023-06-28 15:26:22 -04:00
Nick Mathewson 2944d4f91f proto: ClientCirc: remove now-obsolete note on Clone-ness 2023-06-28 15:26:22 -04:00
Nick Mathewson 644c51173a proto: document ClientCirc lifecycle better. 2023-06-28 15:26:22 -04:00
Nick Mathewson e8e95ec03b proto: document channel lifecycle better. 2023-06-28 15:26:22 -04:00
Nick Mathewson 4003e032d6 Remove spurious todo-hs items in tor-cert.
I am not sure why we wrote these comments, but they are incorrect:
I've investigated the C code and found only 3 key types.  The
"unimplemented" types that the TODO comment here complains about are
in fact certificate types.
2023-06-28 15:18:13 -04:00
Ian Jackson 47b577d7a0 tor-netdoc: Placate clippy (fmt) 2023-06-28 18:57:06 +01:00
Ian Jackson 56813d9650 tor-netdoc: Placate clippy 2023-06-28 18:56:49 +01:00
Alexander Færøy f136e8ac41 Merge branch 'more-keymgr-todos' into 'main'
keymgr: Downgrade "TODO hs" to "TODO HSS".

See merge request tpo/core/arti!1334
2023-06-28 17:30:43 +00:00
Ian Jackson 8f1a71850c tor-hsclient: Handle handshake completion error correctly 2023-06-28 17:14:45 +01:00
Ian Jackson 9216f628f1 tor-hsclient: Rename RendezvousCompletionCircuit from RendezvousCompletion
We need to handle errors during the handshake.  That also produces a
`tor_proto::Error` but we  want to print a different message for that,
so let's rename this before adding the new variant.
2023-06-28 17:14:26 +01:00
Ian Jackson 4eb3e3b6ec tor-hsclient: Move handling of Bug to new section
It was wrong where ti was.
2023-06-28 17:14:26 +01:00
Ian Jackson 18478b47a7 tor-hsclient: Make RendPtIdentityForError use RelayIds
Since arti!1233 this is trivial.
2023-06-28 16:49:49 +01:00
Ian Jackson 4d071d1c07 tor-hsclient: Use RendPtIdentityForError in more places
For some reason this wasn't used in the actual errors,
although it *was* used in the types of the functions etc.
2023-06-28 16:47:55 +01:00
Gabriela Moldovan 609e6ce7c7 keymgr: Downgrade "TODO hs" to "TODO HSS".
These TODOs can be deferred for now: we're not declaring the keymgr APIs
stable until we add support for hidden services.
2023-06-28 16:44:06 +01:00
Ian Jackson 8908d39872 tor-netdoc: Test hsdescs inners with a variety of IPT counts (fmt) 2023-06-28 16:29:05 +01:00
Ian Jackson de63a6092d tor-netdoc: Test hsdescs inners with a variety of IPT counts 2023-06-28 16:28:19 +01:00
Ian Jackson cf4adad96e tor-netdoc: hsdesc: Disregard intro points after the MAX'th 2023-06-28 16:28:11 +01:00
Ian Jackson 0e2f804d8f tor-netdoc: Reject hsdescs with no intro points
None of the existing NetdocErrorKinds seemed right.
2023-06-28 16:27:05 +01:00
Ian Jackson c95595227a tor-hscrypto: Provide values for NUM_INTRO_POINT
These are in the spec and tor-hsclient is about to want them.
2023-06-28 14:49:49 +01:00