1f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#!/bin/sh
2f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectset -e
3f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
4f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projecttest "$1" = 'configure' || exit 0
5f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
6f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectif test ! -e /etc/dropbear/dropbear_rsa_host_key; then
7f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  if test -f /etc/ssh/ssh_host_rsa_key; then
8f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project    echo "Converting existing OpenSSH RSA host key to Dropbear format."
9f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project    /usr/lib/dropbear/dropbearconvert openssh dropbear \
10f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project      /etc/ssh/ssh_host_rsa_key /etc/dropbear/dropbear_rsa_host_key
11f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  else
12f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project    echo "Generating Dropbear RSA key. Please wait."
13f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project    dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
14f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  fi
15f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectfi
16f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectif test ! -e /etc/dropbear/dropbear_dss_host_key; then
17f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  if test -f /etc/ssh/ssh_host_dsa_key; then
18f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project    echo "Converting existing OpenSSH RSA host key to Dropbear format."
19f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project    /usr/lib/dropbear/dropbearconvert openssh dropbear \
20f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project      /etc/ssh/ssh_host_dsa_key /etc/dropbear/dropbear_dss_host_key
21f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  else
22f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project    echo "Generating Dropbear DSS key. Please wait."
23f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project    dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
24f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  fi
25f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectfi
26f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectif test ! -s /etc/default/dropbear; then 
27f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  # check whether OpenSSH seems to be installed.
28f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  if test -x /usr/sbin/sshd; then
29f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project    cat <<EOT
30f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source ProjectOpenSSH appears to be installed.  Setting /etc/default/dropbear so that
31f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source ProjectDropbear will not start by default.  Edit this file to change this behaviour.
32f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
33f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source ProjectEOT
34f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project    cat >>/etc/default/dropbear <<EOT
35f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project# disabled because OpenSSH is installed
36f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project# change to NO_START=0 to enable Dropbear
37f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source ProjectNO_START=1
38f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
39f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source ProjectEOT
40f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  fi
41f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  cat >>/etc/default/dropbear <<EOT
42f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project# the TCP port that Dropbear listens on
43f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source ProjectDROPBEAR_PORT=22
44f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
45f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project# any additional arguments for Dropbear
46f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source ProjectDROPBEAR_EXTRA_ARGS=
47f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
48f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project# specify an optional banner file containing a message to be
49f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project# sent to clients before they connect, such as "/etc/issue.net"
50f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source ProjectDROPBEAR_BANNER=""
51f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
52f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project# RSA hostkey file (default: /etc/dropbear/dropbear_rsa_host_key)
53f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#DROPBEAR_RSAKEY="/etc/dropbear/dropbear_rsa_host_key"
54f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
55f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project# DSS hostkey file (default: /etc/dropbear/dropbear_dss_host_key)
56f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#DROPBEAR_DSSKEY="/etc/dropbear/dropbear_dss_host_key"
57f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source ProjectEOT
58f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectfi
59f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
60f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectif test -x /etc/init.d/dropbear; then
61f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  update-rc.d dropbear defaults >/dev/null
62f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  if test -x /usr/sbin/invoke-rc.d; then
63f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project    invoke-rc.d dropbear restart
64f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  else
65f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project    /etc/init.d/dropbear restart
66f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project  fi
67f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectfi
68