* epg.el (epg-status-GET_BOOL): New function.
[elisp/epg.git] / README
diff --git a/README b/README
index c370ac8..e231330 100644 (file)
--- a/README
+++ b/README
@@ -1,8 +1,8 @@
 * What's this?
 
 * What's this?
 
-EasyPG is yet another GnuPG interface for Emacs.  It consists of two
-parts: transparent file encryption utility and easy-to-use elisp
-library to interact with GnuPG.
+EasyPG is yet another GnuPG interface for Emacs.  It consists of three
+parts: transparent file encryption utility, Gnus/PGG backend, and
+elisp library to interact with GnuPG.
 
 * Requirements
 
 
 * Requirements
 
@@ -12,35 +12,60 @@ library to interact with GnuPG.
 
 ** GnuPG 1.4.3 or later
 
 
 ** GnuPG 1.4.3 or later
 
+** Gnus 5.10.8 or later (optional)
+
 * Quick start
 
 * Quick start
 
-(0) Put (require 'epg-file) in your ~/.emacs.el
+** Installation
+
+$ ./configure
+$ sudo make install
+
+** Transparent file encryption utility
+
+EasyPG provides transparent file encryption utility similar to
+crypt++, alpaca.el, hedgehog.  To try this, add the following line to
+your ~/.emacs and C-x C-f ~/test.txt.gpg.
 
 
-(1) Restart emacs
+(require 'epg-file)
 
 
-(2) C-x C-f ~/test.gpg
+** Gnus/PGG backend
+
+EasyPG provides an implementation of the backend interface of
+Gnus/PGG.  To use EasyPG instead of pgg-gpg, install pgg-epg.el and
+add the following line to your ~/.gnus.
+
+(setq pgg-scheme 'epg)
 
 * Advantages over other competitors
 
 
 * Advantages over other competitors
 
-** EasyPG avoides potential security flaws of Emacs.
+There are many competitors of EasyPG such as Mailcrypt, Gnus/PGG,
+gpg.el, etc.  EasyPG has some advantages over them.
+
+** EasyPG avoides potential security flaws of Emacs
 
 
-*** `call-process-region' writes data in region to a temporary file.
+*** `call-process-region' writes data in region to temporary files
 
 
-PGG and gpg.el use `call-process-region' to communicate with a gpg
-subprocess.  Your passphrases may leak to the filesystem.
+`call-process-region' writes data in region to temporary files.
+EasyPG do _not_ use `call-process-region' to communicate with a gpg
+subprocess.
 
 
-*** There is no way to clear strings safely.
+*** `(fillarray string 0)' is not enough to clear passphrases
 
 If Emacs crashed and dumps core, passphrase strings in memory are also
 
 If Emacs crashed and dumps core, passphrase strings in memory are also
-dumped with the core file.  `read-passwd' function clears passphrase
-strings by `(fillarray string 0)'.  However, it is not perfect.  Emacs
-does compaction of small strings in gc_sweep phase.  If GC happens
-before `fillarray', passphrase strings may be copied elsewhere in
-memory.  So, it is recommended that if you are done with passphrase
-you should clear it manually.  However, PGG and gpg.el enables
-passphrase caching by default.
-
-** Most GnuPG features are accessible from Emacs
-
-As the name indicates, EasyPG is inspired by GPGME (GnuPG Made Easy),
-and the library interface is close to GPGME.
+dumped within the core file.  `read-passwd' function clears passphrase
+strings by `(fillarray string 0)'.  However, Emacs performs compaction
+in gc_sweep phase.  If GC happens before `fillarray', passphrase
+strings may be moved elsewhere in memory.
+
+Fortunately, there is gpg-agent to cache passphrases in more secure
+way, so EasyPG dares _not_ to cache passphrase.  Elisp programs can
+set `epg-context-passphrase-callback' to cache user's passphrases.
+
+** GnuPG features are directly accessible from Emacs
+
+Other competitors provide only specific features of GnuPG since they
+still support PGP 2.*, 5.*, 6.*.  As the name indicates, EasyPG is
+inspired by GPGME (GnuPG Made Easy), and the library interface is
+close to GPGME.  With EasyPG you can benefit from a lot of features of
+GnuPG.