[tor-commits] [tor/master] hs: Remove last artefact of HSv2 in the code

dgoulet at torproject.org dgoulet at torproject.org
Fri Feb 19 21:22:23 UTC 2021


commit 8577243cd2d06a8a784fea97df00f7cc7363967f
Author: David Goulet <dgoulet at torproject.org>
Date:   Tue Feb 16 11:02:58 2021 -0500

    hs: Remove last artefact of HSv2 in the code
    
    Closes #40266
    
    Signed-off-by: David Goulet <dgoulet at torproject.org>
---
 src/core/or/circuituse.h          |  1 -
 src/core/or/or.h                  |  4 +++-
 src/feature/control/control_cmd.h |  2 --
 src/feature/hs/hs_client.c        | 10 ----------
 src/feature/hs/hs_common.c        | 21 ++++++++-------------
 src/feature/hs/hs_common.h        |  2 +-
 6 files changed, 12 insertions(+), 28 deletions(-)

diff --git a/src/core/or/circuituse.h b/src/core/or/circuituse.h
index 028fe4aa48..28e11b9859 100644
--- a/src/core/or/circuituse.h
+++ b/src/core/or/circuituse.h
@@ -76,7 +76,6 @@ bool circuit_purpose_is_hs_client(const uint8_t purpose);
 bool circuit_purpose_is_hs_service(const uint8_t purpose);
 bool circuit_purpose_is_hs_vanguards(const uint8_t purpose);
 
-bool circuit_is_hs_v2(const circuit_t *circ);
 bool circuit_is_hs_v3(const circuit_t *circ);
 
 int circuit_should_use_vanguards(uint8_t);
diff --git a/src/core/or/or.h b/src/core/or/or.h
index 294cff6603..6a15afb03a 100644
--- a/src/core/or/or.h
+++ b/src/core/or/or.h
@@ -328,7 +328,9 @@ struct curve25519_public_key_t;
  * passed through from a destroy or truncate cell. */
 #define END_CIRC_REASON_FLAG_REMOTE     512
 
-/** Length of v2 descriptor ID (32 base32 chars = 160 bits). */
+/** Length of v2 descriptor ID (32 base32 chars = 160 bits).
+ *
+ * XXX: It is still used by v3 code but should be renamed or maybe removed. */
 #define REND_DESC_ID_V2_LEN_BASE32 BASE32_DIGEST_LEN
 
 /** Maximum length of authorized client names for a hidden service. */
diff --git a/src/feature/control/control_cmd.h b/src/feature/control/control_cmd.h
index f21dc65edd..4aa3381d1a 100644
--- a/src/feature/control/control_cmd.h
+++ b/src/feature/control/control_cmd.h
@@ -82,8 +82,6 @@ typedef struct control_cmd_syntax_t {
  * multiple versions so this union stores the key and passes it to the HS
  * subsystem depending on the requested version. */
 typedef union add_onion_secret_key_t {
-  /* Hidden service v2 secret key. */
-  crypto_pk_t *v2;
   /* Hidden service v3 secret key. */
   ed25519_secret_key_t *v3;
 } add_onion_secret_key_t;
diff --git a/src/feature/hs/hs_client.c b/src/feature/hs/hs_client.c
index f1c17f4f90..8e15b09ba8 100644
--- a/src/feature/hs/hs_client.c
+++ b/src/feature/hs/hs_client.c
@@ -359,16 +359,6 @@ note_connection_attempt_succeeded(const hs_ident_edge_conn_t *hs_conn_ident)
   /* Remove from the hid serv cache all requests for that service so we can
    * query the HSDir again later on for various reasons. */
   purge_hid_serv_request(&hs_conn_ident->identity_pk);
-
-  /* The v2 subsystem cleans up the intro point time out flag at this stage.
-   * We don't try to do it here because we still need to keep intact the intro
-   * point state for future connections. Even though we are able to connect to
-   * the service, doesn't mean we should reset the timed out intro points.
-   *
-   * It is not possible to have successfully connected to an intro point
-   * present in our cache that was on error or timed out. Every entry in that
-   * cache have a 2 minutes lifetime so ultimately the intro point(s) state
-   * will be reset and thus possible to be retried. */
 }
 
 /** Given the pubkey of a hidden service in <b>onion_identity_pk</b>, fetch its
diff --git a/src/feature/hs/hs_common.c b/src/feature/hs/hs_common.c
index ae4a9cd970..f48d956bb2 100644
--- a/src/feature/hs/hs_common.c
+++ b/src/feature/hs/hs_common.c
@@ -5,8 +5,6 @@
  * \file hs_common.c
  * \brief Contains code shared between different HS protocol version as well
  *        as useful data structures and accessors used by other subsystems.
- *        The rendcommon.c should only contains code relating to the v2
- *        protocol.
  **/
 
 #define HS_COMMON_PRIVATE
