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