aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | 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-082-5/+13
| |
* | tor-hscrypto: Rename key types to correspond to new spec names.Nick Mathewson2023-02-0813-92/+87
| |
* | 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-085-15/+15
|/ | | | | | | | | 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
|
* tor-cell: documentation cleanups related to restricted_msgNick Mathewson2023-02-074-6/+8
|
* tor-cell: correct handling of optional msg types.Nick Mathewson2023-02-072-12/+17
| | | | | | We need to make sure any `#[cfg(feature=...)]` attributes are applied not only to our variant declarations, but also to the branches in the match statements that deal with them.
* tor-cell: Rename RelayMsg and RelayCell-related types.Nick Mathewson2023-02-0716-164/+174
| | | | Thanks to rust-analyzer for making this simple.
* tor-cell: Rename ChanMsg and ChanCell-related types.Nick Mathewson2023-02-0714-165/+166
|
* tor-cell: Remove RelayMsg methods that are duplicated in RelayMsgClass.Nick Mathewson2023-02-078-19/+7
|
* tor-cell: Remove ChanMsg methods that are duplicated in ChanMsgClass.Nick Mathewson2023-02-0711-37/+20
|
* tor-cell: Use macro to generate ChanMsg too.Nick Mathewson2023-02-076-112/+42
|
* tor-cell: Use macro to define RelayMsg type too.Nick Mathewson2023-02-072-185/+103
|
* tor-cell: Macro to generate restricted RelayMsg and ChanMsg.Nick Mathewson2023-02-073-0/+198
| | | | This is the main implementation part of #525.
* tor-cell: Change all variants of RelayMsg to have a body.Nick Mathewson2023-02-074-19/+58
| | | | | Previously, there were some unit variants, but that makes things quite awkward for #525.
* tor-cell: Make Body and MsgClass traits more uniform.Nick Mathewson2023-02-077-85/+88
| | | | | | | | Doing this will make it much easier to implement a macro that generates restricted instances of the Msg types (for #525). The Body change is a breaking change. I don't think anybody else implements Body, but in theory they could.
* tor-cell: Generic "Restricted{Relay,Chan}Cell" types.Nick Mathewson2023-02-074-33/+101
| | | | | | | These are generalizations of RelayCell and ChanCell respectively, that allow using an arbitrary message type in place of the fully general RelayMsg and ChanMsg types. Doing this is a prerequisite for usefully implementing arti#525.
* Update hsdesc parser code to new sectionrules::builder code.Nick Mathewson2023-02-073-8/+8
|
* Merge branch 'shadykaty-error-hint-v2' into 'main'eta2023-02-077-8/+155
|\ | | | | | | | | | | | | Create and use an ErrorHint type to report how to fix a problem. Closes #579 and #578 See merge request tpo/core/arti!994
| * ErrorHint: Report hints for arti_client errors.Nick Mathewson2023-01-271-4/+11
| |
| * ErrorHint: Add a note about lowering the permissions hintNick Mathewson2023-01-271-0/+4
| |
| * ErrorHint: use anonymize_homeNick Mathewson2023-01-271-2/+4
| |
| * ErrorHint: Implement tryfrom_torpersistNick Mathewson2023-01-273-3/+8
| |
| * ErrorHint: refactor API (part 2)Nick Mathewson2023-01-271-75/+60
| | | | | | | | | | | | | | Change ErrorHint so that, internally, it just holds an enum with a lightweight reference to whatever parts of the error it needs to generate a hint. Then we can move the formatting logic into a Display function for ErrorHint, and do away with ErrorDetail entirely.
| * ErrorHint: refactor API (part 1)Nick Mathewson2023-01-271-13/+19
| | | | | | | | | | | | | | Move the "hint" function into Error, and use Option rather than Result. (I'm using Option here because it's not really an error case not to have a hint; we just either have a hint, or we don't.)
| * add opaque ErrorHint API, impl ErrorHint from BadPermissionsShady Katy2023-01-274-3/+141
| |
* | 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
| | |
* | | tor-checkable: Add dangerously_map() functions.Nick Mathewson2023-02-072-1/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These functions consume a checkable wrapper, and return a new checkable wrapper with mapped contents but the same not-yet-checked constraints. As documented, They are "dangerous" because the provided function gets access to the contents before they are checked; the caller has to make sure that the provided function doesn't expose their contents inappropriately.
* | | 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.