summaryrefslogtreecommitdiff
path: root/crates/tor-netdoc
Commit message (Collapse)AuthorAgeFilesLines
...
| * 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
| * 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-083-10/+20
|
* 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-072-4/+8
| |
* | 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-073-0/+353
| | | | | | | | | | | | | | | | | | 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.
* | netdoc: implement onion service descryptor encryptionNick Mathewson2023-02-073-10/+227
| | | | | | | | | | This is tested via a round-trip check, and via a successful decryption of our example descriptor's outer layer.
* | netdoc: Parser for outer layer of onion service descriptors.Nick Mathewson2023-02-072-0/+255
| |
* | netdoc: Add an example onion service descriptor to test our parsing.Nick Mathewson2023-02-071-0/+223
| | | | | | | | | | | | | | | | | | | | I generated this using C tor (latest main) and a Chutney network about a week ago. The subcredential is: 78210A0D2C72BB7A0CAF606BCD938B9A3696894FDDDBC3B87D424753A7E3DF37 The HS_blind_id is: 43CC0D62FC6252F578705CA645A46109E265290343B1137E90189744B20B3F2D