summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2017-04-07 11:04:06 -0400
committerNick Mathewson <nickm@torproject.org>2017-04-07 11:04:06 -0400
commit506b4bfabaf823225c34172fae6dd405cfe1b58e (patch)
tree06357a76283e417dcd6dde897fd7c1d71da7b65c
parentd33c3627f4e690b80c8801e306159e8d90e930e4 (diff)
parentdff50001ec9b805f169a7b1eacb9e45a6490f98a (diff)
downloadtor-506b4bfabaf823225c34172fae6dd405cfe1b58e.tar.gz
tor-506b4bfabaf823225c34172fae6dd405cfe1b58e.zip
Merge remote-tracking branch 'dgoulet/ticket21893_031_01'
-rw-r--r--src/or/or.h10
-rw-r--r--src/or/routerparse.c4
2 files changed, 14 insertions, 0 deletions
diff --git a/src/or/or.h b/src/or/or.h
index 8a73cc293f..f36b12b3f7 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -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
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index 7220b992c4..fc0a4ab50a 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -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);