summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | 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
| * | | | | proto: Take current time as an argument when constructing padder.Nick Mathewson2026-03-312-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we'd get the time by calling Instant::now, but that would lead to a mismatch with the runtime if we were mocking. Part of #2428.
| * | | | | circmgr: Use runtime.now() in place of Instant/SystemTime::get().Nick Mathewson2026-03-312-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | Part of #2428.
* | | | | | Merge branch 'encode-authcert' into 'main'Ian Jackson2026-04-0117-179/+477
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: encoding and signing of authcerts See merge request tpo/core/arti!3851
| * | | | | | tor-netdoc: RsaSha1Signature::new_sign_netdoc: rename argumentIan Jackson2026-04-011-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3851#note_3388076
| * | | | | | tor-netdoc: Gate encode_sign on plain-consensus featureIan Jackson2026-04-011-1/+4
| | | | | | |
| * | | | | | tor-netdoc: Include rand dependency when encodeIan Jackson2026-04-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes build with nailing-cargo test -p tor-netdoc --no-default-features --features encode
| * | | | | | tor-netdoc: encode: Move various ItemArgument impls to impls.rsIan Jackson2026-04-012-64/+68
| | | | | | |
| * | | | | | tor-netdoc: Abolish poc::authcertIan Jackson2026-04-015-10/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was just some type aliases. Put them in the poc files that used them. (These type aliases are undesirable but we aren't cleaning them up because the whole of poc is destined for deletion.)
| * | | | | | tor-netdoc: Replace AuthCert::verify_selfcert implIan Jackson2026-04-012-47/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Get rid of the version in poc. Instead, implement the same functionality in terms of AuthCert::verify, outside poc.
| * | | | | | tor-netdoc: authcert: Test encoding and signing methodIan Jackson2026-04-011-0/+43
| | | | | | |
| * | | | | | tor-netdoc: authcert: Provide encoding and signing methodIan Jackson2026-04-011-1/+26
| | | | | | |
| * | | | | | tor-netdoc: RsaSha1Signature: Provide signing methodIan Jackson2026-04-011-0/+82
| | | | | | |
| * | | | | | tor-netdoc: Provide `new` methods for CrossCert and AuthCertIan Jackson2026-04-011-0/+60
| | | | | | |
| * | | | | | tor-netdoc: Turn AuthCertSignature into RsaSignatureIan Jackson2026-04-013-26/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These are in fact just a completely normal RSA signature like in the spec! Move the type to the types module, and rename it. Leave a compatibility alias.
| * | | | | | tor-netdoc: derive enncoding for AuthCert, AuthCertSignature[s]Ian Jackson2026-04-011-2/+5
| | | | | | |
| * | | | | | tor-netdoc: implement encoding function for raw_data_objectIan Jackson2026-04-011-1/+10
| | | | | | |
| * | | | | | tor-netdoc: Move raw_data_object to new container moduleIan Jackson2026-04-015-12/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This will allow us to use it for encoding as well as parsing.
| * | | | | | tor-netdoc: impl encoding traits for authcert cross-cert typesIan Jackson2026-04-011-1/+19
| | | | | | |
| * | | | | | tor-netdoc: impl encoding traits for rsa::PublicKeyIan Jackson2026-04-012-0/+28
| | | | | | |
| * | | | | | tor-netdoc: Provide ItemEncoder::text_sofar()Ian Jackson2026-04-012-0/+6
| | | | | | |
| * | | | | | tor-netdoc: Provide ItemEncoder::object() taking an ItemObjectEncodableIan Jackson2026-04-013-0/+18
| | | | | | |
| * | | | | | tor-netdoc: impl From<RsaIdentity> for the fingerprint typesIan Jackson2026-04-012-4/+9
| | | | | | |
| * | | | | | tor-netdoc: encode derive: Fix handling of optionality.Ian Jackson2026-04-011-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We mustn't use selector.selector() because that's for multiplicity, not optionality. In pracctice, it goes wrong with Vec<u8>.
| * | | | | | tor-netdoc: encode derive: Use paste_spanned to improve an error messageIan Jackson2026-04-011-1/+3
| | | | | | |
| * | | | | | tor-netdoc: Fix a wrong "what does this end" commentIan Jackson2026-04-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This was a c&p error, I think.
| * | | | | | tor-netdoc: authcert: Debug CrossCertObject in hexIan Jackson2026-04-011-1/+3
| | | | | | |
| * | | | | | tor-netdoc: Constructor: Fix it so it actually worksIan Jackson2026-04-012-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hidden __non_exhaustive field has to be pub. And, fix the use site, currently AuthCert.
| * | | | | | tor-netdoc: encode: re-export netdoc_ordering_check for macrosIan Jackson2026-04-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise deriving NetdocEncodable doesn't work outside this crate.
| * | | | | | tor-netdoc: encode derive: Use $P for ResultIan Jackson2026-03-311-1/+1
| | | | | | |
| * | | | | | tor-netdoc: Fix typo in doc commentIan Jackson2026-03-311-1/+1
| | |_|_|/ / | |/| | | |
* | | | | | Merge branch 'relay-crypto-dep' into 'main'David Goulet2026-04-011-5/+11
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | proto: Make tor-relay-crypto an optional dependency Closes #2450 See merge request tpo/core/arti!3848