summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Merge branch 'config' into 'main'Ian Jackson2023-06-2813-40/+206
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | tor-hsclient: Add configuration settings See merge request tpo/core/arti!1305
| * | | | HS timeout parameters: Restore some TODOsIan Jackson2023-06-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conceptually this is a fixup to HS configuration: Add retry parameters to configuration which erroneously removed these comments - they were intended to apply to *all* these parameters, not just the max attempts. Not marking it as fixup! because that would involve merge conflicts.
| * | | | HS configuration: Use configured maximum attempts - commentIan Jackson2023-06-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explain why this fallback to MAX is good. Discussion https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1305#note_2915927
| * | | | HS configuration: Use configured maximum attempts (fmt)Ian Jackson2023-06-281-4/+12
| | | | |
| * | | | HS configuration: Use configured maximum attemptsIan Jackson2023-06-281-10/+9
| | | | |
| * | | | HS configuration: Plumb configuration through (fmt)Ian Jackson2023-06-283-11/+29
| | | | | | | | | | | | | | | | | | | | Apply deferred rustfmt churn.
| * | | | HS configuration: Plumb configuration through (clippy)Ian Jackson2023-06-282-5/+5
| | | | | | | | | | | | | | | | | | | | Apply deferred clippy churn.
| * | | | HS configuration: Plumb configuration throughIan Jackson2023-06-286-8/+68
| | | | | | | | | | | | | | | | | | | | | | | | | Invent a trait a la circmgr config for the hs client connector config. Plumb a suitable value all the way through to the code that will use it.
| * | | | HS configuration: Add retry parameters to configurationIan Jackson2023-06-286-4/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I think these should go in `[circuit_timing]`. That section already has some retry parameters, so is not strictly *timing*. This is not honoured yet.
| * | | | HS configuration: Add and honour `allow_onion_addrs` in configurationIan Jackson2023-06-285-10/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We put this in `[address_filter]`. The interaction with the corresponding stream preference is a bit complicated. We must turn the stream pref into a `BoolOrAuto`.
* | | | | Merge branch 'dirclient-semver-entry' into 'main'Nick Mathewson2023-06-281-0/+1
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | Missing semver entry for new dirclient API from !1323 See merge request tpo/core/arti!1327
| * | | | Missing semver entry for new dirclient API from !1323Nick Mathewson2023-06-281-0/+1
| |/ / /
* | | | Merge branch 'hsdir-identity' into 'main'Nick Mathewson2023-06-282-7/+6
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | tor-hsclient: Completely hide hsdir identities in errors See merge request tpo/core/arti!1326
| * | | | tor-hsclient: Completely hide hsdir identities in errorsIan Jackson2023-06-282-7/+6
| |/ / /
* | | | Merge branch 'config2' into 'main'Ian Jackson2023-06-286-310/+564
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Overhaul art's config tests See merge request tpo/core/arti!1320
| * | | art cfg tests: Fix garbled doc wordinggabi-2502023-06-281-2/+2
| | | |
| * | | arti cfg tests: Fix doc commentgabi-2502023-06-281-1/+1
| | | |
| * | | CI: run a normal all-features-testIan Jackson2023-06-281-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I think we do actually do this as part of the coverage job, but that's not really very clear (and getting the report in that job may be annoying). We also do it on nightly as part of the nightly test, but that's an "allow_fail".
| * | | arti cfg tests: Overhaul exception handling (fmt)Ian Jackson2023-06-281-36/+32
| | | |
| * | | arti cfg tests: Overhaul exception handlingIan Jackson2023-06-283-92/+326
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was super confusing and fragile. Amongst the problems: * Information about exceptional config keys was spread across a number of places, manipulated in ad-hoc ways (conditional Vec appends, etc). * As a consequence, each exceptional table has confusing and unclear semantics. * It doesn't deal well with the way that cargo sometimes enables features for dependency crates even if arti itself wouldn't demand them; this can lead to sub-crates supporting config keys when the tests in arti don't expect them to, causing spurious test failures. Fix this: * Introduce a new, systematic, way of writing information about configuration keys that need some kind of special handling. * Use this new approach in *both* sets of "thorough" config tests. * Be more relaxed about deprecated keys. We don't want to tightly couple this to absence in the supported file, I think. * Understand more clearly the concept of keys of which we don't know, in the current build config, whether the code is expected to accept them. I have tested this locally with: for p in '-p arti' '--workspace'; do for f in '--no-default-features --features=tokio,native-tls' '--all-features' ''; do nailing-cargo test $p $f; done; done
| * | | arti cfg tests: Remove a comment relating to work already doneIan Jackson2023-06-281-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | We *do* have a thing that works like this. It's fragile and confusing and that's what I'm about to fix.
| * | | arti cfg tests: Code motionIan Jackson2023-06-281-206/+214
| | | | | | | | | | | | | | | | | | | | Bring the exciting tests together, and move some more normal tests out of the middle.
| * | | geoip: conditionalise a testIan Jackson2023-06-281-0/+1
| | | | | | | | | | | | | | | | | | | | Without this, the build fails with cargo test --workspace --no-default-features --features=tokio,native-tls
| * | | Conditionalise an importIan Jackson2023-06-281-0/+1
| | | | | | | | | | | | | | | | | | | | Fixes a warning with cargo clippy --locked --offline --workspace --all-targets
| * | | Mark a builder as non-exhaustiveIan Jackson2023-06-281-0/+1
|/ / / | | | | | | | | | | | | | | | | | | If all the fields vanish, this generates a warning with cargo clippy --locked --offline --workspace --all-targets Fix that.
* | | Merge branch 'keymgr-error-kind' into 'main'gabi-2502023-06-284-4/+39
|\ \ \ | | | | | | | | | | | | | | | | keymgr: Implement ErrorKind for keymgr error types See merge request tpo/core/arti!1315
| * | | keymgr: Implement HasKind for ArtiNativeKeystoreError.Gabriela Moldovan2023-06-281-2/+7
| | | |
| * | | tor-error: Add KeystoreAccessFailed, KeystoreFsPermissions to ErrorKind.Gabriela Moldovan2023-06-282-1/+21
| | | |
| * | | keymgr: Implement HasKind for SshKeyError.Gabriela Moldovan2023-06-281-2/+1
| | | |
| * | | tor-error: Add KeystoreCorrupted to ErrorKind.Gabriela Moldovan2023-06-282-0/+11
| | | |
* | | | Merge branch 'dirclient-todos' into 'main'Alexander Færøy2023-06-283-9/+31
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Resolve remaining dirclient HS todos See merge request tpo/core/arti!1323
| * | | dirclient: use correct default max_lenNick Mathewson2023-06-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Yes, it's 50 kilobytes, not 50 kibibytes. I double-checked this with the C implementation and with param-spec.txt's documentation for `HSV3MaxDescriptorSize`.
| * | | hsclient: Use HsDescDownloadRequest::set_max_len.Nick Mathewson2023-06-271-1/+12
| | | |
| * | | dirclient: Correct an erroneous comment.Nick Mathewson2023-06-271-1/+2
| | | |
| * | | dirclient: Make maximum hsdesc length adjustable.Nick Mathewson2023-06-272-8/+12
| | | |
| * | | dirclient: Explain why hardcoding "3" is ok.Nick Mathewson2023-06-271-1/+7
| | |/ | |/|
* | | Merge branch 'ticket_914' into 'main'Nick Mathewson2023-06-282-118/+9
|\ \ \ | |/ / |/| | | | | | | | | | | | | | Remove support for receiving unauthenticated SENDMEs. Closes #914 See merge request tpo/core/arti!1283
| * | proto: Remove support for receiving unauthenticated SENDMEsNick Mathewson2023-06-262-118/+9
| | | | | | | | | | | | | | | | | | | | | We haven't generated these since Tor 0.3.5, which is no longer supported on the network. Closes #914.
* | | Merge branch 'keymanip-ed-to-curve' into 'main'gabi-2502023-06-275-7/+144
|\ \ \ | | | | | | | | | | | | | | | | llcrypto: Implement ed25519_to_curve25519_private conversion. See merge request tpo/core/arti!1297
| * | | llcrypto: Add reference to paper about keypair reuse.Gabriela Moldovan2023-06-271-0/+2
| | | |
| * | | llcrypto: Remove `# Availability` doc sections.Gabriela Moldovan2023-06-271-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes the `# Availability` section from the `convert_ed25519_to_curve25519_private` and `convert_curve25519_to_ed25519_private` docs. We don't generally have this sort of section anywhere else in the codebase (we use unstable cargo-docs features to make sure items are annotated correctly).
| * | | llcrypto: Add cvt-x25519 feature flag for exporting key conversion functions.Gabriela Moldovan2023-06-274-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | The `convert_curve25519_to_ed25519_private` and `convert_ed25519_to_curve25519_private` functions are now exported by `tor-llcrypto` if the `cvt-25519` feature is enabled.
| * | | llcrypto: Add keymgr feature to semver.mdGabriela Moldovan2023-06-271-0/+1
| | | |
| * | | llcrypto: Add `Panics`, `Availability` docs for ↵Gabriela Moldovan2023-06-271-0/+12
| | | | | | | | | | | | | | | | convert_ed25519_to_curve25519_private.
| * | | llcrypto: Fix clippy lint.Gabriela Moldovan2023-06-271-1/+1
| | | |
| * | | llcrypto: Explain what we need the ed25519->x25519 conversion for.Gabriela Moldovan2023-06-271-0/+4
| | | |
| * | | llcrypto: Document how convert_ed25519_to_curve25519_private computes the key.Gabriela Moldovan2023-06-271-0/+5
| | | |
| * | | llcrypto: Add note about bumping x25519-dalek and clamping.Gabriela Moldovan2023-06-271-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a TODO explaining how convert_ed25519_to_curve25519_private will need to be audited when we upgrade to the latest x25519-dalek. This also adds a `debug_assertions` and a test that ensures `StaticSecret::from` is clamping the input (when we bump x25519-dalek, the assertions will fail, as the latest version doesn't do clamping in StaticSecret::from).
| * | | llcrypto: Document ed25519->curve25519->ed25519 conversion behaviour.Gabriela Moldovan2023-06-271-0/+5
| | | |
| * | | llcrypto: Implement ed25519_to_curve25519_private conversion.Gabriela Moldovan2023-06-274-1/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In `ArtiNativeKeyStore`, private keys are stored in OpenSSH format. However, `ssh-key` (the crate we use for parsing OpenSSH keys) doesn't support x25519 keys. As a workaround, this type of key will stored as ed25519 and converted to x25519 upon retrieval. This commit implements the `convert_ed25519_to_curve25519_private` conversion function (needed by `ArtiNativeKeyStore` to support x25519 keys). Part of #900