Commit Graph

4767 Commits

Author SHA1 Message Date
Gabriela Moldovan 541e56fce4 arti-client: Fix clippy lint. 2023-06-29 19:30:48 +01:00
Gabriela Moldovan 28fae4d1fd arti-client: Make keystore_dir an experimental option. 2023-06-29 19:19:51 +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
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 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