Fixed.
[elisp/epg.git] / README
diff --git a/README b/README
index c370ac8..81a94ab 100644 (file)
--- a/README
+++ b/README
@@ -1,46 +1,53 @@
 * 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 two parts:
 
 
-* Requirements
+- "The EasyPG Assistant" which provides basic GUI of GnuPG
+- "The EasyPG Library" which enables use of various features of GnuPG
+
+NOTE: EasyPG is not a fork or a re-implementation of Gnus/PGG.
 
 
-** GNU Emacs 21.4 or later
+* Requirements
 
 
-** XEmacs 21.4 or later
+** GNU Emacs 21.4 or later, XEmacs 21.4 or later
 
 ** GnuPG 1.4.3 or later
 
 * Quick start
 
 
 ** GnuPG 1.4.3 or later
 
 * Quick start
 
-(0) Put (require 'epg-file) in your ~/.emacs.el
+** Installation
+
+  $ ./configure
+  $ sudo make install
+
+Add the following line to your ~/.emacs
 
 
-(1) Restart emacs
+  (require 'epa-setup)
 
 
-(2) C-x C-f ~/test.gpg
+Then you can do some cryptographic operations on dired.
 
 
-* Advantages over other competitors
+  M-x dired
+  (mark some files)
+  : e (or M-x epg-dired-do-encrypt)
+  (select recipients and click [OK])
 
 
-** EasyPG avoides potential security flaws of Emacs.
+* Security consideration
 
 
-*** `call-process-region' writes data in region to a temporary file.
+** `call-process-region' writes data in region to a temporary file
 
 
-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 a temporary file.
+EasyPG does *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 the EasyPG library dares *not* to cache passphrase by itself.
+Elisp programs can set `epg-context-passphrase-callback' to cache
+user's passphrases.