summaryrefslogtreecommitdiff
path: root/crates/tor-netdoc
Commit message (Collapse)AuthorAgeFilesLines
* release: Bump tor- and arti- crate versions.Wesley Aptekar-Cassels2026-05-061-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cargo set-version -p arti-client 0.42.0 cargo set-version -p arti-config 0.42.0 cargo set-version -p arti-relay 0.42.0 cargo set-version -p arti-rpc-client-core 0.42.0 cargo set-version -p arti-rpcserver 0.42.0 cargo set-version -p arti-testing 0.42.0 cargo set-version -p arti-ureq 0.42.0 cargo set-version -p tor-async-utils 0.42.0 cargo set-version -p tor-basic-utils 0.42.0 cargo set-version -p tor-bytes 0.42.0 cargo set-version -p tor-cell 0.42.0 cargo set-version -p tor-cert 0.42.0 cargo set-version -p tor-cert-x509 0.42.0 cargo set-version -p tor-chanmgr 0.42.0 cargo set-version -p tor-checkable 0.42.0 cargo set-version -p tor-circmgr 0.42.0 cargo set-version -p tor-config 0.42.0 cargo set-version -p tor-config-path 0.42.0 cargo set-version -p tor-consdiff 0.42.0 cargo set-version -p tor-dirclient 0.42.0 cargo set-version -p tor-dircommon 0.42.0 cargo set-version -p tor-dirmgr 0.42.0 cargo set-version -p tor-dirserver 0.42.0 cargo set-version -p tor-error 0.42.0 cargo set-version -p tor-events 0.42.0 cargo set-version -p tor-general-addr 0.42.0 cargo set-version -p tor-geoip 0.42.0 cargo set-version -p tor-guardmgr 0.42.0 cargo set-version -p tor-hsclient 0.42.0 cargo set-version -p tor-hscrypto 0.42.0 cargo set-version -p tor-hsrproxy 0.42.0 cargo set-version -p tor-hsservice 0.42.0 cargo set-version -p tor-key-forge 0.42.0 cargo set-version -p tor-keymgr 0.42.0 cargo set-version -p tor-linkspec 0.42.0 cargo set-version -p tor-llcrypto 0.42.0 cargo set-version -p tor-log-ratelim 0.42.0 cargo set-version -p tor-memquota 0.42.0 cargo set-version -p tor-memquota-cost 0.42.0 cargo set-version -p tor-netdir 0.42.0 cargo set-version -p tor-netdoc 0.42.0 cargo set-version -p tor-persist 0.42.0 cargo set-version -p tor-proto 0.42.0 cargo set-version -p tor-protover 0.42.0 cargo set-version -p tor-ptmgr 0.42.0 cargo set-version -p tor-relay-crypto 0.42.0 cargo set-version -p tor-relay-selection 0.42.0 cargo set-version -p tor-rpcbase 0.42.0 cargo set-version -p tor-rpc-connect 0.42.0 cargo set-version -p tor-rtcompat 0.42.0 cargo set-version -p tor-rtmock 0.42.0 cargo set-version -p tor-socksproto 0.42.0 cargo set-version -p tor-units 0.42.0
* Merge branch 'directory-signature-hash-algo' into 'main'Clara Engler2026-04-3010-25/+123
|\ | | | | | | | | Unknown keyword handling fixes; use a more principled type for directory signature hash algo See merge request tpo/core/arti!3923
| * tor-netdoc: Use poc's DirectorySignatureHashAlgoIan Jackson2026-04-291-7/+15
| | | | | | | | | | | | | | | | | | This type is now directly suitable for use in directory signatures. While we're changing its type, rename the digest algorithm name field from `digestname` to `digest_algo`. (The spec says `algorithm` but I don't think we're going to reuse `direcctory-signature` for non-RSA signatures so this is just the hash algorithm.)
| * tor-netdoc: Promote DirectorySignatureHashAlgo from poc as nasty macroIan Jackson2026-04-292-12/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We want DirectorySignatureHashAlgo for prod's directory Signature type. However, for complex cfg gate and macro scoping reasons, we can't just move the definition out of poc. Hence this rather unpleasant intermediate state. This will go away, and become normal again, when we can abolish poc's signatures and have poc use a prod signature type. Review with git show --color=always --color-moved-ws=allow-indentation-change --color-moved
| * tor-netdoc: poc: make DirectorySignatureHashAlgo serialise properlyIan Jackson2026-04-291-0/+1
| |
| * tor-netdoc: Introduce KeywordOrStringIan Jackson2026-04-293-0/+48
| | | | | | | | | | We're going to use this for `directory-signature`'s hash algorithm, which the current code always treats as a string!
| * tor-netdoc: Improvement to Unknown API: make it exhaustiveIan Jackson2026-04-292-1/+2
| |
| * tor-netdoc: Improvement to Unknown API: make disregarding more explicitIan Jackson2026-04-293-1/+19
| | | | | | | | | | Make the operation of disregarding the possible existence of already-discarded information, more explicit.
| * tor-netdoc: Move FromStr and Display from NormalItemArgument to implsIan Jackson2026-04-294-5/+8
| | | | | | | | | | | | | | | | | | | | | | This allows implementing NormalItemArgument for types that can only be parsed, or only displayed - or other combinations. I noticed this restriction while inventing a type I later decided was unnecessary. I still think it's a good change. There is no practical impact elsewhere, since in practice downstream code implements NormalItemArgument rather than relying on it.
* | tor-netdoc: Abolish the hsdesc-inner-docs featureIan Jackson2026-04-302-7/+2
| | | | | | | | | | | | | | Part of #2492 phase 3. This feature was experimental, so now that there are no cfg use gates, we can abolish it right away.
* | tor-netdoc: Un-gate every cfg feature = "hsdesc-inner-docs"Ian Jackson2026-04-304-15/+7
| | | | | | | | Part of #2492 phase 2.
* | tor-cert: Remove the "encode" cargo featureIan Jackson2026-04-291-2/+2
| | | | | | | | This was experimental. Everything gated by it has been stabilised.
* | tor-cert: Ed25519CertBuilder: do builder fn renameIan Jackson2026-04-293-4/+4
|/ | | | | | Change all call sites. This completes the rename.
* tor-netdoc: Require "encode" feature from tor-certIan Jackson2026-04-281-1/+1
| | | | | This is needed because we don't have !3926 in main yet. It will produce a semantic conflict when that merges.
* tor-netdoc: Gate vote-related incomplete code with "incomplete" (fmt)Ian Jackson2026-04-281-4/+1
|
* tor-netdoc: Gate vote-related incomplete code with "incomplete" (tidy)Ian Jackson2026-04-281-4/+5
|
* tor-netdoc: Gate vote-related incomplete code with "incomplete"Ian Jackson2026-04-285-11/+11
| | | | | | | | | | | Change "ns-vote" gates to "incomplete": * `vote` modules, and in the variety macro. (And make a TODO more likely to be found.) Change "parse2" gates to "incomplete": * VoteAuthoritySection
* tor-netdoc: Un-gate test2 moduleIan Jackson2026-04-281-1/+1
| | | | Everything that this needs is un-gated now.
* tor-netdoc: Un-gate RouterStatusMdDigestsVote and SoftwareVersionIan Jackson2026-04-282-2/+0
| | | | | These are complete. Un-gate the RouterStatusMdDigestsVote implementation, and the export of both.
* tor-netdoc: Un-gate "plain-consensus" cargo featureIan Jackson2026-04-288-30/+13
| | | | As per #2492.
* tor-netdoc: Un-gate "routerdesc" cargo featureIan Jackson2026-04-285-23/+4
| | | | As per #2492.
* tor-netdoc: Un-gate top-level NetdocBuilderIan Jackson2026-04-281-2/+0
| | | | | This is only used for hsdescs right now. But it doesn't need to be gated behind encode.
* tor-netdoc: Un-gate parse2 and encode loose impls under doc/netstatus (tidy)Ian Jackson2026-04-284-21/+10
|
* tor-netdoc: Un-gate parse2 and encode loose impls under doc/netstatusIan Jackson2026-04-285-29/+21
| | | | | | | | | | | | | | | This stabilises the parse2 and encode impls of consensus tyepe: * {plain, md}::{Preamble, RouterStatus, RouterStatusIntroItem} It also un-gates the parse2 and encode impls of some vote types. * VoteAuthorityEntry - this type has been completed. * RouterStatusMdDigestsVote - whole type still gated with ns-vote Re the remaining vote types (vote::*): although each_variety.rs doesn't have a cfg itself, there is a feature gate in the variety macrology.
* tor-netdoc: Un-gate parse2 and encode loose impls in doc/netstatus.rs (rewrap)Ian Jackson2026-04-281-14/+4
|
* tor-netdoc: Un-gate parse2 and encode loose impls in doc/netstatus.rsIan Jackson2026-04-281-12/+12
| | | | | | | | | | | This stabilises the parse2 and encode impls of * Lifetime * ConsensusMethods * SharedRandStatus * ConsensusAuthorityEntry All of these are complete.
* tor-netdoc: Un-gate features impls in doc/netstatus/dir_source.rs (rewrap)Ian Jackson2026-04-281-4/+1
|
* tor-netdoc: Un-gate features impls in doc/netstatus/dir_source.rsIan Jackson2026-04-281-8/+4
| | | | There are no outstanding TODOs here.
* tor-netdoc: Un-gate parse2 and encode mods in doc/netstatus.rs (fmt)Ian Jackson2026-04-281-12/+12
|
* tor-netdoc: Un-gate parse2 and encode mods in doc/netstatus.rs (tidy)Ian Jackson2026-04-281-19/+7
| | | | | | Tidy the imports, and remove some now-unneeded { }. We'll run rustfmt in a moment to sort and reindent.
* tor-netdoc: Un-gate parse2 and encode mods in doc/netstatus.rsIan Jackson2026-04-281-16/+5
| | | | | | | | | | | | | | | | | | | | | | This stabilises the parse2 and encode impls of * NetParams<i32> * ProtoStatuses It also stabilises the parse2 impls of the following types which do not currently have any encode impls: * RelayWeight * rs::SoftwareVersion * IgnoredPublicationTimeSp As for TODOs and incomplete code: the things we're stabilising here are very simple, or fully formed. Implementing encoding for IgnoredPublicationTimeSp looks impossible, but we can cross that bridge when we come to it. We un-cfg-gate the parse2 and encode imports too.
* tor-netdoc: Upgrade a TODO re NetworkStatusUnverifiedVoteIan Jackson2026-04-281-1/+1
|
* tor-netdoc: Un-gate features in doc/microdesc.rs (fmt)Ian Jackson2026-04-281-3/+1
|
* tor-netdoc: Un-gate features in doc/microdesc.rsIan Jackson2026-04-281-16/+10
| | | | | | These are all parse2, and there are no blocking TODOs. We're leaving `build_docs` alone.
* tor-netdoc: Un-gate parse2 in doc/routerdesc.rsIan Jackson2026-04-281-1/+0
| | | | This is just one cfg, for RelayPlatform.
* tor-netdoc: Un-gate parse2 and encode in types/relay_flags.rsIan Jackson2026-04-281-6/+0
| | | | There is one irrelevant TODO.
* tor-netdoc: Un-gate features in types/policy/addrpolicy.rsIan Jackson2026-04-281-3/+0
| | | | There is only one TODO in this file and it's not really relevant.
* tor-netdoc: Un-gate features in types/family.rsIan Jackson2026-04-281-4/+3
| | | | | There is one TODO DIRMIRROR but it's a possible API change. I think it doesn't mean we can't un-gate this now.
* tor-netdoc: Un-gate features in types/policy/portpolicy.rs (fmt)Ian Jackson2026-04-281-16/+15
|
* tor-netdoc: Un-gate features in types/policy/portpolicy.rs (tidy)Ian Jackson2026-04-281-6/+0
|
* tor-netdoc: Un-gate features in types/policy/portpolicy.rsIan Jackson2026-04-281-9/+2
| | | | These are all parse2, and there are no blocking TODOs.
* tor-netdoc: Un-gate features in types/policy.rs (fmt)Ian Jackson2026-04-281-10/+10
|
* tor-netdoc: Un-gate features in types/policy.rs (tidy)Ian Jackson2026-04-281-5/+2
| | | | | | Remove a now-pointless pair of { }. We'll reindent this in a moment.
* tor-netdoc: Un-gate features in types/policy.rsIan Jackson2026-04-281-3/+1
| | | | These are all parse2, and there are no blocking TODOs.
* Merge branch 'ns-auth-entry' into 'main'Clara Engler2026-04-2710-195/+543
|\ | | | | | | | | tor-netdoc: Parsing and encoding for netstatus authority sections See merge request tpo/core/arti!3892
| * tor-netdoc: Remove two now-otiose use'sIan Jackson2026-04-271-2/+2
| |
| * tor-netdoc: ConsensusAuthorityEntry: discuss vote-digestIan Jackson2026-04-271-0/+4
| |
| * tor-netdoc: semver.md: remove a trailing spaceIan Jackson2026-04-271-1/+1
| |
| * tor-netdoc: consensus authority section: document addition in semver.mdIan Jackson2026-04-271-0/+1
| |
| * tor-netdoc: consensus authority section: ConsensusAuthoritySectionIan Jackson2026-04-274-91/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace poc code with new ConsensusAuthoritySection. This is an entirely new parsing approach. Key differences: * We parse the arguments to dir-source, which poc didn't. * We don't clone the input and fully parse the first item; instead, we dismantle the dir-source line ad-hoc to determine the item type. * Rather than a Vec of Enums, we parse into two Vecs of the different entry types. The few lines that aren't rewritten show up as moved in git show --color-moved --color-moved-ws=allow-indentation-change but I suggest reviewing the new implementation de novo.