tor  master
Macros | Functions
hs_intropoint.c File Reference

Implement next generation introductions point functionality. More...

#include "or.h"
#include "config.h"
#include "circuitlist.h"
#include "circuituse.h"
#include "relay.h"
#include "rendmid.h"
#include "rephist.h"
#include "ed25519_cert.h"
#include "hs/cell_common.h"
#include "hs/cell_establish_intro.h"
#include "hs/cell_introduce1.h"
#include "hs_circuitmap.h"
#include "hs_descriptor.h"
#include "hs_intropoint.h"
#include "hs_common.h"
Include dependency graph for hs_intropoint.c:

Functions

STATIC void get_auth_key_from_cell (ed25519_public_key_t *auth_key_out, unsigned int cell_type, const void *cell)
 
STATIC int verify_establish_intro_cell (const trn_cell_establish_intro_t *cell, const uint8_t *circuit_key_material, size_t circuit_key_material_len)
 
 MOCK_IMPL (int, hs_intro_send_intro_established_cell,(or_circuit_t *circ))
 
int hs_intro_circuit_is_suitable_for_establish_intro (const or_circuit_t *circ)
 
int hs_intro_received_establish_intro (or_circuit_t *circ, const uint8_t *request, size_t request_len)
 
STATIC int validate_introduce1_parsed_cell (const trn_cell_introduce1_t *cell)
 
STATIC int handle_introduce1 (or_circuit_t *client_circ, const uint8_t *request, size_t request_len)
 
STATIC int introduce1_cell_is_legacy (const uint8_t *request)
 
STATIC int circuit_is_suitable_for_introduce1 (const or_circuit_t *circ)
 
int hs_intro_received_introduce1 (or_circuit_t *circ, const uint8_t *request, size_t request_len)
 
void hs_intropoint_clear (hs_intropoint_t *ip)
 

Detailed Description

Implement next generation introductions point functionality.

Function Documentation

◆ get_auth_key_from_cell()

STATIC void get_auth_key_from_cell ( ed25519_public_key_t auth_key_out,
unsigned int  cell_type,
const void *  cell 
)

Extract the authentication key from an ESTABLISH_INTRO or INTRODUCE1 using the given cell_type from cell and place it in auth_key_out.

◆ verify_establish_intro_cell()

STATIC int verify_establish_intro_cell ( const trn_cell_establish_intro_t cell,
const uint8_t *  circuit_key_material,
size_t  circuit_key_material_len 
)

We received an ESTABLISH_INTRO cell. Verify its signature and MAC, given circuit_key_material. Return 0 on success else -1 on error.