   This documentation describes Mailcrypt version 3.5.5.  This
documentation was last updated on August 29, 1998.

   Copyright 1995 Patrick J. LoPresti Copyright 1998 Leonard R. Budney

   The Mailcrypt program and this manual are published as free software.
You may redistribute and/or modify them under the terms of the GNU
General Public License as published by the Free Software Foundation;
either version 2, or (at your option) any later version.

   Mailcrypt is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

   You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING.  If not, write to the Free
Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

Miscellaneous Configuration
***************************

   This chapter documents some additional Mailcrypt configuration
options which could not be naturally described elsewhere.

Alternate Keyring
=================

   By default, Mailcrypt will use the same public keyring that PGP would
use if executed from the shell.

   You can cause Mailcrypt to use a specific public keyring by setting
the variable `mc-pgp-alternate-keyring'.  If this variable is set,
Mailcrypt will use that keyring for all functions which would otherwise
have used the default.  This includes adding keys, extracting keys,
verifying signatures, and encrypting messages.

   This feature might be useful if you maintain multiple keyrings; you
can switch between them by setting this variable.  Depending on your
tastes, you might want to configure fetching from a keyring as well
(see Keyring Fetch.).

Comment Field
=============

   By default, Mailcrypt will supply a "comment" option to PGP,
resulting in output which looks something like this:

     ----- BEGIN PGP FOOBAR -----
     Version: 2.6.3
     Comment: Processed by Mailcrypt 3.5.5, an Emacs/PGP interface

     ...
     ----- END PGP FOOBAR -----

   To change the comment to one of your own, set the variable
`mc-pgp-comment'. Set it to `nil' to use PGP's default, which is
probably either no comment or something defined in `config.txt'.
`mc-pgp50-comment' and `mc-gpg-comment' are the corresponding variables
for the other versions.

Mode Line
=========

   `mc-read-mode' and `mc-write-mode' will each indicate they are
active by placing the string `MC-r' or `MC-w' in the mode line,
respectively.

   You can change these strings by setting the variables
`mc-read-mode-string' and `mc-write-mode-string'.  So, for example, to
get rid of the mode indicators entirely, you might put the following
lines into your `.emacs' file:

     (setq mc-read-mode-string "")
     (setq mc-write-mode-string "")

Key Bindings
============

   The Mailcrypt key bindings are defined by the keymaps
`mc-read-mode-map' and `mc-write-mode-map'.  To change the key
bindings, you just need to set these variables in your `.emacs' file.

   For example, if you wanted `C-c C-m' to be the Mailcrypt prefix
(instead of `C-c /') in `mc-read-mode', you would put the following
code in your `.emacs' file:

     (setq mc-read-mode-map (make-sparse-keymap))
     (define-key mc-read-mode-map "\C-c\C-mf" 'mc-deactivate-passwd)
     (define-key mc-read-mode-map "\C-c\C-md" 'mc-decrypt)
     (define-key mc-read-mode-map "\C-c\C-mv" 'mc-verify)
     (define-key mc-read-mode-map "\C-c\C-ma" 'mc-snarf)
     (define-key mc-read-mode-map "\C-c\C-mk" 'mc-pgp-fetch-key)

   For more information on Emacs key bindings, see Customizing Key Bindings (emacs).

Nonstandard Paths
=================

   The information in this section should be unnecessary, but is
provided "just in case".

   Mailcrypt will look for the PGP executable in your standard search
path under the name `pgp'.  To use a different name (or to provide a
complete path), set the variable `mc-pgp-path'.

   PGP 5.0 includes four separate executables, usually installed as
"pgpe", "pgps", "pgpv", and "pgpk". The variables `mc-pgp50-pgpe-path',
`mc-pgp50-pgps-path', `mc-pgp50-pgpv-path', and `mc-pgp50-pgpk-path'
tell Mailcrypt where to find them if they are not on your search path.

   GnuPG is normally installed as "gpg". `mc-gpg-path' tells Mailcrypt
where to find the executable if it is not on your path.

   In order to keep your identities straight, Mailcrypt needs to know
where your secret keyring resides.

   Mailcrypt figures this out heuristically by assuming that the file
`secring.pgp' is in the same directory as your public key ring.  It
determines the location of the latter by doing a dry run of PGP with
`+verbose=1' and parsing the output.

   If this heuristic is failing for you, you can manually tell Mailcrypt
where your secret key ring is by setting the variable `mc-pgp-keydir',
like this:

     (setq mc-pgp-keydir "/users/patl/.pgp/")

   Note that the trailing slash is *required*.

   If the heuristic fails, please report it as a bug (see Credits.).

   Note that if you have changed the default location of your secret
