commit 8577243cd2d06a8a784fea97df00f7cc7363967f Author: David Goulet dgoulet@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@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) */
tor-commits@lists.torproject.org