aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | 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
| * | | llcrypto: Add missing docs for hsv3-service feature flag.Gabriela Moldovan2023-06-271-0/+3
| | | |
* | | | Merge branch 'fix-keymgr-error-impl' into 'main'gabi-2502023-06-271-2/+40
|\ \ \ \ | |/ / / |/| | | | | | | | | | | keymgr: Fix infinite recursion in Error impl. See merge request tpo/core/arti!1319
| * | | keymgr: Add regression test for tor_keymgr::Error recursion bug.Gabriela Moldovan2023-06-271-0/+39
| | | |
| * | | keymgr: Fix infinite recursion in Error impl.Gabriela Moldovan2023-06-271-2/+1
|/ / / | | | | | | | | | | | | The `source` impl `tor_keymgr::Error` was just calling itself recursively.
* | | Merge branch 'revert_to_x25519_pre1' into 'main'Nick Mathewson2023-06-278-72/+28
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Back down x25519-dalek to 2.0.0-pre.1 from 2.0.0-rc.2 Closes #926 See merge request tpo/core/arti!1317
| * | | Back down x25519-dalek to 2.0.0-pre.1 from 2.0.0-rc.2pinkforest2023-06-278-72/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ========================= Notes from nickm: (This differs from pinkforest's original MR: It removes the Cargo.lock changes and the version bump on tor-llcrypto.) Minimal Cargo.lock changes from downgrade. (These are exactly those changes generated by running "build" and "test".) There are several reasons to do this: * It's best to bump all of our dalek dependencies at once to rc.3 or later, rather than the piecemeal approach we've been stuck with so far. * We don't want to do this bump right now, since there are some tricky questions about clamping we need to figure out (see #808), and we need to make sure we get them right, and we're in a distracted this week. * We _do_ need to move away from 2.0.0-rc.2 right now, since it was causing a failure in `cargo install arti`, and then it got yanked. Thanks to pinkforest for helping us out here and explaining all of this! Fixes #926. Commit-edited-by: Nick Mathewson <[email protected]>
* | | | Merge branch 'chanmgr-doc' into 'main'Nick Mathewson2023-06-271-0/+7
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Add Channel expiry info in ChanMgr docs See merge request tpo/core/arti!1316
| * | | Add Channel expiry info in ChanMgr docsSaksham Mittal2023-06-271-0/+7
|/ / /
* | | Merge branch 'race' into 'main'gabi-2502023-06-261-6/+36
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-hsclient: Fix test race Closes #923 See merge request tpo/core/arti!1308
| * | | tor-hsclient: Increase some timeoutsIan Jackson2023-06-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Fix a use of 10ms that should have been TIMEOUT_SLOP. 2. Increase BODGE_YIELD by a factor of 5. Now this test should tolerate being hung up for 125ms. I am hoping that this will fix the CI failure https://gitlab.torproject.org/Diziet/arti/-/jobs/302457 which fails at the line comparing circuit1 with circuit2a. (I can't repro that locally.)
| * | | tor-hsclient: test: Introduce some constants for timingsIan Jackson2023-06-261-5/+16
| | | |
| * | | tor-hsclient: test: Add another sleep for expiry task *start*Ian Jackson2023-06-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this, the expiry task can end up choosing a 600s timeout starting *after we advanced the clock*. Fixes #923
| * | | tor-hsclient: impl Debug by hand for MockCircIan Jackson2023-06-261-1/+18
|/ / / | | | | | | | | | | | | | | | | | | | | | The provided impl for Mutex is hopeless: it prints just some internal flags and doesn't acquire the mutex for printing purposes. At some point we might want to factor this out as a general function on `Arc<Mutex<...>>` but not now.