cpp: Fix Key::isDeVs for subkeys
authorAndre Heinecke <aheinecke@intevation.de>
Wed, 26 Jul 2017 13:07:27 +0000 (15:07 +0200)
committerAndre Heinecke <aheinecke@intevation.de>
Wed, 26 Jul 2017 13:07:55 +0000 (15:07 +0200)
* lang/cpp/src/key.cpp (Key::isDeVs): Check all subkeys.

--
Previosly only the primary key was checked and not all subkeys.

lang/cpp/src/key.cpp

index 31e59e1..66fdea9 100644 (file)
@@ -236,7 +236,18 @@ bool Key::isQualified() const
 
 bool Key::isDeVs() const
 {
-    return key && key->subkeys && key->subkeys->is_de_vs;
+    if (!key) {
+        return false;
+    }
+    if (!key->subkeys || !key->subkeys->is_de_vs) {
+        return false;
+    }
+    for (gpgme_sub_key_t subkey = key->subkeys ; subkey ; subkey = subkey->next) {
+        if (!subkey->is_de_vs) {
+            return false;
+        }
+    }
+    return true;
 }
 
 const char *Key::issuerSerial() const