tor
master
|
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"
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) |
Implement next generation introductions point functionality.
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.
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.