<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-netdoc/semver.md, branch arti-v2.5.1</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.5.1</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.5.1'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2026-07-30T10:24:37Z</updated>
<entry>
<title>tor-netdoc: Make RouterDescUnverified::verify() public</title>
<updated>2026-07-30T10:24:37Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-07-29T13:50:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4d1d28dc3851e2ad4be94376750b469a5804f45c'/>
<id>urn:sha1:4d1d28dc3851e2ad4be94376750b469a5804f45c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-netdoc: Derive Copy for Ed25519Public</title>
<updated>2026-07-29T11:56:42Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-06-24T13:54:16Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7c6d0b9141cc4b6d4f104ecee33029b5cba90f6a'/>
<id>urn:sha1:7c6d0b9141cc4b6d4f104ecee33029b5cba90f6a</id>
<content type='text'>
The underlying type also implements Copy.  We will need it later.
</content>
</entry>
<entry>
<title>tor-netdoc: Make the str in a SoftwareVersion be Intern</title>
<updated>2026-07-27T15:20:18Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-07-23T11:08:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ccd8e59ea2f16222adb5717777a39049015a641f'/>
<id>urn:sha1:ccd8e59ea2f16222adb5717777a39049015a641f</id>
<content type='text'>
Rather than converting it to an Arc.  This is the new idiom for Intern.
</content>
</entry>
<entry>
<title>tor-netdoc: derive Hash for netstatus::ConsensusMethods</title>
<updated>2026-07-23T17:24:20Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-07-22T12:20:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4613c125df14a1615b1e351cf0980c64c8094983'/>
<id>urn:sha1:4613c125df14a1615b1e351cf0980c64c8094983</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-netdoc: Provide free functions for encoding</title>
<updated>2026-07-23T16:09:50Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-07-22T13:27:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ec5761a8625cc99b5642b3053996439f68f284d6'/>
<id>urn:sha1:ec5761a8625cc99b5642b3053996439f68f284d6</id>
<content type='text'>
I keep finding I want to encode things and then I have to prat about
with a NetdocEncoder.  Let's provide potted versions.
</content>
</entry>
<entry>
<title>HsDesc::parse_decrypt_validate: Don't check validity time</title>
<updated>2026-07-23T10:13:54Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-07-20T17:11:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a96301e177576304c4f99f2dcef3fffcec61b533'/>
<id>urn:sha1:a96301e177576304c4f99f2dcef3fffcec61b533</id>
<content type='text'>
This function returns a `TimeRangeBound`.  That implies a
responsibility on the caller to check the time.  It doesn't make sense
for this function to do the check as well.

But, it turns out that in tor-hsclient, the `TimeRangeBound&lt;HsDesc&gt;`
is sometimes processed with `.dangerously` on the assumption that it
was checked earlier.  I considered changing this, and storing plain
`HsDesc` and a separate `TimeRange` - but that's not right, because
there are places where the `TimeRangeBound&lt;HsDesc&gt;` is used well after
it was verified.

Instead, in this commit, I (effectively) move the `.check_valid_at`
call from `parse_decrypt_validate` to its principal call site.

This involves a change to the error representation.  Previously,
validity time errors ended up as `DescriptorErrorDetail::Descriptor`
containing an `HsDescError::OuterValidation` HsDescError::
InnerValidation`, which in turn contains a
`tor_netdoc::Error`.  (`tor_netdoc::Error` is a rather awkward type.)
Now we have our own error variant.  The overall behaviour is
unchanged.
</content>
</entry>
<entry>
<title>tor-netdoc: Provide PortPolicy::from_ordered_allowed_ranges</title>
<updated>2026-07-21T09:59:01Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-07-15T14:59:41Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=aaf25b650d09ac71d3e22913939bcb04851ef836'/>
<id>urn:sha1:aaf25b650d09ac71d3e22913939bcb04851ef836</id>
<content type='text'>
In some sense this is a convenience wrapper around `push_ordered`,
but, really, it's the only nontrivial constructor that doesn't take an
iterator of individual port numbers.
</content>
</entry>
<entry>
<title>tor-netdoc: NetdocParseableFields::Accumulator must be Default</title>
<updated>2026-07-21T09:59:01Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-07-15T17:04:26Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c4c132600506baa2bc2d6415fcdbfc6791a8ccc1'/>
<id>urn:sha1:c4c132600506baa2bc2d6415fcdbfc6791a8ccc1</id>
<content type='text'>
The macro-generated code for `#[deftly(netdoc(flatten))]` relies on
this.  The Default impl is genereated by the derive, but a generic
or handwritten `NetdocParseableFields` wouldn't work.
</content>
</entry>
<entry>
<title>tor-netdoc: Expose ConsensusMethod's field</title>
<updated>2026-07-15T17:34:58Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-06-17T17:32:16Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f23b857d58ffbb5a099313dd1561b23d119a70af'/>
<id>urn:sha1:f23b857d58ffbb5a099313dd1561b23d119a70af</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-netdoc: document port summaries in semver.md</title>
<updated>2026-07-15T12:55:14Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-07-15T11:16:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=20b5d01271c28a466af4415b23eb2672b6c80d85'/>
<id>urn:sha1:20b5d01271c28a466af4415b23eb2672b6c80d85</id>
<content type='text'>
</content>
</entry>
</feed>
