commit b7a1e793e69e540e0377fa4418810ff1c02d50f9 Author: Nick Mathewson nickm@torproject.org Date: Thu Nov 3 10:01:40 2016 -0400
Declare a LINKAUTH subprotocol version for #15055 (ed link handshake)
Closes ticket 20552. --- changes/feature20552 | 4 ++++ src/or/or.h | 4 ++++ src/or/protover.c | 2 +- src/or/routerparse.c | 2 ++ 4 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/changes/feature20552 b/changes/feature20552 new file mode 100644 index 0000000..1195480 --- /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 d305eac..a8664bb 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -2247,6 +2247,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 335be29..ff8948b 100644 --- a/src/or/protover.c +++ b/src/or/protover.c @@ -292,7 +292,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 cb2bc72..95bc683 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -2962,6 +2962,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);
tor-commits@lists.torproject.org