aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | tor-proto: allow sending DATA cells on closed streamsSteven Engler2026-03-291-6/+12
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | Previously we would close the circuit, which isn't great because there can be other streams in use on the circuit.
* | | | | | tor-netdoc: Add TODO to test ignoringClara Engler2026-04-021-0/+1
| | | | | |
* | | | | | tor-netdoc: Disable broken test for nowClara Engler2026-04-021-0/+1
| | | | | |
* | | | | | tor-netdoc: Note on hardcoded test vectorsClara Engler2026-04-022-0/+10
| | | | | |
* | | | | | tor-netdoc: Fix typo in commentClara Engler2026-04-021-1/+1
| | | | | |
* | | | | | tor-netdoc: Some comment improvementsClara Engler2026-04-021-2/+4
| | | | | | | | | | | | | | | | | | Co-authored-by: Ian Jackson
* | | | | | tor-netdoc: Replace if by exhaustive matchClara Engler2026-04-021-2/+4
| | | | | |
* | | | | | tor-netdoc: Rename Wrapper to RawPortPolicyClara Engler2026-04-021-2/+2
| | | | | |
* | | | | | tor-netdoc: Use PortRanges::from_str in PortPolicy::from_strClara Engler2026-04-021-4/+1
| | | | | |
* | | | | | tor-netdoc: Document that an overflow is impossibleClara Engler2026-04-021-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit documents that a u16 overflow in a certain branch is impossible due to the properties of a BTreeSet over which an iteration takes place.
* | | | | | tor-netdoc: Remove interval tree referenceClara Engler2026-04-021-1/+1
| | | | | |
* | | | | | tor-netdoc: Clarifications and commentsClara Engler2026-04-021-3/+7
| | | | | | | | | | | | | | | | | | Co-authored-by: Ian Jackson
* | | | | | tor-netdoc: Private fields in PortRangeClara Engler2026-04-022-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Callers now have to use PortRange::new which checks the input.
* | | | | | tor-netdoc: TODO for PortRanges rewriteClara Engler2026-04-021-0/+2
| | | | | |
* | | | | | tor-netdoc: Rename PortRanges::push to push_orderedClara Engler2026-04-022-5/+5
| | | | | |
* | | | | | tor-netdoc: Document PortRanges invariantsClara Engler2026-04-021-0/+4
| | | | | |
* | | | | | tor-netdoc: Remove onion_key accessorClara Engler2026-04-021-5/+0
| | | | | |
* | | | | | tor-netdoc: Fix conditional compilation in testClara Engler2026-04-021-0/+1
| | | | | |
* | | | | | tor-netdoc: Tests for the PortPolicy refactoringClara Engler2026-04-022-0/+86
| | | | | |
* | | | | | tor-netdoc: parse2 for PortPolicyClara Engler2026-04-021-100/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit refctors PortPolicy to use the new PortRanges, alongside removing the now duplicate code. The new PortPolicy implements ItemValueParseable, which makes it possible to nicely parse it. Unfortunately, we cannot derive it directly, because we do not store the RuleKind but instead parse it and then invert the ranges in order to save space. However, internally this is derived using a wrapper type from which we extract from. The old FromStr implementation continues to be as bad as it has always been because improving it would likely introduce more bugs than it would solve, given that the legacy implementation has been there since forever basically.
* | | | | | tor-netdoc: Copy Vec<PortRange> into own typeClara Engler2026-04-021-1/+143
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit copies the logic found in portpolicy.rs into its parent module, namely into a type called PortRanges. Most of the code was copied one by one, with only slight adjustments having been done. The compression and inversion logic is the same though. The purpose of this is to implement ItemArgumentParseable on this, which is not really possible with a Vec<PortRange> because the port policies have a weird format: Semantically they consist of multiple arguments (i.e. multiple port ranges) but syntactically they are encoded as a single netdoc argument, because there are no spaces in between.
* | | | | | tor-netdoc: NormalItemArgument for RuleKindClara Engler2026-04-021-1/+7
| | | | | |
* | | | | | tor-netdoc: Move RuleKind to upper moduleClara Engler2026-04-022-12/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit moves RuleKind from addrpolicy to policy because it is also required for port policies.
* | | | | | tor-netdoc: Explicitly upgrade derive-moreClara Engler2026-04-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | derive-more 2.1.1 makes use of the rename_all features in the display and from_str proc-macros, which do not exist in 2.0.1, meaning minimal-versions will fail.
* | | | | | tor-netdoc: Fix exhaustive warningsClara Engler2026-04-021-1/+4
| | | | | |
* | | | | | tor-netdoc: Export 25519 typesClara Engler2026-04-023-4/+5
| | | | | |
* | | | | | tor-netdoc: Use Curve25519Public for parsingClara Engler2026-04-025-36/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit removes the implementation of ItemArgumentParseable for curve25519::PublicKey in favor of using the already existing Curve25519Public, which also got beefed up slightly.
* | | | | | tor-netdoc: Refactor Ed25519IdentityLineClara Engler2026-04-022-39/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit refactors Ed25519IdentityLine by deriving as much as possible.
* | | | | | tor-netdoc: Improve on Ed25519PublicClara Engler2026-04-021-19/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit improves on Ed25519Public to be parseable via parse2 as well as reducing redundancy by utilizing FixedB64.
* | | | | | tor-netdoc: Use proper PEM parser for testvecsClara Engler2026-04-022-21/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit uses a proper PEM parser as a dev-dependency to tor-netdoc for parsing PEM entries, instead of hard-coding long DER byte strings. It is better to use an external crate for this here, rather than the existing somewhat accessible (only through traits) implementation of parse2, because it feels wrong testing parse2 with parse2.
* | | | | | tor-netdoc: Reorder Microdesc according to specClara Engler2026-04-021-11/+11
| | | | | |
* | | | | | tor-netdoc: Properly parse mutliple family-idsClara Engler2026-04-024-16/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes a bug in the microdescriptor parser to properly parse multiple family-ids. Previously, we interpreted the spec to simply contain multiple `family-ids` lines. This is wrong however. Instead, there may only be a single such line with multiple values. To fix this issues, we itnroduce a `RelayFamilyIds` type, similar to `RelayFamily`, that stores multiple `RelayFamilyId` entires in a `Vec`. Then, we just derive `ItemValueParseable` on it and win.
* | | | | | tor-netdoc: Add a test for Microdesc with parse2Clara Engler2026-04-021-0/+94
| | | | | |
* | | | | | tor-netdoc: Derive NetdocParseable for MicrodescClara Engler2026-04-023-8/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it possible to parse2 micro descriptors, which will be very useful later on. For this, it makes a few changes. Most notably, it introduces a (private) field called `onion_key`, which stores an optional RSA onion key, as it serves as the introduction line for this netdoc document type. Besides, it also changes the `ed25519_id` type to the `Ed25519IdentityLine` wrapper type, although the signature of the respective getter remains the same.
* | | | | | tor-netdoc: Derive Default for PortPolicyClara Engler2026-04-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a sane default, because rejecting all ports is the default for relay configurations as well as the default of when this field is absent in netdocs.
* | | | | | tor-netdoc: Ed25519IdentityLine parserClara Engler2026-04-021-1/+35
| | | | | |
* | | | | | tor-netdoc: ItemArgumentParseable for Arc<T>Clara Engler2026-04-021-0/+6
| | | | | |
* | | | | | tor-netdoc: NormalItemArgument for RelayFamilyIdClara Engler2026-04-021-1/+3
| | | | | |
* | | | | | tor-netdoc: ItemValueParseable for PortPolicyClara Engler2026-04-021-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit implements ItemValueParseable for PortPolicy. Unfortunately we cannot use NormalItemArgument because it contains spaces, leading to multiple arguments. In a later commit, we may migrate this fully to parse2 because right now, it just wraps around its FromStr implementation.
* | | | | | tor-netdoc: Make X25519 PKs parseable with parse2Clara Engler2026-04-021-0/+16
| | | | | |
* | | | | | tor-netdoc: parse2 for RelayFamilyClara Engler2026-04-021-9/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit replaces the inner value of RelayFamily to use a LongIdent instead, which it already uses for parsing, in order to derive ItemValueParseable on it, so we can use it within parse2 magic.
* | | | | | tor-netdoc: Improve upon LongIdentClara Engler2026-04-021-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit makes LongIdent parseable by implementing NormalItemArgument as well as the required Display for it. Besides, it also derives Hash on it.
* | | | | | tor-netdoc: Improve upon B64Clara Engler2026-04-021-1/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit improves upon B64 by implementing NormalItemArgument for it, as well as implementing a wrapper type for it, called FixedB64, that works just like B64 except that the resulted inner-value must be of a certain compile-time-specified fixed length, which is useful for things such as digests.
* | | | | | Merge branch 'deftly-1-11' into 'main'Clara Engler2026-04-0231-32/+32
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | | | | | | | | | | | | | Update to derive-deftly 0.11.0 to pick up `meta_quoted rigorous` See merge request tpo/core/arti!3855
| * | | | | Update to derive-deftly 0.11.0 to pick up `meta_quoted rigorous`Ian Jackson2026-04-0231-32/+32
| | | | | |
* | | | | | tor-netdoc: Constructor: Fixes to generated docsIan Jackson2026-04-011-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now some bugs have become visible. * Properly ``-quote the name in the heading. * Add a missing space before `{` * Adjust the fields to level-4 indent. * In `construct()`, ``-quote the name, and xref it in the body, not the title (which rustdoc makes a link to the fn itself)
* | | | | | tor-netdoc: Constructor: Reformat $/// doc sectionIan Jackson2026-04-011-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This lines all the docs lines up, so we can see our indentation. No change to the generated docs.
* | | | | | tor-netdoc: Constructor: Use $/// deftly featureIan Jackson2026-04-011-30/+27
| | | | | | | | | | | | | | | | | | | | | | | | No change to the generated docs.
* | | | | | tor-netdoc: parse2 derive: Use $/// deftly feature in a few placesIan Jackson2026-04-011-4/+4
|/ / / / / | | | | | | | | | | | | | | | No change to the generated docs.
* | | | | Merge branch 'ticket_2428' into 'main'Nick Mathewson2026-04-014-16/+19
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prefer runtime.now/wallclock to SystemTime/Instant::now, when available. Closes #2428 See merge request tpo/core/arti!3845