prop224: Make the client/service extend properly to the IP/RP
For a prop224 service to extend to a rendezvous point (RP) or a client to extend to a introduction point (IP), we need two things to change in the tor code.
- The
extend_info_t
object needs to support a list of "extra" link specifiers that should be put in theEXTEND2
cell if present. From proposal 224:
The hidden service SHOULD NOT reject any LSTYPE fields which it
doesn't recognize; instead, it should use them verbatim in its EXTEND
request to the rendezvous point.
- The ed25519 identity link specifier (LSTYPE=03, see prop220), needs to be mandatory for both introduction and rendezvous points as detailed in prop224. So we need a way to tell the circuit subsystem that "this EXTEND2 cell is for IP or RP so put the ed25519 id in it".