[tor-commits] [tor/master] Declare a LINKAUTH subprotocol version for #15055 (ed link handshake)

nickm at torproject.org nickm at torproject.org
Thu Nov 10 14:27:05 UTC 2016


commit b7a1e793e69e540e0377fa4418810ff1c02d50f9
Author: Nick Mathewson <nickm at 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);





More information about the tor-commits mailing list