Commit Graph

7591 Commits

Author SHA1 Message Date
Nick Mathewson a36a0ab45b WANT_FROM_OTHER_CRATES: Remove note about async-rustls 2023-07-17 10:01:18 -04:00
gabi-250 4338080799 Merge branch 'keymgr-config-tweaks' into 'main'
tor-keymgr config updates

Closes #939

See merge request tpo/core/arti!1404
2023-07-17 10:38:58 +00:00
Gabriela Moldovan caf2ce3f6b
arti-client: Add TODO about expanding the keystore_dir in build(). 2023-07-17 11:12:37 +01:00
Alexander Færøy ce64ade742 Merge branch 'unused_import' into 'main'
Move an import to resolve a warning.

See merge request tpo/core/arti!1407
2023-07-14 13:35:27 +00:00
Alexander Færøy 63a3bbc33c Merge branch 'bug638' into 'main'
Stop unconditionally marking bridges as having dir info.

Closes #638

See merge request tpo/core/arti!1408
2023-07-14 13:35:04 +00:00
Alexander Færøy ae30658118 Merge branch 'uniq_bridge_addr' into 'main'
Bridges: deduplicate addresses.

See merge request tpo/core/arti!1409
2023-07-14 13:34:18 +00:00
Nick Mathewson b8334292fb Bridges: deduplicate addresses.
Currently we list an address for a bridge twice if it is listed both
in the bridge line and the bridge descriptor. That can't be right.
2023-07-13 16:58:12 -04:00
Nick Mathewson 3f2d4f8cec Better report for any recurrence of bug #638. 2023-07-13 15:43:57 -04:00
Nick Mathewson 7a915f5454 Stop unconditionally marking bridges as having dir info.
When we implemented bridges, we added code in 08473872ab to
conditionally mark their directory info as present or not present.
But the we didn't remove the old code to mark them present
unconditionally!

Fixes #638.
2023-07-13 15:43:42 -04:00
eta 71c148868b Merge branch 'geoip-netdir' into 'main'
Add country codes to relays inside a NetDir

See merge request tpo/core/arti!1364
2023-07-13 17:23:12 +00:00
eta 41bb03c6cc Add country codes to relays inside a NetDir
- When the `geoip` feature flag of `tor-netdir` is enabled, perform
  GeoIP lookups for all relays added to the directory and add the
  resulting country code to the `Relay` struct.
  - The GeoIP database is provided in a new
    `PartialNetDir::new_with_geoip` constructor.
- A new trait was also added to `tor-linkspec`, `HasCountryCode`, to
  enable getting this data out from other crates.

Part of onionmasq#47.
2023-07-13 17:47:00 +01:00
Nick Mathewson ce8848f348 Move an import to resolve a warning. 2023-07-13 12:33:01 -04:00
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
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