Aleksander Machniak
2016-04-17 6e4642b12ca7a487690e4cf3e7a72fbade224d5a
plugins/enigma/lib/enigma_driver_gnupg.php
@@ -40,6 +40,7 @@
    function init()
    {
        $homedir = $this->rc->config->get('enigma_pgp_homedir', INSTALL_PATH . 'plugins/enigma/home');
        $debug   = $this->rc->config->get('enigma_debug');
        if (!$homedir)
            return new enigma_error(enigma_error::INTERNAL,
@@ -73,7 +74,7 @@
            $this->gpg = new Crypt_GPG(array(
                'homedir'   => $this->homedir,
                // 'binary'    => '/usr/bin/gpg2',
                // 'debug'     => true,
                'debug'     => $debug ? array($this, 'debug') : false,
          ));
        }
        catch (Exception $e) {
@@ -257,10 +258,11 @@
    public function gen_key($data)
    {
        try {
            $debug  = $this->rc->config->get('enigma_debug');
            $keygen = new Crypt_GPG_KeyGenerator(array(
                    'homedir' => $this->homedir,
                    // 'binary'  => '/usr/bin/gpg2',
                    // 'debug'   => true,
                    'debug'   => $debug ? array($this, 'debug') : false,
            ));
            $key = $keygen
@@ -299,7 +301,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;
@@ -430,8 +432,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;
        };
@@ -440,4 +443,12 @@
        return $ekey;
    }
    /**
     * Write debug info from Crypt_GPG to logs/enigma
     */
    public function debug($line)
    {
        rcube::write_log('enigma', 'GPG: ' . $line);
    }
}