Commit dff50001 authored by David Goulet's avatar David Goulet 🐼
Browse files

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's avatarDavid Goulet <dgoulet@torproject.org>
parent 489ef6b3
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -2278,6 +2278,16 @@ typedef struct routerstatus_t {
   * ed25519 identity keys on a link handshake. */
  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_exitsummary:1; /**< The vote/consensus had exit summaries */
  unsigned int bw_is_unmeasured:1; /**< This is a consensus entry, with
+4 −0
Original line number Diff line number Diff line
@@ -2667,6 +2667,10 @@ routerstatus_parse_entry_from_string(memarea_t *area,
      protocol_list_supports_protocol(tok->args[0], PRT_RELAY, 2);
    rs->supports_ed25519_link_handshake =
      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))) {
    tor_assert(tok->n_args == 1);