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_phpssl.php | 51 +++++++++++++++++++++------------------------------ 1 files changed, 21 insertions(+), 30 deletions(-) diff --git a/plugins/enigma/lib/enigma_driver_phpssl.php b/plugins/enigma/lib/enigma_driver_phpssl.php index 50af447..a5aa6de 100644 --- a/plugins/enigma/lib/enigma_driver_phpssl.php +++ b/plugins/enigma/lib/enigma_driver_phpssl.php @@ -1,20 +1,14 @@ <?php -/* + +/** +-------------------------------------------------------------------------+ - | S/MIME driver for the Enigma Plugin | + | S/MIME driver for the Enigma Plugin | | | - | This program is free software; you can redistribute it and/or modify | - | it under the terms of the GNU General Public License version 2 | - | as published by the Free Software Foundation. | + | Copyright (C) 2010-2015 The Roundcube Dev Team | | | - | This program is distributed in the hope that it will be useful, | - | but WITHOUT ANY WARRANTY; without even the implied warranty of | - | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | - | GNU General Public License for more details. | - | | - | You should have received a copy of the GNU General Public License along | - | with this program; if not, write to the Free Software Foundation, Inc., | - | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | | | +-------------------------------------------------------------------------+ | Author: Aleksander Machniak <alec@alec.pl> | @@ -24,7 +18,6 @@ class enigma_driver_phpssl extends enigma_driver { private $rc; - //private $gpg; private $homedir; private $user; @@ -46,15 +39,15 @@ $homedir = $this->rc->config->get('enigma_smime_homedir', INSTALL_PATH . '/plugins/enigma/home'); if (!$homedir) - return new enigma_error(enigma_error::E_INTERNAL, + return new enigma_error(enigma_error::INTERNAL, "Option 'enigma_smime_homedir' not specified"); // check if homedir exists (create it if not) and is readable if (!file_exists($homedir)) - return new enigma_error(enigma_error::E_INTERNAL, + return new enigma_error(enigma_error::INTERNAL, "Keys directory doesn't exists: $homedir"); if (!is_writable($homedir)) - return new enigma_error(enigma_error::E_INTERNAL, + return new enigma_error(enigma_error::INTERNAL, "Keys directory isn't writeable: $homedir"); $homedir = $homedir . '/' . $this->user; @@ -64,10 +57,10 @@ mkdir($homedir, 0700); if (!file_exists($homedir)) - return new enigma_error(enigma_error::E_INTERNAL, + return new enigma_error(enigma_error::INTERNAL, "Unable to create keys directory: $homedir"); if (!is_writable($homedir)) - return new enigma_error(enigma_error::E_INTERNAL, + return new enigma_error(enigma_error::INTERNAL, "Unable to write to keys directory: $homedir"); $this->homedir = $homedir; @@ -78,11 +71,11 @@ { } - function decrypt($text, $key, $passwd) + function decrypt($text, $keys = array()) { } - function sign($text, $key, $passwd) + function sign($text, $key, $passwd, $mode = null) { } @@ -95,7 +88,7 @@ $fh = fopen($msg_file, "w"); if ($struct->mime_id) { - $message->get_part_content($struct->mime_id, $fh, true, 0, false); + $message->get_part_body($struct->mime_id, false, 0, $fh); } else { $this->rc->storage->get_raw_body($message->uid, $fh); @@ -111,7 +104,7 @@ if ($sig !== true) { // try without certificate verification $sig = openssl_pkcs7_verify($msg_file, PKCS7_NOVERIFY, $cert_file); - $validity = enigma_error::E_UNVERIFIED; + $validity = enigma_error::UNVERIFIED; } if ($sig === true) { @@ -119,7 +112,7 @@ } else { $errorstr = $this->get_openssl_error(); - $sig = new enigma_error(enigma_error::E_INTERNAL, $errorstr); + $sig = new enigma_error(enigma_error::INTERNAL, $errorstr); } // remove temp files @@ -145,15 +138,15 @@ { } - public function del_key($keyid) + public function delete_key($keyid) { } - public function del_privkey($keyid) + public function delete_privkey($keyid) { } - public function del_pubkey($keyid) + public function delete_pubkey($keyid) { } @@ -190,8 +183,6 @@ $skey->expires = $subkey->getExpirationDate(); $skey->fingerprint = $subkey->getFingerprint(); $skey->has_private = $subkey->hasPrivate(); - $skey->can_sign = $subkey->canSign(); - $skey->can_encrypt = $subkey->canEncrypt(); $ekey->subkeys[$idx] = $skey; }; @@ -218,7 +209,7 @@ if (empty($cert) || empty($cert['subject'])) { $errorstr = $this->get_openssl_error(); - return new enigma_error(enigm_error::E_INTERNAL, $errorstr); + return new enigma_error(enigma_error::INTERNAL, $errorstr); } $data = new enigma_signature(); -- Gitblit v1.9.1