<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-guardmgr/src/fallback.rs, branch arti-v2.5.0</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.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.5.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2026-06-09T15:36:01Z</updated>
<entry>
<title>maint: Run maint/add_warning to deny string slices</title>
<updated>2026-06-09T15:36:01Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-06-09T15:36:01Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9f5752a77fb57052c06ead0eeae606831f1e8e97'/>
<id>urn:sha1:9f5752a77fb57052c06ead0eeae606831f1e8e97</id>
<content type='text'>
This commit executes maint/add_warning with the just added change to
deny string slices except in tests.

I recommend auditing this by checking out the previous commit followed
by running the script yourself and then verifying that the diff is
identical to this commit.

This commit makes cargo clippy fail.  We will add exceptions in the next
commit.
</content>
</entry>
<entry>
<title>Upgrade rand crates to 0.10.</title>
<updated>2026-05-12T20:55:43Z</updated>
<author>
<name>Wesley Aptekar-Cassels</name>
<email>me@wesleyac.com</email>
</author>
<published>2026-05-07T20:06:21Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a18167928901d8c88cd1cdd87346de8ad1ee42a2'/>
<id>urn:sha1:a18167928901d8c88cd1cdd87346de8ad1ee42a2</id>
<content type='text'>
When the circ-padding feature is enabled, we use maybenot, which does
not yet support rand 0.10. In the meantime, enabling this feature pulls
in rand 0.9. This is not ideal, but should be okay as a temporary
situation.

This also replaces the use of ReseedingRng (which was removed in 0.10)
with the reseeding_rng crate. This is somewhat less performant, but it
should be okay.
</content>
</entry>
<entry>
<title>tor-guardmgr: Port to web_time_compat.</title>
<updated>2026-03-26T19:20:17Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2026-03-26T15:06:10Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=02421eae87ee34653960046c25b6239b01f557c9'/>
<id>urn:sha1:02421eae87ee34653960046c25b6239b01f557c9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix name of clippy lint to unchecked_time_subtraction (2)</title>
<updated>2025-11-06T11:28:22Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2025-11-06T11:23:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a5fd5c48ea059a80cc1f6c50e248654b5ff3aaff'/>
<id>urn:sha1:a5fd5c48ea059a80cc1f6c50e248654b5ff3aaff</id>
<content type='text'>
Run maint/add_warning
</content>
</entry>
<entry>
<title>Move `FallbackDir` into `tor-dircommon`</title>
<updated>2025-09-11T17:53:40Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2025-09-11T17:53:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=144cb860535273fed072a1ef6bc5684cf36ac31b'/>
<id>urn:sha1:144cb860535273fed072a1ef6bc5684cf36ac31b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Complete our migration to base64ct.</title>
<updated>2023-01-20T13:06:30Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-01-19T19:50:07Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=889206cde4ef29d7d10bda546f8ad518eb09c290'/>
<id>urn:sha1:889206cde4ef29d7d10bda546f8ad518eb09c290</id>
<content type='text'>
This is in lieu of upgrading to the latest base64 crate, which has
a different API from the old one.  Since we have to migrate either
way, we might as well use base64ct everywhere.

I don't think that most of these cases _require_ constant-time
base64, but it won't hurt.
</content>
</entry>
<entry>
<title>guardmgr: Refactor the interior of FirstHop.</title>
<updated>2022-10-24T12:59:12Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-10-20T14:46:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=bb117a4bd4ed264011619101881950371145e050'/>
<id>urn:sha1:bb117a4bd4ed264011619101881950371145e050</id>
<content type='text'>
Now it contains either an `OwnedChanTarget` or an `OwnedCircTarget`,
which will let `GuardMgr` return bridges that can be used to make
circuits.

As part of this change, it was necessary to revise some
address-modification functions that applied to filters and
`OwnedChanTarget`.  Now they do the smart thing, and remove only the
address that are in the `ChanMethod`.  This means that the addresses
from HasAddrs are still accurate about which addresses the relay
"has".
</content>
</entry>
<entry>
<title>Begin revising HasAddr and its relationship to ChanTarget</title>
<updated>2022-10-06T19:13:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-10-05T15:25:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ce09b7c96f445def056a5718024e30d663195ac1'/>
<id>urn:sha1:ce09b7c96f445def056a5718024e30d663195ac1</id>
<content type='text'>
HasAddr used to mean "Here are addresses that I have, at which I can
be contacted."  But "Where (and how) can I be contacted?" is now a
question for HasChannelMethod to answer.

(We still need to have "HasAddr", though, so we can answer things
like "what country is this relay in" and "are these relays in the
same /8?")

So this commit introduces:
  * A new trait for adding an implementation of HasChannelMethod in
    terms of HasAddr.
  * A requirement on ChanTarget that it needs to implement
    HasChannelMethod.

There is some temporary breakage here, marked with "TODO pt-client",
that I'll fix later in this branch.
</content>
</entry>
<entry>
<title>Merge branch 'main' into 'linkspec_refactor_v3'</title>
<updated>2022-08-10T14:48:57Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-08-10T14:48:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=36a28a8587bbef44daa735c52a0207434989f11b'/>
<id>urn:sha1:36a28a8587bbef44daa735c52a0207434989f11b</id>
<content type='text'>
# Conflicts:
#   crates/tor-netdir/semver.md</content>
</entry>
<entry>
<title>Final (?) API revisions for tor-linkspec</title>
<updated>2022-08-10T14:39:37Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-08-05T15:47:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2d4507ff35f8e8cf874c81d3754804b2c20f31aa'/>
<id>urn:sha1:2d4507ff35f8e8cf874c81d3754804b2c20f31aa</id>
<content type='text'>
With this change, each individual identity type becomes optional.
The functions that expose them unconditionally are now in a "legacy"
trait that only some downstream types are expected to implement.

There are new convenience APIs in HasRelayIds:
  * to return Option&lt;&amp;keytype&gt;,
  * to see if one identity-set contains another.

This commit will break several downstream crates!  For the
reviewer's convenience, I will put the fixes for those crates into a
series of squash! commits on this one.

tor-netdir
----------

Revise tor-netdir to accept optional identities.  This required some
caveats and workarounds about the cases where we have to deal with a
key type that the tor-netdir code does not currently recognize at
all.  If we start to add more identity types in the future, we may
well want more internal indices in this code.

tor-proto
---------

In order to make tor-proto support optional identities, there were
fewer changes than I thought.  Some "check" functions needed to start
looking at "all the ids we want" rather than at "the two known IDs";
they also needed to accommodate that case where we don't have an ID
that we demand.

This change will also help with bridges, since we want to be able to
connect to a bridge without knowing all of its IDs up front.

The protocol currently _requires_ the two current ID types in some
places. To deal with that, I added a new `MissingId` error.

I also removed a couple of unconditional identity accessors for
chanmgr; code should use `target().identity(...)` instead.

tor-chanmgr
-----------

This is an incomplete conversion: it does not at all handle channel
targets without Ed25519 identities yet.  It still uses those
identities to index its internal map from identity to channel; but
it gives a new `MissingId` error type if it's given a channel target
that doesn't have one.

We'll want to revise the map type again down the road when we
implement bridges, but I'd rather not step on the channel-padding
work in progress right now.

tor-guardmgr
------------

This change is mostly a matter of constructing owned identity types
more sensibly, rather than unwrapping them directly.

There are some places marked with TODOs where we still depend on
particular identity types, because of how the directory protocol
works.  This will need revisiting when we add bridge support here.

tor-circmgr
-----------

These changes are just relatively simple API changes in the tests.
</content>
</entry>
</feed>
