mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 05:33:47 +01:00
hs_ident.h: make comments into doxygen.
This commit is contained in:
parent
2ab5b7520e
commit
92b3f60ebc
@ -25,70 +25,71 @@
|
||||
|
||||
#include "feature/hs/hs_common.h"
|
||||
|
||||
/* Length of the rendezvous cookie that is used to connect circuits at the
|
||||
/** Length of the rendezvous cookie that is used to connect circuits at the
|
||||
* rendezvous point. */
|
||||
#define HS_REND_COOKIE_LEN DIGEST_LEN
|
||||
|
||||
/* Type of circuit an hs_ident_t object is associated with. */
|
||||
/** Type of circuit an hs_ident_t object is associated with. */
|
||||
typedef enum {
|
||||
HS_IDENT_CIRCUIT_INTRO = 1,
|
||||
HS_IDENT_CIRCUIT_RENDEZVOUS = 2,
|
||||
} hs_ident_circuit_type_t;
|
||||
|
||||
/* Client and service side circuit identifier that is used for hidden service
|
||||
/** Client and service side circuit identifier that is used for hidden service
|
||||
* circuit establishment. Not all fields contain data, it depends on the
|
||||
* circuit purpose. This is attached to an origin_circuit_t. All fields are
|
||||
* used by both client and service. */
|
||||
typedef struct hs_ident_circuit_t {
|
||||
/* (All circuit) The public key used to uniquely identify the service. It is
|
||||
/** (All circuit) The public key used to uniquely identify the service. It is
|
||||
* the one found in the onion address. */
|
||||
ed25519_public_key_t identity_pk;
|
||||
|
||||
/* (All circuit) Introduction point authentication key. It's also needed on
|
||||
/** (All circuit) Introduction point authentication key. It's also needed on
|
||||
* the rendezvous circuit for the ntor handshake. It's used as the unique key
|
||||
* of the introduction point so it should not be shared between multiple
|
||||
* intro points. */
|
||||
ed25519_public_key_t intro_auth_pk;
|
||||
|
||||
/* (Only client rendezvous circuit) Introduction point encryption public
|
||||
/** (Only client rendezvous circuit) Introduction point encryption public
|
||||
* key. We keep it in the rendezvous identifier for the ntor handshake. */
|
||||
curve25519_public_key_t intro_enc_pk;
|
||||
|
||||
/* (Only rendezvous circuit) Rendezvous cookie sent from the client to the
|
||||
/** (Only rendezvous circuit) Rendezvous cookie sent from the client to the
|
||||
* service with an INTRODUCE1 cell and used by the service in an
|
||||
* RENDEZVOUS1 cell. */
|
||||
uint8_t rendezvous_cookie[HS_REND_COOKIE_LEN];
|
||||
|
||||
/* (Only service rendezvous circuit) The HANDSHAKE_INFO needed in the
|
||||
/** (Only service rendezvous circuit) The HANDSHAKE_INFO needed in the
|
||||
* RENDEZVOUS1 cell of the service. The construction is as follows:
|
||||
* SERVER_PK [32 bytes]
|
||||
* AUTH_MAC [32 bytes]
|
||||
*
|
||||
* SERVER_PK [32 bytes]
|
||||
* AUTH_MAC [32 bytes]
|
||||
*/
|
||||
uint8_t rendezvous_handshake_info[CURVE25519_PUBKEY_LEN + DIGEST256_LEN];
|
||||
|
||||
/* (Only client rendezvous circuit) Client ephemeral keypair needed for the
|
||||
/** (Only client rendezvous circuit) Client ephemeral keypair needed for the
|
||||
* e2e encryption with the service. */
|
||||
curve25519_keypair_t rendezvous_client_kp;
|
||||
|
||||
/* (Only rendezvous circuit) The NTOR_KEY_SEED needed for key derivation for
|
||||
/** (Only rendezvous circuit) The NTOR_KEY_SEED needed for key derivation for
|
||||
* the e2e encryption with the client on the circuit. */
|
||||
uint8_t rendezvous_ntor_key_seed[DIGEST256_LEN];
|
||||
|
||||
/* (Only rendezvous circuit) Number of streams associated with this
|
||||
/** (Only rendezvous circuit) Number of streams associated with this
|
||||
* rendezvous circuit. We track this because there is a check on a maximum
|
||||
* value. */
|
||||
uint64_t num_rdv_streams;
|
||||
} hs_ident_circuit_t;
|
||||
|
||||
/* Client and service side directory connection identifier used for a
|
||||
/** Client and service side directory connection identifier used for a
|
||||
* directory connection to identify which service is being queried. This is
|
||||
* attached to a dir_connection_t. */
|
||||
typedef struct hs_ident_dir_conn_t {
|
||||
/* The public key used to uniquely identify the service. It is the one found
|
||||
/** The public key used to uniquely identify the service. It is the one found
|
||||
* in the onion address. */
|
||||
ed25519_public_key_t identity_pk;
|
||||
|
||||
/* The blinded public key used to uniquely identify the descriptor that this
|
||||
/** The blinded public key used to uniquely identify the descriptor that this
|
||||
* directory connection identifier is for. Only used by the service-side code
|
||||
* to fine control descriptor uploads. */
|
||||
ed25519_public_key_t blinded_pk;
|
||||
@ -96,15 +97,15 @@ typedef struct hs_ident_dir_conn_t {
|
||||
/* XXX: Client authorization. */
|
||||
} hs_ident_dir_conn_t;
|
||||
|
||||
/* Client and service side edge connection identifier used for an edge
|
||||
/** Client and service side edge connection identifier used for an edge
|
||||
* connection to identify which service is being queried. This is attached to
|
||||
* a edge_connection_t. */
|
||||
typedef struct hs_ident_edge_conn_t {
|
||||
/* The public key used to uniquely identify the service. It is the one found
|
||||
/** The public key used to uniquely identify the service. It is the one found
|
||||
* in the onion address. */
|
||||
ed25519_public_key_t identity_pk;
|
||||
|
||||
/* The original virtual port that was used by the client to access the onion
|
||||
/** The original virtual port that was used by the client to access the onion
|
||||
* service, regardless of the internal port forwarding that might have
|
||||
* happened on the service-side. */
|
||||
uint16_t orig_virtual_port;
|
||||
@ -139,4 +140,3 @@ 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);
|
||||
|
||||
#endif /* !defined(TOR_HS_IDENT_H) */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user