aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2016-11-10 09:25:11 -0500
committerNick Mathewson <nickm@torproject.org>2016-11-10 09:25:11 -0500
commitb6164e1604be7f6692156d2103f2de0fba4ca8b5 (patch)
tree7a0385fbc7f2036e78899195fb89323487bc0386
parentf82f0c3eb1fcee6278769c2262779a0a295b184d (diff)
parentb7a1e793e69e540e0377fa4418810ff1c02d50f9 (diff)
downloadtor-b6164e1604be7f6692156d2103f2de0fba4ca8b5.tar.gz
tor-b6164e1604be7f6692156d2103f2de0fba4ca8b5.zip
Merge remote-tracking branch 'public/feature20552'
-rw-r--r--changes/feature205524
-rw-r--r--src/or/or.h4
-rw-r--r--src/or/protover.c2
-rw-r--r--src/or/routerparse.c2
4 files changed, 11 insertions, 1 deletions
diff --git a/changes/feature20552 b/changes/feature20552
new file mode 100644
index 0000000000..11954807a7
--- /dev/null
+++ b/changes/feature20552
@@ -0,0 +1,4 @@
+ o Minor features (ed25519 link handshake):
+ - Advertise support for the ed25519 link handshake using the
+ subprotocol-versions mechanism, so that clients can tell which
+ relays can identity themselves by Ed25519 ID.
diff --git a/src/or/or.h b/src/or/or.h
index a43e2a33cd..eb94f63d5e 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2265,6 +2265,10 @@ typedef struct routerstatus_t {
* accept EXTEND2 cells */
unsigned int supports_extend2_cells:1;
+ /** True iff this router has a protocol list that allows it to negotiate
+ * ed25519 identity keys on a link handshake. */
+ unsigned int supports_ed25519_link_handshake: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/protover.c b/src/or/protover.c
index 6c2da165f7..5972e61be7 100644
--- a/src/or/protover.c
+++ b/src/or/protover.c
@@ -293,7 +293,7 @@ protover_get_supported_protocols(void)
"HSIntro=3 "
"HSRend=1-2 "
"Link=1-4 "
- "LinkAuth=1 "
+ "LinkAuth=1,3 "
"Microdesc=1-2 "
"Relay=1-2";
}
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index b391e88f22..2cfd3fc58a 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -2682,6 +2682,8 @@ routerstatus_parse_entry_from_string(memarea_t *area,
rs->protocols_known = 1;
rs->supports_extend2_cells =
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);
}
if ((tok = find_opt_by_keyword(tokens, K_V))) {
tor_assert(tok->n_args == 1);