From 13eb9bdc245273918bc2b96b475d7d74f01aae2b Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sat, 03 Oct 2015 12:56:33 -0400
Subject: [PATCH] Enigma: Display complete key information (subkeys, user IDs)

---
 plugins/enigma/lib/enigma_driver_gnupg.php |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/plugins/enigma/lib/enigma_driver_gnupg.php b/plugins/enigma/lib/enigma_driver_gnupg.php
index 4046bdd..c41c6c1 100644
--- a/plugins/enigma/lib/enigma_driver_gnupg.php
+++ b/plugins/enigma/lib/enigma_driver_gnupg.php
@@ -299,7 +299,7 @@
             else if ($code == enigma_error::DELKEY) {
                 $key = $this->get_key($keyid);
                 for ($i = count($key->subkeys) - 1; $i >= 0; $i--) {
-                    $type = $key->subkeys[$i]->can_encrypt ? 'priv' : 'pub';
+                    $type = ($key->subkeys[$i]->usage & enigma_key::CAN_ENCRYPT) ? 'priv' : 'pub';
                     $result = $this->{'delete_' . $type . 'key'}($key->subkeys[$i]->id);
                     if ($result !== true) {
                         return $result;
@@ -423,6 +423,14 @@
         $ekey->name = trim($ekey->users[0]->name . ' <' . $ekey->users[0]->email . '>');
 
         foreach ($key->getSubKeys() as $idx => $subkey) {
+            $usage = 0;
+            if ($subkey->canSign()) {
+                $usage += enigma_key::CAN_SIGN;
+            }
+            if ($subkey->canEncrypt()) {
+                $usage += enigma_key::CAN_ENCRYPT;
+            }
+
             $skey = new enigma_subkey();
             $skey->id          = $subkey->getId();
             $skey->revoked     = $subkey->isRevoked();
@@ -430,8 +438,9 @@
             $skey->expires     = $subkey->getExpirationDate();
             $skey->fingerprint = $subkey->getFingerprint();
             $skey->has_private = $subkey->hasPrivate();
-            $skey->can_sign    = $subkey->canSign();
-            $skey->can_encrypt = $subkey->canEncrypt();
+            $skey->algorithm   = $subkey->getAlgorithm();
+            $skey->length      = $subkey->getLength();
+            $skey->usage       = $usage;
 
             $ekey->subkeys[$idx] = $skey;
         };

--
Gitblit v1.9.1