Aleksander Machniak
2016-04-02 96c3d84cddb861956cfbc719d694eb972343f1c3
plugins/enigma/lib/enigma_engine.php
@@ -313,6 +313,33 @@
    }
    /**
     * Handler for attaching public key to a message
     *
     * @param Mail_mime Original message
     *
     * @return bool True on success, False on failure
     */
    function attach_public_key(&$message)
    {
        $headers = $message->headers();
        $from    = rcube_mime::decode_address_list($headers['From'], 1, false, null, true);
        $from    = $from[1];
        // find my key
        if ($from && ($key = $this->find_key($from))) {
            $pubkey_armor = $this->export_key($key->id);
            if (!$pubkey_armor instanceof enigma_error) {
                $pubkey_name = '0x' . enigma_key::format_id($key->id) . '.asc';
                $message->addAttachment($pubkey_armor, 'application/pgp-keys', $pubkey_name, false, '7bit');
                return true;
            }
        }
        return false;
    }
    /**
     * Handler for message_part_structure hook.
     * Called for every part of the message.
     *
@@ -909,38 +936,6 @@
    {
        $this->load_pgp_driver();
        $result = $this->pgp_driver->list_keys($pattern);
        if ($result instanceof enigma_error) {
            rcube::raise_error(array(
                'code' => 600, 'type' => 'php',
                'file' => __FILE__, 'line' => __LINE__,
                'message' => "Enigma plugin: " . $result->getMessage()
                ), true, false);
        }
        return $result;
    }
    function get_gpg_pubkey_for_attach($email)
    {
        $this->load_pgp_driver();
        $result = $this->pgp_driver->pubkey_for_attach($email);
        if ($result instanceof enigma_error) {
            rcube::raise_error(array(
                'code' => 600, 'type' => 'php',
                'file' => __FILE__, 'line' => __LINE__,
                'message' => "Enigma plugin: " . $result->getMessage()
                ), true, false);
        }
        return $result;
    }
    function get_keyID($email)
    {
        $this->load_pgp_driver();
        $result = $this->pgp_driver->get_keyID($email);
        if ($result instanceof enigma_error) {
            rcube::raise_error(array(