tor  master
Data Fields
crypt_path_t Struct Reference

#include <or.h>

Collaboration diagram for crypt_path_t:
Collaboration graph
[legend]

Data Fields

uint32_t magic
 
relay_crypto_t crypto
 
onion_handshake_state_t handshake_state
 
crypto_dh_trend_dh_handshake_state
 
char rend_circ_nonce [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

◆ crypto

Cryptographic state used for encrypting and authenticating relay cells to and from this hop.

◆ deliver_window

int deliver_window

How many cells are we willing to deliver originating at this step?

◆ extend_info

extend_info_t* extend_info

Information to extend to the OR at this step.

◆ handshake_state

onion_handshake_state_t handshake_state

Current state of the handshake as performed with the OR at this step.

◆ next

struct crypt_path_t* next

Link to next crypt_path_t in the circuit. (The list is circular, so the last node links to the first.)

◆ package_window

int package_window

How many cells are we allowed to originate ending at this step?

◆ prev

struct crypt_path_t* prev

Link to previous crypt_path_t in the circuit.

◆ rend_circ_nonce

char rend_circ_nonce[DIGEST_LEN]

Negotiated key material shared with the OR at this step.

◆ rend_dh_handshake_state

crypto_dh_t* rend_dh_handshake_state

Diffie-hellman handshake state for performing an introduction operations

◆ state

uint8_t state

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)

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