aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-netdoc/src
Commit message (Collapse)AuthorAgeFilesLines
...
* First pass at implementing onion proof-of-work clientWesley Aptekar-Cassels2024-10-092-2/+2
| | | | | | | | This adds a module to tor-hspow for version-independent client logic. The entire module and its invocations are disabled unless the new "hs-pow" compile time feature is set. Co-authored-by: Micah Elizabeth Scott <[email protected]>
* tor-netdoc: Add parsing support for pow-params.Wesley Aptekar-Cassels2024-10-093-0/+120
| | | | | | | | This implements support for extensible proof-of-work parameters. Right now only a single type is defined, but in theory we can see up to one line per type on an onion service. Co-authored-by: Micah Elizabeth Scott <[email protected]>
* tor-netdoc: Wrap some too-long comments and docs.Gabriela Moldovan2024-10-033-4/+7
|
* tor-netdoc: Use the new "restricted discovery" terminology.Gabriela Moldovan2024-10-035-22/+22
| | | | Part of #1476
* Upgrade to derive_more version 1.0.0Nick Mathewson2024-09-252-35/+35
| | | | | | The `derive_more` crate broke backward compatibility with this version, so this change involved quite a few manual fixups. With luck, they'll keep compatibility for some while in the future.
* tor-circmgr: Remove AbstractSpec and FakeSpec.Wesley Aptekar-Cassels2024-09-161-0/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AbstractSpec and FakeSpec actually make testing more difficult, since they prevent using FakeBuilder in code that relies on the concrete TargetCircUsage and SupportedCircUsage types. Removing them means FakeBuilder can be used in more places, and also means that the test code is closer to the real code, since TargetCircUsage and SupportedCircUsage are now exercised directly in more tests. This did require making one change to a test, which I think was previously testing behaviour that was true for FakeSpec but not for the real code: The mgr::test::isolated test previously asserted that, in the case where three circuits were requested, two with isolation and one without, the non-isolated circuit would be shared with one of the isolated circuits. This was allowed by the FakeSpec::supports function. However, in the actual code, the path is as follows: * AbstractCircMgr::get_or_launch * AbstractCircMgr::prepare_action * CircList::find_open * AbstractSpec::find_supported * abstract_spec_find_supported * OpenEntry::supports * SupportedCircUsage::supports * StreamIsolation::compatible_same_type StreamIsolation::compatible_same_type checks owner_type, which is always zero for non-isolated streams and always non-zero for isolated streams, meaning that a isolated stream will never be compatible with a non-isolated stream. The seems like desirable behaviour, so I simply modified the test to make four connections, two isolated and two not, and checked that the isolated streams never share any circuits, and that the two non-isolated streams use the same circuit. As far as I can tell, this is the intended behaviour in the existing code.
* tor-netdoc: impl `Extend` on `NetParams`Steven Engler2024-09-031-0/+6
|
* Resolve unreachable_patterns warnings from nightly.Nick Mathewson2024-08-131-12/+5
| | | | | | | | | | | | | | Nightly rust doesn't like it when you have a `match` arm that can never be reached because of an uninhabited type. As such, we can't say stuff like: ``` let x: Option<Void> = ...; match x { Some(_) => unreachable!(), None => ... } ```
* Fix "clippy::manual-pattern-char-comparison" warning on nightlyNick Mathewson2024-07-282-2/+2
| | | | | | | This warning suggests using `[a,b]` as a Pattern when it sees a search for `|ch| ch == a || ch == b`. (All of our supported rust versions allow this kind of Pattern.)
* Merge branch 'expose-annotated' into 'main'Nick Mathewson2024-07-221-0/+15
|\ | | | | | | | | | | | | tor-netdoc: Dangerously expose annotation fields Closes #1469 See merge request tpo/core/arti!2213
| * tor-netdoc: Dangerously expose annotation fieldsClara Engler2024-06-211-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | This commit exposes the fields of `routerdesc::AnnotatedRouterDesc` and `routerdesc::RouterAnnotation` with the enabled feature `dangerous-expose-struct-fields`. On one side, it achieves a greater consistency among the other structures found within this module; On the other side it makes the already public API (assuming the feature above is enabled) useable. Fixes #1469
* | Fix clippy::doc_lazy_continuationIan Jackson2024-07-081-3/+4
| |
* | Make TAP keys optional when parsing documents.Nick Mathewson2024-06-272-27/+63
|/ | | | | This is the client-side part of phase 1 for proposal 350, which will eventually remove TAP completely from the Tor network.
* Add exception for cfg(fuzzing) in tor-netdocNick Mathewson2024-05-071-1/+2
| | | | | The use of cfg(fuzzing) here is reasonable and localized, but we need to permit it to avoid a warning from #1395.
* Re-run maint/add_warning.Nick Mathewson2024-05-061-2/+2
| | | | This commit is automatically generated.
* Switch to derive-deftlyIan Jackson2024-04-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the combination of a number of separate commits, many of which were generated by seddery, and then rebased and squashed. Cargo.toml perl -i~ -pe 's{^derive-adhoc}{derive-deftly = "0.10"}' crates/*/Cargo.toml (not regenerated during rebase) update Cargo.lock `cargo fetch` without --locked (regenerated during rebase) seddery git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{^use derive_adhoc}{use derive_deftly}' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bdefine_derive_adhoc\b}{define_derive_deftly}g' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bAdhoc\b}{Deftly}g if m{derive}' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\#\[derive_adhoc\b}{#[derive_deftly}g' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{use derive_adhoc}{use derive_deftly}' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bderive_adhoc\b}{derive_deftly_adhoc} if m{use.*deftly}' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bderive_adhoc!}{derive_deftly_adhoc!}' (not regenerated during rebase) Manually add `#[derive_deftly_adhoc]` where needed. seddery git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\#\[adhoc\b}{#[deftly}g' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bderive_adhoc_template}{derive_deftly_template}' (not regenerated during rebase) Manually fix up an import Manually update some builder attrs Manually fix up tor_rtmock::time_core This was missed in my seddery, due to me rebasing the branch and not redoing the seddery.
* Run maint/add_warning.Nick Mathewson2024-03-1328-0/+28
|
* Add a clear_flags function to RouterStatusBuilderNick Mathewson2024-03-121-0/+6
| | | | (For testing.)
* Fix typos in doc commentsTobias Stoeckmann2024-03-061-1/+1
|
* Fix typos in commentsTobias Stoeckmann2024-03-061-1/+1
|
* deny clippy::unchecked_duration_subtractiontrinity-1686a2024-02-291-0/+1
|
* Upgrade to latest signature.Gabriela Moldovan2024-02-281-2/+0
|
* Merge branch 'enc_key_cert_signbit' into 'main'Nick Mathewson2024-01-172-6/+14
|\ | | | | | | | | | | | | hsdesc: Document why enc_key_cert signbit is always zero. Closes #1221 See merge request tpo/core/arti!1888
| * hsdesc: Document why enc_key_cert signbit is always zero.Nick Mathewson2024-01-162-6/+14
| | | | | | | | | | | | Closes #1221. See torspec!240 for a corresponding spec change.
* | RouterStatus: Add test functions for Fast and Stable flags.Nick Mathewson2024-01-161-0/+8
|/ | | | | (We don't need Fast right now, but we will certainly need it down the line.)
* tor-netdoc: Turn a TODO HSS into #1221.Gabriela Moldovan2024-01-111-1/+2
|
* tor-netdoc: Downgrade some TODO HSS to TODO.Gabriela Moldovan2024-01-112-2/+2
|
* clippy: Replace many calls to .get(0) with .first()Ian Jackson2024-01-021-1/+1
| | | | | FTR I don't think agree with clippy on this question, but then I often don't.
* tor-netdoc: Make HsDescBuilder::auth_clients take an Option.Gabriela Moldovan2023-12-141-11/+18
| | | | Closes #1019
* netdoc: Remove an "unknown_lints" exception.Nick Mathewson2023-11-301-1/+0
|
* netdoc: refactor to use a let-else.Nick Mathewson2023-11-301-4/+1
|
* llcrypto: Hide the members of ExpandedKeypair.Nick Mathewson2023-11-291-3/+3
| | | | | With this change, we no longer expose the ExpandedSecretKey unescorted, which makes it harder to misuse the API.
* llcrypto: Remove redundant re-exports in keymanip.Nick Mathewson2023-11-292-3/+2
| | | | (These types were all already re-exported from pk::ed25519.)
* Remove RngCompatExt.Nick Mathewson2023-11-294-15/+8
| | | | | | | | | | This code was needed with the old version of dalek-cryptography, which wasn't compatible with up-to-date versions of the `rand` crate(s). But now that we've upgraded, we can drop this. (We could have left it around and deprecated it, but we are already making a breaking change to tor-llcrypto by upgrading dalek-cryptography.)
* Convert to the latest versions of dalek-cryptographyNick Mathewson2023-11-294-15/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main changes that we have to adjust for are as follows: * In x25519-dalek: * `StaticSecret` is now behind a feature. * `StaticSecret::new` is deprecated in favor of `StaticSecret::random_from_rng`. * StaticSecret no longer does its own clamping. * In ed25519-dalek: * `SecretKey` has (in effect) been renamed to `SigningKey`. The name `SecretKey` is now an alias for `[u8; 32]`. * `SigningKey` is effectively a keypair, since it contains a public key as well. * `PublicKey` has been renamed to `VerifyingKey`. * The functions to extract a signing key and verifying key have been renamed as you might expect. * `ExpandedSecretKey` has been moved to `hasmat` and no longer implements `sign`. * `ExpanededSecretKey` now has as its elements a scalar and a hash prefix. * Various functions that took `&[u8]` now take `&[u8; N]`. * We no longer need a wrapper for older versions of rand. There is a single test in tor-keymgr that does not pass. I've marked it as ignore for now, in hopes that @gabi-250 can help me figure it out. This closes #808. There are several changes I want to make before we merge, however. They are marked with TODO DALEK.
* tor-netdoc: Use the new HandshakeType enum to represent CREATE2 HTYPEs (fmt).Gabriela Moldovan2023-10-301-17/+21
|
* tor-netdoc: Use the new HandshakeType enum to represent CREATE2 HTYPEs.Gabriela Moldovan2023-10-302-15/+16
| | | | | | | | | | | Representing the supported HTYPEs as `HandshakeType`s instead of `u32`s makes it more difficult to pass in wrong/invalid values to `HsDescBuilder::create2_formats`. This also fixes a descriptor publisher bug spotted by @jnewsome, where the advertised CREATE2 HTYPEs included HTYPE `1`, which is actually supposed to be a reserved value. The publisher now only advertises the `NTOR` HTYPE (just like C Tor).
* Remove a broken rustdoc link and fix a typo.Nick Mathewson2023-10-271-3/+0
|
* tor-cert, tor-netdoc: Use EncodedEd25519Cert instead of Vec<u8>.Gabriela Moldovan2023-10-253-11/+8
|
* tor-netdoc: Change return type of create_desc_sign_key_cert.Gabriela Moldovan2023-10-251-6/+3
| | | | | | `Bug` wasn't necessarily the right error type here. Plus, with the new error type adding new errors (i.e. `CertEncodeError` variants), is not a breaking change.
* tor-netdoc: Building a descriptor now only requires the public part of ↵Gabriela Moldovan2023-10-251-8/+10
| | | | blinded_id.
* tor-netdoc: Remove now-unused blinded_id field.Gabriela Moldovan2023-10-252-7/+0
|
* tor-netdoc: Update HsDesc, HsDescOuter to accept the hs_desc_sign cert as an ↵Gabriela Moldovan2023-10-252-21/+32
| | | | | | | | | | argument. This will enable us to (eventually) the load the descriptor signing key cert from the keystore (as opposed to always recomputing it when building the `HsDesc`). Part of #1048
* tor-netdoc: Add helper function for computing the descriptor signing key cert.Gabriela Moldovan2023-10-253-15/+34
|
* tor-dirclient, tor-netdoc: Add TODO SPECs.Gabriela Moldovan2023-10-241-0/+3
|
* tor-netdoc: Use an unpadded base64 encoding for the signature.Gabriela Moldovan2023-10-241-3/+3
| | | | This is what the C Tor HsDirs want.
* Fix unresolved reference in documentationhalcyon2023-10-231-1/+2
|
* Remove deprecated ItemArgument impl for SystemTimehalcyon2023-10-231-27/+1
|
* Cleanup fmt_with doc comment after merge discussionhalcyon2023-10-231-2/+4
|
* Remove todo, std::fmt::Error doesnt allow for information transitionhalcyon2023-10-221-2/+0
|