@@ -638,7 +636,6 @@ hs_set_conn_addr_port(const smartlist_t *ports, edge_connection_t *conn)
   chosen_port = smartlist_choose(matching_ports);
   smartlist_free(matching_ports);
   if (chosen_port) {
-    /* Remember, v2 doesn't use an hs_ident. */
     if (conn->hs_ident) {
       /* There is always a connection identifier at this point. Regardless of a
        * Unix or TCP port, note the virtual port. */
@@ -1350,8 +1347,8 @@ hs_hsdir_requery_period(const or_options_t *options)
 
 /** Tracks requests for fetching hidden service descriptors. It's used by
  *  hidden service clients, to avoid querying HSDirs that have already failed
- *  giving back a descriptor. The same data structure is used to track both v2
- *  and v3 HS descriptor requests.
+ *  giving back a descriptor. The same data structure is used to track v3 HS
+ *  descriptor requests.
  *
  * The string map is a key/value store that contains the last request times to
  * hidden service directories for certain queries. Specifically:
@@ -1360,8 +1357,7 @@ hs_hsdir_requery_period(const or_options_t *options)
  *   value = time_t of last request for that hs_identity to that HSDir
  *
  * where 'hsdir_identity' is the identity digest of the HSDir node, and
- * 'hs_identity' is the descriptor ID of the HS in the v2 case, or the ed25519
- * blinded public key of the HS in the v3 case. */
+ * 'hs_identity' is the ed25519 blinded public key of the HS for v3. */
 static strmap_t *last_hid_serv_requests_ = NULL;
 
 /** Returns last_hid_serv_requests_, initializing it to a new strmap if
@@ -1375,10 +1371,10 @@ get_last_hid_serv_requests(void)
 }
 
 /** Look up the last request time to hidden service directory <b>hs_dir</b>
- * for descriptor request key <b>req_key_str</b> which is the descriptor ID
- * for a v2 service or the blinded key for v3. If <b>set</b> is non-zero,
- * assign the current time <b>now</b> and return that.  Otherwise, return the
- * most recent request time, or 0 if no such request has been sent before. */
+ * for descriptor request key <b>req_key_str</b> which is the blinded key for
+ * v3. If <b>set</b> is non-zero, assign the current time <b>now</b> and
+ * return that. Otherwise, return the most recent request time, or 0 if no
+ * such request has been sent before. */
 time_t
 hs_lookup_last_hid_serv_request(routerstatus_t *hs_dir,
                                 const char *req_key_str,
@@ -1460,8 +1456,7 @@ hs_purge_hid_serv_from_last_hid_serv_requests(const char *req_key_str)
      * check on the strings we are about to compare. The key is variable sized
      * since it's composed as follows:
      *   key = base32(hsdir_identity) + base32(req_key_str)
-     * where 'req_key_str' is the descriptor ID of the HS in the v2 case, or
-     * the ed25519 blinded public key of the HS in the v3 case. */
+     * where 'req_key_str' is the ed25519 blinded public key of the HS v3. */
     if (strlen(key) < REND_DESC_ID_V2_LEN_BASE32 + strlen(req_key_str)) {
       iter = strmap_iter_next(last_hid_serv_requests, iter);
       continue;
diff --git a/src/feature/hs/hs_common.h b/src/feature/hs/hs_common.h
index 5ddc6fd2d8..5eea800cb4 100644
--- a/src/feature/hs/hs_common.h
+++ b/src/feature/hs/hs_common.h
@@ -135,7 +135,7 @@ typedef enum {
 } hs_auth_key_type_t;
 
 /** Return value when adding an ephemeral service through the ADD_ONION
- * control port command. Both v2 and v3 share these. */
+ * control port command. */
 typedef enum {
   RSAE_BADAUTH     = -5, /**< Invalid auth_type/auth_clients */
   RSAE_BADVIRTPORT = -4, /**< Invalid VIRTPORT/TARGET(s) */





More information about the tor-commits mailing list