diff options
Diffstat (limited to 'src/test/test_hs_intropoint.c')
-rw-r--r-- | src/test/test_hs_intropoint.c | 138 |
1 files changed, 1 insertions, 137 deletions
diff --git a/src/test/test_hs_intropoint.c b/src/test/test_hs_intropoint.c index e6b27d7a50..d18de775ae 100644 --- a/src/test/test_hs_intropoint.c +++ b/src/test/test_hs_intropoint.c @@ -21,7 +21,6 @@ #include "core/or/circuituse.h" #include "ht.h" #include "core/or/relay.h" -#include "feature/rend/rendservice.h" #include "feature/hs/hs_cell.h" #include "feature/hs/hs_circuitmap.h" @@ -517,42 +516,6 @@ helper_establish_intro_v3(or_circuit_t *intro_circ) return cell; } -/* Helper function: Send a well-formed v2 ESTABLISH_INTRO cell to - * <b>intro_circ</b>. Return the public key advertised in the cell. */ -static crypto_pk_t * -helper_establish_intro_v2(or_circuit_t *intro_circ) -{ - crypto_pk_t *key1 = NULL; - int retval; - uint8_t cell_body[RELAY_PAYLOAD_SIZE]; - ssize_t cell_len = 0; - char circ_nonce[DIGEST_LEN] = {0}; - - tt_assert(intro_circ); - - /* Prepare the circuit for the incoming ESTABLISH_INTRO */ - crypto_rand(circ_nonce, sizeof(circ_nonce)); - helper_prepare_circ_for_intro(intro_circ, circ_nonce); - - /* Send legacy establish_intro */ - key1 = pk_generate(0); - - /* Use old circ_nonce why not */ - cell_len = rend_service_encode_establish_intro_cell( - (char*)cell_body, - sizeof(cell_body), key1, - circ_nonce); - tt_int_op(cell_len, OP_GT, 0); - - /* Receive legacy establish_intro */ - retval = hs_intro_received_establish_intro(intro_circ, - cell_body, (size_t) cell_len); - tt_int_op(retval, OP_EQ, 0); - - done: - return key1; -} - /* Helper function: test circuitmap free_all function outside of * test_intro_point_registration to prevent Coverity from seeing a * double free if the assertion hypothetically fails. @@ -571,21 +534,17 @@ test_circuitmap_free_all(void) ; } -/** Successfully register a v2 intro point and a v3 intro point. Ensure that HS +/** Successfully register a v3 intro point. Ensure that HS * circuitmap is maintained properly. */ static void test_intro_point_registration(void *arg) { - int retval; hs_circuitmap_ht *the_hs_circuitmap = NULL; or_circuit_t *intro_circ = NULL; trn_cell_establish_intro_t *establish_intro_cell = NULL; ed25519_public_key_t auth_key; - crypto_pk_t *legacy_auth_key = NULL; - or_circuit_t *legacy_intro_circ = NULL; - or_circuit_t *returned_intro_circ = NULL; (void) arg; @@ -621,35 +580,11 @@ test_intro_point_registration(void *arg) tt_ptr_op(intro_circ, OP_EQ, returned_intro_circ); } - /* Create a v2 intro point */ - { - char key_digest[DIGEST_LEN]; - - legacy_intro_circ = or_circuit_new(1, NULL); - tt_assert(legacy_intro_circ); - legacy_auth_key = helper_establish_intro_v2(legacy_intro_circ); - tt_assert(legacy_auth_key); - - /* Check that the circuitmap now has two elements */ - the_hs_circuitmap = get_hs_circuitmap(); - tt_assert(the_hs_circuitmap); - tt_int_op(2, OP_EQ, HT_SIZE(the_hs_circuitmap)); - - /* Check that the new element is our legacy intro circuit. */ - retval = crypto_pk_get_digest(legacy_auth_key, key_digest); - tt_int_op(retval, OP_EQ, 0); - returned_intro_circ = - hs_circuitmap_get_intro_circ_v2_relay_side((uint8_t*)key_digest); - tt_ptr_op(legacy_intro_circ, OP_EQ, returned_intro_circ); - } - /* XXX Continue test and try to register a second v3 intro point with the * same auth key. Make sure that old intro circuit gets closed. */ done: - crypto_pk_free(legacy_auth_key); circuit_free_(TO_CIRCUIT(intro_circ)); - circuit_free_(TO_CIRCUIT(legacy_intro_circ)); trn_cell_establish_intro_free(establish_intro_cell); test_circuitmap_free_all(); @@ -720,31 +655,6 @@ test_introduce1_suitable_circuit(void *arg) } static void -test_introduce1_is_legacy(void *arg) -{ - int ret; - uint8_t request[256]; - - (void) arg; - - /* For a cell to be considered legacy, according to the specification, the - * first 20 bytes MUST BE non-zero else it's a v3 cell. */ - memset(request, 'a', DIGEST_LEN); - memset(request + DIGEST_LEN, 0, sizeof(request) - DIGEST_LEN); - ret = introduce1_cell_is_legacy(request); - tt_int_op(ret, OP_EQ, 1); - - /* This is a NON legacy cell. */ - memset(request, 0, DIGEST_LEN); - memset(request + DIGEST_LEN, 'a', sizeof(request) - DIGEST_LEN); - ret = introduce1_cell_is_legacy(request); - tt_int_op(ret, OP_EQ, 0); - - done: - ; -} - -static void test_introduce1_validation(void *arg) { int ret; @@ -757,20 +667,6 @@ test_introduce1_validation(void *arg) cell = helper_create_introduce1_cell(); tt_assert(cell); -#ifndef ALL_BUGS_ARE_FATAL - /* It should NOT be a legacy cell which will trigger a BUG(). */ - memset(cell->legacy_key_id, 'a', sizeof(cell->legacy_key_id)); - tor_capture_bugs_(1); - ret = validate_introduce1_parsed_cell(cell); - tor_end_capture_bugs_(); - tt_int_op(ret, OP_EQ, -1); -#endif /* !defined(ALL_BUGS_ARE_FATAL) */ - - /* Reset legacy ID and make sure it's correct. */ - memset(cell->legacy_key_id, 0, sizeof(cell->legacy_key_id)); - ret = validate_introduce1_parsed_cell(cell); - tt_int_op(ret, OP_EQ, 0); - /* Non existing auth key type. */ cell->auth_key_type = 42; ret = validate_introduce1_parsed_cell(cell); @@ -877,35 +773,6 @@ test_received_introduce1_handling(void *arg) tt_int_op(ret, OP_EQ, 0); } - /* Valid legacy cell. */ - { - tor_free(request); - trn_cell_introduce1_free(cell); - cell = helper_create_introduce1_cell(); - uint8_t *legacy_key_id = trn_cell_introduce1_getarray_legacy_key_id(cell); - memset(legacy_key_id, 'a', DIGEST_LEN); - /* Add an arbitrary amount of data for the payload of a v2 cell. */ - size_t request_len = trn_cell_introduce1_encoded_len(cell) + 256; - tt_size_op(request_len, OP_GT, 0); - request = tor_malloc_zero(request_len + 256); - ssize_t encoded_len = - trn_cell_introduce1_encode(request, request_len, cell); - tt_int_op((int)encoded_len, OP_GT, 0); - - circ = helper_create_intro_circuit(); - or_circuit_t *service_circ = helper_create_intro_circuit(); - circuit_change_purpose(TO_CIRCUIT(service_circ), - CIRCUIT_PURPOSE_INTRO_POINT); - /* Register the circuit in the map for the auth key of the cell. */ - uint8_t token[REND_TOKEN_LEN]; - memcpy(token, legacy_key_id, sizeof(token)); - hs_circuitmap_register_intro_circ_v2_relay_side(service_circ, token); - ret = hs_intro_received_introduce1(circ, request, request_len); - circuit_free_(TO_CIRCUIT(circ)); - circuit_free_(TO_CIRCUIT(service_circ)); - tt_int_op(ret, OP_EQ, 0); - } - done: trn_cell_introduce1_free(cell); tor_free(request); @@ -1109,9 +976,6 @@ struct testcase_t hs_intropoint_tests[] = { { "introduce1_suitable_circuit", test_introduce1_suitable_circuit, TT_FORK, NULL, &test_setup}, - { "introduce1_is_legacy", - test_introduce1_is_legacy, TT_FORK, NULL, &test_setup}, - { "introduce1_validation", test_introduce1_validation, TT_FORK, NULL, &test_setup}, |