tor  0.4.1.0-alpha-dev
Macros | Functions
hs_circuit.c File Reference
#include "core/or/or.h"
#include "app/config/config.h"
#include "core/crypto/hs_ntor.h"
#include "core/or/circuitbuild.h"
#include "core/or/circuitlist.h"
#include "core/or/circuituse.h"
#include "core/or/policies.h"
#include "core/or/relay.h"
#include "feature/client/circpathbias.h"
#include "feature/hs/hs_cell.h"
#include "feature/hs/hs_circuit.h"
#include "feature/hs/hs_circuitmap.h"
#include "feature/hs/hs_ident.h"
#include "feature/hs/hs_service.h"
#include "feature/nodelist/describe.h"
#include "feature/nodelist/nodelist.h"
#include "feature/rend/rendservice.h"
#include "feature/stats/rephist.h"
#include "lib/crypt_ops/crypto_dh.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
#include "trunnel/ed25519_cert.h"
#include "trunnel/hs/cell_common.h"
#include "trunnel/hs/cell_establish_intro.h"
#include "core/or/cpath_build_state_st.h"
#include "core/or/crypt_path_st.h"
#include "feature/nodelist/node_st.h"
#include "core/or/origin_circuit_st.h"

Go to the source code of this file.

Functions

static int circuit_purpose_is_correct_for_rend (unsigned int circ_purpose, int is_service_side)
 
static crypt_path_tcreate_rend_cpath (const uint8_t *ntor_key_seed, size_t seed_len, int is_service_side)
 
static crypt_path_tcreate_rend_cpath_legacy (origin_circuit_t *circ, const uint8_t *rend_cell_body)
 
static void finalize_rend_circuit (origin_circuit_t *circ, crypt_path_t *hop, int is_service_side)
 
static void register_intro_circ (const hs_service_intro_point_t *ip, origin_circuit_t *circ)
 
static unsigned int count_opened_desc_intro_point_circuits (const hs_service_t *service, const hs_service_descriptor_t *desc)
 
STATIC hs_ident_circuit_tcreate_rp_circuit_identifier (const hs_service_t *service, const uint8_t *rendezvous_cookie, const curve25519_public_key_t *server_pk, const hs_ntor_rend_cell_keys_t *keys)
 
static hs_ident_circuit_tcreate_intro_circuit_identifier (const hs_service_t *service, const hs_service_intro_point_t *ip)
 
static void send_establish_intro (const hs_service_t *service, hs_service_intro_point_t *ip, origin_circuit_t *circ)
 
static const char * get_service_anonymity_string (const hs_service_t *service)
 
static void launch_rendezvous_point_circuit (const hs_service_t *service, const hs_service_intro_point_t *ip, const hs_cell_introduce2_data_t *data)
 
static int can_relaunch_service_rendezvous_point (const origin_circuit_t *circ)
 
static void retry_service_rendezvous_point (const origin_circuit_t *circ)
 
static int setup_introduce1_data (const hs_desc_intro_point_t *ip, const node_t *rp_node, const uint8_t *subcredential, hs_cell_introduce1_data_t *intro1_data)
 
origin_circuit_ths_circ_service_get_intro_circ (const hs_service_intro_point_t *ip)
 
void hs_circ_retry_service_rendezvous_point (origin_circuit_t *circ)
 
int hs_circ_launch_intro_point (hs_service_t *service, const hs_service_intro_point_t *ip, extend_info_t *ei)
 
int hs_circ_service_intro_has_opened (hs_service_t *service, hs_service_intro_point_t *ip, const hs_service_descriptor_t *desc, origin_circuit_t *circ)
 
void hs_circ_service_rp_has_opened (const hs_service_t *service, origin_circuit_t *circ)
 
int hs_circ_handle_intro_established (const hs_service_t *service, const hs_service_intro_point_t *ip, origin_circuit_t *circ, const uint8_t *payload, size_t payload_len)
 
int hs_circ_handle_introduce2 (const hs_service_t *service, const origin_circuit_t *circ, hs_service_intro_point_t *ip, const uint8_t *subcredential, const uint8_t *payload, size_t payload_len)
 
int hs_circuit_setup_e2e_rend_circ (origin_circuit_t *circ, const uint8_t *ntor_key_seed, size_t seed_len, int is_service_side)
 
int hs_circuit_setup_e2e_rend_circ_legacy_client (origin_circuit_t *circ, const uint8_t *rend_cell_body)
 
int hs_circ_send_introduce1 (origin_circuit_t *intro_circ, origin_circuit_t *rend_circ, const hs_desc_intro_point_t *ip, const uint8_t *subcredential)
 
int hs_circ_send_establish_rendezvous (origin_circuit_t *circ)
 
void hs_circ_cleanup (circuit_t *circ)