It's based on david's #30382 (moved) branch so that I can use his 'decrypt pending descriptors upon add' functionality. That's also the only part that is not unittested.
Kathy and I are trying to integrate our work-in-progress Tor Browser code with a tor we built from the code at https://github.com/asn-d6/tor/tree/bug30381. Unfortunately, when we access a v3 onion service that requires client auth we encounter an assertion failure inside tor. See the attached file tor-os-auth-crash.txt. Please let us know if you need any more info in order to debug the problem.
Thanks; this works much better. We now receive the correct SOCKS error code (after a 120 second delay, which is a problem asn already mentioned in his review of your #30382 (moved) pull request). Kathy and I should be able to make more progress using this branch though. Next we will experiment with ONION_CLIENT_AUTH_ADD.
The branch needs to be rebased to latest master, and also incorporated withe fixes of comment:13. I will do that when David fixes up #30382 (moved) and we have a final branch from that side.
Flags=Permanent does not seem to have any effect. Is there another ticket for that or should someone open one?
Wow you are right! CLIENT_AUTH_FLAG_IS_PERMANENT is not used in the HS client code. We need to open a ticket for this. I've pinged asn about it. Thanks mcs!
Hm, I opened #32562 (moved) for this. Is this something we want to support as part of s27?
Kathy and I have been working under the assumption that we need this functionality. Without it, someone who users an onion that requires client authentication will (obviously) need to re-enter their key every time they restart their browser... and that would be very inconvenient. But I admit that I do not know how people use onion services in the "real world." Antonela (or anyone) — any thoughts on this?
IMHO, I think this should be treated the same way as HTTP “Basic Auth”.
Ideally, I'd like a checkbox “Save this key” and then I should be able to look it up in Tor Browser “Saved logins” like other passwords.
Kathy and I envision something very similar, although at least for now we do not plan to integrate the list of saved v3 onion service keys with the browser's "Saved logins" UI (while that might be possible, it would require some complex and difficult-to-maintain patches to Firefox). Our vision is to add a checkbox to the client auth prompt along with a text box where the user can enter an optional nickname, and we will add a management interface to about:preferences that allows people to view, remove, and possibly add additional keys.
But if this is not needed, we can save a lot of development time :)
IMHO, I think this should be treated the same way as HTTP “Basic Auth”.
+1 to lunar's comment. Ideally, recurrent users can save the passphrase, so they don't need to paste it every time.
Altho, this is not a blocker for this objective. If we don't have capacity to work on it for this delivery, we can aim to reach it for the next iteration.
Kathy and I experimented with this API today. Very cool stuff! Unfortunately, there is one problem: the ONION_CLIENT_AUTH_VIEW response needs to be changed to include the HS address. Otherwise, we cannot present a management interface and allow users to remove keys, etc. (they won't know what .onion each key is associated with).