You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
roundcubemail/plugins/enigma
Aleksander Machniak de25226d31 Enigma: Fix "decryption oracle" bug [CVE-2019-10740] (#6638)
When composing mail (on reply/forward/edit) we decrypt content only
in the first "content part" of the message.
6 years ago
..
home Update .htaccess rules for Apache 2.4 9 years ago
lib Enigma: Fix "decryption oracle" bug [CVE-2019-10740] (#6638) 6 years ago
localization Enigma: Fix error message when trying to encrypt with a revoked private key (#6607) 6 years ago
skins Remove useless box-shadows 8 years ago
tests dirname(__FILE__) -> __DIR__ 10 years ago
README Enigma: Fix bug where revoked users/keys were not greyed out in key info 6 years ago
composer.json Fix require entry for crypt_gpg also in Enigma's composer.json 8 years ago
config.inc.php.dist GnuPG 2.1: Add option to configure gpgconf binary location 8 years ago
enigma.js Enigma: Enable keypair generation on Internet Explorer 11 7 years ago
enigma.php GnuPG 2.1: Support password input on private key export 8 years ago

README

Enigma Plugin for Roundcube

This plugin adds support for viewing and sending of signed and encrypted
messages in PGP (RFC 2440) and PGP/MIME (RFC 3156) format.

The plugin uses gpg binary on the server and stores all keys
(including private keys of the users) on the server.
Encryption/decryption is done server-side. So, this plugin
is for users that trust the server.


Implemented features:
---------------------
+ PGP: signatures verification
+ PGP: messages decryption
+ PGP: Sending of encrypted/signed messages
+ PGP: keys management UI (key import, export, delete)
+ PGP: key generation (client- or server-side)
+ Handling of PGP keys attached to incoming messages
+ User preferences to disable plugin features
+ Attaching public keys to email
+ Key server(s) support (search, import)


TODO:
-----
- Handling of big messages with temp files (? - security)
- Key info in contact details page (optional)
- Extended key management:
   - disable,
   - revoke,
   - change expiration date, change passphrase, add photo,
   - manage user IDs
   - export private keys
- Generate revocation certs
- Search filter to see invalid/expired keys
- Key server(s) support (upload, refresh)
- Mark keys as trusted/untrasted, display appropriate message in verify/decrypt status
- Support for multi-server installations (store keys in sql database? probably impossible with GnuPG 2.1)
- Performance improvements:
   - cache decrypted message key id so we can skip decryption if we have no password in session
   - cache (last or successful only?) sig verification status to not verify on every msg preview (optional)
- S/MIME: Certs generation (?)
- S/MIME: Certs management
- S/MIME: signed messages verification
- S/MIME: encrypted messages decryption
- S/MIME: Sending signed/encrypted messages
- S/MIME: Handling of certs attached to incoming messages
- S/MIME: Certificate info in Contacts details page (optional)


KNOWN ISSUES:
-------------
There are some known issues with accepting key passphrases on various
system configurations. This is caused by issues in PinEntry handling.
Make sure that vendor/bin/crypt-gpg-pinentry works from command line.

Possible reasons:
- non-working loader in shebang (#! /usr/bin/env php)
  Make sure it works for the user the php scripts are executed upon
  (i.e. apache, www-data, etc.)
- SELinux setting, try command: setsebool -P httpd_unified 0

Note: pinentry is used with gpg >= 2.0 and <= 2.1.12.
Note: for server use GnuPG developers still recommend version 1.4.