aboutsummaryrefslogtreecommitdiffstats
path: root/tests/openpgp/default-key.test
diff options
context:
space:
mode:
authorNeal H. Walfield <[email protected]>2015-12-22 13:21:18 +0000
committerNeal H. Walfield <[email protected]>2015-12-22 14:03:54 +0000
commitdc52995d85048ed12ae8b9f330e9ca41a4030aae (patch)
tree3c22fc598e33f3038f360f2752e6dd948c0e3b9d /tests/openpgp/default-key.test
parentgpg: Remove unused parameter. (diff)
downloadgnupg-dc52995d85048ed12ae8b9f330e9ca41a4030aae.tar.gz
gnupg-dc52995d85048ed12ae8b9f330e9ca41a4030aae.zip
gpg: Lazily evaluate --default-key.
* g10/gpg.c (main): If --encrypt-to-default-key is specified, don't add --default-key's value to REMUSR here... * g10/pkclist.c (build_pk_list): ... do it here. * tests/openpgp/Makefile.am (TESTS): Add default-key.test. * tests/openpgp/default-key.test: New file. -- Signed-off-by: Neal H. Walfield <[email protected]>
Diffstat (limited to 'tests/openpgp/default-key.test')
-rwxr-xr-xtests/openpgp/default-key.test73
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/openpgp/default-key.test b/tests/openpgp/default-key.test
new file mode 100755
index 000000000..bfb84ac18
--- /dev/null
+++ b/tests/openpgp/default-key.test
@@ -0,0 +1,73 @@
+#!/bin/sh
+
+. $srcdir/defs.inc || exit 3
+
+#set -x
+
+# Make sure $srcdir is set.
+if test "x$srcdir" = x
+then
+ echo srcdir environment variable not set!
+ exit 1
+fi
+
+# Import the sample key
+#
+# pub 1024R/8BC90111 2015-12-02
+# Key fingerprint = E657 FB60 7BB4 F21C 90BB 6651 BC06 7AF2 8BC9 0111
+# uid [ultimate] Barrett Brown <[email protected]>
+# sub 1024R/3E880CFF 2015-12-02 (encryption)
+# sub 1024R/F5F77B83 2015-12-02 (signing)
+# sub 1024R/45117079 2015-12-02 (encryption)
+# sub 1024R/1EA97479 2015-12-02 (signing)
+info "Importing public key."
+if $GPG --import $srcdir/samplekeys/E657FB607BB4F21C90BB6651BC067AF28BC90111.asc
+then
+ :
+else
+ error "$k: import failed"
+fi
+
+# By default, the most recent, valid signing subkey (1EA97479).
+for x in 8BC90111 3E880CFF F5F77B83 45117079 1EA97479
+do
+ info
+ info "Trying --default-key $x"
+
+ if ! echo | $GPG --default-key "$x" -s | $GPG --verify --status-fd=1 \
+ | grep -q 'VALIDSIG 5FBA84ACE02DCB17DA3DFF6BBCA43C441EA97479'
+ then
+ echo | $GPG --default-key "$x" -s | $GPG --verify --status-fd=2
+ error "Unexpected key used for signing (not the signing subkey, specified \"$x\")."
+ exit 1
+ fi
+done
+
+# By default, the most recent, valid encryption subkey (45117079).
+for x in 8BC90111 3E880CFF F5F77B83 45117079 1EA97479
+do
+ info
+ info "Trying --default-key $x --encrypt-to-default-key"
+
+ # We need another recipient, because --encrypt-to-default-key is
+ # not considered a recipient and gpg doesn't encrypt without any
+ # recipients.
+ #
+ # Note: it doesn't matter whether we specify the primary key or
+ # a subkey: the newest encryption subkey will be used.
+ if ! echo | $GPG --trust-model=always \
+ --default-key "$x" --encrypt-to-default-key \
+ -r 439F02CA -e \
+ | $GPG --list-packets \
+ | grep -q "keyid[ ][A-F0-9]*45117079"
+ then
+ echo | $GPG --trust-model=always \
+ --default-key "$x" --encrypt-to-default-key \
+ -r 439F02CA -e \
+ | $GPG --list-packets 1>&2
+ error "Unexpected key used for signing (specified \"$x\")."
+ exit 1
+ fi
+done
+
+exit 0