Inconsistent representation and specification of onion key types
Onion keys (the intermediate-lifetime circuit keys, eg KP_ntor
) have a type; in the past, and perhaps in the future, there were multiple algorithms supported.
These types are represented, at least, in the following ways:
- An integer field
ONION_KEY_TYPE
in an INTRODUCE1/2 message (rend-spec-v3 [PROCESS_INTRO2] - A string value in a hidden service descriptor inner document (rend-spec-v3 2.5.2.2
onion-key
keyword) - The difference between the
onion-key
andntor-onion-key
keywords in a router descriptor (tor-spec 2.1.1)
These things should be cross-referenced. There should be one table of key types, with consistent naming both for the types themselves, and for the enum of types of which the individual types are variants.
Also the router descriptor format is needlessly different, and worse, and should probably be fixed if we were to get the chance to overhaul it.