keyring, Mailcrypt will be unable to locate it.  You can work around
this by either setting `mc-pgp-keydir', or by making a symbolic link to
your secret keyring from `secring.pgp' in your default public keyring
directory.

Tips
****

   Here are some random tips.

   * PGP provides quite good security when used correctly.  You are far
     more likely to use it correctly if you have read the directions.
     Read the `PGP User's Guide'!

   * 60 seconds is a relatively safe but somewhat inconvenient value for
     `mc-passwd-timeout'.  If your paranoia permits, consider increasing
     it to five or ten minutes (see Passphrase Cache.).

   * If Mailcrypt ever does something you wish it had not, *DON'T
     PANIC*.  Just use the normal Emacs undo command, `M-x undo' or
     `C-x u', to restore your buffer (see Emacs Undo (emacs)).
     Mailcrypt keeps almost no state except what you see in your
     buffer, so any action can be undone this way.

   * All Mailcrypt operations place PGP's output in the `*MailCrypt*'
     buffer.  Check it occasionally for status and warning messages.

   * Add yourself to the Mailcrypt announcements mailing list (see
     Mailing List.).  That way you can find out about new versions of
     Mailcrypt automatically, and we can enjoy the feeling that people
     are actually using our package.

Limitations
***********

   Mailcrypt is a powerful program, but it is not a complete PGP
interface.  Perhaps some future version will be; in the meantime, you
will need to use the command-line interface for some operations.
Things which the current version does not support include:

