Tor
0.4.7.0-alpha-dev
|
#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_t * | ope_cipher |
hs_descriptor_t * | desc |
time_t | next_upload_time |
hs_service_intropoints_t | intro_points |
unsigned int | missing_intro_points: 1 |
smartlist_t * | previous_hsdirs |
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 130 of file hs_service.h.
curve25519_keypair_t auth_ephemeral_kp |
Immutable: Client authorization ephemeral keypair.
Definition at line 132 of file hs_service.h.
ed25519_keypair_t blinded_kp |
Immutable: Blinded keypair derived from the master identity public key.
Definition at line 143 of file hs_service.h.
Referenced by build_service_desc_keys(), build_service_desc_plaintext(), and upload_descriptor_to_all().
hs_descriptor_t* desc |
Mutable: Decoded descriptor. This object is used for encoding when the service publishes the descriptor.
Definition at line 155 of file hs_service.h.
Referenced by build_desc_intro_points(), build_desc_signing_key_cert(), build_service_desc_encrypted(), build_service_desc_plaintext(), build_service_desc_superencrypted(), service_encode_descriptor(), and update_service_descriptor_intro_points().
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 136 of file hs_service.h.
Referenced by service_encode_descriptor().
hs_service_intropoints_t intro_points |
Mutable: Introduction points assign to this descriptor which contains hs_service_intropoints_t object indexed by authentication key (the RSA key if the node is legacy).
Definition at line 163 of file hs_service.h.
Referenced by pick_needed_intro_points(), rotate_service_descriptors(), setup_intro_point_exclude_list(), should_service_upload_descriptor(), and update_service_descriptor_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 167 of file hs_service.h.
Referenced by should_service_upload_descriptor().
time_t next_upload_time |
Mutable: When is the next time when we should upload the descriptor.
Definition at line 158 of file hs_service.h.
Referenced by service_desc_schedule_upload().
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 151 of file hs_service.h.
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 173 of file hs_service.h.
Referenced by service_desc_hsdirs_changed().
ed25519_keypair_t signing_kp |
Immutable: Descriptor signing keypair.
Definition at line 139 of file hs_service.h.
Referenced by build_service_desc_plaintext(), and hs_service_lookup_current_desc().
uint64_t time_period_num |
Immutable: The time period number this descriptor has been created for.
Definition at line 147 of file hs_service.h.
Referenced by build_service_desc_keys(), build_service_descriptor(), and upload_descriptor_to_all().