When bridges lines leave out the fingerprint, how should controllers look them up by id?
In #32125 (moved) we have a case where the user configures a bridge line but leaves the optional fingerprint out. In this case Tor learns the fingerprint when it connects:
Oct 19 01:42:54.644 [notice] Learned fingerprint 1948xxxxxxxxF6A25E456B7DB9C2D37EFB7250C1 for bridge x.y.153.221:9001.
But most controller events and responses list relays by their identity fingerprint, e.g. here is a line from 'getinfo circuit-status':
12 BUILT $1948xxxxxxxxF6A25E456B7DB9C2D37EFB7250C1~badabim,$E14D10669DD6E472235F8F0161544B4E7B7CB3C7~BOOTCHAROO2,$C3B451E071694ABA3AC2E75D49418E866072E051~HiddenNix,$1D04FF920CE804CE357FE62C665901C578BC26D6~tower BUILD_FLAGS=IS_INTERNAL,NEED_UPTIME PURPOSE=GENERAL TIME_CREATED=2019-10-19T05:42:56.257467
So when the controller wants to (for example) tell the user about their path, what is the right way for the controller to match up the relay id to the configured bridge?
Tor Browser does it with 'getconf bridges' and looking through the id fingerprints of each configured bridge line until it finds a match. But if the bridge lines in torrc leave out the fingerprint, then you won't find the bridge that way.
We should provide a recommended way for controllers to accomplish this goal (and that might involve building this new way into Tor).
[I cc atagar and pospeselr because they write controllers and might have an opinion; and phw and cohosh because bridges.]