mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
Merge branch 'tor-github/pr/1258'
This commit is contained in:
commit
92a8573d22
6
changes/bug31490
Normal file
6
changes/bug31490
Normal file
@ -0,0 +1,6 @@
|
||||
o Minor bugfixes (onion services):
|
||||
- In the hs_ident_circuit_t data structure, remove the unused field
|
||||
circuit_type and the respective argument in hs_ident_circuit_new().
|
||||
This field is set by clients (for introduction) and services (for
|
||||
introduction and rendezvous) but is never used afterwards. Fixes
|
||||
bug 31490; bugfix on 0.3.2.1-alpha. Patch by Neel Chauhan.
|
@ -2533,8 +2533,7 @@ circuit_get_open_circ_or_launch(entry_connection_t *conn,
|
||||
circ->rend_data = rend_data_dup(edge_conn->rend_data);
|
||||
} else if (edge_conn->hs_ident) {
|
||||
circ->hs_ident =
|
||||
hs_ident_circuit_new(&edge_conn->hs_ident->identity_pk,
|
||||
HS_IDENT_CIRCUIT_INTRO);
|
||||
hs_ident_circuit_new(&edge_conn->hs_ident->identity_pk);
|
||||
}
|
||||
if (circ->base_.purpose == CIRCUIT_PURPOSE_C_ESTABLISH_REND &&
|
||||
circ->base_.state == CIRCUIT_STATE_OPEN)
|
||||
|
@ -259,8 +259,7 @@ create_rp_circuit_identifier(const hs_service_t *service,
|
||||
tor_assert(server_pk);
|
||||
tor_assert(keys);
|
||||
|
||||
ident = hs_ident_circuit_new(&service->keys.identity_pk,
|
||||
HS_IDENT_CIRCUIT_RENDEZVOUS);
|
||||
ident = hs_ident_circuit_new(&service->keys.identity_pk);
|
||||
/* Copy the RENDEZVOUS_COOKIE which is the unique identifier. */
|
||||
memcpy(ident->rendezvous_cookie, rendezvous_cookie,
|
||||
sizeof(ident->rendezvous_cookie));
|
||||
@ -294,8 +293,7 @@ create_intro_circuit_identifier(const hs_service_t *service,
|
||||
tor_assert(service);
|
||||
tor_assert(ip);
|
||||
|
||||
ident = hs_ident_circuit_new(&service->keys.identity_pk,
|
||||
HS_IDENT_CIRCUIT_INTRO);
|
||||
ident = hs_ident_circuit_new(&service->keys.identity_pk);
|
||||
ed25519_pubkey_copy(&ident->intro_auth_pk, &ip->auth_key_kp.pubkey);
|
||||
|
||||
return ident;
|
||||
|
@ -13,14 +13,10 @@
|
||||
/* Return a newly allocated circuit identifier. The given public key is copied
|
||||
* identity_pk into the identifier. */
|
||||
hs_ident_circuit_t *
|
||||
hs_ident_circuit_new(const ed25519_public_key_t *identity_pk,
|
||||
hs_ident_circuit_type_t circuit_type)
|
||||
hs_ident_circuit_new(const ed25519_public_key_t *identity_pk)
|
||||
{
|
||||
tor_assert(circuit_type == HS_IDENT_CIRCUIT_INTRO ||
|
||||
circuit_type == HS_IDENT_CIRCUIT_RENDEZVOUS);
|
||||
hs_ident_circuit_t *ident = tor_malloc_zero(sizeof(*ident));
|
||||
ed25519_pubkey_copy(&ident->identity_pk, identity_pk);
|
||||
ident->circuit_type = circuit_type;
|
||||
return ident;
|
||||
}
|
||||
|
||||
|
@ -44,13 +44,6 @@ typedef struct hs_ident_circuit_t {
|
||||
* the one found in the onion address. */
|
||||
ed25519_public_key_t identity_pk;
|
||||
|
||||
/* (All circuit) The type of circuit this identifier is attached to.
|
||||
* Accessors of the fields in this object assert non fatal on this circuit
|
||||
* type. In other words, if a rendezvous field is being accessed, the
|
||||
* circuit type MUST BE of type HS_IDENT_CIRCUIT_RENDEZVOUS. This value is
|
||||
* set when an object is initialized in its constructor. */
|
||||
hs_ident_circuit_type_t circuit_type;
|
||||
|
||||
/* (All circuit) Introduction point authentication key. It's also needed on
|
||||
* the rendezvous circuit for the ntor handshake. It's used as the unique key
|
||||
* of the introduction point so it should not be shared between multiple
|
||||
@ -120,8 +113,7 @@ typedef struct hs_ident_edge_conn_t {
|
||||
|
||||
/* Circuit identifier API. */
|
||||
hs_ident_circuit_t *hs_ident_circuit_new(
|
||||
const ed25519_public_key_t *identity_pk,
|
||||
hs_ident_circuit_type_t circuit_type);
|
||||
const ed25519_public_key_t *identity_pk);
|
||||
void hs_ident_circuit_free_(hs_ident_circuit_t *ident);
|
||||
#define hs_ident_circuit_free(id) \
|
||||
FREE_AND_NULL(hs_ident_circuit_t, hs_ident_circuit_free_, (id))
|
||||
|
@ -160,8 +160,7 @@ helper_get_circ_and_stream_for_test(origin_circuit_t **circ_out,
|
||||
or_circ->rend_data = rend_data_dup(conn_rend_data);
|
||||
} else {
|
||||
/* prop224: Setup hs ident on the circuit */
|
||||
or_circ->hs_ident = hs_ident_circuit_new(&service_pk,
|
||||
HS_IDENT_CIRCUIT_RENDEZVOUS);
|
||||
or_circ->hs_ident = hs_ident_circuit_new(&service_pk);
|
||||
}
|
||||
|
||||
TO_CIRCUIT(or_circ)->state = CIRCUIT_STATE_OPEN;
|
||||
@ -964,8 +963,7 @@ test_close_intro_circuits_new_desc(void *arg)
|
||||
const hs_desc_intro_point_t *ip =
|
||||
smartlist_get(desc1->encrypted_data.intro_points, 0);
|
||||
tt_assert(ip);
|
||||
ocirc->hs_ident = hs_ident_circuit_new(&service_kp.pubkey,
|
||||
HS_IDENT_CIRCUIT_INTRO);
|
||||
ocirc->hs_ident = hs_ident_circuit_new(&service_kp.pubkey);
|
||||
ed25519_pubkey_copy(ô->hs_ident->intro_auth_pk,
|
||||
&ip->auth_key_cert->signed_key);
|
||||
}
|
||||
@ -1066,8 +1064,7 @@ test_close_intro_circuits_cache_clean(void *arg)
|
||||
const hs_desc_intro_point_t *ip =
|
||||
smartlist_get(desc1->encrypted_data.intro_points, 0);
|
||||
tt_assert(ip);
|
||||
ocirc->hs_ident = hs_ident_circuit_new(&service_kp.pubkey,
|
||||
HS_IDENT_CIRCUIT_INTRO);
|
||||
ocirc->hs_ident = hs_ident_circuit_new(&service_kp.pubkey);
|
||||
ed25519_pubkey_copy(ô->hs_ident->intro_auth_pk,
|
||||
&ip->auth_key_cert->signed_key);
|
||||
}
|
||||
|
@ -171,8 +171,7 @@ test_e2e_rend_circuit_setup(void *arg)
|
||||
tt_int_op(0, OP_EQ, ed25519_secret_key_generate(&sk, 0));
|
||||
tt_int_op(0, OP_EQ, ed25519_public_key_generate(&service_pk, &sk));
|
||||
|
||||
or_circ->hs_ident = hs_ident_circuit_new(&service_pk,
|
||||
HS_IDENT_CIRCUIT_RENDEZVOUS);
|
||||
or_circ->hs_ident = hs_ident_circuit_new(&service_pk);
|
||||
|
||||
TO_CIRCUIT(or_circ)->state = CIRCUIT_STATE_OPEN;
|
||||
}
|
||||
@ -1105,8 +1104,7 @@ test_closing_intro_circs(void *arg)
|
||||
|
||||
/* Initialize intro circuit */
|
||||
intro_circ = origin_circuit_init(CIRCUIT_PURPOSE_S_ESTABLISH_INTRO, flags);
|
||||
intro_circ->hs_ident = hs_ident_circuit_new(&service->keys.identity_pk,
|
||||
HS_IDENT_CIRCUIT_INTRO);
|
||||
intro_circ->hs_ident = hs_ident_circuit_new(&service->keys.identity_pk);
|
||||
/* Register circuit in the circuitmap . */
|
||||
hs_circuitmap_register_intro_circ_v3_service_side(intro_circ,
|
||||
&ip->auth_key_kp.pubkey);
|
||||
@ -1132,8 +1130,7 @@ test_closing_intro_circs(void *arg)
|
||||
/* Now pretend that a new intro point circ was launched and opened. Check
|
||||
* that the intro point will be established correctly. */
|
||||
intro_circ = origin_circuit_init(CIRCUIT_PURPOSE_S_ESTABLISH_INTRO, flags);
|
||||
intro_circ->hs_ident = hs_ident_circuit_new(&service->keys.identity_pk,
|
||||
HS_IDENT_CIRCUIT_INTRO);
|
||||
intro_circ->hs_ident = hs_ident_circuit_new(&service->keys.identity_pk);
|
||||
ed25519_pubkey_copy(&intro_circ->hs_ident->intro_auth_pk,
|
||||
&ip->auth_key_kp.pubkey);
|
||||
/* Register circuit in the circuitmap . */
|
||||
|
Loading…
Reference in New Issue
Block a user