Mercurial > hg > rc1
comparison plugins/enigma/lib/enigma_driver.php @ 0:1e000243b222
vanilla 1.3.3 distro, I hope
| author | Charlie Root |
|---|---|
| date | Thu, 04 Jan 2018 15:50:29 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:1e000243b222 |
|---|---|
| 1 <?php | |
| 2 | |
| 3 /** | |
| 4 +-------------------------------------------------------------------------+ | |
| 5 | Abstract driver for the Enigma Plugin | | |
| 6 | | | |
| 7 | Copyright (C) 2010-2015 The Roundcube Dev Team | | |
| 8 | | | |
| 9 | Licensed under the GNU General Public License version 3 or | | |
| 10 | any later version with exceptions for skins & plugins. | | |
| 11 | See the README file for a full license statement. | | |
| 12 | | | |
| 13 +-------------------------------------------------------------------------+ | |
| 14 | Author: Aleksander Machniak <alec@alec.pl> | | |
| 15 +-------------------------------------------------------------------------+ | |
| 16 */ | |
| 17 | |
| 18 abstract class enigma_driver | |
| 19 { | |
| 20 /** | |
| 21 * Class constructor. | |
| 22 * | |
| 23 * @param string User name (email address) | |
| 24 */ | |
| 25 abstract function __construct($user); | |
| 26 | |
| 27 /** | |
| 28 * Driver initialization. | |
| 29 * | |
| 30 * @return mixed NULL on success, enigma_error on failure | |
| 31 */ | |
| 32 abstract function init(); | |
| 33 | |
| 34 /** | |
| 35 * Encryption (and optional signing). | |
| 36 * | |
| 37 * @param string Message body | |
| 38 * @param array List of keys (enigma_key objects) | |
| 39 * @param enigma_key Optional signing Key ID | |
| 40 * | |
| 41 * @return mixed Encrypted message or enigma_error on failure | |
| 42 */ | |
| 43 abstract function encrypt($text, $keys, $sign_key = null); | |
| 44 | |
| 45 /** | |
| 46 * Decryption (and sig verification if sig exists). | |
| 47 * | |
| 48 * @param string Encrypted message | |
| 49 * @param array List of key-password | |
| 50 * @param enigma_signature Signature information (if available) | |
| 51 * | |
| 52 * @return mixed Decrypted message or enigma_error on failure | |
| 53 */ | |
| 54 abstract function decrypt($text, $keys = array(), &$signature = null); | |
| 55 | |
| 56 /** | |
| 57 * Signing. | |
| 58 * | |
| 59 * @param string Message body | |
| 60 * @param enigma_key The signing key | |
| 61 * @param int Signing mode (enigma_engine::SIGN_*) | |
| 62 * | |
| 63 * @return mixed True on success or enigma_error on failure | |
| 64 */ | |
| 65 abstract function sign($text, $key, $mode = null); | |
| 66 | |
| 67 /** | |
| 68 * Signature verification. | |
| 69 * | |
| 70 * @param string Message body | |
| 71 * @param string Signature, if message is of type PGP/MIME and body doesn't contain it | |
| 72 * | |
| 73 * @return mixed Signature information (enigma_signature) or enigma_error | |
| 74 */ | |
| 75 abstract function verify($text, $signature); | |
| 76 | |
| 77 /** | |
| 78 * Key/Cert file import. | |
| 79 * | |
| 80 * @param string File name or file content | |
| 81 * @param bolean True if first argument is a filename | |
| 82 * @param array Optional key => password map | |
| 83 * | |
| 84 * @return mixed Import status array or enigma_error | |
| 85 */ | |
| 86 abstract function import($content, $isfile = false, $passwords = array()); | |
| 87 | |
| 88 /** | |
| 89 * Key/Cert export. | |
| 90 * | |
| 91 * @param string Key ID | |
| 92 * @param bool Include private key | |
| 93 * @param array Optional key => password map | |
| 94 * | |
| 95 * @return mixed Key content or enigma_error | |
| 96 */ | |
| 97 abstract function export($key, $with_private = false, $passwords = array()); | |
| 98 | |
| 99 /** | |
| 100 * Keys listing. | |
| 101 * | |
| 102 * @param string Optional pattern for key ID, user ID or fingerprint | |
| 103 * | |
| 104 * @return mixed Array of enigma_key objects or enigma_error | |
| 105 */ | |
| 106 abstract function list_keys($pattern = ''); | |
| 107 | |
| 108 /** | |
| 109 * Single key information. | |
| 110 * | |
| 111 * @param string Key ID, user ID or fingerprint | |
| 112 * | |
| 113 * @return mixed Key (enigma_key) object or enigma_error | |
| 114 */ | |
| 115 abstract function get_key($keyid); | |
| 116 | |
| 117 /** | |
| 118 * Key pair generation. | |
| 119 * | |
| 120 * @param array Key/User data (name, email, password, size) | |
| 121 * | |
| 122 * @return mixed Key (enigma_key) object or enigma_error | |
| 123 */ | |
| 124 abstract function gen_key($data); | |
| 125 | |
| 126 /** | |
| 127 * Key deletion. | |
| 128 * | |
| 129 * @param string Key ID | |
| 130 * | |
| 131 * @return mixed True on success or enigma_error | |
| 132 */ | |
| 133 abstract function delete_key($keyid); | |
| 134 | |
| 135 /** | |
| 136 * Returns a name of the hash algorithm used for the last | |
| 137 * signing operation. | |
| 138 * | |
| 139 * @return string Hash algorithm name e.g. sha1 | |
| 140 */ | |
| 141 abstract function signature_algorithm(); | |
| 142 } |
