summaryrefslogtreecommitdiff
path: root/doc/misc/message.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/misc/message.texi')
-rw-r--r--doc/misc/message.texi195
1 files changed, 23 insertions, 172 deletions
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index 761fb772f46..dbc77592a03 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -938,82 +938,16 @@ Libidn} installed in order to use this functionality.
@cindex encrypt
@cindex secure
-By default, e-mails are transmitted without any protection around the
-Internet, which implies that they can be read and changed by lots of
-different parties. In particular, they are analyzed under bulk
-surveillance, which violates basic human rights. To defend those
-rights, digital self-defense is necessary (in addition to legal
-changes), and encryption and digital signatures are powerful
-techniques for self-defense. In essence, encryption ensures that
-only the intended recipient will be able to read a message, while
-digital signatures make sure that modifications to messages can be
-detected by the recipient.
-
-Nowadays, there are two major incompatible e-mail encryption
-standards, namely @acronym{OpenPGP} and @acronym{S/MIME}. Both of
-these standards are implemented by the @uref{https://www.gnupg.org/,
-GNU Privacy Guard (GnuPG)}, which needs to be installed as external
-software in addition to GNU Emacs. Before you can start to encrypt,
-decrypt, and sign messages, you need to create a so-called key-pair,
-which consists of a private key and a public key. Your @emph{public} key
-(also known as @emph{certificate}, in particular with @acronym{S/MIME}), is
-used by others (a) to encrypt messages intended for you and (b) to verify
-digital signatures created by you. In contrast, you use your @emph{private}
-key (a) to decrypt messages and (b) to sign messages. (You may want to
-think of your public key as an open safe that you offer to others such
-that they can deposit messages and lock the door, while your private
-key corresponds to the opening combination for the safe.)
-
-Thus, you need to perform the following steps for e-mail encryption,
-typically outside Emacs. See, for example, the
-@uref{https://www.gnupg.org/gph/en/manual.html, The GNU Privacy
-Handbook} for details covering the standard @acronym{OpenPGP} with
-@acronym{GnuPG}.
-@enumerate
-@item
-Install GnuPG.
-@item
-Create a key-pair for your own e-mail address.
-@item
-Distribute your public key, e.g., via upload to key servers.
-@item
-Import the public keys for the recipients to which you want to send
-encrypted e-mails.
-@end enumerate
-
-Whether to use the standard @acronym{OpenPGP} or @acronym{S/MIME} is
-beyond the scope of this documentation. Actually, you can use one
-standard for one set of recipients and the other standard for
-different recipients (depending their preferences or capabilities).
-
-In case you are not familiar with all those acronyms: The standard
-@acronym{OpenPGP} is also called @acronym{PGP} (Pretty Good Privacy).
-The command line tools offered by @acronym{GnuPG} for
-@acronym{OpenPGP} are called @command{gpg} and @command{gpg2}, while
-the one for @acronym{S/MIME} is called @command{gpgsm}. An
-alternative, but discouraged, tool for @acronym{S/MIME} is
-@command{openssl}. To make matters worse, e-mail messages can be
-formed in two different ways with @acronym{OpenPGP}, namely
-@acronym{PGP} (RFC 1991/4880) and @acronym{PGP/MIME} (RFC 2015/3156).
-
-The good news, however, is the following: In GNU Emacs, Message
-supports all those variants, comes with reasonable defaults that can
-be customized according to your needs, and invokes the proper command
-line tools behind the scenes for encryption, decryption, as well as
-creation and verification of digital signatures.
-
-Message uses the @acronym{MML} language for the creation of signed
-and/or encrypted messages as explained in the following.
-
+Using the @acronym{MML} language, Message is able to create digitally
+signed and digitally encrypted messages. Message (or rather
+@acronym{MML}) currently support @acronym{PGP} (RFC 1991),
+@acronym{PGP/MIME} (RFC 2015/3156) and @acronym{S/MIME}.
@menu
* Signing and encryption:: Signing and encrypting commands.
* Using S/MIME:: Using S/MIME
-* Using OpenPGP:: Using OpenPGP
-* Passphrase caching:: How to cache passphrases
+* Using PGP/MIME:: Using PGP/MIME
* PGP Compatibility:: Compatibility with older implementations
-* Encrypt-to-self:: Reading your own encrypted messages
-* Bcc Warning:: Do not use encryption with Bcc headers
@end menu
@node Signing and encryption
@@ -1107,45 +1041,11 @@ programs are required to make things work, and some small general hints.
@node Using S/MIME
@subsection Using S/MIME
-@acronym{S/MIME} requires an external implementation, such as
-@uref{https://www.gnupg.org/, GNU Privacy Guard} or
-@uref{https://www.openssl.org/, OpenSSL}. The default Emacs interface
-to the S/MIME implementation is EasyPG (@pxref{Top,,EasyPG Assistant
-User's Manual, epa, EasyPG Assistant User's Manual}), which has been
-included in Emacs since version 23 and which relies on the command
-line tool @command{gpgsm} provided by @acronym{GnuPG}. That tool
-implements certificate management, including certificate revocation
-and expiry, while such tasks need to be performed manually, if OpenSSL
-is used.
-
-The choice between EasyPG and OpenSSL is controlled by the variable
-@code{mml-smime-use}, which needs to be set to the value @code{epg}
-for EasyPG. Depending on your version of Emacs that value may be the
-default; if not, you can either customize that variable or place the
-following line in your @file{.emacs} file (that line needs to be
-placed above other code related to message/gnus/encryption):
-
-@lisp
-(require 'epg)
-@end lisp
-
-Moreover, you may want to customize the variables
-@code{mml-default-encrypt-method} and
-@code{mml-default-sign-method} to the string @code{"smime"}.
-
-That's all if you want to use S/MIME with EasyPG, and that's the
-recommended way of using S/MIME with Message.
-
-If you think about using OpenSSL instead of EasyPG, please read the
-BUGS section in the manual for the @command{smime} command coming with
-OpenSSL first. If you still want to use OpenSSL, the following
-applies.
-
-@emph{Note!} The remainder of this section assumes you have a basic
-familiarity with modern cryptography, @acronym{S/MIME}, various PKCS
-standards, OpenSSL and so on.
+@emph{Note!} This section assume you have a basic familiarity with
+modern cryptography, @acronym{S/MIME}, various PKCS standards, OpenSSL and
+so on.
-The @acronym{S/MIME} support in Message (and @acronym{MML}) can use
+The @acronym{S/MIME} support in Message (and @acronym{MML}) require
OpenSSL@. OpenSSL performs the actual @acronym{S/MIME} sign/encrypt
operations. OpenSSL can be found at @uref{http://www.openssl.org/}.
OpenSSL 0.9.6 and later should work. Version 0.9.5a cannot extract mail
@@ -1201,44 +1101,26 @@ you use unencrypted keys (e.g., if they are on a secure storage, or if
you are on a secure single user machine) simply press @code{RET} at
the passphrase prompt.
-@node Using OpenPGP
-@subsection Using OpenPGP
+@node Using PGP/MIME
+@subsection Using PGP/MIME
-Use of OpenPGP requires an external software, such
-as @uref{https://www.gnupg.org/, GNU Privacy Guard}. Pre-OpenPGP
+@acronym{PGP/MIME} requires an external OpenPGP implementation, such
+as @uref{http://www.gnupg.org/, GNU Privacy Guard}. Pre-OpenPGP
implementations such as PGP 2.x and PGP 5.x are also supported. The
default Emacs interface to the PGP implementation is EasyPG
(@pxref{Top,,EasyPG Assistant User's Manual, epa, EasyPG Assistant
User's Manual}), but PGG (@pxref{Top, ,PGG, pgg, PGG Manual}) and
Mailcrypt are also supported. @xref{PGP Compatibility}.
-As stated earlier, messages encrypted with OpenPGP can be formatted
-according to two different standards, namely @acronym{PGP} or
-@acronym{PGP/MIME}. The variables
-@code{mml-default-encrypt-method} and
-@code{mml-default-sign-method} determine which variant to prefer,
-@acronym{PGP/MIME} by default.
-
-@node Passphrase caching
-@subsection Passphrase caching
-
@cindex gpg-agent
-Message with EasyPG internally calls GnuPG (the @command{gpg} or
-@command{gpgsm} command) to perform
+Message internally calls GnuPG (the @command{gpg} command) to perform
data encryption, and in certain cases (decrypting or signing for
-example), @command{gpg}/@command{gpgsm} requires user's passphrase.
-Currently the recommended way to supply your passphrase is to use the
+example), @command{gpg} requires user's passphrase. Currently the
+recommended way to supply your passphrase to @command{gpg} is to use the
@command{gpg-agent} program.
-In particular, the @command{gpg-agent} program supports passphrase
-caching so that you do not need to enter your passphrase for every
-decryption/sign operation. @xref{Agent Options, , , gnupg, Using the
-GNU Privacy Guard}.
-
-How to use @command{gpg-agent} in Emacs depends on your version of
-GnuPG. With GnuPG version 2.1, @command{gpg-agent} is started
-automatically if necessary. With older versions you may need to run
-the following command from the shell before starting Emacs.
+To use @command{gpg-agent} in Emacs, you need to run the following
+command from the shell before starting Emacs.
@example
eval `gpg-agent --daemon`
@@ -1253,10 +1135,11 @@ GNU Privacy Guard}.
Once your @command{gpg-agent} is set up, it will ask you for a
passphrase as needed for @command{gpg}. Under the X Window System,
you will see a new passphrase input dialog appear. The dialog is
-provided by PIN Entry (the @command{pinentry} command), reasonably
-recent versions of which can also cooperate with Emacs on a text
-console. If that does not work, you may need to put a passphrase into
-gpg-agent's cache beforehand. The following command does the trick.
+provided by PIN Entry (the @command{pinentry} command), and as of
+version 0.7.2, @command{pinentry} cannot cooperate with Emacs on a
+single tty. So, if you are using a text console, you may need to put
+a passphrase into gpg-agent's cache beforehand. The following command
+does the trick.
@example
gpg --use-agent --sign < /dev/null > /dev/null
@@ -1298,38 +1181,6 @@ message that can be understood by PGP version 2.
(Refer to @uref{http://www.gnupg.org/gph/en/pgp2x.html} for more
information about the problem.)
-@node Encrypt-to-self
-@subsection Encrypt-to-self
-
-By default, messages are encrypted to all recipients (@code{To},
-@code{Cc}, @code{Bcc} headers). Thus, you will not be able to decrypt
-your own messages. To make sure that messages are also encrypted to
-your own key(s), several alternative solutions exist:
-@enumerate
-@item
-Use the @code{encrypt-to} option in the file @file{gpg.conf} (for
-OpenPGP) or @file{gpgsm.conf} (for @acronym{S/MIME} with EasyPG).
-@xref{Invoking GPG, , , gnupg, Using the GNU Privacy Guard}, or
-@xref{Invoking GPGSM, , , gnupg, Using the GNU Privacy Guard}.
-@item
-Include your own e-mail address (for which you created a key-pair)
-among the recipients.
-@item
-Customize the variable @code{mml-secure-openpgp-encrypt-to-self} (for
-OpenPGP) or @code{mml-secure-smime-encrypt-to-self} (for
-@acronym{S/MIME} with EasyPG).
-@end enumerate
-
-@node Bcc Warning
-@subsection Bcc Warning
-
-The @code{Bcc} header is meant to hide recipients of messages.
-However, when encrypted messages are used, the e-mail addresses of all
-@code{Bcc}-headers are given away to all recipients without
-warning, which is a bug, see
-@uref{https://debbugs.gnu.org/cgi/bugreport.cgi?bug=18718}.
-
-
@node Various Commands
@section Various Commands