diff options
author | Neal H. Walfield <[email protected]> | 2015-12-22 13:21:18 +0000 |
---|---|---|
committer | Neal H. Walfield <[email protected]> | 2015-12-22 14:03:54 +0000 |
commit | dc52995d85048ed12ae8b9f330e9ca41a4030aae (patch) | |
tree | 3c22fc598e33f3038f360f2752e6dd948c0e3b9d /tests/openpgp/default-key.test | |
parent | gpg: Remove unused parameter. (diff) | |
download | gnupg-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-x | tests/openpgp/default-key.test | 73 |
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 |