summaryrefslogtreecommitdiff
path: root/tests/keytrans
diff options
context:
space:
mode:
authorMatt Goins <mjgoins@openflows.com>2009-02-04 12:37:26 -0500
committerMatt Goins <mjgoins@openflows.com>2009-02-04 12:37:26 -0500
commitc9a361eecab5ea18d0b868580a3d0703517ab677 (patch)
tree89ba718df3d6c73e20e7c05bc174e9ee994bbdfa /tests/keytrans
parent001f9d9990b0341dfc8b94651cd7a7e51dccd6cf (diff)
parentfa55936fde40619cdb955a089065d27a67f03f10 (diff)
Merge commit 'dkg/master'
Diffstat (limited to 'tests/keytrans')
-rwxr-xr-xtests/keytrans88
1 files changed, 88 insertions, 0 deletions
diff --git a/tests/keytrans b/tests/keytrans
new file mode 100755
index 0000000..285d17b
--- /dev/null
+++ b/tests/keytrans
@@ -0,0 +1,88 @@
+#!/usr/bin/env bash
+
+# Tests to ensure that the monkeysphere is working
+
+# Authors:
+# Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+# Jameson Rollins <jrollins@fifthhorseman.net>
+# Micah Anderson <micah@riseup.net>
+#
+# Copyright: 2008-2009
+# License: GPL v3 or later
+
+# these tests should all be able to run as a non-privileged user.
+
+# all subcommands in this script should complete without failure:
+set -e
+# piped commands should return the code of the first non-zero return
+set -o pipefail
+
+export TESTDIR=$(dirname "$0")
+
+source "$TESTDIR"/common
+
+## setup trap
+trap failed_cleanup EXIT
+
+######################################################################
+### SETUP VARIABLES
+
+## set up some variables to ensure that we're operating strictly in
+## the tests, not system-wide:
+
+# make temp dir
+TEMPDIR="$TESTDIR"/tmp
+if [ -e "$TEMPDIR" ] ; then
+ echo "tempdir '$TEMPDIR' already exists."
+ exit 1
+fi
+mkdir -p "$TEMPDIR"
+
+# Use the local copy of executables first, instead of system ones.
+# This should help us test without installing.
+export PATH="$TESTDIR"/../src/keytrans:"$PATH"
+
+######################################################################
+### TEST KEYTRANS
+
+echo "##################################################"
+echo "### generating openpgp key..."
+export GNUPGHOME="$TEMPDIR"
+chmod 700 "$TEMPDIR"
+# generate a key
+gpg --batch --$(get_gpg_prng_arg) --gen-key <<EOF
+Key-Type: RSA
+Key-Length: 1024
+Key-Usage: sign
+Name-Real: testtest
+Expire-Date: 0
+
+%commit
+%echo done
+EOF
+
+echo "##################################################"
+echo "### retrieving key timestamp..."
+timestamp=$(gpg --list-key --with-colons --fixed-list-mode | \
+ grep ^pub: | cut -d: -f6)
+
+echo "##################################################"
+echo "### exporting key to ssh file..."
+gpg --export-secret-key | openpgp2ssh > \
+ "$TEMPDIR"/test.pem
+
+echo "##################################################"
+echo "### reconvert key, and compare to key in gpg keyring..."
+diff -u \
+ <(gpg --export-secret-key | hd) \
+ <(PEM2OPENPGP_USAGE_FLAGS=sign,certify \
+ PEM2OPENPGP_TIMESTAMP="$timestamp" pem2openpgp testtest < \
+ "$TEMPDIR"/test.pem | hd )
+
+trap - EXIT
+
+echo "##################################################"
+echo " Monkeysphere keytrans test completed successfully!"
+echo "##################################################"
+
+cleanup