gpg: Fix informative printing of user ids.
authorWerner Koch <wk@gnupg.org>
Mon, 13 Oct 2014 12:54:26 +0000 (14:54 +0200)
committerWerner Koch <wk@gnupg.org>
Mon, 13 Oct 2014 12:54:26 +0000 (14:54 +0200)
commit21c0ea6bafafbcc4a2e07f0ac76275cc0229e9a0
tree8797879b41fb4feb027d8684999060207f83522d
parentc60814a5ce13932d933b363abc0c60c12783ae2f
gpg: Fix informative printing of user ids.

* g10/getkey.c (keyid_list): Add field "fpr".
(cache_user_id): Store fpr and check for dups only by fpr.
(get_pubkey_byfpr): New.
(get_user_id_string): Make static and use xasprintf.
(get_long_user_id_string): Use xasprintf.
(get_user_id_byfpr): New.
(get_user_id_byfpr_native): New.
* g10/keyid.c (fingerprint_from_pk): Make arg RET_LEN optional.
* g10/import.c (import_one): Use get_user_id_byfpr_native.
--

We now cache the userids using the fingerprint.  This allows to print
the correct user id for keys with a duplicated key id.  We should
eventually start to retire the use of all the old keyid based
functions.  However, at some places we only have the keyid and thus
some of them will need to be kept (maybe changed with an indication to
show that more than several user ids are matching).

Signed-off-by: Werner Koch <wk@gnupg.org>
g10/getkey.c
g10/gpg.h
g10/import.c
g10/keydb.h
g10/keyid.c