|
Tor 0.4.9.3-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 139 of file hs_service.h.
| 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().
| ed25519_keypair_t blinded_kp |
Immutable: Blinded keypair derived from the master identity public key.
Definition at line 152 of file hs_service.h.
Referenced by build_desc_signing_key_cert(), build_service_desc_keys(), build_service_desc_plaintext(), build_service_descriptor(), close_directory_connections(), generate_ope_cipher_for_desc(), service_desc_hsdirs_changed(), service_descriptor_free_(), upload_descriptor_to_all(), and upload_descriptor_to_hsdir().
| hs_descriptor_t* desc |
Mutable: Decoded descriptor. This object is used for encoding when the service publishes the descriptor.
Definition at line 164 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(), compute_subcredentials(), move_descriptors(), pick_needed_intro_points(), service_descriptor_free_(), service_descriptor_new(), service_encode_descriptor(), service_handle_introduce2(), set_descriptor_revision_counter(), update_service_descriptor_intro_points(), and upload_descriptor_to_hsdir().
| 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().
| 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 172 of file hs_service.h.
Referenced by build_desc_intro_points(), count_desc_circuit_established(), count_opened_desc_intro_point_circuits(), pick_needed_intro_points(), remember_failing_intro_point(), rotate_service_descriptors(), service_descriptor_free_(), service_descriptor_new(), 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 176 of file hs_service.h.
Referenced by pick_needed_intro_points(), should_service_upload_descriptor(), and update_service_descriptor_intro_points().
| 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().
| 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().
| 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().
| ed25519_keypair_t signing_kp |
Immutable: Descriptor signing keypair.
Definition at line 148 of file hs_service.h.
Referenced by build_desc_intro_points(), build_desc_signing_key_cert(), build_service_desc_keys(), build_service_desc_plaintext(), build_service_descriptor(), hs_service_lookup_current_desc(), service_descriptor_free_(), and upload_descriptor_to_hsdir().
| 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().