• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1This file is out of date - it remains here in case it is still of use.
2The basic naming convention is svr- and cli-  for seperate parts,
3then common- for common parts. Some files have no prefix.
4
5A brief rundown on which files do what, and their corresponding sections
6in the IETF drafts. The .c files usually have corresponding .h files.
7
8Transport layer  draft-ietf-secsh-transport-16.txt
9===============
10
11session.c		Contains the main select() loop, and handles setting
12			up/closing down ssh connections
13
14algo.c			Framework for handling various ciphers/hashes/algos,
15			and choosing between the lists of client/server
16			preferred ones
17
18kex.c			Key exchange routines, used at startup to negotiate
19			which algorithms to use, and also to obtain session
20			keys. This also runs when rekeying during the
21			connection.
22
23packet.c		Handles the basic packet encryption/decryption,
24			and switching to the appropriate packet handlers.
25			Called from session.c's main select loop.
26
27service.c		Handles service requests (userauth or connection)
28
29
30Authentication  draft-ietf-secsh-userauth-17.txt
31==============
32
33auth.c			General auth handling, including user checking etc,
34			passes different auth types to auth{passwd,pubkey}
35
36authpasswd.c		Handles /etc/passwd or /etc/shadow auth
37
38authpubkey.c		Handles ~/.ssh/authorized_keys auth
39
40
41Connection  draft-ietf-secsh-connect-17.txt
42==========
43
44channel.c		Channel handling routines - each shell/tcp conn/agent
45			etc is a channel.
46
47chansession.c		Handles shell/exec requests
48
49sshpty.c		From OpenSSH, allocates PTYs etc
50
51termcodes.c		Mapping of POSIX terminal codes to SSH terminal codes
52
53loginrec.c		From OpenSSH, handles utmp/wtmp logging
54
55x11fwd.c		Handles X11 forwarding
56
57agentfwd.c		Handles auth-agent forwarding requests
58
59localtcpfwd.c		Handles -L style tcp forwarding requests, setting
60			up the listening port and also handling connections
61			to that port (and subsequent channels)
62
63
64Program-related
65===============
66
67dbmulti.c		Combination binary chooser main() function
68
69dbutil.c		Various utility functions, incl logging, memory etc
70
71dropbearconvert.c	Conversion from dropbear<->openssh keys, uses
72			keyimport.c to do most of the work
73
74dropbearkey.c		Generates keys, calling gen{dss,rsa}
75
76keyimport.c		Modified from PuTTY, converts between key types
77
78main.c			dropbear's main(), handles listening, forking for
79			new connections, child-process limits
80
81runopts.c		Parses commandline options
82
83options.h		Compile-time feature selection
84
85config.h		Features selected from configure
86
87debug.h			Compile-time selection of debug features
88
89includes.h		Included system headers etc
90
91
92Generic Routines
93================
94
95signkey.c		A generic handler for pubkeys, switches to dss or rsa
96			depending on the key type
97
98rsa.c			RSA asymmetric crypto routines
99
100dss.c			DSS asymmetric crypto routines
101
102gendss.c		DSS key generation
103
104genrsa.c		RSA key generation
105
106bignum.c		Some bignum helper functions
107
108queue.c			A queue, used to enqueue encrypted packets to send
109
110random.c		PRNG, based on /dev/urandom or prngd
111
112atomicio.c		From OpenSSH, does `blocking' IO on non-blocking fds
113
114buffer.c		Buffer-usage routines, with size checking etc
115
116
117vim:set ts=8:
118