Data Structures | Macros | Typedefs | Enumerations | Functions
hs_ident.h File Reference
#include "lib/crypt_ops/crypto_ed25519.h"
#include "feature/hs/hs_common.h"

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


#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))


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


enum  hs_ident_circuit_type_t { HS_IDENT_CIRCUIT_INTRO = 1, HS_IDENT_CIRCUIT_RENDEZVOUS = 2 }


hs_ident_circuit_ths_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_ths_ident_circuit_dup (const hs_ident_circuit_t *src)
hs_ident_dir_conn_ths_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_ths_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)

Detailed Description

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.

Definition in file hs_ident.h.