From: Michael M Slusarz Date: Fri, 14 Aug 2009 16:35:25 +0000 (-0600) Subject: Handle SMIME data correctly if it is the base MIME part X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=325122e2cd104d57a544b471550258bd29b45591;p=horde.git Handle SMIME data correctly if it is the base MIME part --- diff --git a/imp/lib/Mime/Viewer/Smime.php b/imp/lib/Mime/Viewer/Smime.php index 22ffbd108..e7473d8a6 100644 --- a/imp/lib/Mime/Viewer/Smime.php +++ b/imp/lib/Mime/Viewer/Smime.php @@ -151,10 +151,12 @@ class IMP_Horde_Mime_Viewer_Smime extends Horde_Mime_Viewer_Driver return null; } - $raw_text = $this->_mimepart->replaceEOL($this->_params['contents']->getBodyPart($this->_mimepart->getMimeId(), array('mimeheaders' => true, 'stream' => true)), Horde_Mime_Part::RFC_EOL); + $raw_text = $this->_mimepart->getMimeId() + ? $this->_params['contents']->getBodyPart($this->_mimepart->getMimeId(), array('mimeheaders' => true, 'stream' => true)) + : $this->_params['contents']->fullMessageText(); try { - $decrypted_data = $this->_impsmime->decryptMessage($raw_text); + $decrypted_data = $this->_impsmime->decryptMessage($this->_mimepart->replaceEOL($raw_text, Horde_Mime_Part::RFC_EOL)); } catch (Horde_Exception $e) { $status[] = $e->getMessage(); return null; @@ -174,11 +176,15 @@ class IMP_Horde_Mime_Viewer_Smime extends Horde_Mime_Viewer_Driver return array(); } - $raw_text = $this->_mimepart->replaceEOL($this->_params['contents']->getBodyPart($this->_mimepart->getMimeId(), array('mimeheaders' => true, 'stream' => true)), Horde_Mime_Part::RFC_EOL); + $raw_text = $this->_mimepart->getMimeId() + ? $this->_params['contents']->getBodyPart($this->_mimepart->getMimeId(), array('mimeheaders' => true, 'stream' => true)) + : $this->_params['contents']->fullMessageText(); try { - $sig_result = $this->_impsmime->verifySignature($raw_text); - } catch (Horde_Exception $e) {} + $sig_result = $this->_impsmime->verifySignature($this->_mimepart->replaceEOL($raw_text, Horde_Mime_Part::RFC_EOL)); + } catch (Horde_Exception $e) { + return array(); + } return array( $this->_mimepart->getMimeId() => array( @@ -238,7 +244,7 @@ class IMP_Horde_Mime_Viewer_Smime extends Horde_Mime_Viewer_Driver $stream = $base_id ? $this->_params['contents']->getBodyPart($base_id, array('mimeheaders' => true, 'stream' => true)) - : $this->_params['contents']->fullMessageText(array('stream' => true)); + : $this->_params['contents']->fullMessageText(); $raw_text = $this->_mimepart->replaceEOL($stream, Horde_Mime_Part::RFC_EOL); $sig_result = null;