Tor 0.4.9.13
Loading...
Searching...
No Matches
channeltls.h
Go to the documentation of this file.
1/* * Copyright (c) 2012-2021, The Tor Project, Inc. */
2/* See LICENSE for licensing information */
3
4/**
5 * \file channeltls.h
6 * \brief Header file for channeltls.c
7 **/
8
9#ifndef TOR_CHANNELTLS_H
10#define TOR_CHANNELTLS_H
11
12#include "core/or/or.h"
13#include "core/or/channel.h"
14
17
18#define TLS_PER_CELL_OVERHEAD 29
19
20#define BASE_CHAN_TO_TLS(c) (channel_tls_from_base((c)))
21#define TLS_CHAN_TO_BASE(c) (channel_tls_to_base((c)))
22#define CONST_BASE_CHAN_TO_TLS(c) (channel_tls_from_base_const((c)))
23#define CONST_TLS_CHAN_TO_BASE(c) (channel_tls_to_base_const((c)))
24
25#define TLS_CHAN_MAGIC 0x8a192427U
26
27#ifdef CHANNEL_OBJECT_PRIVATE
28
29struct channel_tls_t {
30 /* Base channel_t struct */
31 channel_t base_;
32 /* or_connection_t pointer */
33 or_connection_t *conn;
34};
35
36#endif /* defined(CHANNEL_OBJECT_PRIVATE) */
37
38struct circuit_guard_state_t;
39channel_t * channel_tls_connect(const tor_addr_t *addr, uint16_t port,
40 const char *id_digest,
41 const struct ed25519_public_key_t *ed_id,
42 const struct circuit_guard_state_t *guard_state,
43 bool for_origin_circ);
47
48/* Casts */
49
50channel_t * channel_tls_to_base(channel_tls_t *tlschan);
51channel_tls_t * channel_tls_from_base(channel_t *chan);
52const channel_t * channel_tls_to_base_const(const channel_tls_t *tlschan);
53const channel_tls_t * channel_tls_from_base_const(const channel_t *chan);
54
55/* Things for connection_or.c to call back into */
57void channel_tls_handle_state_change_on_orconn(channel_tls_t *chan,
58 or_connection_t *conn,
59 uint8_t state);
61 or_connection_t *conn);
63
64/* Cleanup at shutdown */
65void channel_tls_free_all(void);
66
72extern uint64_t stats_n_certs_cells_processed;
74
75#ifdef CHANNELTLS_PRIVATE
77 channel_tls_t *tlschan);
79 channel_tls_t *tlschan);
80STATIC void channel_tls_common_init(channel_tls_t *tlschan);
82 channel_tls_t *tlschan);
83#endif /* defined(CHANNELTLS_PRIVATE) */
84
85#endif /* !defined(TOR_CHANNELTLS_H) */
Header file for channel.c.
STATIC void channel_tls_process_authenticate_cell(var_cell_t *cell, channel_tls_t *chan)
STATIC void channel_tls_process_auth_challenge_cell(var_cell_t *cell, channel_tls_t *chan)
STATIC void channel_tls_process_certs_cell(var_cell_t *cell, channel_tls_t *chan)
channel_t * channel_tls_connect(const tor_addr_t *addr, uint16_t port, const char *id_digest, const ed25519_public_key_t *ed_id, const struct circuit_guard_state_t *guard_state, bool for_origin_circ)
Definition channeltls.c:194
STATIC void channel_tls_common_init(channel_tls_t *tlschan)
Definition channeltls.c:154
void channel_tls_free_all(void)
Definition channeltls.c:327
void channel_tls_handle_var_cell(var_cell_t *var_cell, or_connection_t *conn)
channel_listener_t * channel_tls_start_listener(void)
Definition channeltls.c:296
void channel_tls_handle_state_change_on_orconn(channel_tls_t *chan, or_connection_t *conn, uint8_t state)
void channel_tls_handle_cell(cell_t *cell, or_connection_t *conn)
channel_listener_t * channel_tls_get_listener(void)
Definition channeltls.c:284
const channel_tls_t * channel_tls_from_base_const(const channel_t *chan)
Definition channeltls.c:475
channel_tls_t * channel_tls_from_base(channel_t *chan)
Definition channeltls.c:452
uint64_t stats_n_certs_cells_processed
Definition channeltls.c:92
uint64_t stats_n_auth_challenge_cells_processed
Definition channeltls.c:94
void channel_tls_update_marks(or_connection_t *conn)
uint64_t stats_n_authorize_cells_processed
Definition channeltls.c:98
uint64_t stats_n_versions_cells_processed
Definition channeltls.c:86
const channel_t * channel_tls_to_base_const(const channel_tls_t *tlschan)
Definition channeltls.c:465
uint64_t stats_n_authenticate_cells_processed
Definition channeltls.c:96
channel_t * channel_tls_handle_incoming(or_connection_t *orconn)
Definition channeltls.c:359
uint64_t stats_n_vpadding_cells_processed
Definition channeltls.c:90
channel_t * channel_tls_to_base(channel_tls_t *tlschan)
Definition channeltls.c:440
uint64_t stats_n_netinfo_cells_processed
Definition channeltls.c:88
Master header file for Tor-specific functionality.
#define STATIC
Definition testsupport.h:32