diff options
author | Werner Koch <[email protected]> | 2014-10-13 12:01:29 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2014-10-13 12:01:29 +0000 |
commit | c60814a5ce13932d933b363abc0c60c12783ae2f (patch) | |
tree | 1594d9af20b30d60627208212ca0f66c1314e92b /tests | |
parent | tests: Add sample keys with colliding long keu ids. (diff) | |
download | gnupg-c60814a5ce13932d933b363abc0c60c12783ae2f.tar.gz gnupg-c60814a5ce13932d933b363abc0c60c12783ae2f.zip |
gpg: Allow importing keys with duplicated long key ids.
* g10/keydb.c (keydb_handle): Add field no_caching.
(keyblock_cache): Repalce field kid by fpr.
(keydb_disable_caching): New.
(keydb_search): Use the fingerprint as cache index.
* g10/import.c (import_one): Use the fingerprint and not the kid to
lookup the key. Call keydb_disable_caching beofre re-searching for
update.
* tests/openpgp/import.test: Add a test case.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/openpgp/import.test | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/openpgp/import.test b/tests/openpgp/import.test index eb6860e88..a58db40fe 100755 --- a/tests/openpgp/import.test +++ b/tests/openpgp/import.test @@ -31,3 +31,16 @@ if $GPG --list-keys --with-colons $keyid \ else error "$goodkey: import failed (bug 1223)" fi + + +key1=$srcdir/samplekeys/dda252ebb8ebe1af-1.asc +key2=$srcdir/samplekeys/dda252ebb8ebe1af-2.asc +fpr1=9E669861368BCA0BE42DAF7DDDA252EBB8EBE1AF +fpr2=A55120427374F3F7AA5F1166DDA252EBB8EBE1AF +info "Checking import of two keys with colliding long key ids." +$GPG --delete-key --batch --yes $fpr1 $fpr2 2>/dev/null || true +$GPG --import $key1 || true +$GPG --import $key2 || true +n=$($GPG --list-keys --with-colons $fpr1 $fpr2 2>/dev/null \ + | grep '^pub:.:4096:1:DDA252EBB8EBE1AF:' | wc -l) +[ $n -ne 2 ] && error "Importing keys with long id collision failed" |