summaryrefslogtreecommitdiff
path: root/crates/tor-netdoc
Commit message (Collapse)AuthorAgeFilesLines
* Patchlevel bumps for remaining changed crates.Nick Mathewson2023-02-281-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | These crates have had small code changes, but no API additions: tor-config tor-socksproto tor-cert tor-chanmgr tor-ptmgr tor-guardmgr tor-circmgr tor-dirclient tor-dirmgr arti tor-hsservice tor-congestion These crates have had API extensions: fs-mistrust tor-llcrypto tor-bytes tor-checkable tor-linkspec tor-netdoc tor-persist arti-client
* Bump tor-units version for breaking change.Nick Mathewson2023-02-281-1/+1
| | | | | | | | (The breaking change was removing `as_days()` from IntegerMinutes.) We are _not_ calling this a downstream-api breaking change, per discussion at https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1012?commit_id=bb2ab7c2a3e0994bb438188511688b5b039cae29#note_2876819
* Bump patch-versions for breaking changes in tor-hs{crypto,client}Nick Mathewson2023-02-281-1/+1
| | | | | | These are API breaks, but the crates themselves are currently 100% experimental, so there's no need to bump the minor versions according to our semver rules.
* Rename onion-* cargo features to hs-* in tor-* cratesIan Jackson2023-02-285-11/+11
| | | | Fixes #756
* Apply a missing cfg_attr(docsrs...) in netdocNick Mathewson2023-02-211-0/+1
|
* Merge branch 'unparsed_linkspec' into 'main'Ian Jackson2023-02-211-9/+2
|\ | | | | | | | | HsDesc: Use a new UnparsedLinkSpecifier to avoid leaking which linkspec types we know See merge request tpo/core/arti!1029
| * tor-netdoc: Use UnparsedLinkSpec in IntroPointDesc.Nick Mathewson2023-02-171-9/+2
| |
* | netdoc: Remove a TODO hs comment.Nick Mathewson2023-02-171-1/+0
|/ | | | | | | | | | | | | | | | It said to check whether C enforces an absence of extraneous bytes at the end of the link specifiers. It does, in `hs_desc.c:decode_link_specifiers()`, where it says: ``` if (link_specifier_list_parse(&specs, decoded, (size_t) decoded_len) < decoded_len) { goto err; } ``` The comparison with "decoded_len" checks whether all the bytes were decoded.
* Merge branch 'doc-iter' into 'main'Nick Mathewson2023-02-1712-233/+116
|\ | | | | | | | | | | | | tor-netdoc: Abolish PauseAt in favour of using itertools Closes #760 See merge request tpo/core/arti!1021
| * tor-netdoc: Fix doc comment following removal of PauseAtIan Jackson2023-02-161-3/+6
| |
| * tor-netdoc: Run rustfmt (separately from the refactoring)Ian Jackson2023-02-152-5/+3
| |
| * tor-netdoc: Abolish NetDocReader::iter and into_iterIan Jackson2023-02-151-13/+0
| | | | | | | | Nothing uses these now; the NetDocReader is simply an iterator, itself.
| * tor-netdoc: Remove many needless calls to .iter() and .into_iter()Ian Jackson2023-02-159-35/+32
| |
| * tor-netdoc: Use impl Iterator for NetdocReader in .pause_atIan Jackson2023-02-151-2/+2
| | | | | | | | This simplifies the return type!
| * tor-netdoc: impl Iterator etc. for NetdocReaderIan Jackson2023-02-151-0/+29
| | | | | | | | This will simplify things at many call sites.
| * tor-netdoc: move PeekableIterator to util.rsIan Jackson2023-02-152-24/+36
| | | | | | | | We're going to want this a bit more widely.
| * tor-netdoc: Delete now-unused PauseAt typeIan Jackson2023-02-151-149/+0
| |
| * tor-netdoc: Use itertools to implement NetDocReader::pause_atIan Jackson2023-02-151-7/+11
| | | | | | | | This is the last use of PauseAt.
| * tor-netdoc: Replace use of PauseAt::new_pred()Ian Jackson2023-02-152-9/+10
| | | | | | | | | | | | | | We can just make a new PauseAt, since it can take the inner peekable iterator by mutable reference. This seems to tidy the code up a bit too.
| * tor-netdoc: Have sectionrules.parse take I, not &mut IIan Jackson2023-02-151-2/+2
| | | | | | | | | | | | There's a blanket impl of Itertor for &mut impl Iterator, so this isn't necessary, and it prevents us passing iterators by value producing syntactic vinegar.
| * tor-netdoc: Import Peekable rather than referring to it by pathIan Jackson2023-02-151-3/+4
| | | | | | | | | | This makes things easier to read. We're about to add another site (albeit, temporarily).
* | Expire routerdescs as soon as any of their expiries expireIan Jackson2023-02-151-1/+1
|/ | | | Fixes #772
* netdoc: Add a basic fuzzer for the hsdesc layers.Nick Mathewson2023-02-142-1/+29
| | | | | | I've been running this for 5 minutes and haven't found any crashes. I'll run it for an hour or two, then add the results to the corpus repository.
* netdoc: Add a feature to expose hsdesc inner doc parsersNick Mathewson2023-02-145-1/+19
| | | | | | | We want to fuzz these parsers, but there's no currently way to get at the parsers for inner documents without going through a lot of encryption. (Coverage-guided fuzzers are powerful, but they can't find SHA3 preimages.)
* Merge branch 'doc-iter' into 'main'Nick Mathewson2023-02-136-88/+488
|\ | | | | | | | | Introduce new batching iterator and use it in two places See merge request tpo/core/arti!1016
| * batching_split_before: Whitespace error fixIan Jackson2023-02-131-1/+1
| |
| * batching_split_before: Better xref for doc hiddenIan Jackson2023-02-131-0/+7
| | | | | | | | And another UNSTABLE warning.
| * batching_split_before: Clarify API sequential restrictionIan Jackson2023-02-131-4/+4
| |
| * batching_split_before: Fix and clarify Batches/LendingIterator docIan Jackson2023-02-131-2/+4
| |
| * batching_split_before: Introduce unit token typesIan Jackson2023-02-131-4/+18
| | | | | | | | And explain why we're not using booleans.
| * batching_split_before: Expand on the remaining use of "meta-iterator"Ian Jackson2023-02-131-1/+2
| |
| * batching_split_before: Fix link to BatchesWithHeader::subsequentIan Jackson2023-02-131-1/+1
| |
| * batching_split_before: Provide description for BatchesWithHeaderIan Jackson2023-02-131-0/+10
| |
| * batching_split_before: Document generics on our non-private typesIan Jackson2023-02-131-0/+9
| |
| * batching_split_before: Rename "prefix" to "header"Ian Jackson2023-02-132-24/+24
| | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1016#note_2877759 "_prefixed" becomes "_with_header". That mirrors the returned struct which is nice.
| * batching_split_before: Rename "start" to "batch-starting"Ian Jackson2023-02-131-27/+27
| | | | | | | | | | Roughly as per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1016#note_2877822
| * batching_split_before: Remove false assertions about batch contentsIan Jackson2023-02-131-4/+0
| |
| * batching_split_before: Clarify heading of BatchesWithPrefixIan Jackson2023-02-131-1/+1
| |
| * batching_split_before: docs improvements.Nick Mathewson2023-02-131-4/+8
| |
| * tor-netdoc: Use batching iterator in authcert.rsIan Jackson2023-02-102-62/+16
| | | | | | | | | | This gets rid of a lot of manual boolean state variable iterator stuff.
| * tor-netdoc: Use batching_split_before in HsDescInnerIan Jackson2023-02-101-25/+10
| |
| * tor-netdoc: Provide new batching_split_beforeIan Jackson2023-02-103-0/+402
| | | | | | | | | | | | | | | | | | | | | | | | There will be two call sites to demonstrate it. Eventually maybe this will want to be in tor-basic-utils, since it doesn't depend on any of the tor-netdoc types. But it would be sensible to wait until the situation with PeekableIterator and Itertools is improved. For now we make this #[doc(hidden)] to avoid it becoming part of our stable API.
| * tor-netdoc: Provide NetDocReader::into_iterIan Jackson2023-02-101-0/+7
| | | | | | | | | | This will avoids some hairy borrowck disasters when we try to use iterator adapters.
| * tor-netdoc: util: use super::* in testsIan Jackson2023-02-101-2/+1
| | | | | | | | Not xure how my MR to try to do this everyone missed this one.
| * tor-netdoc: util: Add standard lint block to testsIan Jackson2023-02-101-0/+10
| | | | | | | | Not xure how my MR to try to do this everyone missed this one.
* | netdoc: give hsdesc test info in its original form.Nick Mathewson2023-02-131-1/+5
| |
* | netdoc: Add a test for HSDesc decryption.Nick Mathewson2023-02-101-0/+63
| |
* | Add another test hsdesc to parse.Nick Mathewson2023-02-101-0/+223
|/ | | | | | | | | | | | | | | | | | | This one was generated (by dgoulet) using `ClientDescEncKey` encryption. Its information is: ``` Address: paozpdhgz2okvc6kgbxvh2bnfsmt4xergrtcl4obkhopyvwxkpjzvoad.onion Time period: 19397 Client: paozpdhgz2okvc6kgbxvh2bnfsmt4xergrtcl4obkhopyvwxkpjzvoad:descriptor:x25519:SDZNMD4RP4SCH4EYTTUZPFRZINNFWAOPPKZ6BINZAC7LREV24RBQ Service: descriptor:x25519:SACGOAEODFGCYY22NYZV45ZESFPFLDGLMBWFACKEO34XGHASSAMQ ```
* Merge branch 'hsdir' into 'main'Ian Jackson2023-02-092-0/+7
|\ | | | | | | | | Compute the HS directory hash ring See merge request tpo/core/arti!1012
| * hsdir: Be able to enumerate the hidden service directoriesIan Jackson2023-02-091-0/+4
| | | | | | | | | | | | * Provide an accessor for the HSDIR flag * Provide a function for testing a relay for hsdir inclusion * Provide an iterator on NetDir that returns the hsdirs