aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-netdoc/src
Commit message (Collapse)AuthorAgeFilesLines
...
| * 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
|/
* 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-075-41/+90
|\ | | | | | | | | | | | | 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-033-5/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-035-41/+55
| | | | | | | | 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.