[tor-commits] [tor/master] Remove MIN_METHOD_FOR_ED25519_ID_VOTING

nickm at torproject.org nickm at torproject.org
Mon Apr 23 00:01:16 UTC 2018


commit 73c9c16faab299b483716c1b8e76c433282d3d50
Author: Nick Mathewson <nickm at torproject.org>
Date:   Mon Apr 9 15:02:57 2018 -0400

    Remove MIN_METHOD_FOR_ED25519_ID_VOTING
    
    This also lets us remove the old rsa-based routerstatus collator.
---
 src/or/dircollate.c | 38 +++-----------------------------------
 src/or/dirvote.c    |  7 ++-----
 src/or/dirvote.h    |  4 ----
 3 files changed, 5 insertions(+), 44 deletions(-)

diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index ce4534ff6..dec6f7515 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -25,7 +25,6 @@
 #include "dircollate.h"
 #include "dirvote.h"
 
-static void dircollator_collate_by_rsa(dircollator_t *dc);
 static void dircollator_collate_by_ed25519(dircollator_t *dc);
 
 /** Hashtable entry mapping a pair of digests (actually an ed25519 key and an
@@ -208,49 +207,18 @@ dircollator_add_vote(dircollator_t *dc, networkstatus_t *v)
 void
 dircollator_collate(dircollator_t *dc, int consensus_method)
 {
+  (void) consensus_method;
+
   tor_assert(!dc->is_collated);
   dc->all_rsa_sha1_lst = smartlist_new();
 
-  if (consensus_method < MIN_METHOD_FOR_ED25519_ID_VOTING)
-    dircollator_collate_by_rsa(dc);
-  else
-    dircollator_collate_by_ed25519(dc);
+  dircollator_collate_by_ed25519(dc);
 
   smartlist_sort_digests(dc->all_rsa_sha1_lst);
   dc->is_collated = 1;
 }
 
 /**
- * Collation function for RSA-only consensuses: collate the votes for each
- * entry in <b>dc</b> by their RSA keys.
- *
- * The rule is:
- *    If an RSA identity key is listed by more than half of the authorities,
- *    include that identity, and treat all descriptors with that RSA identity
- *    as describing the same router.
- */
-static void
-dircollator_collate_by_rsa(dircollator_t *dc)
-{
-  const int total_authorities = dc->n_authorities;
-
-  DIGESTMAP_FOREACH(dc->by_rsa_sha1, k, vote_routerstatus_t **, vrs_lst) {
-    int n = 0, i;
-    for (i = 0; i < dc->n_votes; ++i) {
-      if (vrs_lst[i] != NULL)
-        ++n;
-    }
-
-    if (n <= total_authorities / 2)
-      continue;
-
-    smartlist_add(dc->all_rsa_sha1_lst, (char *)k);
-  } DIGESTMAP_FOREACH_END;
-
-  dc->by_collated_rsa_sha1 = dc->by_rsa_sha1;
-}
-
-/**
  * Collation function for ed25519 consensuses: collate the votes for each
  * entry in <b>dc</b> by ed25519 key and by RSA key.
  *
diff --git a/src/or/dirvote.c b/src/or/dirvote.c
index 80db32eb5..6b553083b 100644
--- a/src/or/dirvote.c
+++ b/src/or/dirvote.c
@@ -1455,8 +1455,7 @@ networkstatus_compute_consensus(smartlist_t *votes,
     smartlist_free(combined_server_versions);
     smartlist_free(combined_client_versions);
 
-    if (consensus_method >= MIN_METHOD_FOR_ED25519_ID_VOTING)
-      smartlist_add_strdup(flags, "NoEdConsensus");
+    smartlist_add_strdup(flags, "NoEdConsensus");
 
     smartlist_sort_strings(flags);
     smartlist_uniq_strings(flags);
@@ -1852,7 +1851,6 @@ networkstatus_compute_consensus(smartlist_t *votes,
         continue;
 
       if (ed_consensus > 0) {
-        tor_assert(consensus_method >= MIN_METHOD_FOR_ED25519_ID_VOTING);
         if (ed_consensus <= total_authorities / 2) {
           log_warn(LD_BUG, "Not enough entries had ed_consensus set; how "
                    "can we have a consensus of %d?", ed_consensus);
@@ -1910,8 +1908,7 @@ networkstatus_compute_consensus(smartlist_t *votes,
         } else if (!strcmp(fl, "Unnamed")) {
           if (is_unnamed)
             smartlist_add(chosen_flags, (char*)fl);
-        } else if (!strcmp(fl, "NoEdConsensus") &&
-                   consensus_method >= MIN_METHOD_FOR_ED25519_ID_VOTING) {
+        } else if (!strcmp(fl, "NoEdConsensus")) {
           if (ed_consensus <= total_authorities/2)
             smartlist_add(chosen_flags, (char*)fl);
         } else {
diff --git a/src/or/dirvote.h b/src/or/dirvote.h
index 14fa8e0ad..defcdf575 100644
--- a/src/or/dirvote.h
+++ b/src/or/dirvote.h
@@ -61,10 +61,6 @@
 /** The highest consensus method that we currently support. */
 #define MAX_SUPPORTED_CONSENSUS_METHOD 28
 
-/** Lowest consensus method where authorities vote on ed25519 ids and ensure
- * ed25519 id consistency. */
-#define MIN_METHOD_FOR_ED25519_ID_VOTING 22
-
 /** Lowest consensus method where authorities may include a shared random
  * value(s). */
 #define MIN_METHOD_FOR_SHARED_RANDOM 23





More information about the tor-commits mailing list