From 4cd087ea2eb8d1dbc8a063b41cffcd5df35d7df6 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sun, 13 Sep 2015 08:50:16 -0400
Subject: [PATCH] Fixed mailvelope-generated messages structure (required Mail_Mime-1.10.0)
---
plugins/enigma/lib/enigma_key.php | 43 +++++++++++++++++++++++++++++++------------
1 files changed, 31 insertions(+), 12 deletions(-)
diff --git a/plugins/enigma/lib/enigma_key.php b/plugins/enigma/lib/enigma_key.php
index 66670c5..734cbb8 100644
--- a/plugins/enigma/lib/enigma_key.php
+++ b/plugins/enigma/lib/enigma_key.php
@@ -1,20 +1,14 @@
<?php
-/*
+
+/**
+-------------------------------------------------------------------------+
| Key class 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> |
@@ -31,6 +25,9 @@
const TYPE_UNKNOWN = 0;
const TYPE_KEYPAIR = 1;
const TYPE_PUBLIC = 2;
+
+ const CAN_SIGN = 1;
+ const CAN_ENCRYPT = 2;
/**
* Keys list sorting callback for usort()
@@ -92,6 +89,28 @@
}
/**
+ * Get key ID by user email
+ */
+ function find_subkey($email, $mode)
+ {
+ $now = time();
+
+ foreach ($this->users as $user) {
+ if ($user->email === $email && $user->valid && !$user->revoked) {
+ foreach ($this->subkeys as $subkey) {
+ if (!$subkey->revoked && (!$subkey->expires || $subkey->expires > $now)) {
+ if (($mode == self::CAN_ENCRYPT && $subkey->can_encrypt)
+ || ($mode == self::CAN_SIGN && $subkey->has_private)
+ ) {
+ return $subkey;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
* Converts long ID or Fingerprint to short ID
* Crypt_GPG uses internal, but e.g. Thunderbird's Enigmail displays short ID
*
--
Gitblit v1.9.1