crypt_path_t Struct Reference

#include <or.h>


Data Fields

uint32_t magic
crypto_cipher_env_tf_crypto
crypto_cipher_env_tb_crypto
crypto_digest_env_tf_digest
crypto_digest_env_tb_digest
crypto_dh_env_tdh_handshake_state
char fast_handshake_state [DIGEST_LEN]
char handshake_digest [DIGEST_LEN]
extend_info_textend_info
uint8_t state
struct crypt_path_tnext
struct crypt_path_tprev
int package_window
int deliver_window


Detailed Description

Holds accounting information for a single step in the layered encryption performed by a circuit. Used only at the client edge of a circuit.

Field Documentation

Encryption key and counter for cells heading towards the OR at this step.

Referenced by assert_cpath_layer_ok(), circuit_free_cpath_node(), circuit_init_cpath_crypto(), circuit_package_relay_cell(), and onionskin_answer().

Encryption key and counter for cells heading back from the OR at this step.

Referenced by assert_cpath_layer_ok(), circuit_free_cpath_node(), circuit_init_cpath_crypto(), onionskin_answer(), and relay_crypt().

Digest state for cells heading towards the OR at this step.

Referenced by circuit_free_cpath_node(), circuit_init_cpath_crypto(), circuit_package_relay_cell(), and onionskin_answer().

Digest state for cells heading away from the OR at this step.

Referenced by circuit_free_cpath_node(), circuit_init_cpath_crypto(), onionskin_answer(), and relay_crypt().

Current state of 'fast' (non-PK) key negotiation with the OR at this step. Used to save CPU when TLS is already providing all the authentication, secrecy, and integrity we need, and we're already distinguishable from an OR.

Referenced by circuit_finish_handshake(), and circuit_send_next_onion_skin().

Negotiated key material shared with the OR at this step.

Referenced by circuit_finish_handshake(), rend_service_intro_has_opened(), rend_service_introduce(), and rend_service_rendezvous_has_opened().

Is the circuit built to this step? Must be one of:

  • CPATH_STATE_CLOSED (The circuit has not been extended to this step)
  • CPATH_STATE_AWAITING_KEYS (We have sent an EXTEND/CREATE to this step and not received an EXTENDED/CREATED)
  • CPATH_STATE_OPEN (The circuit has been extended to this step)

Referenced by assert_cpath_layer_ok(), assert_cpath_ok(), circuit_build_failed(), circuit_expire_building(), circuit_finish_handshake(), circuit_list_path_impl(), circuit_rep_hist_note_result(), circuit_send_next_onion_skin(), link_apconn_to_circ(), onion_append_hop(), onion_next_hop_in_cpath(), relay_crypt(), rend_client_receive_rendezvous(), and rend_service_rendezvous_has_opened().


The documentation for this struct was generated from the following file:

Generated on Tue May 25 00:31:10 2010 for tor by  doxygen 1.5.6