20#define CRYPT_PATH_PRIVATE
45 new_hop->
next = (*head_ptr);
48 (*head_ptr)->
prev = new_hop;
51 new_hop->
prev = new_hop->
next = new_hop;
66 hop->magic = CRYPT_PATH_MAGIC;
67 hop->
state = CPATH_STATE_CLOSED;
92 if (cp->
state == CPATH_STATE_AWAITING_KEYS) {
94 }
else if (cp->
state == CPATH_STATE_OPEN) {
100 }
while (cp != start);
115 case CPATH_STATE_OPEN:
118 case CPATH_STATE_CLOSED:
120 case CPATH_STATE_AWAITING_KEYS:
150 const char *key_data,
size_t key_data_len)
192 if (hop->
state != CPATH_STATE_OPEN)
195 }
while (hop != cpath);
205 unsigned int n_hops = 0;
216 }
while (tmp != *head_ptr);
Fixed-size cell structure.
Header file for circuitbuild.c.
int32_t circuit_initial_package_window(void)
Header file for circuitlist.c.
Public APIs for congestion control.
#define congestion_control_free(cc)
crypt_path_t * cpath_get_next_non_open_hop(crypt_path_t *cpath)
int cpath_append_hop(crypt_path_t **head_ptr, extend_info_t *choice)
void cpath_assert_layer_ok(const crypt_path_t *cp)
int cpath_init_circuit_crypto(relay_crypto_alg_t alg, crypt_path_t *cpath, const char *key_data, size_t key_data_len)
void cpath_assert_ok(const crypt_path_t *cp)
const uint8_t * cpath_get_sendme_tag(crypt_path_t *cpath, size_t *len_out)
void cpath_extend_linked_list(crypt_path_t **head_ptr, crypt_path_t *new_hop)
void cpath_free(crypt_path_t *victim)
Header file for crypt_path.c.
Path structures for origin circuits.
void memwipe(void *mem, uint8_t byte, size_t sz)
Common functions for cryptographic routines.
extend_info_t * extend_info_dup(extend_info_t *info)
Header for core/or/extendinfo.c.
#define log_fn(severity, domain, args,...)
void onion_handshake_state_release(onion_handshake_state_t *state)
Header file for onion_crypto.c.
Master header file for Tor-specific functionality.
Header for relay_crypto.c.
int relay_crypto_init(relay_crypto_alg_t alg, relay_crypto_t *crypto, const char *key_data, size_t key_data_len)
void relay_crypto_assert_ok(const relay_crypto_t *crypto)
const uint8_t * relay_crypto_get_sendme_tag(relay_crypto_t *crypto, size_t *len_out)
void relay_crypto_clear(relay_crypto_t *crypto)
struct crypt_path_t * prev
struct crypt_path_t * next
relay_cell_fmt_t relay_cell_format
extend_info_t * extend_info
onion_handshake_state_t handshake_state
struct congestion_control_t * ccontrol