• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Tips for a small system:
2
3If you only want server functionality (for example), compile with
4	make PROGRAMS=dropbear
5rather than just
6	make dropbear
7so that client functionality in shared portions of Dropbear won't be included.
8The same applies if you are compiling just a client.
9
10---
11
12The following are set in options.h:
13
14	- You can safely disable blowfish and twofish ciphers, and MD5 hmac, without
15	  affecting interoperability
16
17	- If you're compiling statically, you can turn off host lookups
18
19	- You can disable either password or public-key authentication, though note
20	  that the IETF draft states that pubkey authentication is required.
21
22	- Similarly with DSS and RSA, you can disable one of these if you know that
23	  all clients will be able to support a particular one. The IETF draft
24	  states that DSS is required, however you may prefer to use RSA.
25	  DON'T disable either of these on systems where you aren't 100% sure about
26	  who will be connecting and what clients they will be using.
27
28	- Disabling the MOTD code and SFTP-SERVER may save a small amount of codesize
29
30	- You can disable x11, tcp and agent forwarding as desired. None of these are
31	  essential, although agent-forwarding is often useful even on firewall boxes.
32
33---
34
35If you are compiling statically, you may want to disable zlib, as it will use
36a few tens of kB of binary-size (./configure --disable-zlib).
37
38You can create a combined binary, see the file MULTI, which will put all
39the functions into one binary, avoiding repeated code.
40
41If you're compiling with gcc, you might want to look at gcc's options for
42stripping unused code. The relevant vars to set before configure are:
43
44LDFLAGS=-Wl,--gc-sections
45CFLAGS="-ffunction-sections -fdata-sections"
46
47You can also experiment with optimisation flags such as -Os, note that in some
48cases these flags actually seem to increase size, so experiment before
49deciding.
50
51Of course using small C libraries such as uClibc and dietlibc can also help.
52
53If you have any queries, mail me and I'll see if I can help.
54