aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gpgme.h.in3
-rw-r--r--src/key.c1
-rw-r--r--src/keylist.c6
3 files changed, 10 insertions, 0 deletions
diff --git a/src/gpgme.h.in b/src/gpgme.h.in
index 722ce68b..a52901bb 100644
--- a/src/gpgme.h.in
+++ b/src/gpgme.h.in
@@ -728,6 +728,9 @@ struct _gpgme_user_id
/* Time of the last refresh of this user id. 0 if unknown. */
unsigned long last_update;
+
+ /* The string to exactly identify a userid. Might be NULL. */
+ char *uidhash;
};
typedef struct _gpgme_user_id *gpgme_user_id_t;
diff --git a/src/key.c b/src/key.c
index e5dbdcb9..e4b85774 100644
--- a/src/key.c
+++ b/src/key.c
@@ -385,6 +385,7 @@ gpgme_key_unref (gpgme_key_t key)
}
free (uid->address);
+ free (uid->uidhash);
free (uid);
uid = next_uid;
}
diff --git a/src/keylist.c b/src/keylist.c
index a0de7666..a4de3ad5 100644
--- a/src/keylist.c
+++ b/src/keylist.c
@@ -831,6 +831,12 @@ keylist_colon_handler (void *priv, char *line)
if (field[1])
set_userid_flags (key, field[1]);
+ if (field[7] && *field[7])
+ {
+ gpgme_user_id_t uid = key->_last_uid;
+ assert (uid);
+ uid->uidhash = strdup (field[7]);
+ }
opd->tmp_uid = key->_last_uid;
if (fields >= 20)
{