Aleksander Machniak
2016-04-02 ede293946c2ae49a7868e4513dd8c1325b3f898d
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;
@@ -333,6 +333,17 @@
        try {
            $this->gpg->deletePublicKey($keyid);
            return true;
        }
        catch (Exception $e) {
            return $this->get_error_from_exception($e);
        }
    }
    public function pubkey_for_attach($email)
    {
        try {
            $pubkey = $this->gpg->exportPublicKey($email, true);
            return $pubkey;
        }
        catch (Exception $e) {
            return $this->get_error_from_exception($e);
@@ -430,8 +441,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       = $subkey->usage();
            $ekey->subkeys[$idx] = $skey;
        };