460448360b4d19a5309c12b82cc7454c91c0e672
[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 * Quick start
16
17 (0) Put (require 'epg-file) in your ~/.emacs.el
18
19 (1) Restart emacs
20
21 (2) C-x C-f ~/test.gpg
22
23 * Advantages over other competitors
24
25 There are many competitors of EasyPG such as Mailcrypt, PGG, gpg.el,
26 etc.  EasyPG has some advantages over them.
27
28 ** EasyPG avoides potential security flaws of Emacs.
29
30 *** `call-process-region' writes data in region to a temporary file.
31
32 PGG and gpg.el use `call-process-region' to communicate with a gpg
33 subprocess.  Your passphrases may leak to the filesystem.
34
35 *** There is no way to clear strings safely.
36
37 If Emacs crashed and dumps core, passphrase strings in memory are also
38 dumped with the core file.  `read-passwd' function clears passphrase
39 strings by `(fillarray string 0)'.  However, it is not perfect.  Emacs
40 does compaction of small strings in gc_sweep phase.  If GC happens
41 before `fillarray', passphrase strings may be copied elsewhere in
42 memory.  So, it is recommended that if you are done with passphrase
43 you should clear it manually.  However, PGG and gpg.el enables
44 passphrase caching by default.
45
46 ** Most GnuPG features are accessible from Emacs
47
48 As the name indicates, EasyPG is inspired by GPGME (GnuPG Made Easy),
49 and the library interface is close to GPGME.