30 #define MAX_ONIONSKIN_CHALLENGE_LEN 255 31 #define MAX_ONIONSKIN_REPLY_LEN 255 35 #define server_onion_keys_free(keys) \ 36 FREE_AND_NULL(server_onion_keys_t, server_onion_keys_free_, (keys)) 43 uint8_t *onion_skin_out);
45 const uint8_t *onion_skin,
size_t onionskin_len,
48 uint8_t *keys_out,
size_t key_out_len,
49 uint8_t *rend_nonce_out);
52 const uint8_t *reply,
size_t reply_len,
53 uint8_t *keys_out,
size_t key_out_len,
54 uint8_t *rend_authenticator_out,
55 const char **msg_out);
107 uint16_t handshake_type, uint16_t handshake_len,
108 const uint8_t *onionskin);
112 const uint8_t *payload_in,
size_t payload_len);
114 const uint8_t *payload_in,
size_t payload_len);
uint8_t cell_type
Definition: onion.h:72
void create_cell_init(create_cell_t *cell_out, uint8_t cell_type, uint16_t handshake_type, uint16_t handshake_len, const uint8_t *onionskin)
Definition: onion.c:724
struct extend_cell_t extend_cell_t
ed25519_public_key_t ed_pubkey
Definition: onion.h:91
#define DIGEST_LEN
Definition: crypto_digest.h:22
void server_onion_keys_free_(server_onion_keys_t *keys)
Definition: onion.c:427
Definition: crypto_ed25519.h:23
created_cell_t created_cell
Definition: onion.h:103
int extended_cell_format(uint8_t *command_out, uint16_t *len_out, uint8_t *payload_out, const extended_cell_t *cell_in)
Definition: onion.c:1306
uint8_t cell_type
Definition: onion.h:101
int onion_num_pending(uint16_t handshake_type)
Definition: onion.c:341
struct created_cell_t created_cell_t
int extended_cell_parse(extended_cell_t *cell_out, const uint8_t command, const uint8_t *payload_in, size_t payload_len)
Definition: onion.c:1069
uint8_t cell_type
Definition: onion.h:60
void onion_pending_remove(or_circuit_t *circ)
Definition: onion.c:350
int onion_skin_client_handshake(int type, const onion_handshake_state_t *handshake_state, const uint8_t *reply, size_t reply_len, uint8_t *keys_out, size_t key_out_len, uint8_t *rend_authenticator_out, const char **msg_out)
Definition: onion.c:611
uint16_t handshake_len
Definition: onion.h:74
uint8_t cell_type
Definition: onion.h:82
server_onion_keys_t * server_onion_keys_new(void)
Definition: onion.c:414
int onion_skin_server_handshake(int type, const uint8_t *onion_skin, size_t onionskin_len, const server_onion_keys_t *keys, uint8_t *reply_out, uint8_t *keys_out, size_t key_out_len, uint8_t *rend_nonce_out)
Definition: onion.c:538
uint16_t handshake_type
Definition: onion.h:62
int onion_pending_add(or_circuit_t *circ, struct create_cell_t *onionskin)
Definition: onion.c:184
int extend_cell_format(uint8_t *command_out, uint16_t *len_out, uint8_t *payload_out, const extend_cell_t *cell_in)
Definition: onion.c:1212
struct create_cell_t create_cell_t
struct extended_cell_t extended_cell_t
create_cell_t create_cell
Definition: onion.h:95
int extend_cell_parse(extend_cell_t *cell_out, const uint8_t command, const uint8_t *payload_in, size_t payload_len)
Definition: onion.c:999
Definition: crypto_curve25519.h:38
uint16_t handshake_len
Definition: onion.h:64
uint8_t onionskin[CELL_PAYLOAD_SIZE - 4]
Definition: onion.h:66
void clear_pending_onions(void)
Definition: onion.c:393
int created_cell_parse(created_cell_t *cell_out, const cell_t *cell_in)
Definition: onion.c:830
or_circuit_t * onion_next_task(struct create_cell_t **onionskin_out)
Definition: onion.c:309
int created_cell_format(cell_t *cell_out, const created_cell_t *cell_in)
Definition: onion.c:1167
#define CELL_PAYLOAD_SIZE
Definition: or.h:998
void onion_handshake_state_release(onion_handshake_state_t *state)
Definition: onion.c:443
int onion_skin_create(int type, const extend_info_t *node, onion_handshake_state_t *state_out, uint8_t *onion_skin_out)
Definition: onion.c:474
Definition: crypto_rsa.c:41
int create_cell_parse(create_cell_t *cell_out, const cell_t *cell_in)
Definition: onion.c:776
tor_addr_port_t orport_ipv6
Definition: onion.h:87
tor_addr_port_t orport_ipv4
Definition: onion.h:84