[tor-commits] [tor/master] Update prop264 implementation to split HSMid->HS{Intro, Rend}

nickm at torproject.org nickm at torproject.org
Mon Sep 26 18:03:40 UTC 2016


commit 4cbfee14d40221a25545d2d2c3d6e6ce76f6afe9
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Sep 14 10:31:56 2016 -0400

    Update prop264 implementation to split HSMid->HS{Intro,Rend}
---
 src/or/dirserv.c  | 16 ++++++++--------
 src/or/protover.c | 17 +++++++++++++----
 src/or/protover.h |  3 ++-
 3 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 99b2e8a..d3bc615 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -2922,17 +2922,17 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t *private_key,
 
   /* These are hardwired, to avoid disaster. */
   v3_out->recommended_relay_protocols =
-    tor_strdup("Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSMid=1 Link=4 "
-               "LinkAuth=1 Microdesc=1-2 Relay=2");
+    tor_strdup("Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 "
+               "Link=4 LinkAuth=1 Microdesc=1-2 Relay=2");
   v3_out->recommended_client_protocols =
-    tor_strdup("Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSMid=1 Link=4 "
-               "LinkAuth=1 Microdesc=1-2 Relay=2");
+    tor_strdup("Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 "
+               "Link=4 LinkAuth=1 Microdesc=1-2 Relay=2");
   v3_out->required_client_protocols =
-    tor_strdup("Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSMid=1 Link=4 "
-               "LinkAuth=1 Microdesc=1-2 Relay=2");
+    tor_strdup("Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 "
+               "Link=4 LinkAuth=1 Microdesc=1-2 Relay=2");
   v3_out->required_relay_protocols =
-    tor_strdup("Cons=1 Desc=1 DirCache=1 HSDir=1 HSMid=1 Link=3-4 "
-               "LinkAuth=1 Microdesc=1 Relay=1-2");
+    tor_strdup("Cons=1 Desc=1 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 "
+               "Link=3-4 LinkAuth=1 Microdesc=1 Relay=1-2");
 
   v3_out->package_lines = smartlist_new();
   {
diff --git a/src/or/protover.c b/src/or/protover.c
index a2471b0..74fc3d0 100644
--- a/src/or/protover.c
+++ b/src/or/protover.c
@@ -17,9 +17,10 @@ static const struct {
   { PRT_LINK, "Link" },
   { PRT_LINKAUTH, "LinkAuth" },
   { PRT_RELAY, "Relay" },
-  { PRT_HSMID, "HSMid" },
   { PRT_DIRCACHE, "DirCache" },
   { PRT_HSDIR, "HSDir" },
+  { PRT_HSINTRO, "HSIntro" },
+  { PRT_HSREND, "HSRend" },
   { PRT_DESC, "Desc" },
   { PRT_MICRODESC, "Microdesc"},
   { PRT_CONS, "Cons" }
@@ -267,7 +268,8 @@ protover_get_supported_protocols(void)
     "Desc=1-2 "
     "DirCache=1 "
     "HSDir=1 "
-    "HSMid=1 "
+    "HSIntro=3 "
+    "HSRend=1-2 "
     "Link=1-4 "
     "LinkAuth=1 "
     "Microdesc=1-2 "
@@ -674,15 +676,22 @@ protover_compute_for_old_tor(const char *version)
                             FIRST_TOR_VERSION_TO_ADVERTISE_PROTOCOLS)) {
     return "";
   } else if (tor_version_as_new_as(version, "0.2.7.5")) {
+    /* 0.2.9.1-alpha HSRend=2 */
+    return "Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 "
+      "Link=1-4 LinkAuth=1 "
+      "Microdesc=1-2 Relay=1-2";
+  } else if (tor_version_as_new_as(version, "0.2.7.5")) {
     /* 0.2.7-stable added Desc=2, Microdesc=2, Cons=2, which indicate
      * ed25519 support.  We'll call them present only in "stable" 027,
      * though. */
-    return "Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSMid=1 Link=1-4 LinkAuth=1 "
+    return "Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 "
+      "Link=1-4 LinkAuth=1 "
       "Microdesc=1-2 Relay=1-2";
   } else if (tor_version_as_new_as(version, "0.2.4.19")) {
     /* No currently supported Tor server versions are older than this, or
      * lack these protocols. */
-    return "Cons=1 Desc=1 DirCache=1 HSDir=1 HSMid=1 Link=1-4 LinkAuth=1 "
+    return "Cons=1 Desc=1 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 "
+      "Link=1-4 LinkAuth=1 "
       "Microdesc=1 Relay=1-2";
   } else {
     /* Cannot infer protocols. */
diff --git a/src/or/protover.h b/src/or/protover.h
index 5f4789d..075405e 100644
--- a/src/or/protover.h
+++ b/src/or/protover.h
@@ -15,9 +15,10 @@ typedef enum protocol_type_t {
   PRT_LINK,
   PRT_LINKAUTH,
   PRT_RELAY,
-  PRT_HSMID,
   PRT_DIRCACHE,
   PRT_HSDIR,
+  PRT_HSINTRO,
+  PRT_HSREND,
   PRT_DESC,
   PRT_MICRODESC,
   PRT_CONS,





More information about the tor-commits mailing list