aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-netdoc/semver.md
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge branch 'ntor-cc-rd' into 'main'Ian Jackson2026-06-171-0/+1
|\ \ | |/ |/| | | | | Add ntor onion key cross certificate to RouterDesc See merge request tpo/core/arti!4109
| * tor-netdoc: Add ntor_onion_key_crosscert to RouterDescClara Engler2026-06-151-0/+1
| | | | | | | | | | This commit adds ntor_onion_key_crosscert to RouterDesc as well as integrating it into the legacy parser.
* | tor-netdoc: ItemValueEncodable for ExtraInfoDigestsClara Engler2026-06-171-0/+1
| |
* | tor-netdoc: ItemValueEncodable for RouterDescIntroItemClara Engler2026-06-171-0/+1
| |
* | tor-netdoc: ItemValueEncodable for OverloadGeneralClara Engler2026-06-171-0/+1
| |
* | tor-netdoc: Add ItemValueEncodable for RelayPlatformClara Engler2026-06-161-0/+1
| |
* | tor-netdoc: Implement ItemValueParseable instead for RelayPlatformClara Engler2026-06-161-0/+1
|/ | | | | ItemArgumentParseable does not make much sense because the field is effectively a free-form field similar to ContactInfo.
* tor-netdoc: routerstatus entries: Add `stats` item (votes only)Ian Jackson2026-06-151-1/+1
|
* tor-netdoc: Add NtorOnionKeyCrossCertClara Engler2026-06-111-0/+1
| | | | | | | | | This commit adds the NtorOnionKeyCrossCert data type; a data type implementing ItemValueParseable, intended for use within RouterDesc and parse2. This type wraps around the previously added Ed25519NtorCrossCert type in a fashion that honors the `bit` argument.
* tor-netdoc: impl From<std::convert::Infallible> for ErrorIan Jackson2026-06-111-0/+1
| | | | | | | This would let us use `.parse_arg::<String>()` in old parsing code. I wanted this for recommended versions, and then didn't use it, but it seems useful anyway.
* Merge branch 'rs-items' into 'main'Ian Jackson2026-06-111-0/+1
|\ | | | | | | | | tor-netdoc: routerstatus: add missing fields See merge request tpo/core/arti!4061
| * tor-netdoc: routerstatus: document additionsIan Jackson2026-06-111-0/+1
| |
* | tor-netdoc: Add RouterDesc::hidden_serive_dirClara Engler2026-06-111-0/+2
| | | | | | | | | | Adds RouterDesc::hidden_service_dir as well as an accompanying ZST token.
* | tor-netdoc: Replace bool with ItemPresent in RouterDescClara Engler2026-06-111-0/+4
|/ | | | | | | | This commit modifies RouterDesc to replace all occurrences of `bool` with `Option<ItemPresent<T>>` while adding respective ZST tokens for the respective items. In this case, it adjusts caches_extra_info and tunnelled_dir_server.
* tor-netdoc: Add Ed25519NtorCrossCertClara Engler2026-06-111-0/+1
| | | | | | | | | | | | | | This commit adds the Ed25519NtorCrossCert type for use with EmbeddedCert. So far, this certificate may not be used directly tet, because of the non-trivial X25519 -> Ed25519 conversion which is explained in a doc comment. The next commits will add more parse2-like types for actually parsing it, by honoring the `bit` found in `ntor-onion-key-crosscert` items. A unit test will be added in the immediate next commit.
* tor-netdoc: parse2: Deprecate check_validity_timeIan Jackson2026-06-101-0/+1
| | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/4070#note_3422637 We must allow it in poc, but poc is a thing we're trying to abolish/replace, so that's OK.
* tor-netdoc: authcert: use TimerangeBound for UnverifiedAuthCert::verifyIan Jackson2026-06-101-0/+1
| | | | | | | | | | | | | | TimerangeBound is reasonably nice and this will fit in better when we want to verify votes. Adjust the one non-test call site (in tor-dirserver) using .and_then. In the tests: * Where we expected success, call .check_valid_at and add another .unwrap(). * Where we expected signature verification failure, delete the time parameters. * Where we expected timeliness failure, call .check_valid_at and map the error. * With nontrivial tolerance, add calls to `extend_[pre_]tolerance`.
* tor-netdoc: Introduce toplevel NeteworkStatus typeIan Jackson2026-06-091-0/+1
| | | | | | | | | | | | | All of the pieces are in place for this now. Some of the pieces are not entirely complete or correct at this point: that's sorted out by other MRs already open. Currently there is no encoding, no verification functdion, and no tests. Encoding depends on another oustanding MR (arti!4058). Verification depends on the rework in arti!4065. Tests are still to come.
* tor-netdoc: F64Finite, initially for votes' stats itemsIan Jackson2026-06-091-0/+1
| | | | | The actual item field isn't in the struct yet, because that would produce conflicts with other outstanding work in this same struct.
* tor-netdoc: document new encoding implsIan Jackson2026-06-091-0/+2
|
* tor-netdoc: Add ItemPresent typeClara Engler2026-06-091-0/+1
| | | | | | | | | | | | | | | This commit adds the ItemPresent type, which is intended for token types where the mere presence implies a truthful value, such as `tunnelled-dir-server`. For now, it lives in `ignored_impls` because it does in fact ignore (actually rejects) everything around the item except the keyword. The type implements ItemValueParseable and ItemValueEncodable; both implementations being very minimal and only parsing/emitting the keyword. A test will be added within the next commit.
* tor-netdoc: ParseInput: document changesIan Jackson2026-06-031-0/+1
|
* tor-netdoc: Add extra_info_digest to RouterDescClara Engler2026-06-031-0/+1
| | | | This field is taken from the spec.
* tor-netdoc: Add contact to RouterDescClara Engler2026-06-031-0/+1
| | | | This commit adds the contact field to RouterDesc.
* tor-netdoc: Add overload_general to RouterDescClara Engler2026-06-031-0/+1
| | | | This commit adds support for the overload-general field to RouterDesc.
* tor-netdoc: Add hibernating field to RouterDescClara Engler2026-06-031-0/+1
|
* tor-netdoc: Rename NetdocUnverified trait to NetdocParseableUnverifiedIan Jackson2026-06-021-0/+1
| | | | | | | | | | | | The NetdocParseableUnverified derive macro implements this trait (amongst other things). Traits and derive macros should have aligned names. This is only used for parsing, so let's keep the "Parseable" part of the name. I don't think the effort of deprecated alias, for downstream compatibility, is worth it, our compatibility policy notwithstanding.
* tor-netdoc: Implement Display for RelayPlatformClara Engler2026-06-021-0/+1
|
* tor-netdoc: Store platform of TorVersion in OptionClara Engler2026-06-021-0/+1
| | | | | | | | | This commit changes RelayPlatform::TorVersion to store the platform to an Option<String> instead of a String because storing a missing/not present platform as the empty String feels wrong in my opinion. Besides, we will soon need to add encoding for this type, making now a good time to change it.
* Remove semver.md files post-releaseGabriela Moldovan2026-06-011-44/+0
|
* tor-netdoc: Store identity_ed25519 in EmbeddedCert logicClara Engler2026-06-011-0/+1
| | | | | | | | | This commit changes the tpye of `RouterDesc::identity_ed25519` to be of EmbeddedCert. Using the inner keys as the verified values is fine because the legacy parser continues to verify the legacy cert, as it extracts its timestamp and signature to the Vec it verifies in the end.
* tor-netdoc: Add master-key-ed25519Clara Engler2026-06-011-0/+1
|
* tor-netdoc: semver: document Ord implsIan Jackson2026-05-281-0/+1
| | | | | The new encoding impls are feature = "incomplete" so don't need to be here.
* tor-netdoc: Fix Ord impl for DigestNameIan Jackson2026-05-281-0/+1
| | | | | | | | When we are generating documents that need to be stable, we need to generate the same document regardless of what subset of digest names we understand. So order DigestName by its string representation.
* tor-netdoc: Break out DigestName as AsRef::<str>Ian Jackson2026-05-281-0/+1
|
* tor-netdoc: Remove family_ids from RouterDescClara Engler2026-05-271-0/+1
| | | | | | | This item is no longer required because we can extract it from family_cert. Unfortunately it requires a breaking change to the getter.
* tor-netdoc: Add From<Ed25519Identity> for RelayFamilyIdClara Engler2026-05-271-0/+1
| | | | We will need it in the next commit.
* tor-netdoc: Add family-cert to RouterDescClara Engler2026-05-271-0/+1
| | | | | | | | | | | | This commit adds the family_cert field to RouterDesc using EmbeddedCert logic. Unfortunately, it requires some code gymnastics similar to the (not yet merged) identity-ed25519 certificates, which we also outlined in a comment of a previous commit in the branch. Long story short: The legacy parser and parse2 do not like to co-exist in the same scope due to the self-consuming tor-cert verification chain of which the legacy parser makes heavy use.
* Merge branch 'relay-weight' into 'main'Ian Jackson2026-05-271-0/+7
|\ | | | | | | | | tor-netdoc: encoding support for `w` line in routerstatus See merge request tpo/core/arti!3991
| * tor-netdoc: semver.md: document RelayWeightsItem changeIan Jackson2026-05-271-0/+1
| |
| * tor-netdoc: impl TryFrom<&NetParams<u32>> for RelayWeightIan Jackson2026-05-271-0/+1
| | | | | | | | | | Convert the from_net_params constructor into a TryFrom. Retain the bespoke method for the benefit of the old parser.
| * tor-netdoc: Unknown: provide into_retained even when retained disabledIan Jackson2026-05-271-0/+1
| |
| * tor-netdoc: impl encoding and parsing for NetParams<T>Ian Jackson2026-05-271-1/+1
| | | | | | | | | | Not just NetParams<i32>. We're going to want it for NetParams<u32> in a moment.
| * tor-netdoc: NetdocParseableFields: Pass ItemStream to finishIan Jackson2026-05-271-0/+2
| |
| * tor-netdoc: implement encoding for rs::SoftwareVersionIan Jackson2026-05-271-0/+1
| | | | | | | | Call the existing string encoding code.
| * tor-netdoc: implement encoding for IgnoredPublicationTimeSpIan Jackson2026-05-271-0/+1
| | | | | | | | | | This seems trivial enough I don't feel the need to mark it "incomplete" even though there is no test case.
* | tor-netdoc: Store or-address in a SocketAddrClara Engler2026-05-271-0/+1
|/ | | | | | | | | | | | | | | | | | | | | | This commit changes the data type of RouterDesc::or_address from Option<(net::IPv6Addr, u16)> to Vec<net::SocketAddr>. This is the correct behavior according to the spec, meaning I will not give a lengthy explanation on why this is better. Reviewers might now be questioning whether the spec is wrong and/or if this is a dangerous change, as Arti used to only extract the first IPv6 address and CTor doing a similar thing. Following an IRC discussion with nickm@, we came to the conclusion that both implementation techniques are right. It is okay for the document to hold multiple addresses, it is okay for the implementation to ignore all but the first (IPv6 address). What is not okay however, is for an implementation to reject documents with multiple addresses. Besides, router descriptors are not used in the existing code for selecting the address of a relay, meaning this change has very little practical meaning.
* tor-netdoc: Properly replace parse2::lex::NoFurtherArgumentsIan Jackson2026-05-271-1/+1
| | | | | | | | | | | | | | | As pointed out in https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3985#note_3413185 this was a duplicate. The new NoFurtherArguments * Implements encoding * Implements more traits * Is in the right module (types::misc - it's not just for parsing) * Has a slightly better name * Had an open-coded parsing impl (which we now replace) * Had minor differences to docs (so we add a line to NoFurtherArguments)
* tor-netdoc: Remove duplicate semver entryIan Jackson2026-05-271-1/+0
| | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3985#note_3413184
* tor-netdoc: Provide NoMoreArguments markerIan Jackson2026-05-271-0/+1
| | | | | | We're going to need this for type-driven parsing of the necessarily-absent flavour argument in a vote's `network-status-version`.