summaryrefslogtreecommitdiff
path: root/crates/tor-netdoc/src/doc
Commit message (Collapse)AuthorAgeFilesLines
* tor-netdoc: Port to web-time-compatNick Mathewson2026-03-263-5/+7
|
* Fix typosTobias Stoeckmann2026-03-242-2/+2
| | | | Typos found with codespell
* tor-netdoc: Apply deferred rustfmt churn to importsIan Jackson2026-03-191-1/+3
|
* tor-netdoc: parse2: Don't impl NetdocParseable for bodies of signed docsIan Jackson2026-03-191-3/+7
| | | | Such an impl is a footgun. Explain this in docs & comments.
* tor-netdoc: parse2: Don't impl NetdocParseable for bodies of signed docs ↵Ian Jackson2026-03-191-3/+7
| | | | (pre-fmt)
* tor-netdoc: authcert test: Avoid using NetdocParseable for AuthCertIan Jackson2026-03-191-3/+4
| | | | | | | | | We want to stop deriving NetdocParseable directly for body structs. This test case does in fact parse a signed authcert and extract just the body without verifying the signatures. That's fine in a test, but we're going to make it involve some hoop-jumping. So, jump those hoops.
* tor-netdoc: parse2: Unify top-level derive as NetdocUParseablenverifiedIan Jackson2026-03-191-1/+1
| | | | | | | | | | | | | | | | Replace the two separate NetdocParseable and NetdocUnverified derives, for toplevel signed documents, with a single derive. This makes the derive API simpler. It will also make it reasonably possible to avoid deriving NetdocParseable directly for body structs. Such impls are a security hazard! In detail: * Rename NetdocUnverified to NetdocParseableUnverified * Have it use $IMPL_NETDOC_PARSEABLE from the NetdocParseable deftly module so that it derives NetdocParseable for the body. (We'll change this later in the series.) * Adjust the docs and all call sites.
* tor-netdoc: parse2: Move hash out of signature itemsIan Jackson2026-03-191-7/+4
| | | | | | | | | | During encoding, including these hashes in the signature items makes no sense. The hashes are an *input* to the signature items, but not part of them. Move the hashes out of the items. Instead, provide each signatures section type with a hash accumulator type, in which the hash(es) are stored.
* tor-netdoc: parse2: Introduce SignatureData structIan Jackson2026-03-191-3/+3
| | | | This is going to contain body information, and the hashes, too.
* tor-netdoc: NetdocParseableSignatures: Make into its own macroIan Jackson2026-03-191-2/+1
| | | | | | This is going to be its own trait and it is usually best if macros are named after traits, rather than having the macro derive a different trait depending on meta attributes.
* Merge branch 'extra-info' into 'main'Clara Engler2026-03-181-0/+3
|\ | | | | | | | | tor-dirclient: Support for extra-info requests See merge request tpo/core/arti!3764
| * tor-netdoc: Add ExtraInfoDigest type aliasClara Engler2026-03-121-0/+3
| | | | | | | | Accidentally left out in the previous commit.
* | Fix word duplicate typosTobias Stoeckmann2026-03-153-4/+4
|/
* parse2: Add TODO for netstatus traitClara Engler2026-03-091-0/+5
| | | | | This commit adds a TODO to implement a trait combining the common fields in a network status documents.
* tor-netdoc: Apply rustfmt churnIan Jackson2026-03-031-7/+2
|
* tor-netdoc: Rename *Signed to *UnverifiedIan Jackson2026-03-032-11/+11
| | | | | | | | | | This was a weird name, and while working in this area it all seemed to make the docs strange. Rename it. This is quite invasive! In theory we could have the macros generate compatibility aliases, but that seems quite complex.
* tor-netdoc: Drop dir_auth_key_cert_signatures test caseIan Jackson2026-03-031-56/+1
| | | | | | | | | | | | | | This test case constructs a "netdoc" which consists of one dir-key-certification item, and parses it using `AuthCertSignatures as NetdocParseable`. But we're going to split out the parsing trait for signatures sections, so that's not going to work any more. This test tests only corner cases of the derived SignatureItemParseable implementation; but that's unit tested in the parse2 tests. (Once upon a time there was perhaps manual parsing code which needed a specific test.) Remove it.
* tor-netdoc: Remove remaining use of EP::OtherClara Engler2026-01-151-8/+16
| | | | | | This commit replaces the last remaining uses of `EP::Other` in `tor-netdoc`, which got removed in arti!3561 but was still made use of in arti!3592 without causing a merge conflict.
* Merge branch 'encoded-authcert' into 'main'Ian Jackson2026-01-152-0/+452
|\ | | | | | | | | Implement EncodedAuthCert and use it in poc for votes See merge request tpo/core/arti!3592
| * tor-netdoc: EncodedAuthCert: docs grammarIan Jackson2026-01-151-1/+1
| |
| * tor-netdoc: EncodedAuthCert: remove another bit of leftover debugIan Jackson2026-01-151-1/+0
| |
| * tor-netdoc: EncodedAuthCert: remove a hard tab in a commentIan Jackson2026-01-151-1/+1
| |
| * tor-netdoc: EncodedAuthCert: bodge the features for nowIan Jackson2026-01-151-2/+3
| | | | | | | | | | The feature arrangements in tor-netdoc are getting to be in need of a serious overhaul.
| * tor-netdoc: EncodedAuthCert: remove a bit of leftover debugIan Jackson2026-01-151-1/+1
| |
| * tor-netdoc: EncodedAuthCert: move future plans to a commentIan Jackson2026-01-151-0/+22
| | | | | | | | This probably isn't going to happen, but let's keep the idea in-tree.
| * tor-netdoc: EncodedAuthCert: move/tidy rationale informationIan Jackson2026-01-151-0/+20
| | | | | | | | | | Move the information which still seems relevant out of the plan document.
| * tor-netdoc: EncodedAuthCert: unit testsIan Jackson2026-01-151-0/+197
| |
| * tor-netdoc: EncodedAuthCert: implementIan Jackson2026-01-152-0/+213
| | | | | | | | As per doc/dev/notes/authcert-in-consensus.md.
* | Merge branch 'dirmirror-authcert' into 'main'Clara Engler2026-01-151-1/+5
|\ \ | | | | | | | | | | | | Implement authority certificate management See merge request tpo/core/arti!3561
| * | tor-netdoc: Make ConsensusFlavor exhaustiveClara Engler2026-01-151-1/+5
| |/ | | | | | | | | | | | | | | | | | | This commit marks the ConsensusFlavor struct exhaustive because handling it in a non-exhaustive fashion would cause lots of redundant error handling in tor-dirserver. Besides, a change in the list of consensus flavors should indeed be breaking for applications making use of this struct, as it is quite a heavy change, from a netdoc point of view.
* / tor-netdoc: Rename Version and expose it as netstatus::SoftwareVersionIan Jackson2026-01-154-9/+9
|/ | | | | | | This struct is still a bit odd, and there's a todo saying we may change it again, but at least now it's now available. While we're here, rename the variant Tor to CTor.
* tor-netdoc: constructors: Use manual non exhaustiveIan Jackson2026-01-142-2/+9
| | | | With `#[non_exhaustive]`, you're not allowed to write even `Thing { ..base }`.
* tor-netdoc: Remove TODO re AuthCert constructionIan Jackson2026-01-131-2/+0
|
* tor-netdoc: Deprecate AuthCertBuilderIan Jackson2026-01-132-0/+5
|
* tor-netdoc: Provide AuthCertConstructorIan Jackson2026-01-131-0/+10
|
* tor-netdoc: Fix an attribute position in AuthCertIan Jackson2026-01-131-1/+1
| | | | The compiler doesn't notice this, but it's odd.
* tor-netdoc: authcert: Fix wrong linkIan Jackson2026-01-061-1/+1
|
* tor-netdoc: authcert: Add TODO about constructorsIan Jackson2026-01-061-0/+2
|
* tor-netdoc: authcert: rustfmtIan Jackson2026-01-061-5/+5
|
* tor-netdoc: authcert: Delete syntax info from rustdocsIan Jackson2026-01-061-37/+2
| | | | | This is in the spec. I don't think it is a great idea to duplicate it here.
* tor-netdoc: authcert: Fix remaining old names/paths in docsIan Jackson2026-01-061-8/+8
| | | | | These names came from tmp, and we renamed things as we went, but didn't change the docs everywhere.
* tor-netdoc: authcert: Improve docs for CrossCertIan Jackson2026-01-061-13/+12
| | | | Fix the type names while we're here.
* tor-netdoc: authcert: rename tmp test moduleIan Jackson2026-01-061-1/+1
| | | | This module is now the "proper" tests for the parse2 impl on AuthCert.
* tor-netdoc: authcert: abolish tmp module (reindent)Ian Jackson2026-01-061-50/+50
|
* tor-netdoc: authcert: abolish tmp moduleIan Jackson2026-01-061-140/+14
| | | | | | | | | | | tmp's version of AuthCert is gone. Each of its fields is already in AuthCert, including the docs links. I've decided not to transfer the syntax snippets. The remaining function in that module is now an inherent method on AuthCert, not on tmp's version. This needs reformatting since verify_self_signed is now at the wrong level!
* tor-netdoc: authcert: derive PartialEq and Eq in testsIan Jackson2026-01-061-0/+1
| | | | | It's not clear that we want to expose these impls, but our existing tests (in test::tmp) want them.
* tor-netdoc: authcert: Transfer spec links into AuthCert from tmpIan Jackson2026-01-061-28/+14
|
* tor-netdoc: authcert: derive parse2Ian Jackson2026-01-061-1/+12
|
* tor-netdoc: authcert: Add CrossCert to AuthCertIan Jackson2026-01-062-2/+19
| | | | This will enable parse2 to process it.
* tor-netdoc: authcert: Move signatures out of tmp (fmt)Ian Jackson2026-01-061-2/+2
|