aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-netdoc/src/doc
Commit message (Collapse)AuthorAgeFilesLines
...
| * tor-netdoc: Remove many needless calls to .iter() and .into_iter()Ian Jackson2023-02-157-24/+20
| |
| * tor-netdoc: Replace use of PauseAt::new_pred()Ian Jackson2023-02-151-9/+9
| | | | | | | | | | | | | | 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.
* | Expire routerdescs as soon as any of their expiries expireIan Jackson2023-02-151-1/+1
|/ | | | Fixes #772
* netdoc: Add a feature to expose hsdesc inner doc parsersNick Mathewson2023-02-144-0/+10
| | | | | | | 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-132-86/+25
|\ | | | | | | | | Introduce new batching iterator and use it in two places See merge request tpo/core/arti!1016
| * batching_split_before: Rename "prefix" to "header"Ian Jackson2023-02-131-1/+1
| | | | | | | | | | | | | | | | 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.
| * tor-netdoc: Use batching iterator in authcert.rsIan Jackson2023-02-101-61/+15
| | | | | | | | | | 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
| |
* | 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
|/
* 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
| * tor-netdoc: Discuss that relays are ordered by rsa id in ConsensusIan Jackson2023-02-091-0/+3
| |
* | Rename DescEncNonce => HsDescEncNonceNick Mathewson2023-02-092-4/+4
|/
* hsdesc: Use an IntegerMinutes<u16> to hold lifetime.Nick Mathewson2023-02-082-9/+18
|
* netdoc: Fix most "TODO HS rename" commentsNick Mathewson2023-02-084-16/+14
|
* netdoc::hsdesc: Distinguish layer from document.Nick Mathewson2023-02-085-68/+62
|
* netdoc::hsdesc: Rename "layer" modules.Nick Mathewson2023-02-084-15/+14
|
* netdoc::hsdesc: Excise reference to "password" authenticationNick Mathewson2023-02-082-3/+1
| | | | As far as we can tell, this never existed.
* hscrypto,netdoc: Add and use a type for KP_hss_desc_enc.Nick Mathewson2023-02-081-5/+5
|
* tor-hscrypto: Rename key types to correspond to new spec names.Nick Mathewson2023-02-085-18/+19
|
* Rename DescriptorCookie to DescEncNonceNick Mathewson2023-02-083-16/+15
| | | | | | (I think it's okay to omit the Hs here, since this type is not visible outside the hsdesc parsing code. I'll rename if others disagree.)
* Renaming cleanup for and around now-renamed "KP_hs_desc_ephem".Nick Mathewson2023-02-081-8/+5
|
* Rename key identifiers that have changed in the specNick Mathewson2023-02-083-12/+12
| | | | | | | | | Generated with perl: s/K([PS])_hs_intro_tid/K$1_hs_ipt_sid/g; s/K([PS])_onion_ntor/K$1_ntor/g; s/K([PS])_hs_intro_ntor/K$1_hss_ntor/g; s/K([PS])_hs_desc_ephem/K$1_hss_desc_enc/g;
* Fix typoDimitris Apostolou2023-02-081-1/+1
|
* Update hsdesc parser code to new sectionrules::builder code.Nick Mathewson2023-02-073-8/+8
|
* Merge branch 'authcert_bug' into 'main'eta2023-02-074-26/+37
|\ | | | | | | | | | | | | Fix AuthCert behavior on unrecognized tokens, and prevent bug from recurring elsewhere. Closes #752 See merge request tpo/core/arti!1006
| * netdoc: Require that unrecognized tokens be handled explicitly.Nick Mathewson2023-02-032-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now we require that, for all `SectionRules`, either the caller say how to handle unrecognized tokens (using `.add(UNRECOGNIZED...)`), or that they explicitly reject unrecognized tokens (using `reject_unrecognized`()`.) This solution uses an assert!() rather than an Error to indicate failure. I say that's fine, since 1. This is a crate-internal API. 2. We never dynamically construct SectionRules according to different behavior: they are always prefabricated in a fixed code block. Thus, if we test a parser at all, we will make sure that its SectionRules are well-formed. I considered and explicitly rejected a solution where the builder had to be finalized with separate methods `build_strict()` or `build_tolerant()`: It's too easy IMO for the caller to forget what these call means. Prevents further recurrences of #752. Closes #752.
| * netdoc: Switch SectionRules building to use a Buidler pattern.Nick Mathewson2023-02-034-26/+26
| | | | | | | | No new behavior yet.
| * Add a rule to handle UNRECOGNIZED in AuthCert.Nick Mathewson2023-02-031-0/+1
| | | | | | | | | | | | This fixes an instance of bug#752. Previously, we would reject any AuthCert that contained an unexpected keyword. (Fortunately, this data format does not change very often.)
* | netdoc: Add a comment about renaming layer to document.Nick Mathewson2023-02-071-0/+9
| |
* | netdoc::hsdesc: rename Passwd to Password.Nick Mathewson2023-02-072-2/+2
| |
* | netdoc: Rename/comment objects from hsdesc.Nick Mathewson2023-02-071-9/+15
| |
* | netdoc: Rename/comment objects from inner_layer.Nick Mathewson2023-02-072-23/+47
| |
* | netdoc: Rename/comment objects from middle_layer.Nick Mathewson2023-02-074-19/+28
| |
* | netdoc: Rename/comment objects from desc_encNick Mathewson2023-02-073-21/+36
| |
* | netdoc: Renaming and comments in outer_layer.Nick Mathewson2023-02-071-8/+13
| |
* | netdoc: Use Itertools::exactly_once in hsdesc parsingNick Mathewson2023-02-071-4/+7
| |
* | netdoc: Remove useless should_be_exhausted calls.Nick Mathewson2023-02-073-3/+0
| |
* | Remove a needless line.Nick Mathewson2023-02-071-1/+0
| |
* | Even more clarifying comments.Nick Mathewson2023-02-073-8/+14
| |
* | netdoc: Try to add a bunch of clarifying documentation.Nick Mathewson2023-02-075-28/+87
| | | | | | | | | | In the process I found a couple of keys without identifiers in the spec.
* | netdoc: Use Signature::from to construct ed25519 sigs.Nick Mathewson2023-02-072-5/+10
| |
* | netdoc: Clear up a few typos in hsdesc comments and strings.Nick Mathewson2023-02-072-6/+6
| |
* | netdoc: Implement onion service descriptor parsers.Nick Mathewson2023-02-072-45/+183
| |
* | netdoc: Parse the inner layer of an onion service descriptor.Nick Mathewson2023-02-072-0/+352
| | | | | | | | | | | | | | | | | | There are some places where I note certificates which are not currently validated, because there is no cryptographic point in doing so. We should either document that this is okay, or validate the certificates anyway. This code might benefit from refactoring to make it prettier.
* | netdoc: Add a workaround for C Tor's lack of mid-layer NLNick Mathewson2023-02-072-2/+6
| | | | | | | | | | | | | | It turns out that C Tor doesn't add a newline at the end of the middle layer of an onion service descriptor. I've made a spec MR (torspec!109) to document this: here, it's time to work around the issue.
* | netdoc: Parse the middle layer of a hsdesc, and decrypt it.Nick Mathewson2023-02-073-0/+259
| |
* | netdoc: Use correct size for descriptor encryption cookieNick Mathewson2023-02-071-2/+2
| |
* | netdoc: move test descriptor to a higher level test moduleNick Mathewson2023-02-072-6/+12
| | | | | | | | | | We're going to make use of it in all of our tests, so we may as well expose it to them from hsdesc::test.