*Complete Key Management*
     Mailcrypt's key management support is limited to adding and
     extracting keys from keyrings.  It does not support key
     generation, key removal, key revocation, ID and trust parameter
     editing, or key signing.  It also ignores PGP's warnings when you
     use a key which is not fully certified.  (Of course, you can see
     these warnings by viewing the `*MailCrypt*' buffer; see
     Tips.)

*Encryption with Conventional Cryptography*
     Mailcrypt supports decryption but not encryption with
     "conventional" (i.e., non-public key) cryptography.

*Detached Signatures*
     Mailcrypt does not support the creation nor the verification of
     detached signatures.

*"For your eyes only" Decryption*
     Mailcrypt will be unable to decrypt a file which was encrypted
     with the "for your eyes only" (`-m') option.  This is actually a
     bug in PGP, which provides no portable way to avoid its paging
     behavior.

References
**********

   This chapter contains information and pointers to information about
topics related to PGP and Mailcrypt.

Online Resources
================

`http://cag-www.lcs.mit.edu/mailcrypt/'
     "Mailcrypt: An Emacs/PGP Interface", by Pat LoPresti. This page has
     been the Mailcrypt homepage since October 10, 1995.  It is still
     the distribution site for version 3.4 of Mailcrypt-a rock-solid
     version still to be recommended if you use only PGP 2.6.x.

`http://world.std.com/~franl/crypto.html'
     "Cryptography, PGP, and Your Privacy", by Fran Litterio.  This
     page is simply excellent.  It makes all the other References in
     this chapter redundant, but we will include them anyway for
     redundancy.

`http://web.mit.edu/network/pgp.html'
     MIT is the canonical distribution site for PGP; this is the
     announcement page.

`ftp://rtfm.mit.edu/pub/usenet/alt.security.pgp/'
     This is an archive site for the `alt.security.pgp' FAQ lists.

`news:alt.security.pgp'
     The `alt.security.pgp' newsgroup is a good place to go for
     discussion about PGP, as well as any topic which any fool anywhere
     ever thinks is related to PGP.  It is also a good last resort for
     getting answers to questions, but please read the FAQ lists first.

`http://pgp.ai.mit.edu/~bal/pks-toplev.html'
     Brian LaMacchia (bal@zurich.ai.mit.edu) has put together a World
     Wide Web interface to the public key servers (see Key Servers.).
     Mailcrypt uses this interface by default when
     attempting to fetch keys via HTTP (see HTTP Fetch.); most
     people get to his interface through this page.

`ftp://ftp.csua.berkeley.edu/pub/cypherpunks/Home.html'
     The Cypherpunks are dedicated to taking proactive measures to
     ensure privacy in the digital age.  They wrote the software for,
     and operate many of, the anonymous remailers currently in
     existence.

`http://www.cs.berkeley.edu/~raph/'
     Raph Levien actively maintains a remailer list which Mailcrypt
     knows how to parse.  If you are impressed by how easy it is to
     configure Mailcrypt's remailer functions, Raph is the one to
     thank.  Raph's page also has many useful links.

`http://www.obscura.com/~loki/'
     Lance Cottrell is the author of Mixmaster.  His home page is the
     canonical source for information on Mixmaster and is a good source
     for PGP pointers in general.

Key Servers
===========

   "Key servers" are machines with a publicly accessible interface to
an enormous global public keyring.  Anyone may add keys to or query this
keyring.  Each key server holds a complete copy of the global keyring,
and they arrange to keep one another informed of additions they receive.

   This means you can tell any key server to add your public key to the
global keyring, and all of the other servers will know about it within a
day or so.  Then anyone will be able to query any key server to obtain
your public key.

   To add your key to the keyservers, send an Email message to
`pgp-public-keys@pgp.ai.mit.edu' with a subject line of `ADD' and a
body containing your public key block.  With Mailcrypt installed, you
can just type `C-c / x' to insert your public key block (see
Inserting Keys.) into the body of the message.

   For help with the Email interface to the key servers, send a message
with a subject line of `HELP'.  For a World Wide Web interface to the
key servers, see Brian LaMacchia's home page at
`http://www-swiss.ai.mit.edu/~bal/'.

   Some other key servers include:

   * pgp-public-keys@jpunix.com

   * pgp-public-keys@kub.nl

   * pgp-public-keys@uit.no

   * pgp-public-keys@pgp.ox.ac.uk

   For a complete list, consult any good online repository of PGP
information (see Online Resources.).

   It is strongly recommended that you submit your key to the key
servers, since many humans and programs (including Mailcrypt) may look
for it there.  Besides, it takes mere seconds and the pain passes
quickly.

Mailing List
============

   If you would like to automatically receive information about new
releases of Mailcrypt, send Email to
`mc-announce-request@cag.lcs.mit.edu' asking to be placed on the
`mc-announce' mailing list.  The mailing list is maintained manually,
so please be patient.

   The `mc-announce' list is reserved for announcements of new
Mailcrypt versions, so it has extremely low volume.  We encourage you to
add yourself so we can get a rough idea of how many people are using
our package.

Politics
========

   Cryptography in general, PGP in particular, and free software are
politically somewhat controversial topics.  Heck, in the U.S. Congress,
freedom of speech is a controversial topic.  Anyway, here are some
organizations you should definitely watch and preferably send lots of
money.

*The Electronic Frontier Foundation*
     The EFF (`http://www.eff.org/') works to protect civil liberties in
     cyberspace.  They also maintain an impressive collection of on-line
     resources.  If you like Mailcrypt so much that you wish you had
     paid for it, this is the number one place we would want to see
     your money go.  The EFF newsgroups, `comp.org.eff.news' and
     `comp.org.eff.talk', are required reading for the well-informed.

*The League for Programming Freedom*
     The LPF (`http://www.lpf.org/') works to fight software patents,
     which threaten to make free software like Mailcrypt impossible.

*The Center for Democracy and Technology*
     The CDT (`http://www.cdt.org/') has essentially the same goals as
     the EFF, but is more of a lobbying group.

   Mailcrypt's remailer support was inspired by the Communications
Decency Act of 1995 (see `http://www.cdt.org/cda.html') and by the
International "Church" of Scientology (see
`http://www.mit.edu:8001/people/rnewman/scientology/').

Credits
*******

   Mailcrypt was written by Jin Choi (jin@atype.com) and Pat LoPresti
(patl@lcs.mit.edu).  Please send us your bug reports and comments.
Also see Mailing List.

   This documentation was mostly written by Pat LoPresti, but borrows
heavily from an earlier version by Hal Abelson (hal@mit.edu).

   Mailcrypt would not be as robust nor as featureful if it were not for
our outstanding set of Beta testers:

   * Samuel Tardieu <sam@inf.enst.fr>

   * Richard Stanton <stanton@haas.berkeley.edu>

   * Peter Arius <arius@immd2.informatik.uni-erlangen.de>

   * Tomaz Borstnar <tomaz@cmir.arnes.si>

   * Barry Brumitt <belboz@frc2.frc.ri.cmu.edu>

   * Steffen Zahn <Steffen.Zahn%robinie@sunserv.sie.siemens.co.at>

   * Mike Campbell <mcampbel@offenbach.sbi.com>

   * Mark Baushke <mdb@cisco.com>

   * Mike Long <mike.long@analog.com>

Index
*****

   This index has an entry for every key sequence, function, and
variable documented in this manual.