mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Hiding crypt_path_t: Move some more init funcs in crypt_path.c.
Everything is moved, but the argument of the function is edited to access ->private->crypto.
This commit is contained in:
parent
0c5176d00c
commit
5f96b7abcc
@ -1360,34 +1360,6 @@ circuit_extend(cell_t *cell, circuit_t *circ)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/** Initialize cpath-\>{f|b}_{crypto|digest} from the key material in key_data.
|
||||
*
|
||||
* If <b>is_hs_v3</b> is set, this cpath will be used for next gen hidden
|
||||
* service circuits and <b>key_data</b> must be at least
|
||||
* HS_NTOR_KEY_EXPANSION_KDF_OUT_LEN bytes in length.
|
||||
*
|
||||
* If <b>is_hs_v3</b> is not set, key_data must contain CPATH_KEY_MATERIAL_LEN
|
||||
* bytes, which are used as follows:
|
||||
* - 20 to initialize f_digest
|
||||
* - 20 to initialize b_digest
|
||||
* - 16 to key f_crypto
|
||||
* - 16 to key b_crypto
|
||||
*
|
||||
* (If 'reverse' is true, then f_XX and b_XX are swapped.)
|
||||
*
|
||||
* Return 0 if init was successful, else -1 if it failed.
|
||||
*/
|
||||
int
|
||||
circuit_init_cpath_crypto(crypt_path_t *cpath,
|
||||
const char *key_data, size_t key_data_len,
|
||||
int reverse, int is_hs_v3)
|
||||
{
|
||||
|
||||
tor_assert(cpath);
|
||||
return relay_crypto_init(&cpath->crypto, key_data, key_data_len, reverse,
|
||||
is_hs_v3);
|
||||
}
|
||||
|
||||
/** A "created" cell <b>reply</b> came back to us on circuit <b>circ</b>.
|
||||
* (The body of <b>reply</b> varies depending on what sort of handshake
|
||||
* this is.)
|
||||
|
@ -34,9 +34,6 @@ int circuit_timeout_want_to_count_circ(const origin_circuit_t *circ);
|
||||
int circuit_send_next_onion_skin(origin_circuit_t *circ);
|
||||
void circuit_note_clock_jumped(int64_t seconds_elapsed, bool was_idle);
|
||||
int circuit_extend(cell_t *cell, circuit_t *circ);
|
||||
int circuit_init_cpath_crypto(crypt_path_t *cpath,
|
||||
const char *key_data, size_t key_data_len,
|
||||
int reverse, int is_hs_v3);
|
||||
struct created_cell_t;
|
||||
int circuit_finish_handshake(origin_circuit_t *circ,
|
||||
const struct created_cell_t *created_cell);
|
||||
|
@ -114,6 +114,36 @@ assert_cpath_layer_ok(const crypt_path_t *cp)
|
||||
tor_assert(cp->deliver_window >= 0);
|
||||
}
|
||||
|
||||
/** Initialize cpath-\>{f|b}_{crypto|digest} from the key material in key_data.
|
||||
*
|
||||
* If <b>is_hs_v3</b> is set, this cpath will be used for next gen hidden
|
||||
* service circuits and <b>key_data</b> must be at least
|
||||
* HS_NTOR_KEY_EXPANSION_KDF_OUT_LEN bytes in length.
|
||||
*
|
||||
* If <b>is_hs_v3</b> is not set, key_data must contain CPATH_KEY_MATERIAL_LEN
|
||||
* bytes, which are used as follows:
|
||||
* - 20 to initialize f_digest
|
||||
* - 20 to initialize b_digest
|
||||
* - 16 to key f_crypto
|
||||
* - 16 to key b_crypto
|
||||
*
|
||||
* (If 'reverse' is true, then f_XX and b_XX are swapped.)
|
||||
*
|
||||
* Return 0 if init was successful, else -1 if it failed.
|
||||
*/
|
||||
int
|
||||
circuit_init_cpath_crypto(crypt_path_t *cpath,
|
||||
const char *key_data, size_t key_data_len,
|
||||
int reverse, int is_hs_v3)
|
||||
{
|
||||
|
||||
tor_assert(cpath);
|
||||
return relay_crypto_init(&cpath->private->crypto, key_data, key_data_len, reverse,
|
||||
is_hs_v3);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/********************** cpath crypto API *******************************/
|
||||
|
||||
/** Encrypt or decrypt <b>payload</b> using the crypto of <b>cpath</b>. Actual
|
||||
|
@ -12,6 +12,10 @@ void assert_cpath_ok(const crypt_path_t *cp);
|
||||
/* rename */
|
||||
int onion_append_hop(crypt_path_t **head_ptr, extend_info_t *choice);
|
||||
|
||||
int circuit_init_cpath_crypto(crypt_path_t *cpath,
|
||||
const char *key_data, size_t key_data_len,
|
||||
int reverse, int is_hs_v3);
|
||||
|
||||
/* rename */
|
||||
void onion_append_to_cpath(crypt_path_t **head_ptr, crypt_path_t *new_hop);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user