tor  0.4.2.1-alpha-dev
Functions
hs_cell.c File Reference
#include "core/or/or.h"
#include "app/config/config.h"
#include "lib/crypt_ops/crypto_util.h"
#include "feature/rend/rendservice.h"
#include "feature/hs_common/replaycache.h"
#include "feature/hs/hs_cell.h"
#include "core/crypto/hs_ntor.h"
#include "core/or/origin_circuit_st.h"
#include "trunnel/ed25519_cert.h"
#include "trunnel/hs/cell_common.h"
#include "trunnel/hs/cell_establish_intro.h"
#include "trunnel/hs/cell_introduce1.h"
#include "trunnel/hs/cell_rendezvous.h"

Go to the source code of this file.

Functions

static void compute_introduce_mac (const uint8_t *encoded_cell, size_t encoded_cell_len, const uint8_t *encrypted, size_t encrypted_len, const uint8_t *mac_key, size_t mac_key_len, uint8_t *mac_out, size_t mac_out_len)
 
static hs_ntor_intro_cell_keys_tget_introduce2_key_material (const ed25519_public_key_t *auth_key, const curve25519_keypair_t *enc_key, const uint8_t *subcredential, const uint8_t *encrypted_section, curve25519_public_key_t *client_pk)
 
static uint8_t * decrypt_introduce2 (const uint8_t *enc_key, const uint8_t *encrypted_section, size_t encrypted_section_len)
 
static trn_cell_introduce_encrypted_t * parse_introduce2_encrypted (const uint8_t *decrypted_data, size_t decrypted_len, const origin_circuit_t *circ, const hs_service_t *service)
 
static ssize_t build_legacy_establish_intro (const char *circ_nonce, crypto_pk_t *enc_key, uint8_t *cell_out)
 
static int parse_introduce2_cell (const hs_service_t *service, const origin_circuit_t *circ, const uint8_t *payload, size_t payload_len, trn_cell_introduce1_t **cell_ptr_out)
 
static void introduce1_set_encrypted_onion_key (trn_cell_introduce_encrypted_t *cell, const uint8_t *onion_pk)
 
static void introduce1_set_encrypted_link_spec (trn_cell_introduce_encrypted_t *cell, const smartlist_t *lspecs)
 
static void introduce1_set_encrypted_padding (const trn_cell_introduce1_t *cell, trn_cell_introduce_encrypted_t *enc_cell)
 
static void introduce1_encrypt_and_encode (trn_cell_introduce1_t *cell, const trn_cell_introduce_encrypted_t *enc_cell, const hs_cell_introduce1_data_t *data)
 
static void introduce1_set_encrypted (trn_cell_introduce1_t *cell, const hs_cell_introduce1_data_t *data)
 
static void introduce1_set_auth_key (trn_cell_introduce1_t *cell, const hs_cell_introduce1_data_t *data)
 
static void introduce1_set_legacy_id (trn_cell_introduce1_t *cell, const hs_cell_introduce1_data_t *data)
 
static void build_establish_intro_dos_param (trn_cell_extension_dos_t *dos_ext, uint8_t param_type, uint64_t param_value)
 
static void build_establish_intro_dos_extension (const hs_service_config_t *service_config, trn_cell_extension_t *extensions)
 
STATIC trn_cell_extension_t * build_establish_intro_extensions (const hs_service_config_t *service_config, const hs_service_intro_point_t *ip)
 
ssize_t hs_cell_build_establish_intro (const char *circ_nonce, const hs_service_config_t *service_config, const hs_service_intro_point_t *ip, uint8_t *cell_out)
 
ssize_t hs_cell_parse_intro_established (const uint8_t *payload, size_t payload_len)
 
ssize_t hs_cell_parse_introduce2 (hs_cell_introduce2_data_t *data, const origin_circuit_t *circ, const hs_service_t *service)
 
ssize_t hs_cell_build_rendezvous1 (const uint8_t *rendezvous_cookie, size_t rendezvous_cookie_len, const uint8_t *rendezvous_handshake_info, size_t rendezvous_handshake_info_len, uint8_t *cell_out)
 
ssize_t hs_cell_build_introduce1 (const hs_cell_introduce1_data_t *data, uint8_t *cell_out)
 
ssize_t hs_cell_build_establish_rendezvous (const uint8_t *rendezvous_cookie, uint8_t *cell_out)
 
int hs_cell_parse_introduce_ack (const uint8_t *payload, size_t payload_len)
 
int hs_cell_parse_rendezvous2 (const uint8_t *payload, size_t payload_len, uint8_t *handshake_info, size_t handshake_info_len)
 
void hs_cell_introduce1_data_clear (hs_cell_introduce1_data_t *data)
 

Detailed Description

Hidden service API for cell creation and handling.

Definition in file hs_cell.c.