prop224: Flag router with HSIntro/HSDir using protover

Note down in the routerstatus_t of a node if the router supports the HSIntro=4
version for the ed25519 authentication key and HSDir=2 version for the v3
descriptor supports.

Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
David Goulet 2017-02-14 10:45:19 -05:00
parent 489ef6b38b
commit dff50001ec
2 changed files with 14 additions and 0 deletions

View file

@ -2278,6 +2278,16 @@ typedef struct routerstatus_t {
* ed25519 identity keys on a link handshake. */ * ed25519 identity keys on a link handshake. */
unsigned int supports_ed25519_link_handshake:1; unsigned int supports_ed25519_link_handshake:1;
/** True iff this router has a protocol list that allows it to be an
* introduction point supporting ed25519 authentication key which is part of
* the v3 protocol detailed in proposal 224. This requires HSIntro=4. */
unsigned int supports_ed25519_hs_intro : 1;
/** True iff this router has a protocol list that allows it to be an hidden
* service directory supporting version 3 as seen in proposal 224. This
* requires HSDir=2. */
unsigned int supports_v3_hsdir : 1;
unsigned int has_bandwidth:1; /**< The vote/consensus had bw info */ unsigned int has_bandwidth:1; /**< The vote/consensus had bw info */
unsigned int has_exitsummary:1; /**< The vote/consensus had exit summaries */ unsigned int has_exitsummary:1; /**< The vote/consensus had exit summaries */
unsigned int bw_is_unmeasured:1; /**< This is a consensus entry, with unsigned int bw_is_unmeasured:1; /**< This is a consensus entry, with

View file

@ -2667,6 +2667,10 @@ routerstatus_parse_entry_from_string(memarea_t *area,
protocol_list_supports_protocol(tok->args[0], PRT_RELAY, 2); protocol_list_supports_protocol(tok->args[0], PRT_RELAY, 2);
rs->supports_ed25519_link_handshake = rs->supports_ed25519_link_handshake =
protocol_list_supports_protocol(tok->args[0], PRT_LINKAUTH, 3); protocol_list_supports_protocol(tok->args[0], PRT_LINKAUTH, 3);
rs->supports_ed25519_hs_intro =
protocol_list_supports_protocol(tok->args[0], PRT_HSINTRO, 4);
rs->supports_v3_hsdir =
protocol_list_supports_protocol(tok->args[0], PRT_HSDIR, 2);
} }
if ((tok = find_opt_by_keyword(tokens, K_V))) { if ((tok = find_opt_by_keyword(tokens, K_V))) {
tor_assert(tok->n_args == 1); tor_assert(tok->n_args == 1);