From 4d87ea2851ae1156cfb1d754cf32b5c9073d4252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= Date: Thu, 3 Sep 2020 12:20:24 +0200 Subject: [PATCH] cpp: Copy some more subkey properties when merging keys * lang/cpp/src/key.cpp (Key::mergeWith): Also merge secret flag and keygrip -- The keygrip was lost if the result of a public key listing was merged with the result of a secret key listing as done by QGpgMEListAllKeysJob. GnuPG-bug-id: 4794 --- lang/cpp/src/key.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp index 5d6560b1..cb0c186e 100644 --- a/lang/cpp/src/key.cpp +++ b/lang/cpp/src/key.cpp @@ -337,6 +337,10 @@ const Key &Key::mergeWith(const Key &other) for (gpgme_sub_key_t hissk = him->subkeys ; hissk ; hissk = hissk->next) { if (strcmp(mysk->fpr, hissk->fpr) == 0) { mysk->is_cardkey |= hissk->is_cardkey; + mysk->secret |= hissk->secret; + if (hissk->keygrip && !mysk->keygrip) { + mysk->keygrip = strdup(hissk->keygrip); + } break; } }