aboutsummaryrefslogtreecommitdiff
path: root/src/or/channeltls.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2016-10-17 14:23:53 -0400
committerNick Mathewson <nickm@torproject.org>2016-10-18 10:53:12 -0400
commit35df48b189f513a456c90b5418ddab027079d507 (patch)
tree462e6a2393f5f7d25061b6fca5ec8fe71eae14ee /src/or/channeltls.c
parent6e823a27f114523c566b99a4deb3900764570954 (diff)
downloadtor-35df48b189f513a456c90b5418ddab027079d507.tar.gz
tor-35df48b189f513a456c90b5418ddab027079d507.zip
Module docs for channel.c and channeltls.c
Diffstat (limited to 'src/or/channeltls.c')
-rw-r--r--src/or/channeltls.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/or/channeltls.c b/src/or/channeltls.c
index 9c2411ede8..09cca95b64 100644
--- a/src/or/channeltls.c
+++ b/src/or/channeltls.c
@@ -6,6 +6,28 @@
*
* \brief A concrete subclass of channel_t using or_connection_t to transfer
* cells between Tor instances.
+ *
+ * This module fills in the various function pointers in channel_t, to
+ * implement the channel_tls_t channels as used in Tor today. These channels
+ * are created from channel_tls_connect() and
+ * channel_tls_handle_incoming(). Each corresponds 1:1 to or_connection_t
+ * object, as implemented in connection_or.c. These channels transmit cells
+ * to the underlying or_connection_t by calling
+ * connection_or_write_*_cell_to_buf(), and receive cells from the underlying
+ * or_connection_t when connection_or_process_cells_from_inbuf() calls
+ * channel_tls_handle_*_cell().
+ *
+ * Here we also implement the server (responder) side of the v3+ Tor link
+ * handshake, which uses CERTS and AUTHENTICATE cell to negotiate versions,
+ * exchange expected and observed IP and time information, and bootstrap a
+ * level of authentication higher than we have gotten on the raw TLS
+ * handshake.
+ *
+ * NOTE: Since there is currently only one type of channel, there are probably
+ * more than a few cases where functionality that is currently in
+ * channeltls.c, connection_or.c, and channel.c ought to be divided up
+ * differently. The right time to do this is probably whenever we introduce
+ * our next channel type.
**/
/*