12#ifndef TOR_ONION_CRYPTO_H
13#define TOR_ONION_CRYPTO_H
48 uint8_t *onion_skin_out,
49 size_t onion_skin_out_maxlen);
51 const uint8_t *onion_skin,
size_t onionskin_len,
55 size_t reply_out_maxlen,
56 uint8_t *keys_out,
size_t *keys_len_out,
57 uint8_t *rend_nonce_out,
61 const uint8_t *reply,
size_t reply_len,
62 uint8_t *keys_out,
size_t *keys_out_len,
63 uint8_t *rend_authenticator_out,
65 const char **msg_out);
69#define server_onion_keys_free(keys) \
70 FREE_AND_NULL(server_onion_keys_t, server_onion_keys_free_, (keys))
72struct trn_extension_st;
73struct trn_extension_field_st;
75 const struct trn_extension_st *ext,
Header for crypto_ed25519.c.
const trn_extension_field_t * trn_extension_find(const trn_extension_t *ext, uint8_t ext_type)
int onion_skin_server_handshake(int type, const uint8_t *onion_skin, size_t onionskin_len, const server_onion_keys_t *keys, const circuit_params_t *ns_params, uint8_t *reply_out, size_t reply_out_maxlen, uint8_t *keys_out, size_t *keys_len_out, uint8_t *rend_nonce_out, circuit_params_t *negotiated_params_out)
int onion_skin_create(int type, const extend_info_t *node, onion_handshake_state_t *state_out, uint8_t *onion_skin_out, size_t onion_skin_out_maxlen)
void server_onion_keys_free_(server_onion_keys_t *keys)
void onion_handshake_state_release(onion_handshake_state_t *state)
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 *keys_out_len, uint8_t *rend_authenticator_out, circuit_params_t *negotiated_params_out, const char **msg_out)
server_onion_keys_t * server_onion_keys_new(void)
Header for relay_crypto.c.
relay_cell_fmt_t cell_fmt
relay_crypto_alg_t crypto_alg