mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
gpg: Use the matching key if the search description is exact.
* g10/gpg.c (check_user_ids): If the search description is for an
exact match (a keyid or fingerprint that ends in '!'), then use the
matching key, not the primary key.
* tests/openpgp/Makefile.am (TESTS): Add use-exact-key.test.
(priv_keys): Add privkeys/00FE67F28A52A8AA08FFAED20AF832DA916D1985.asc,
privkeys/1DF48228FEFF3EC2481B106E0ACA8C465C662CC5.asc,
privkeys/A2832820DC9F40751BDCD375BB0945BA33EC6B4C.asc,
privkeys/ADE710D74409777B7729A7653373D820F67892E0.asc and
privkeys/CEFC51AF91F68A2904FBFF62C4F075A4785B803F.asc.
(sample_keys): Add
samplekeys/E657FB607BB4F21C90BB6651BC067AF28BC90111.asc.
* tests/openpgp/privkeys/00FE67F28A52A8AA08FFAED20AF832DA916D1985.asc:
New file.
* tests/openpgp/privkeys/1DF48228FEFF3EC2481B106E0ACA8C465C662CC5.asc:
New file.
* tests/openpgp/privkeys/A2832820DC9F40751BDCD375BB0945BA33EC6B4C.asc:
New file.
* tests/openpgp/privkeys/ADE710D74409777B7729A7653373D820F67892E0.asc:
New file.
* tests/openpgp/privkeys/CEFC51AF91F68A2904FBFF62C4F075A4785B803F.asc:
New file.
* tests/openpgp/samplekeys/E657FB607BB4F21C90BB6651BC067AF28BC90111.asc:
New file.
* tests/openpgp/use-exact-key.test: New file.
* tests/openpgp/version.test: Install the new private keys.
--
Signed-off-by: Neal H. Walfield <neal@g10code.com>
Reported-by: Reported-by: Kristian Fiskerstrand
<kristian.fiskerstrand@sumptuouscapital.com>
Fixes-commit: 10cca02
This commit is contained in:
parent
69db3285e4
commit
cedbd4709e
11 changed files with 238 additions and 8 deletions
55
tests/openpgp/use-exact-key.test
Executable file
55
tests/openpgp/use-exact-key.test
Executable file
|
@ -0,0 +1,55 @@
|
|||
#!/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
|
||||
if ! echo | $GPG -s -u "$x" | $GPG --verify --status-fd=1 \
|
||||
| grep -q 'VALIDSIG 5FBA84ACE02DCB17DA3DFF6BBCA43C441EA97479'
|
||||
then
|
||||
echo | $GPG -s -u "$x" | $GPG --verify --status-fd=2
|
||||
error "Unexpected key used for signing (not the signing subkey, specified \"$x\")."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# But, if we request a particular signing key, we should get it.
|
||||
for x in 8BC90111 F5F77B83 1EA97479
|
||||
do
|
||||
if ! echo | $GPG -s -u "$x!" | $GPG --verify --status-fd=1 \
|
||||
| grep -q "VALIDSIG [0-9A-F]*$x "
|
||||
then
|
||||
echo | $GPG -s -u "$x!" | $GPG --verify --status-fd=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