mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 23:53:32 +01:00
Extract crypt_path_t and relay_crypto_t into their own headers
This commit is contained in:
parent
e0830ff7bf
commit
b3f2c682b7
@ -35,6 +35,7 @@
|
||||
#include "networkstatus.h"
|
||||
#include "relay.h"
|
||||
|
||||
#include "crypt_path_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
static void pathbias_count_successful_close(origin_circuit_t *circ);
|
||||
|
@ -41,6 +41,7 @@
|
||||
#include "circuitlist.h"
|
||||
#include "circuituse.h"
|
||||
|
||||
#include "crypt_path_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
#undef log
|
||||
|
56
src/or/crypt_path_st.h
Normal file
56
src/or/crypt_path_st.h
Normal file
@ -0,0 +1,56 @@
|
||||
/* Copyright (c) 2001 Matej Pfajfar.
|
||||
* Copyright (c) 2001-2004, Roger Dingledine.
|
||||
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
|
||||
* Copyright (c) 2007-2018, The Tor Project, Inc. */
|
||||
/* See LICENSE for licensing information */
|
||||
|
||||
#ifndef CRYPT_PATH_ST_H
|
||||
#define CRYPT_PATH_ST_H
|
||||
|
||||
#include "relay_crypto_st.h"
|
||||
|
||||
/** Holds accounting information for a single step in the layered encryption
|
||||
* performed by a circuit. Used only at the client edge of a circuit. */
|
||||
struct crypt_path_t {
|
||||
uint32_t magic;
|
||||
|
||||
/** Cryptographic state used for encrypting and authenticating relay
|
||||
* cells to and from this hop. */
|
||||
relay_crypto_t crypto;
|
||||
|
||||
/** Current state of the handshake as performed with the OR at this
|
||||
* step. */
|
||||
onion_handshake_state_t handshake_state;
|
||||
/** Diffie-hellman handshake state for performing an introduction
|
||||
* operations */
|
||||
crypto_dh_t *rend_dh_handshake_state;
|
||||
|
||||
/** Negotiated key material shared with the OR at this step. */
|
||||
char rend_circ_nonce[DIGEST_LEN];/* KH in tor-spec.txt */
|
||||
|
||||
/** Information to extend to the OR at this step. */
|
||||
extend_info_t *extend_info;
|
||||
|
||||
/** Is the circuit built to this step? Must be one of:
|
||||
* - CPATH_STATE_CLOSED (The circuit has not been extended to this step)
|
||||
* - CPATH_STATE_AWAITING_KEYS (We have sent an EXTEND/CREATE to this step
|
||||
* and not received an EXTENDED/CREATED)
|
||||
* - CPATH_STATE_OPEN (The circuit has been extended to this step) */
|
||||
uint8_t state;
|
||||
#define CPATH_STATE_CLOSED 0
|
||||
#define CPATH_STATE_AWAITING_KEYS 1
|
||||
#define CPATH_STATE_OPEN 2
|
||||
struct crypt_path_t *next; /**< Link to next crypt_path_t in the circuit.
|
||||
* (The list is circular, so the last node
|
||||
* links to the first.) */
|
||||
struct crypt_path_t *prev; /**< Link to previous crypt_path_t in the
|
||||
* circuit. */
|
||||
|
||||
int package_window; /**< How many cells are we allowed to originate ending
|
||||
* at this step? */
|
||||
int deliver_window; /**< How many cells are we willing to deliver originating
|
||||
* at this step? */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "hs/cell_common.h"
|
||||
#include "hs/cell_establish_intro.h"
|
||||
|
||||
#include "crypt_path_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
/* A circuit is about to become an e2e rendezvous circuit. Check
|
||||
|
@ -206,6 +206,7 @@ ORHEADERS = \
|
||||
src/or/consdiffmgr.h \
|
||||
src/or/control_connection_st.h \
|
||||
src/or/control.h \
|
||||
src/or/crypt_path_st.h \
|
||||
src/or/cpuworker.h \
|
||||
src/or/directory.h \
|
||||
src/or/dirserv.h \
|
||||
@ -270,6 +271,7 @@ ORHEADERS = \
|
||||
src/or/reasons.h \
|
||||
src/or/relay.h \
|
||||
src/or/relay_crypto.h \
|
||||
src/or/relay_crypto_st.h \
|
||||
src/or/rendcache.h \
|
||||
src/or/rendclient.h \
|
||||
src/or/rendcommon.h \
|
||||
|
60
src/or/or.h
60
src/or/or.h
@ -2278,64 +2278,8 @@ typedef struct {
|
||||
} u;
|
||||
} onion_handshake_state_t;
|
||||
|
||||
typedef struct relay_crypto_t {
|
||||
/* crypto environments */
|
||||
/** Encryption key and counter for cells heading towards the OR at this
|
||||
* step. */
|
||||
crypto_cipher_t *f_crypto;
|
||||
/** Encryption key and counter for cells heading back from the OR at this
|
||||
* step. */
|
||||
crypto_cipher_t *b_crypto;
|
||||
|
||||
/** Digest state for cells heading towards the OR at this step. */
|
||||
crypto_digest_t *f_digest; /* for integrity checking */
|
||||
/** Digest state for cells heading away from the OR at this step. */
|
||||
crypto_digest_t *b_digest;
|
||||
|
||||
} relay_crypto_t;
|
||||
|
||||
/** Holds accounting information for a single step in the layered encryption
|
||||
* performed by a circuit. Used only at the client edge of a circuit. */
|
||||
typedef struct crypt_path_t {
|
||||
uint32_t magic;
|
||||
|
||||
/** Cryptographic state used for encrypting and authenticating relay
|
||||
* cells to and from this hop. */
|
||||
relay_crypto_t crypto;
|
||||
|
||||
/** Current state of the handshake as performed with the OR at this
|
||||
* step. */
|
||||
onion_handshake_state_t handshake_state;
|
||||
/** Diffie-hellman handshake state for performing an introduction
|
||||
* operations */
|
||||
crypto_dh_t *rend_dh_handshake_state;
|
||||
|
||||
/** Negotiated key material shared with the OR at this step. */
|
||||
char rend_circ_nonce[DIGEST_LEN];/* KH in tor-spec.txt */
|
||||
|
||||
/** Information to extend to the OR at this step. */
|
||||
extend_info_t *extend_info;
|
||||
|
||||
/** Is the circuit built to this step? Must be one of:
|
||||
* - CPATH_STATE_CLOSED (The circuit has not been extended to this step)
|
||||
* - CPATH_STATE_AWAITING_KEYS (We have sent an EXTEND/CREATE to this step
|
||||
* and not received an EXTENDED/CREATED)
|
||||
* - CPATH_STATE_OPEN (The circuit has been extended to this step) */
|
||||
uint8_t state;
|
||||
#define CPATH_STATE_CLOSED 0
|
||||
#define CPATH_STATE_AWAITING_KEYS 1
|
||||
#define CPATH_STATE_OPEN 2
|
||||
struct crypt_path_t *next; /**< Link to next crypt_path_t in the circuit.
|
||||
* (The list is circular, so the last node
|
||||
* links to the first.) */
|
||||
struct crypt_path_t *prev; /**< Link to previous crypt_path_t in the
|
||||
* circuit. */
|
||||
|
||||
int package_window; /**< How many cells are we allowed to originate ending
|
||||
* at this step? */
|
||||
int deliver_window; /**< How many cells are we willing to deliver originating
|
||||
* at this step? */
|
||||
} crypt_path_t;
|
||||
typedef struct relay_crypto_t relay_crypto_t;
|
||||
typedef struct crypt_path_t crypt_path_t;
|
||||
|
||||
/** A reference-counted pointer to a crypt_path_t, used only to share
|
||||
* the final rendezvous cpath to be used on a service-side rendezvous
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include "or.h"
|
||||
|
||||
#include "circuit_st.h"
|
||||
#include "crypt_path_st.h"
|
||||
|
||||
struct onion_queue_t;
|
||||
|
||||
|
27
src/or/relay_crypto_st.h
Normal file
27
src/or/relay_crypto_st.h
Normal file
@ -0,0 +1,27 @@
|
||||
/* Copyright (c) 2001 Matej Pfajfar.
|
||||
* Copyright (c) 2001-2004, Roger Dingledine.
|
||||
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
|
||||
* Copyright (c) 2007-2018, The Tor Project, Inc. */
|
||||
/* See LICENSE for licensing information */
|
||||
|
||||
#ifndef RELAY_CRYPTO_ST_H
|
||||
#define RELAY_CRYPTO_ST_H
|
||||
|
||||
struct relay_crypto_t {
|
||||
/* crypto environments */
|
||||
/** Encryption key and counter for cells heading towards the OR at this
|
||||
* step. */
|
||||
crypto_cipher_t *f_crypto;
|
||||
/** Encryption key and counter for cells heading back from the OR at this
|
||||
* step. */
|
||||
crypto_cipher_t *b_crypto;
|
||||
|
||||
/** Digest state for cells heading towards the OR at this step. */
|
||||
crypto_digest_t *f_digest; /* for integrity checking */
|
||||
/** Digest state for cells heading away from the OR at this step. */
|
||||
crypto_digest_t *b_digest;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "routerlist.h"
|
||||
#include "routerset.h"
|
||||
|
||||
#include "crypt_path_st.h"
|
||||
#include "dir_connection_st.h"
|
||||
#include "entry_connection_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "routerlist.h"
|
||||
#include "routerparse.h"
|
||||
|
||||
#include "crypt_path_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
/** Return 0 if one and two are the same service ids, else -1 or 1 */
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "routerparse.h"
|
||||
#include "routerset.h"
|
||||
|
||||
#include "crypt_path_st.h"
|
||||
#include "edge_connection_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
|
@ -39,6 +39,7 @@
|
||||
|
||||
#include "dirauth/mode.h"
|
||||
|
||||
#include "crypt_path_st.h"
|
||||
#include "dir_connection_st.h"
|
||||
#include "dir_server_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "circuituse.h"
|
||||
#include "channel.h"
|
||||
|
||||
#include "crypt_path_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
void test_circuitstats_timeout(void *arg);
|
||||
|
@ -30,11 +30,12 @@
|
||||
#include "statefile.h"
|
||||
#include "util.h"
|
||||
|
||||
#include "crypt_path_st.h"
|
||||
#include "dir_connection_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
#include "test_helpers.h"
|
||||
#include "log_test_helpers.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
/* TODO:
|
||||
* choose_random_entry() test with state set.
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "connection_edge.h"
|
||||
#include "networkstatus.h"
|
||||
|
||||
#include "crypt_path_st.h"
|
||||
#include "dir_connection_st.h"
|
||||
#include "entry_connection_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
@ -53,6 +53,7 @@
|
||||
#include "dirauth/shared_random_state.h"
|
||||
#include "voting_schedule.h"
|
||||
|
||||
#include "crypt_path_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
/* Trunnel */
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include "relay.h"
|
||||
#include "test.h"
|
||||
|
||||
#include "crypt_path_st.h"
|
||||
#include "entry_connection_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user