Skip to content

Implement phase 1 of Proposal 350 (remove TAP onion keys)

Nick Mathewson requested to merge nickm/tor:tap-out-phase-1 into main

This branch implements phase 1 of proposal 350. See also torspec!268 (merged) and arti!2227 (merged).

In this branch, we:

  • Stop allowing TAP onion handshakes.
  • Stop allowing CREATE, EXTEND, CREATED, and EXTENDED.
  • Remove all support for deciding to use CREATE, EXTEND, or TAP.
  • Remove some code for storing and looking up TAP keys.
  • Make the body of the onion-key element optional in microdescriptors.
  • Make the onion-key and onion-key-crosscert elements optional in router descriptors.
  • Require TAP onion keys at the authority level.
  • Update the protocol versions
  • Add support for publish-dummy-tap-key, defaulting to 1.

Please note that my C skills, and my C tor skills, are probably quite rusty, so it might be a good idea to treat this as a patch from somebody unfamiliar with the codebase. If you think that any of this branch is likely to be wrong, risky, or error-prone, please let me know; I'm happy to revise or cut down this branch however you think is best.

I've tested this branch with chutney, and with experimentally disabling the generation of the TAP onion keys. I've also run the new microdesc and routerdesc parsers through the fuzzer for a while. Please let me know about any other tests that you think we should run.

Merge request reports