Fixed.
[elisp/epg.git] / README
1 * What's this?
2
3 EasyPG is yet another GnuPG interface for Emacs.  It consists of two
4 parts: transparent file encryption utility and easy-to-use elisp
5 library to interact with GnuPG.
6
7 * Requirements
8
9 ** GNU Emacs 21.4 or later
10
11 ** XEmacs 21.4 or later
12
13 ** GnuPG 1.4.3 or later
14
15 ** Gnus 5.10.8 or later (optional)
16
17 * Quick start
18
19 ** Transparent file encryption
20
21 EasyPG provides transparent file encryption similar to crypt++,
22 alpaca.el, hedgehog.  To try this feature, put (require 'epg-file)
23 in your ~/.emacs.el and C-x C-f ~/test.txt.gpg.
24
25 ** Using with Gnus/PGG
26
27 EasyPG provides an implementation of the backend interface of
28 Gnus/PGG.  To use EasyPG instead of pgg-gpg, install pgg-epg.el and
29 add the following line to your ~/.gnus
30
31 (setq pgg-scheme 'epg)
32
33 * Advantages over other competitors
34
35 There are many competitors of EasyPG such as Mailcrypt, PGG, gpg.el,
36 etc.  EasyPG has some advantages over them.
37
38 ** EasyPG avoides potential security flaws of Emacs.
39
40 *** `call-process-region' writes data in region to temporary files.
41
42 `call-process-region' writes data in region to temporary files.  PGG
43 and gpg.el use `call-process-region' to communicate with a gpg
44 subprocess.  Your passphrases leak to the filesystem!
45
46 *** There is no way to clear strings safely.
47
48 If Emacs crashed and dumps core, passphrase strings in memory are also
49 dumped within the core file.  `read-passwd' function clears passphrase
50 strings by `(fillarray string 0)'.  However, Emacs performs compaction
51 in gc_sweep phase.  If GC happens before `fillarray', passphrase
52 strings may be moved elsewhere in memory.  It is recommended that as
53 soon as you are done with passphrase you should clear it manually.
54 However, PGG and gpg.el can keep passphrase strings in cache for a
55 while and this behavior is their default!
56
57 ** GnuPG features are directly accessible from Emacs
58
59 Other competitors provide only specific features of GnuPG since they
60 still support PGP 2.*, 5.*, 6.*.  As the name indicates, EasyPG is
61 inspired by GPGME (GnuPG Made Easy), and the library interface is
62 close to GPGME.  With EasyPG you can benefit from a lot of features of
63 GnuPG.