gabi-250
34eb5783e4
Merge branch 'make_factory_usable_v2' into 'main'
...
Second attempt to make a way to use ChannelFactory.
See merge request tpo/core/arti!1406
2023-07-13 16:26:32 +00:00
gabi-250
b53d42f23e
geoip: Use from_raw_parts instead of transmute.
2023-07-13 11:53:41 -04:00
Nick Mathewson
157d134a65
Explain better why you would use build_unmanaged_channel
2023-07-13 11:51:12 -04:00
gabi-250
56d96e4253
Resolve numerous typos in `ChanMgr::build_unmanaged_channel` code
2023-07-13 15:47:05 +00:00
Nick Mathewson
6b61eec987
chanmgr: Remove now-unused (and never usable) builder() method.
2023-07-13 09:33:06 -04:00
Nick Mathewson
ed455023c2
chanmgr: Document makeup and timeout behavior of our factories
...
Basically, it's all ChanBuilder at some point, and ChanBuilder
has a timeout.
2023-07-13 09:33:06 -04:00
Nick Mathewson
7a38d68528
chanmgr: Add an experimental build_unmanaged_channel() method.
...
This method will let the user construct a channel that isn't
stored or monitored by the ChanMgr.
2023-07-13 09:31:57 -04:00
Gabriela Moldovan
99b73cb22a
arti-client: Log whether a keystore is in use.
2023-07-13 12:30:10 +01:00
Gabriela Moldovan
5b97b0b2ce
tor-config: Remove unused ItemOrBool helper.
...
`ItemOrBool` is currently not used anywhere (it was previously used by
the keymgr config).
2023-07-13 12:30:07 +01:00
Gabriela Moldovan
d5339772f1
arti cfg tests: Add keystore to example config.
...
Closes #939
2023-07-13 12:30:04 +01:00
Gabriela Moldovan
f609ae2661
arti config: Remove extraneous whitespace.
2023-07-13 12:30:01 +01:00
Gabriela Moldovan
0260405603
arti-client: Use the config struct from tor-keymgr.
2023-07-13 12:29:57 +01:00
Gabriela Moldovan
d8299e8d2f
tor-keymgr: Add ArtiNativeKeystoreConfig.
...
Previously, the keystore config consisted of a single field in
`StorageConfig`, which encoded 2 bits of information: whether the
keystore is enabled, and its root directory:
```
[storage]
# use this path, fail if compiled out
# keystore = "/path/to/arti/keystore"
#
# use default path, fail if compiled out
# keystore = true
#
# disable
# keystore = false
```
This commit adds `ArtiNativeKeystoreConfig`, which will replace the
multi-purpose `keystore` field. The new config will look like this:
```
#[storage.keystore]
# Whether the keystore is enabled.
#
# If the `keymgr` feature is enabled and this option is:
# * set to false, we will ignore the configured keystore path.
# * set to "auto", the configured keystore, or the default keystore, if the
# keystore path is not specified, will be used
# * set to true, the configured keystore, or the default keystore, if the
# keystore path is not specified, will be used
#
# If the `keymgr` feature is disabled and this option is:
# * set to false, we will ignore the configured keystore path.
# * set to "auto", we will ignore the configured keystore path.
#
# Setting this option to true when the `keymgr` feature is disabled is a
# configuration error.
#enabled = "auto"
# The root directory of the arti keystore
#path = "${ARTI_LOCAL_DATA}/keystore"
```
While `ArtiNativeKeystoreConfig` currently only has 2 fields, `enabled`
and `path`, future versions of the keystore might require additional
config options.
2023-07-13 12:13:59 +01:00
gabi-250
42115116e4
Merge branch 'keymgr-integration-test' into 'main'
...
CI: Add client auth integration test.
Closes #954
See merge request tpo/core/arti!1399
2023-07-12 16:35:43 +00:00
Gabriela Moldovan
d684073a31
CI: Reduce the success threshold for the HS client integration tests.
...
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1399#note_2921505
2023-07-12 17:11:56 +01:00
Gabriela Moldovan
24501fdf0e
CI: Add client auth integration test.
2023-07-12 16:36:11 +01:00
Alexander Færøy
89a3d43aa6
Merge branch 'feat' into 'main'
...
"Fix" CI complaints about "Conversation"
See merge request tpo/core/arti!1402
2023-07-12 15:34:45 +00:00
Gabriela Moldovan
00b7d86e52
CI: Remove extraneous whitespace.
2023-07-12 16:30:10 +01:00
Gabriela Moldovan
c942f02dea
arti-client: Log whether the client auth keys were retrieved.
2023-07-12 16:30:06 +01:00
Nick Mathewson
a3604e7e81
Merge branch 'channel-experimental-api' into 'main'
...
Gate builder() behind experimental-api feature
See merge request tpo/core/arti!1403
2023-07-12 15:09:34 +00:00
Saksham Mittal
7933a93d3a
Gate builder() behind experimental-api feature
2023-07-12 20:14:12 +05:30
Ian Jackson
0251e99680
tor-proto: Add a suppression to "fix" the CI
...
This is failing in CI. I have no idea what the rules are and AFAICT
no-one is alleging that there is an actual bug in the attributes.
Empirically this suppression causes the script to pass.
2023-07-12 15:32:27 +01:00
Ian Jackson
f6d5cae574
tor-circmgr: Add two possibly-needed docsrs annotations
...
I don't know if these are needed because the rules are not documented
afaict. But it seems like probably they ought to be there?
2023-07-12 15:32:26 +01:00
Ian Jackson
1fa692d63d
tor-proto: Conversation: drop two otiose cfg(feature)
...
These fns are in a feature-gated impls on feature-gated structs.
2023-07-12 15:31:30 +01:00
Nick Mathewson
1737832164
Merge branch 'channelfactory' into 'main'
...
Expose channel builder in order to create channels more efficiently in external code
See merge request tpo/core/arti!1374
2023-07-12 13:40:54 +00:00
gabi-250
484e2b0bbc
Merge branch 'ci-full-build' into 'main'
...
CI: Add a job for building arti with additional features.
See merge request tpo/core/arti!1401
2023-07-12 10:15:07 +00:00
Gabriela Moldovan
0de2ee756e
CI: Remove unnecessary --feature flag.
...
`onion-service-client` is now a default feature, so we don't need to
explicitly enable it anymore.
2023-07-12 10:51:25 +01:00
Nick Mathewson
a2c935f292
Merge branch 'remove-outdated-todo' into 'main'
...
arti-client: Remove outdated TODO.
See merge request tpo/core/arti!1400
2023-07-12 00:48:19 +00:00
Gabriela Moldovan
d9e4ca9ecb
CI: Add a job for building arti with additional features.
...
This is needed for testing `experimental-api` features (such as the
keymgr) in shadow and chutney.
Prompted by this discussion: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1399#note_2921294
2023-07-11 20:45:27 +01:00
Gabriela Moldovan
674fc9d7dc
arti-client: Remove outdated TODO.
...
These errors aren't ignored anymore.
2023-07-11 16:49:44 +01:00
Nick Mathewson
bcf574cef5
Merge branch 'explain_952_fix' into 'main'
...
Explain the code for the #952 fix.
See merge request tpo/core/arti!1391
2023-07-11 09:53:09 +00:00
Ian Jackson
3acc2af4f3
Merge branch 'clippy-allow' into 'main'
...
clippy: Allow some of our existing code patterns
See merge request tpo/core/arti!1396
2023-07-11 09:37:42 +00:00
Nick Mathewson
e265f65fec
Merge branch 'fix-chutney-ci' into 'main'
...
fix chutney in CI
See merge request tpo/core/arti!1393
2023-07-10 23:58:13 +00:00
trinity-1686a
4fc779faa2
make chutney setup script more portable
2023-07-10 18:46:14 +02:00
Ian Jackson
db99117b9a
Merge branch 'range' into 'main'
...
Forbid use of panicky Rng::gen_range
Closes #920
See merge request tpo/core/arti!1387
2023-07-10 15:28:54 +00:00
Ian Jackson
24bec4552b
rng docs: Fix two links
2023-07-10 16:08:03 +01:00
Ian Jackson
a0a17e4074
rng ranges: Provide examples (doctests)
2023-07-10 16:08:03 +01:00
Ian Jackson
d1ed505b61
rng ranges: Forbid use of panicky Rng::gen_range
...
Fixes #920
2023-07-10 16:08:03 +01:00
Ian Jackson
b151237a7f
rng ranges: Use gen_range_infallible() for Duration::ZERO..=T
2023-07-10 16:08:03 +01:00
Ian Jackson
09f0ecaa71
rng ranges: Introduce gen_range_infallible
...
There are a number of places where we generate random Durations
in a range which starts at zero.
These call sites currently (i) have to write out Duration::ZERO
or equivalent, and (ii) would have to use gen_range_checked and expect
the result, even though it can be statically proven to be OK.
To make this slightly smoother, provide `GenRangeInfallible` and
`gen_range_infallible`.
2023-07-10 16:07:18 +01:00
Ian Jackson
8ae759ef95
rng ranges: Use gen_range_checked().unwrap() in test case
...
Ideally we would be allowed to use vanilla gen_range() here, but there
doesn't seem to be a way to allow a specific clippy-forbidden method
using #[allow] and we probably don't want to make a blanket allow.
2023-07-10 16:07:18 +01:00
Ian Jackson
332285015f
rng ranges: Use gen_range_checked().expect() in obvious cases (fmt)
2023-07-10 16:07:18 +01:00
Ian Jackson
5e10805ede
rng ranges: Use gen_range_checked().expect() in obvious cases
...
In each of these, it is locally obvious that the range is nonempty.
2023-07-10 16:07:18 +01:00
Ian Jackson
36f998b690
tor-basic-utils: retry: Use and justify gen_range_checked
...
delay_bounds's implementation ensures the postcondition, so the
potential p[anic in next_delay_msec cannot happen.
2023-07-10 16:07:18 +01:00
Ian Jackson
58da20b708
rng ranges: Introduce RngExt and gen_range_checked
...
We will use this in many places instead of gen_range.
2023-07-10 16:07:18 +01:00
gabi-250
1510cf42b7
Merge branch 'keymgr-erased-key' into 'main'
...
keymgr: Use Box<dyn EncodableKey> instead of Box<dyn Any>.
Closes #937
See merge request tpo/core/arti!1398
2023-07-10 15:06:34 +00:00
gabi-250
47f7e8a6dd
Merge branch 's101-q2' into 'main'
...
Update s101 stats.
See merge request tpo/core/arti!1397
2023-07-10 14:41:02 +00:00
Gabriela Moldovan
bd4955f9ed
keymgr: Add semver.md.
2023-07-10 15:38:58 +01:00
Gabriela Moldovan
9cde64c2c8
keymgr: Use Box<dyn EncodableKey> instead of Box<dyn Any>.
...
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1337#note_2917701
This will make it harder to accidentally return the wrong value from
`Keystore::get` (the returned value is now at least guaranteed to
implement `EncodableKey`).
Closes #937
2023-07-10 14:41:30 +01:00
Alexander Færøy
6be6352b98
Merge branch 'conversation' into 'main'
...
Overhaul send_control_message
See merge request tpo/core/arti!1367
2023-07-10 13:14:11 +00:00