summaryrefslogtreecommitdiff
path: root/tests/keytrans
diff options
context:
space:
mode:
Diffstat (limited to 'tests/keytrans')
-rwxr-xr-xtests/keytrans86
1 files changed, 86 insertions, 0 deletions
diff --git a/tests/keytrans b/tests/keytrans
new file mode 100755
index 0000000..262b653
--- /dev/null
+++ b/tests/keytrans
@@ -0,0 +1,86 @@
+#!/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:"$TESTDIR"/../src/keytrans:"$PATH"
+
+export MONKEYSPHERE_SYSDATADIR="$TEMPDIR"
+export MONKEYSPHERE_SYSCONFIGDIR="$TEMPDIR"
+export MONKEYSPHERE_SYSSHAREDIR="$TESTDIR"/../src/share
+export MONKEYSPHERE_MONKEYSPHERE_USER=$(whoami)
+export MONKEYSPHERE_CHECK_KEYSERVER=false
+export MONKEYSPHERE_LOG_LEVEL=DEBUG
+
+
+######################################################################
+### TEST KEYTRANS
+
+echo "##################################################"
+echo "### test key conversion..."
+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
+# get the the key timestamp
+timestamp=$(gpg --list-key --with-colons --fixed-list-mode | \
+ grep ^pub: | cut -d: -f6)
+# export the key to a file
+gpg --export-secret-key | openpgp2ssh > \
+ "$TEMPDIR"/test.pem
+# 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 )
+
+# clear out the temp dir
+rm -rf "$TEMPDIR"
+mkdir -p "$TEMPDIR"