Cpp: Use fpr field for primaryFingerprint
authorAndre Heinecke <aheinecke@intevation.de>
Wed, 24 Aug 2016 11:57:49 +0000 (13:57 +0200)
committerAndre Heinecke <aheinecke@intevation.de>
Wed, 24 Aug 2016 11:57:49 +0000 (13:57 +0200)
* lang/cpp/src/key.cpp (Key::primaryFingerprint): Return
fpr value if available.

--
Should not be necessary but we might have an incomplete
key without subkeys but the fingerprint already set in
gpgme's data type.

lang/cpp/src/key.cpp

index 68d7685..6f40f66 100644 (file)
@@ -259,11 +259,16 @@ const char *Key::shortKeyID() const
 
 const char *Key::primaryFingerprint() const
 {
-    const char *fpr = key && key->subkeys ? key->subkeys->fpr : 0 ;
-    if (fpr) {
-        return fpr;
-    } else {
-        return keyID();
+    if (!key) {
+        return nullptr;
+    }
+    if (key->fpr) {
+        /* Return what gpgme thinks is the primary fingerprint */
+        return key->fpr;
+    }
+    if (key->subkeys) {
+        /* Return the first subkeys fingerprint */
+        return key->subkeys->fpr;
     }
 }