Tor 0.4.9.3-alpha-dev
Loading...
Searching...
No Matches
Data Fields
hs_service_descriptor_t Struct Reference

#include <hs_service.h>

Data Fields

curve25519_keypair_t auth_ephemeral_kp
 
uint8_t descriptor_cookie [HS_DESC_DESCRIPTOR_COOKIE_LEN]
 
ed25519_keypair_t signing_kp
 
ed25519_keypair_t blinded_kp
 
uint64_t time_period_num
 
struct crypto_ope_tope_cipher
 
hs_descriptor_tdesc
 
time_t next_upload_time
 
hs_service_intropoints_t intro_points
 
unsigned int missing_intro_points: 1
 
smartlist_tprevious_hsdirs
 

Detailed Description

Representation of a service descriptor.

Some elements of the descriptor are mutable whereas others are immutable:

Immutable elements are initialized once when the descriptor is built (when service descriptors gets rotated). This means that these elements are initialized once and then they don't change for the lifetime of the descriptor. See build_service_descriptor().

Mutable elements are initialized when we build the descriptor but they are also altered during the lifetime of the descriptor. They could be refreshed every time we upload the descriptor (which happens multiple times over the lifetime of the descriptor), or through periodic events. We do this for elements like the descriptor revision counter and various certificates. See refresh_service_descriptor() and update_service_descriptor_intro_points().

Definition at line 139 of file hs_service.h.

Field Documentation

◆ auth_ephemeral_kp

curve25519_keypair_t auth_ephemeral_kp

Immutable: Client authorization ephemeral keypair.

Definition at line 141 of file hs_service.h.

Referenced by build_service_desc_keys(), and build_service_desc_superencrypted().

◆ blinded_kp

ed25519_keypair_t blinded_kp

◆ desc

◆ descriptor_cookie

uint8_t descriptor_cookie[HS_DESC_DESCRIPTOR_COOKIE_LEN]

Immutable: Descriptor cookie used to encrypt the descriptor, when the client authorization is enabled

Definition at line 145 of file hs_service.h.

Referenced by build_service_desc_keys(), build_service_desc_superencrypted(), and service_encode_descriptor().

◆ intro_points

◆ missing_intro_points

unsigned int missing_intro_points

Mutable: True iff we have missing intro points for this descriptor because we couldn't pick any nodes.

Definition at line 176 of file hs_service.h.

Referenced by pick_needed_intro_points(), should_service_upload_descriptor(), and update_service_descriptor_intro_points().

◆ next_upload_time

time_t next_upload_time

Mutable: When is the next time when we should upload the descriptor.

Definition at line 167 of file hs_service.h.

Referenced by service_desc_schedule_upload(), should_service_upload_descriptor(), and upload_descriptor_to_all().

◆ ope_cipher

struct crypto_ope_t* ope_cipher

Immutable: The OPE cipher for encrypting revision counters for this descriptor. Tied to the descriptor blinded key.

Definition at line 160 of file hs_service.h.

Referenced by build_service_desc_keys(), service_descriptor_free_(), and set_descriptor_revision_counter().

◆ previous_hsdirs

smartlist_t* previous_hsdirs

Mutable: List of the responsible HSDirs (their b64ed identity digest) last time we uploaded this descriptor. If the set of responsible HSDirs is different from this list, this means we received new dirinfo and we need to reupload our descriptor.

Definition at line 182 of file hs_service.h.

Referenced by service_desc_clear_previous_hsdirs(), service_desc_hsdirs_changed(), service_desc_note_upload(), service_descriptor_free_(), and service_descriptor_new().

◆ signing_kp

ed25519_keypair_t signing_kp

◆ time_period_num

uint64_t time_period_num

Immutable: The time period number this descriptor has been created for.

Definition at line 156 of file hs_service.h.

Referenced by build_service_desc_keys(), build_service_descriptor(), service_desc_hsdirs_changed(), set_descriptor_revision_counter(), and upload_descriptor_to_all().


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