X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=tests%2Fbasic;h=5c6b4bb24300d7bfc9e4adf990a5e70ae9f1aa71;hb=9cc92238a9a9b21d37b983932d5a6a012cf80aba;hp=5e233aa0014ec9d9b801daa6c0beb837f27f500f;hpb=10c741dac082844fbf9a2fbbfc4322f718c2abea;p=monkeysphere.git diff --git a/tests/basic b/tests/basic index 5e233aa..5c6b4bb 100755 --- a/tests/basic +++ b/tests/basic @@ -17,6 +17,10 @@ set -e # piped commands should return the code of the first non-zero return set -o pipefail +export TESTDIR=$(dirname "$0") + +source "$TESTDIR"/common + ## make sure that the right tools are installed to run the test. the ## test has *more* requirements than plain ol' monkeysphere: which socat >/dev/null || { echo "You must have socat installed to run this test." ; exit 1; } @@ -72,34 +76,6 @@ ssh_test() { fi } -failed_cleanup() { - # FIXME: can we be more verbose here? - echo 'FAILED!' - read -p "press enter to cleanup and remove tmp:" - - cleanup -} - -get_gpg_prng_arg() { - if (gpg --quick-random --version >/dev/null 2>&1) ; then - echo quick-random - elif (gpg --debug-quick-random --version >/dev/null 2>&1) ; then - echo debug-quick-random - fi -} - -cleanup() { - echo "### removing temp dir..." - rm -rf "$TEMPDIR" - - if [ "$SSHD_PID" ] ; then - echo "### killing off lingering sshd..." - kill "$SSHD_PID" - fi - - wait -} - SSHD_PID= ## setup trap @@ -112,15 +88,13 @@ trap failed_cleanup EXIT ## set up some variables to ensure that we're operating strictly in ## the tests, not system-wide: -export TESTDIR=$(dirname "$0") - # make temp dir TEMPDIR="$TESTDIR"/tmp if [ -e "$TEMPDIR" ] ; then echo "tempdir '$TEMPDIR' already exists." exit 1 fi -mkdir "$TEMPDIR" +mkdir -p "$TEMPDIR" # Use the local copy of executables first, instead of system ones. # This should help us test without installing. @@ -154,7 +128,7 @@ cp -a "$TESTDIR"/home/admin "$TEMPDIR"/ cp -a "$TESTDIR"/home/testuser "$TEMPDIR"/ # set up environment for testuser -TESTHOME="$TEMPDIR"/testuser +export TESTHOME="$TEMPDIR"/testuser export GNUPGHOME="$TESTHOME"/.gnupg export SSH_ASKPASS="$TESTHOME"/.ssh/askpass export MONKEYSPHERE_HOME="$TESTHOME"/.monkeysphere @@ -182,25 +156,35 @@ EOF ###################################################################### ### SERVER HOST SETUP -# set up monkeysphere host -echo "##################################################" -echo "### configuring monkeysphere host..." -mkdir -p -m 750 "$MONKEYSPHERE_SYSDATADIR"/host - # create a new host key echo "##################################################" -echo "### generating server host key..." +echo "### testing host key generation..." +mkdir -p -m 750 "$MONKEYSPHERE_SYSDATADIR"/host # add gpg.conf with quick-random get_gpg_prng_arg >> "$MONKEYSPHERE_SYSCONFIGDIR"/host/gpg.conf -echo | monkeysphere-host expert gen-key --length 1024 --expire 0 testhost -# remove the gpg.conf -rm "$MONKEYSPHERE_SYSCONFIGDIR"/host/gpg.conf +echo | monkeysphere-host expert gen-key --length 1024 testhost + +# remove the host home for the next test +rm -rf "$MONKEYSPHERE_SYSCONFIGDIR"/host + +# import host key +echo "##################################################" +echo "### testing host key importing..." +ssh-keygen -b 1024 -t rsa -N '' -f "$TEMPDIR"/ssh_host_rsa_key +monkeysphere-host expert import-key testhost < "$TEMPDIR"/ssh_host_rsa_key -# FIXME: need to test import-key as well +# change host key expiration +echo "##################################################" +echo "### setting host key expiration..." +monkeysphere-host set-expire 1 +monkeysphere-host show-key +# FIXME: how do we check that the expiration has really been set? +echo "##################################################" +echo "### getting host key fingerprint..." HOSTKEYID=$( monkeysphere-host show-key | grep '^OpenPGP fingerprint: ' | cut -f3 -d\ ) -# certify it with the "Admin's Key". +# certify host key with the "Admin's Key". # (this would normally be done via keyservers) echo "##################################################" echo "### certifying server host key..." @@ -301,6 +285,7 @@ chmod o-w "$TESTHOME"/.monkeysphere/authorized_user_ids # FIXME: addtest: remove admin as id-certifier and check ssh failure +# FIXME: addtest: add hostname on host key # FIXME: addtest: revoke hostname on host key and check ssh failure # FIXME: addtest: revoke the host key and check ssh failure