tor
master
|
Header file containing circuit and connection identifier data for the whole HS subsytem. More...
Go to the source code of this file.
Data Structures | |
struct | hs_ident_circuit_t |
struct | hs_ident_dir_conn_t |
struct | hs_ident_edge_conn_t |
Macros | |
#define | HS_REND_COOKIE_LEN DIGEST_LEN |
#define | hs_ident_circuit_free(id) FREE_AND_NULL(hs_ident_circuit_t, hs_ident_circuit_free_, (id)) |
#define | hs_ident_dir_conn_free(id) FREE_AND_NULL(hs_ident_dir_conn_t, hs_ident_dir_conn_free_, (id)) |
#define | hs_ident_edge_conn_free(id) FREE_AND_NULL(hs_ident_edge_conn_t, hs_ident_edge_conn_free_, (id)) |
Typedefs | |
typedef struct hs_ident_circuit_t | hs_ident_circuit_t |
typedef struct hs_ident_dir_conn_t | hs_ident_dir_conn_t |
typedef struct hs_ident_edge_conn_t | hs_ident_edge_conn_t |
Enumerations | |
enum | hs_ident_circuit_type_t { HS_IDENT_CIRCUIT_INTRO = 1, HS_IDENT_CIRCUIT_RENDEZVOUS = 2 } |
Functions | |
hs_ident_circuit_t * | hs_ident_circuit_new (const ed25519_public_key_t *identity_pk, hs_ident_circuit_type_t circuit_type) |
void | hs_ident_circuit_free_ (hs_ident_circuit_t *ident) |
hs_ident_circuit_t * | hs_ident_circuit_dup (const hs_ident_circuit_t *src) |
hs_ident_dir_conn_t * | hs_ident_dir_conn_dup (const hs_ident_dir_conn_t *src) |
void | hs_ident_dir_conn_free_ (hs_ident_dir_conn_t *ident) |
void | hs_ident_dir_conn_init (const ed25519_public_key_t *identity_pk, const ed25519_public_key_t *blinded_pk, hs_ident_dir_conn_t *ident) |
hs_ident_edge_conn_t * | hs_ident_edge_conn_new (const ed25519_public_key_t *identity_pk) |
void | hs_ident_edge_conn_free_ (hs_ident_edge_conn_t *ident) |
int | hs_ident_intro_circ_is_valid (const hs_ident_circuit_t *ident) |
Header file containing circuit and connection identifier data for the whole HS subsytem.
This interface is used to uniquely identify a hidden service on a circuit or connection using the service identity public key. Once the circuit or connection subsystem calls in the hidden service one, we use those identifiers to lookup the corresponding objects like service, intro point and descriptor.
Furthermore, the circuit identifier holds cryptographic material needed for the e2e encryption on the rendezvous circuit which is set once the rendezvous circuit has opened and ready to be used.