mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
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 <neal@g10code.com>
This commit is contained in:
parent
ffe0b7a6dd
commit
dc52995d85
4 changed files with 121 additions and 22 deletions
73
tests/openpgp/default-key.test
Executable file
73
tests/openpgp/default-key.test
Executable file
|
@ -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 <barrett@example.org>
|
||||
# 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
|
Loading…
Add table
Add a link
Reference in a new issue