summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | tor-hsclient: Completely hide hsdir identities in errorsIan Jackson2023-06-282-7/+6
| |/ / /
* | | | art cfg tests: Fix garbled doc wordinggabi-2502023-06-281-2/+2
| | | |
* | | | arti cfg tests: Fix doc commentgabi-2502023-06-281-1/+1
| | | |
* | | | arti cfg tests: Overhaul exception handling (fmt)Ian Jackson2023-06-281-36/+32
| | | |
* | | | arti cfg tests: Overhaul exception handlingIan Jackson2023-06-282-92/+325
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | | |
* | | | 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-277-22/+21
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 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-277-22/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ========================= 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]>
* | | | Add Channel expiry info in ChanMgr docsSaksham Mittal2023-06-271-0/+7
|/ / /
* | | 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.
* | | Merge branch 'send_sync_torclientbuilder' into 'main'gabi-2502023-06-261-1/+15
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | arti-client: Mark DirProviderBuilder Send+Sync; Closes #924 See merge request tpo/core/arti!1307
| * | | Also require that TorClientBuilder be Sync.Nick Mathewson2023-06-261-2/+2
| | | |
| * | | arti-client: Mark DirProviderBuilder Send+Sync;Nick Mathewson2023-06-261-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Doing this causes TorClientBuilder to become Send. I also add a test to ensure that TorClientBuilder remains Send in the future. This isn't a semver break, but only because DirProviderBuilder is marked with `experimental-api`. Closes #924
* | | | Merge branch 'netdoc-todos-again' into 'main'Nick Mathewson2023-06-266-43/+100
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | netdoc: Resolve nearly all remaining TODO HS items. See merge request tpo/core/arti!1304
| * | | | netdoc: remove final TODO HSNick Mathewson2023-06-261-1/+0
| | | | | | | | | | | | | | | | | | | | Although this Errorkind is not perfect, it is good enough.