From 76bd8d0e311ab957f0115fc7a11c4e5aa02e8a11 Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Tue, 18 Jan 2011 01:00:36 -0700 Subject: [PATCH] Handle S/MIME message verify without cert verify as success --- imp/lib/Mime/Viewer/Smime.php | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/imp/lib/Mime/Viewer/Smime.php b/imp/lib/Mime/Viewer/Smime.php index fa18acfc5..6043e1715 100644 --- a/imp/lib/Mime/Viewer/Smime.php +++ b/imp/lib/Mime/Viewer/Smime.php @@ -275,27 +275,26 @@ class IMP_Mime_Viewer_Smime extends Horde_Mime_Viewer_Base Horde_Util::getFormData('smime_verify_msg')) { try { $sig_result = $this->_impsmime->verifySignature($raw_text); - self::$_cache[$base_id]['status'][0]['icon'] = Horde::img('alerts/success.png', _("Success")); + self::$_cache[$base_id]['status'][0]['icon'] = $sig_result->verify + ? Horde::img('alerts/success.png', _("Success")) + : Horde::img('alerts/warning.png', _("Warning")); self::$_cache[$base_id]['wrap'] = 'mimePartWrapValid'; - if (empty($sig_result->result) || - ($sig_result->result === true)) { - $email = is_array($sig_result->email) - ? implode(', ', $sig_result->email) - : $sig_result->email; + $email = is_array($sig_result->email) + ? implode(', ', $sig_result->email) + : $sig_result->email; - $status[] = _("The data has been verified."); + $status[] = $sig_result->msg; - if (!empty($sig_result->cert)) { - $cert = $this->_impsmime->parseCert($sig_result->cert); - if (isset($cert['certificate']['subject']['CommonName'])) { - $email = $cert['certificate']['subject']['CommonName'] . ' (' . $email . ' )'; - } + if (!empty($sig_result->cert)) { + $cert = $this->_impsmime->parseCert($sig_result->cert); + if (isset($cert['certificate']['subject']['CommonName'])) { + $email = $cert['certificate']['subject']['CommonName'] . ' (' . trim($email) . ')'; } - - $status[] = sprintf(_("Sender: %s"), htmlspecialchars($email)); } + $status[] = sprintf(_("Sender: %s"), htmlspecialchars($email)); + if (!empty($sig_result->cert) && isset($sig_result->email) && $GLOBALS['registry']->hasMethod('contacts/addField') && @@ -303,9 +302,7 @@ class IMP_Mime_Viewer_Smime extends Horde_Mime_Viewer_Base $status[] = '[' . $this->getConfigParam('imp_contents')->linkViewJS($this->_mimepart, 'view_attach', _("View Certificate"), array('params' => array('mode' => IMP_Contents::RENDER_INLINE, 'view_smime_key' => 1))) . '] [' . Horde::link('#', '', null, null, $this->_impsmime->savePublicKeyURL($this->getConfigParam('imp_contents')->getMailbox(), $this->getConfigParam('imp_contents')->getUid(), $sig_id) . ' return false;') . _("Save Certificate in your Address Book") . ']'; } } catch (Horde_Exception $e) { - self::$_cache[$base_id]['status'][0]['icon'] = ($e->getCode() == 'horde.warning') - ? Horde::img('alerts/warning.png', _("Warning")) - : Horde::img('alerts/error.png', _("Error")); + self::$_cache[$base_id]['status'][0]['icon'] = Horde::img('alerts/error.png', _("Error")); self::$_cache[$base_id]['wrap'] = 'mimePartWrapInvalid'; $status[] = $e->getMessage(); } -- 2.11.0