| | |
| | | private $enigma; |
| | | private $pgp_driver; |
| | | private $smime_driver; |
| | | private $password_time; |
| | | |
| | | public $decryptions = array(); |
| | | public $signatures = array(); |
| | | public $signed_parts = array(); |
| | | public $encrypted_parts = array(); |
| | | |
| | | |
| | | const PASSWORD_TIME = 120; |
| | | |
| | | const SIGN_MODE_BODY = 1; |
| | | const SIGN_MODE_SEPARATE = 2; |
| | |
| | | $this->rc = rcmail::get_instance(); |
| | | $this->enigma = $enigma; |
| | | |
| | | $this->password_time = $this->rc->config->get('enigma_password_time'); |
| | | |
| | | // this will remove passwords from session after some time |
| | | $this->get_passwords(); |
| | | if ($this->password_time) { |
| | | $this->get_passwords(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | // Verify signature |
| | | if ($this->rc->action == 'show' || $this->rc->action == 'preview') { |
| | | $sig = $this->pgp_verify($body); |
| | | if ($this->rc->config->get('enigma_signatures', true)) { |
| | | $sig = $this->pgp_verify($body); |
| | | } |
| | | } |
| | | |
| | | // @TODO: Handle big bodies using (temp) files |
| | |
| | | */ |
| | | private function parse_pgp_signed(&$p) |
| | | { |
| | | if (!$this->rc->config->get('enigma_signatures', true)) { |
| | | return; |
| | | } |
| | | |
| | | // Verify signature |
| | | if ($this->rc->action == 'show' || $this->rc->action == 'preview') { |
| | | $this->load_pgp_driver(); |
| | |
| | | { |
| | | return; // @TODO |
| | | |
| | | if (!$this->rc->config->get('enigma_signatures', true)) { |
| | | return; |
| | | } |
| | | |
| | | // Verify signature |
| | | if ($this->rc->action == 'show' || $this->rc->action == 'preview') { |
| | | $this->load_smime_driver(); |
| | |
| | | */ |
| | | private function parse_plain_encrypted(&$p, $body) |
| | | { |
| | | if (!$this->rc->config->get('enigma_decryption', true)) { |
| | | return; |
| | | } |
| | | |
| | | $this->load_pgp_driver(); |
| | | $part = $p['structure']; |
| | | |
| | |
| | | */ |
| | | private function parse_pgp_encrypted(&$p) |
| | | { |
| | | if (!$this->rc->config->get('enigma_decryption', true)) { |
| | | return; |
| | | } |
| | | |
| | | $this->load_pgp_driver(); |
| | | |
| | | $struct = $p['structure']; |
| | |
| | | */ |
| | | private function parse_smime_encrypted(&$p) |
| | | { |
| | | if (!$this->rc->config->get('enigma_decryption', true)) { |
| | | return; |
| | | } |
| | | |
| | | // $this->load_smime_driver(); |
| | | } |
| | | |
| | |
| | | $config = @unserialize($config); |
| | | } |
| | | |
| | | $threshold = time() - self::PASSWORD_TIME; |
| | | $threshold = time() - $this->password_time; |
| | | $keys = array(); |
| | | |
| | | // delete expired passwords |
| | | foreach ((array) $config as $key => $value) { |
| | | if ($value[1] < $threshold) { |
| | | if ($pass_time && $value[1] < $threshold) { |
| | | unset($config[$key]); |
| | | $modified = true; |
| | | } |