123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <?php
-
- /**
- +-------------------------------------------------------------------------+
- | Abstract driver for the Enigma Plugin |
- | |
- | Copyright (C) 2010-2015 The Roundcube Dev Team |
- | |
- | 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> |
- +-------------------------------------------------------------------------+
- */
-
- abstract class enigma_driver
- {
- /**
- * Class constructor.
- *
- * @param string User name (email address)
- */
- abstract function __construct($user);
-
- /**
- * Driver initialization.
- *
- * @return mixed NULL on success, enigma_error on failure
- */
- abstract function init();
-
- /**
- * Encryption.
- *
- * @param string Message body
- * @param array List of key-password mapping
- *
- * @return mixed Encrypted message or enigma_error on failure
- */
- abstract function encrypt($text, $keys);
-
- /**
- * Decryption.
- *
- * @param string Encrypted message
- * @param array List of key-password mapping
- */
- abstract function decrypt($text, $keys = array());
-
- /**
- * Signing.
- *
- * @param string Message body
- * @param string Key ID
- * @param string Key password
- * @param int Signing mode (enigma_engine::SIGN_*)
- *
- * @return mixed True on success or enigma_error on failure
- */
- abstract function sign($text, $key, $passwd, $mode = null);
-
- /**
- * Signature verification.
- *
- * @param string Message body
- * @param string Signature, if message is of type PGP/MIME and body doesn't contain it
- *
- * @return mixed Signature information (enigma_signature) or enigma_error
- */
- abstract function verify($text, $signature);
-
- /**
- * Key/Cert file import.
- *
- * @param string File name or file content
- * @param bollean True if first argument is a filename
- *
- * @return mixed Import status array or enigma_error
- */
- abstract function import($content, $isfile = false);
-
- /**
- * Key/Cert export.
- *
- * @param string Key ID
- * @param bool Include private key
- *
- * @return mixed Key content or enigma_error
- */
- abstract function export($key, $with_private = false);
-
- /**
- * Keys listing.
- *
- * @param string Optional pattern for key ID, user ID or fingerprint
- *
- * @return mixed Array of enigma_key objects or enigma_error
- */
- abstract function list_keys($pattern = '');
-
- /**
- * Single key information.
- *
- * @param string Key ID, user ID or fingerprint
- *
- * @return mixed Key (enigma_key) object or enigma_error
- */
- abstract function get_key($keyid);
-
- /**
- * Key pair generation.
- *
- * @param array Key/User data (name, email, password, size)
- *
- * @return mixed Key (enigma_key) object or enigma_error
- */
- abstract function gen_key($data);
-
- /**
- * Key deletion.
- *
- * @param string Key ID
- *
- * @return mixed True on success or enigma_error
- */
- abstract function delete_key($keyid);
- }
|