Home | History | Annotate | Download | only in dropbear
      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