Mercurial > hg > xemacs-beta
comparison man/mailcrypt.texi @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:376386a54a3c |
---|---|
1 \input texinfo @c -*-Texinfo-*- | |
2 | |
3 @c tighten default spacing | |
4 @c @parskip 5pt plus 1 pt | |
5 @c @secheadingskip 10pt plus 6pt minus 3pt | |
6 @c @subsecheadingskip 8pt plus 6pt minus 3pt | |
7 @c @singlespace | |
8 | |
9 @c %**start of header | |
10 @setfilename ../info/mailcrypt.info | |
11 @settitle @value{TITLE} | |
12 @setchapternewpage off | |
13 @c %**end of header | |
14 | |
15 @syncodeindex ky cp | |
16 @syncodeindex vr cp | |
17 @syncodeindex fn cp | |
18 | |
19 @set TITLE Mailcrypt | |
20 @set VERSION 3.4 | |
21 @set UPDATED October 10, 1995 | |
22 | |
23 @ifinfo | |
24 | |
25 This documentation describes Mailcrypt version @value{VERSION}. This | |
26 documentation was last updated on @value{UPDATED}. | |
27 | |
28 Copyright 1995 Patrick J. LoPresti | |
29 | |
30 The Mailcrypt program and this manual are published as free software. | |
31 You may redistribute and/or modify them under the terms of the GNU | |
32 General Public License as published by the Free Software Foundation; | |
33 either version 2, or (at your option) any later version. | |
34 | |
35 Mailcrypt is distributed in the hope that it will be useful, but WITHOUT | |
36 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
37 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
38 for more details. | |
39 | |
40 You should have received a copy of the GNU General Public License along | |
41 with GNU Emacs; see the file COPYING. If not, write to the Free | |
42 Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
43 | |
44 @end ifinfo | |
45 | |
46 @titlepage | |
47 @title Mailcrypt: An EMACS Interface to PGP | |
48 @subtitle Version @value{VERSION} | |
49 @subtitle @value{UPDATED} | |
50 @author Patrick J. LoPresti <patl@@lcs.mit.edu> | |
51 | |
52 @c Copyright page | |
53 @page | |
54 @vskip 0pt plus 1filll | |
55 Copyright @copyright{} 1995 Patrick J. LoPresti | |
56 | |
57 The Mailcrypt program and this documentation are published as free | |
58 software. You may redistribute and/or modify them under the terms of | |
59 the GNU General Public License as published by the Free Software | |
60 Foundation; either version 2, or (at your option) any later version. | |
61 | |
62 Mailcrypt is distributed in the hope that it will be useful, but WITHOUT | |
63 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
64 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
65 for more details. | |
66 | |
67 You should have received a copy of the GNU General Public License along | |
68 with GNU Emacs; see the file COPYING. If not, write to the Free | |
69 Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
70 | |
71 @end titlepage | |
72 | |
73 @ifinfo | |
74 @node Top, Introduction, (dir), (dir) | |
75 @top Mailcrypt | |
76 | |
77 Mailcrypt is an Emacs Lisp package which provides a simple but powerful | |
78 interface to cryptographic functions for mail and news. | |
79 | |
80 This documentation describes Mailcrypt version @value{VERSION}. The | |
81 documentation was last updated on @value{UPDATED}. | |
82 | |
83 @end ifinfo | |
84 | |
85 @menu | |
86 * Introduction:: Read this first. | |
87 * General Use:: Everyday cryptographic functions. | |
88 * Remailer Support:: Interface to secure anonymous remailers. | |
89 * Passphrase Cache:: Letting Mailcrypt remember your passphrase | |
90 for a while. | |
91 * Key Fetching:: Automatically retrieving public keys | |
92 via finger or HTTP. | |
93 * Miscellaneous Configuration:: Random tweakables. | |
94 * Tips:: Hints and tricks. | |
95 * Limitations:: Things Mailcrypt does not do. | |
96 * References:: Pointers to relevant information. | |
97 * Credits:: Whom to blame. | |
98 * Index:: Keys, variables, and functions. | |
99 | |
100 --- The Detailed Node Listing --- | |
101 | |
102 Introduction | |
103 | |
104 * Prerequisites:: Complicated stuff you may have to do. | |
105 * Installation:: Simple stuff you probably have to do. | |
106 * Command Overview:: A brief summary of the most common | |
107 commands. | |
108 | |
109 Installation | |
110 | |
111 * Hooking into Rmail:: | |
112 * Hooking into VM:: | |
113 * Hooking into MH-E:: | |
114 * Hooking into Gnus:: | |
115 | |
116 General Use | |
117 | |
118 * Encrypting:: Encrypting a message to one or more | |
119 recipients. | |
120 * Signing:: Clearsigning a message. | |
121 * Inserting Keys:: Extracting a key from your public key | |
122 ring and inserting it. | |
123 * Decrypting:: Decrypting a message to you. | |
124 * Verifying:: Verifying the signature on a clearsigned | |
125 message. | |
126 * Snarfing Keys:: Finding a key in the current message and | |
127 adding it to your keyring. | |
128 | |
129 Remailer Support | |
130 | |
131 * Remailer Introduction:: A little about remailers in general. | |
132 * Remailer Quick Start:: Getting started quickly. | |
133 * Remailer Chains:: Creating custom chains of your very own. | |
134 * Response Blocks:: A way to let people reply to your | |
135 anonymous messages. | |
136 * Pseudonyms:: Who do you want to be today? | |
137 * Remailing Posts:: Posting to USENET anonymously or | |
138 pseduonymously. | |
139 * Mixmaster Support:: Remailers for the truly paranoid. | |
140 * Remailer Security:: Caveats. | |
141 * Verifiable Pseudonyms:: Giving expression to the voices in your | |
142 head. | |
143 * Remailer Tips:: Free advice. | |
144 | |
145 Key Fetching | |
146 | |
147 * Keyring Fetch:: Fetching from one or more other | |
148 keyrings on the local system. | |
149 * Finger Fetch:: Fetching a key through finger. | |
150 * HTTP Fetch:: Fetching a key off of the Web. | |
151 | |
152 Miscellaneous Configuration | |
153 | |
154 * Alternate Keyring:: Specifying a different file to act | |
155 like your public keyring. | |
156 * Comment Field:: Burma | |
157 Shave | |
158 * Mode Line:: Changing that "MC-w" and "MC-r" stuff | |
159 * Key Bindings:: Which keys cause which actions. | |
160 * Nonstandard Paths:: Useful if your PGP installation is weird. | |
161 | |
162 References | |
163 | |
164 * Online Resources:: Recreational reading with a purpose. | |
165 * Key Servers:: Keepers of the Global Keyring. | |
166 * Mailing List:: Staying informed while pumping the | |
167 authors' egos. | |
168 * Politics:: Anarcho-foobarism. | |
169 @end menu | |
170 | |
171 @node Introduction, General Use, Top, Top | |
172 @chapter Introduction | |
173 | |
174 Mailcrypt is an Emacs Lisp package which provides a simple but powerful | |
175 interface to cryptographic functions for mail and news. With Mailcrypt, | |
176 encryption becomes a seamlessly integrated part of your mail and news | |
177 handling environment. | |
178 | |
179 This manual is long because it is complete. All of the information you | |
180 need to get started is contained in this Introduction alone. | |
181 | |
182 @menu | |
183 * Prerequisites:: Complicated stuff you may have to do. | |
184 * Installation:: Simple stuff you probably have to do. | |
185 * Command Overview:: A brief summary of the most common | |
186 commands. | |
187 @end menu | |
188 | |
189 @node Prerequisites, Installation, Introduction, Introduction | |
190 @section Prerequisites | |
191 | |
192 Mailcrypt requires version 19 of GNU Emacs. Mailcrypt has been tested | |
193 on a variety of systems under both FSF Emacs and XEmacs. | |
194 | |
195 Mailcrypt requires Pretty Good (tm) Privacy, usually known as PGP. This | |
196 document assumes that you have already obtained and installed PGP and | |
197 that you are familiar with its basic functions. The best way to become | |
198 familiar with these functions is to read the @cite{PGP User's Guide}, at | |
199 least Volume I. | |
200 | |
201 For more information on obtaining and installing PGP, refer to the MIT | |
202 PGP home page at @file{http://web.mit.edu/network/pgp.html}. | |
203 | |
204 Although Mailcrypt may be used to process data in arbitrary Emacs | |
205 buffers, it is most useful in conjunction with other Emacs packages for | |
206 handling mail and news. Mailcrypt has specialized support for Rmail | |
207 (@pxref{Rmail, Rmail, Reading Mail with Rmail, emacs, The GNU Emacs | |
208 Manual}), VM (@pxref{Top, VM, Introduction, vm, The VM User's Manual}), | |
209 MH-E, and Gnus (@pxref{Top, Gnus, Overview, gnus, The Gnus Manual}). | |
210 Information on the general use of these packages is beyond the scope of | |
211 this manual. | |
212 | |
213 @node Installation, Command Overview, Prerequisites, Introduction | |
214 @section Installation | |
215 | |
216 If Mailcrypt is not installed on your system, obtain the latest version | |
217 from the Mailcrypt home page at | |
218 @file{http://cag-www.lcs.mit.edu/mailcrypt/} and follow the instructions | |
219 in the file @file{INSTALL}. | |
220 | |
221 Next, teach your Emacs how and when to load the Mailcrypt functions and | |
222 install the Mailcrypt key bindings. Almost all Emacs major modes | |
223 (including mail and news handling modes) have corresponding "hook" | |
224 variables which hold functions to be run when the mode is entered. All | |
225 you have to do is add the Mailcrypt installer functions to the | |
226 appropriate hooks; then the installer functions will add the Mailcrypt | |
227 key bindings when the respective mode is entered. | |
228 | |
229 Specifically, begin by placing the following lines into your | |
230 @file{.emacs} file (or the system-wide @file{default.el} file): | |
231 | |
232 @lisp | |
233 (autoload 'mc-install-write-mode "mailcrypt" nil t) | |
234 (autoload 'mc-install-read-mode "mailcrypt" nil t) | |
235 (add-hook 'mail-mode-hook 'mc-install-write-mode) | |
236 @end lisp | |
237 | |
238 Then add additional lines for your own mail and news packages as | |
239 described below. | |
240 | |
241 @menu | |
242 * Hooking into Rmail:: | |
243 * Hooking into VM:: | |
244 * Hooking into MH-E:: | |
245 * Hooking into Gnus:: | |
246 @end menu | |
247 | |
248 @node Hooking into Rmail, Hooking into VM, Installation, Installation | |
249 @subsection Hooking into Rmail | |
250 | |
251 To hook Mailcrypt into Rmail, use the following lines: | |
252 | |
253 @lisp | |
254 (add-hook 'rmail-mode-hook 'mc-install-read-mode) | |
255 (add-hook 'rmail-summary-mode-hook 'mc-install-read-mode) | |
256 @end lisp | |
257 | |
258 @node Hooking into VM, Hooking into MH-E, Hooking into Rmail, Installation | |
259 @subsection Hooking into VM | |
260 | |
261 To hook Mailcrypt into VM, use the following lines: | |
262 | |
263 @lisp | |
264 (add-hook 'vm-mode-hook 'mc-install-read-mode) | |
265 (add-hook 'vm-summary-mode-hook 'mc-install-read-mode) | |
266 (add-hook 'vm-virtual-mode-hook 'mc-install-read-mode) | |
267 (add-hook 'vm-mail-mode-hook 'mc-install-write-mode) | |
268 @end lisp | |
269 | |
270 @node Hooking into MH-E, Hooking into Gnus, Hooking into VM, Installation | |
271 @subsection Hooking into MH-E | |
272 | |
273 To hook Mailcrypt into MH-E, use the following lines: | |
274 | |
275 @lisp | |
276 (add-hook 'mh-folder-mode-hook 'mc-install-read-mode) | |
277 (add-hook 'mh-letter-mode-hook 'mc-install-write-mode) | |
278 @end lisp | |
279 | |
280 @node Hooking into Gnus, , Hooking into MH-E, Installation | |
281 @subsection Hooking into Gnus | |
282 | |
283 To hook Mailcrypt into Gnus, use the following lines: | |
284 | |
285 @lisp | |
286 (add-hook 'gnus-summary-mode-hook 'mc-install-read-mode) | |
287 (add-hook 'news-reply-mode-hook 'mc-install-write-mode) | |
288 @end lisp | |
289 | |
290 @node Command Overview, , Installation, Introduction | |
291 @section Command Overview | |
292 | |
293 All Mailcrypt commands are (by default) activated by three-character key | |
294 sequences which begin with @kbd{C-c /}. The four most common operations | |
295 are: | |
296 | |
297 @table @emph | |
298 | |
299 @item Encrypting a Message | |
300 @kbd{C-c / e} encrypts a message using the recipient's (or recipients') | |
301 public key(s). @xref{Encrypting, , Encrypting a Message}. | |
302 | |
303 @item Decrypting a Message | |
304 @kbd{C-c / d} decrypts a message using your secret key. | |
305 @xref{Decrypting, , Decrypting a Message}. | |
306 | |
307 @item Signing a Message | |
308 @kbd{C-c / s} clearsigns a message using your secret key. | |
309 @xref{Signing, , Signing a Message}. | |
310 | |
311 @item Verifying a Signature | |
312 @kbd{C-c / v} verifies the signature on a clearsigned message using the | |
313 sender's public key. @xref{Verifying, , Verifying a Signature}. | |
314 | |
315 @end table | |
316 | |
317 These functions and others are documented in detail in the following | |
318 chapters. | |
319 | |
320 Any time you are composing or reading mail or news, you can get a | |
321 summary of the available commands by typing @kbd{C-h m}. If you are | |
322 running Emacs under X, an even easier way to see the available commands | |
323 is to access the @code{Mailcrypt} pull-down menu. | |
324 | |
325 @node General Use, Remailer Support, Introduction, Top | |
326 @chapter General Use | |
327 | |
328 @findex mc-read-mode | |
329 @findex mc-write-mode | |
330 Mailcrypt works by providing two minor modes for interfacing with | |
331 cryptographic functions: @code{mc-read-mode} and @code{mc-write-mode}. | |
332 @code{mc-read-mode} provides key bindings for processing messages which | |
333 you have received; @code{mc-write-mode} provides key bindings for | |
334 processing messages which you are about to send. These minor modes will | |
335 indicate when they are active by placing a characteristic string in the | |
336 mode line (@pxref{Mode Line}). They will also add a @code{Mailcrypt} | |
337 pull-down menu to the menu bar. | |
338 | |
339 @findex mc-install-read-mode | |
340 @findex mc-install-write-mode | |
341 The normal installation procedure (@pxref{Installation}) will arrange | |
342 for the appropriate mode to be active when you read and compose mail and | |
343 news. But you may want to use Mailcrypt's functions at other times; to | |
344 do so, you can call @code{mc-install-read-mode} or | |
345 @code{mc-install-write-mode} directly. For example, if you were editing | |
346 a file in Text mode and wanted to digitally sign it, you would type | |
347 @kbd{M-x mc-install-write-mode}, then @kbd{C-c / s} (@pxref{Signing}). | |
348 | |
349 Once one of the Mailcrypt modes is active, you can get a summary of the | |
350 available functions by typing @kbd{C-h m} or by examining the | |
351 @code{Mailcrypt} pull-down menu. | |
352 | |
353 The description of each function below includes which of the modes has a | |
354 binding for that function. | |
355 | |
356 @menu | |
357 * Encrypting:: Encrypting a message to one or more | |
358 recipients. | |
359 * Signing:: Clearsigning a message. | |
360 * Inserting Keys:: Extracting a key from your public key | |
361 ring and inserting it. | |
362 * Decrypting:: Decrypting a message to you. | |
363 * Verifying:: Verifying the signature on a clearsigned | |
364 message. | |
365 * Snarfing Keys:: Finding a key in the current message and | |
366 adding it to your keyring. | |
367 @end menu | |
368 | |
369 @node Encrypting, Signing, General Use, General Use | |
370 @section Encrypting a Message | |
371 | |
372 @findex mc-encrypt | |
373 @kindex C-c / e | |
374 The function @code{mc-encrypt} will encrypt a message in the current | |
375 buffer. @code{mc-write-mode} binds this function to @kbd{C-c / e} by | |
376 default. | |
377 | |
378 When this function is called, Mailcrypt will prompt you for a | |
379 comma-separated list of recipients. If called from a mail composition | |
380 buffer, the recipient list will default to the Email addresses in the | |
381 @samp{To}, @samp{CC}, and @samp{BCC} lines of the message. | |
382 | |
383 @vindex mc-encrypt-for-me | |
384 If you want to be able to decrypt the message yourself, you need to add | |
385 yourself to the recipient list. If you always want to do so, set the | |
386 variable @code{mc-encrypt-for-me} to @code{t}. (Note that Mailcrypt | |
387 overrides the PGP "encrypttoself" flag; use this variable instead.) | |
388 | |
389 If you provide an empty recipient list, Mailcrypt will ASCII-armor the | |
390 message without encrypting it. | |
391 | |
392 @vindex mc-pgp-always-sign | |
393 Once you have edited the recipient list to your satisfaction, type | |
394 @kbd{@key{RET}} to accept it. You will then be asked whether you want | |
395 to sign the message; answer @kbd{y} or @kbd{n}. You can avoid this | |
396 question by setting the variable @code{mc-pgp-always-sign}: A value of | |
397 @code{t} means "yes", a value of @code{'never} means "no". | |
398 | |
399 If you elect to sign the message, Mailcrypt will prompt you for the | |
400 appropriate passphrase unless it is cached (@pxref{Passphrase Cache}). | |
401 | |
402 @vindex mc-pre-encryption-hook | |
403 @vindex mc-post-encryption-hook | |
404 Mailcrypt will then pass the message to PGP for processing. Mailcrypt | |
405 will call the functions listed in @code{mc-pre-encryption-hook} and | |
406 @code{mc-post-encryption-hook} immediately before and after processing, | |
407 respectively. The encrypted message will then replace the original | |
408 message in the buffer. You can undo the encryption with the normal | |
409 Emacs undo command @kbd{C-x u} (@pxref{Undo, Emacs Undo, Undoing | |
410 Changes, emacs, The GNU Emacs Manual}). | |
411 | |
412 If an error occurs, Mailcrypt will display an appropriate diagnostic. | |
413 If you do not have the public key for one of the specified recipients, | |
414 Mailcrypt will offer to try to fetch it for you (@pxref{Key Fetching}). | |
415 | |
416 @vindex mc-pgp-user-id | |
417 The default key for signing is the first one on the secret key ring | |
418 which matches the string @code{mc-pgp-user-id}; this defaults to | |
419 @code{(user-login-name)}. Note that this differs from PGP's normal | |
420 default, which is to use the first of @emph{all} of the secret keys. To | |
421 mimic PGP's behavior, set this variable to @code{""}. | |
422 | |
423 If you want to use a secret key other than your default for signing the | |
424 message, pass a prefix argument to @code{mc-encrypt}. (That is, type | |
425 @kbd{C-u C-c / e}.) Mailcrypt will prompt for a string and will sign with | |
426 the first key on your secret keyring which matches that string. It will | |
427 be assumed that you want to sign the message, so you will not be | |
428 prompted. | |
429 | |
430 @node Signing, Inserting Keys, Encrypting, General Use | |
431 @section Signing a Message | |
432 | |
433 @findex mc-sign | |
434 @kindex C-c / s | |
435 The function @code{mc-sign} will clearsign a message in the current | |
436 buffer. @code{mc-write-mode} binds this function to @kbd{C-c / s} by | |
437 default. | |
438 | |
439 When this function is called, Mailcrypt will prompt you for the | |
440 appropriate passphrase unless it is cached (@pxref{Passphrase Cache}). | |
441 | |
442 @vindex mc-pre-signature-hook | |
443 @vindex mc-post-signature-hook | |
444 Mailcrypt will then pass the message to PGP for processing. Mailcrypt | |
445 will call the functions listed in @code{mc-pre-signature-hook} and | |
446 @code{mc-post-signature-hook} immediately before and after processing, | |
447 respectively. The signed message will replace the original message in | |
448 the buffer. @emph{Do not} edit the message further with the signature | |
449 attached, because the signature would then be incorrect. If you | |
450 discover you need to edit a message after you have signed it, remove the | |
451 signature first with the normal Emacs undo command @kbd{C-x u} | |
452 (@pxref{Undo, Emacs Undo, Undoing Changes, emacs, The GNU Emacs | |
453 Manual}). | |
454 | |
455 The variable @code{mc-pgp-user-id} controls which secret key is used for | |
456 signing; it is described in @ref{Encrypting, , Encrypting a Message}. | |
457 To use a different secret key, pass a prefix argument to @code{mc-sign}. | |
458 (That is, type @kbd{C-u C-c / s}.) Mailcrypt will prompt for a string | |
459 and will sign with the first key on your secret keyring which matches | |
460 that string. | |
461 | |
462 @node Inserting Keys, Decrypting, Signing, General Use | |
463 @section Inserting a Public Key Block | |
464 | |
465 @findex mc-insert-public-key | |
466 @kindex C-c / x | |
467 The function @code{mc-insert-public-key} will extract a key from your | |
468 public keyring and insert it into the current buffer. | |
469 @code{mc-write-mode} binds this function to @kbd{C-c / x} by default. | |
470 | |
471 This function is useful for sending your public key to someone else or | |
472 for uploading it to the key servers (@pxref{Key Servers}). The inserted | |
473 key will be the first one on your public key ring which matches the | |
474 string @code{mc-pgp-user-id} (@pxref{Encrypting, , Encrypting a | |
475 Message}). | |
476 | |
477 You may want to insert a different public key instead; for example, you | |
478 may have signed someone's key and want to send it back to them. To do | |
479 so, pass a prefix argument to @code{mc-insert-public-key}. (That is, | |
480 type @kbd{C-u C-c / x}.) You will be prompted for a string; the first key | |
481 on your public key ring which matches that string will be inserted. | |
482 | |
483 @node Decrypting, Verifying, Inserting Keys, General Use | |
484 @section Decrypting a message | |
485 | |
486 @findex mc-decrypt | |
487 @kindex C-c / d | |
488 The function @code{mc-decrypt} will decrypt a message in the current | |
489 buffer. @code{mc-read-mode} binds this function to @kbd{C-c / d} by | |
490 default. | |
491 | |
492 When this function is called, Mailcrypt will prompt you for the | |
493 appropriate passphrase unless it is cached (@pxref{Passphrase Cache}). | |
494 | |
495 The encrypted message will then be passed to PGP for processing. If you | |
496 are not in a mail buffer, the decrypted message will replace the | |
497 encrypted form. If you are in a mail buffer, you will be prompted | |
498 whether to do the replacement. | |
499 | |
500 If you answer @kbd{n}, you will be placed in a new mail reading buffer | |
501 to view the decrypted message. This new mail reading buffer will have | |
502 no corresponding disk file; its purpose is to provide you with all of | |
503 your usual reply and citation functions without requiring you to save | |
504 the message in decrypted form. Type @kbd{q} to kill this buffer. | |
505 | |
506 @vindex mc-always-replace | |
507 You can avoid the question of whether to replace the encrypted message | |
508 by setting the variable @code{mc-always-replace}. A value of @code{t} | |
509 means "yes"; a value of @code{'never} means "no". | |
510 | |
511 If the encrypted message is also signed, PGP will attempt to verify the | |
512 signature. If the verification fails because you lack the necessary | |
513 public key, Mailcrypt will offer to fetch it for you (@pxref{Key | |
514 Fetching}). | |
515 | |
516 Look in the @code{*MailCrypt*} buffer to see the result of the signature | |
517 verification. | |
518 | |
519 @node Verifying, Snarfing Keys, Decrypting, General Use | |
520 @section Verifying a Signature | |
521 | |
522 @findex mc-verify | |
523 @kindex C-c / v | |
524 The function @code{mc-verify} will verify the cleartext signature on a | |
525 message in the current buffer. @code{mc-read-mode} binds this function | |
526 to @kbd{C-c / v} by default. | |
527 | |
528 When this function is called, Mailcrypt will pass the message to PGP for | |
529 processing and report whether or not the signature verified. | |
530 | |
531 If the signature failed to verify because you lack the necessary public | |
532 key, Mailcrypt will offer to fetch it for you (@pxref{Key Fetching}). | |
533 | |
534 @node Snarfing Keys, , Verifying, General Use | |
535 @section Snarfing a Key | |
536 | |
537 @findex mc-snarf | |
538 @kindex C-c / a | |
539 The function @code{mc-snarf} will add to your keyring any keys in the | |
540 current buffer. @code{mc-read-mode} binds this function to @kbd{C-c / a} | |
541 by default. | |
542 | |
543 This function is useful when someone sends you a public key in an Email | |
544 message. | |
545 | |
546 @node Remailer Support, Passphrase Cache, General Use, Top | |
547 @chapter Remailer Support | |
548 This is a long chapter describing an advanced feature; you | |
549 may want to skip it on first reading. | |
550 | |
551 @menu | |
552 * Remailer Introduction:: A little about remailers in general. | |
553 * Remailer Quick Start:: Getting started quickly. | |
554 * Remailer Chains:: Creating custom chains of your very own. | |
555 * Response Blocks:: A way to let people reply to your | |
556 anonymous messages. | |
557 * Pseudonyms:: Who do you want to be today? | |
558 * Remailing Posts:: Posting to USENET anonymously or | |
559 pseduonymously. | |
560 * Mixmaster Support:: Remailers for the truly paranoid. | |
561 * Remailer Security:: Caveats. | |
562 * Verifiable Pseudonyms:: Giving expression to the voices in your | |
563 head. | |
564 * Remailer Tips:: Free advice. | |
565 @end menu | |
566 | |
567 @node Remailer Introduction, Remailer Quick Start, Remailer Support, Remailer Support | |
568 @section Remailer Introduction | |
569 There are several anonymous remailer services running on the Internet. | |
570 These are programs that accept mail, strip off information that would | |
571 identify the origin of the message, and forward the mail to the | |
572 designated recipient. This simple scheme alone, however, is insecure if | |
573 the anonymous remailer becomes compromised (or if the remailer was set | |
574 up by an untrustworthy party in the first place). Whoever controls the | |
575 remailer will have access to the identities of senders and recipients. | |
576 | |
577 One solution to this is to use @emph{chains} of remailers that send | |
578 encrypted messages. For example, suppose Bill wishes to send a message | |
579 to Louis using a chain of remailers A, B, and C. He writes the message | |
580 (possibly encrypting it for Louis), then encrypts the result (including | |
581 the fact that Louis is the recipient) using a public key supplied by | |
582 remailer C. Then he encrypts this result using a public key supplied by | |
583 remailer B. Then he encrypts this result using a public key supplied by | |
584 A and sends the message to A. | |
585 | |
586 When A receives the message, it decrypts the message with its key to | |
587 produce something encrypted for B, learns that the next remailer in the | |
588 chain is B, strips off the information that the message came from Bill, | |
589 and sends the message on to B. B then decrypts, learns that the next | |
590 remailer in the chain is C, strips off the information that the message | |
591 came from A, and sends the result to C. C then decrypts, learns that | |
592 the destination is Louis, strips off the information that the message | |
593 came from B, and sends the result to Louis. With this arrangement, only | |
594 A knows that the original message came from Bill, and only C knows that | |
595 the intended recipient is Louis. In general, the sender and recipient | |
596 can both be known only to someone who has compromised all remailers in | |
597 the chain. | |
598 | |
599 If Bill wishes, he can include an encrypted "response block" in his | |
600 message to Louis, which defines a remailer chain that Louis can use to | |
601 reply to Bill. Louis can use this chain without knowing who Bill is -- | |
602 only the last remailer in the chain need know the final recipient. Bill | |
603 can also establish a @emph{pseudonym} for use in signing his anonymous | |
604 messages. | |
605 | |
606 Mailcrypt includes facilities for sending messages via remailers, for | |
607 defining chains of remailers, for generating response blocks, and for | |
608 using pseudonyms. | |
609 | |
610 @node Remailer Quick Start, Remailer Chains, Remailer Introduction, Remailer Support | |
611 @section Remailer Quick Start | |
612 | |
613 To use Mailcrypt's remailing facilities, you need to configure them | |
614 first. Begin with the following steps: | |
615 | |
616 @enumerate | |
617 | |
618 @item | |
619 Do @samp{finger remailer-list@@kiwi.cs.berkeley.edu > ~/.remailers}. | |
620 This will create a Levien-format list of remailers in the file | |
621 @file{.remailers} in your home directory. Mailcrypt will parse this the | |
622 first time you access a remailer function. | |
623 | |
624 @item | |
625 Look over the @file{.remailers} file and find the ones you want to use. | |
626 | |
627 @item | |
628 Add their PGP public keys to your keyring. You can @code{finger | |
629 pgpkeys@@kiwi.cs.berkeley.edu} for a list of remailer public keys. Note | |
630 that Mailcrypt @emph{requires} that you have the public keys of all the | |
631 remailers you want to use, and therefore that the remailers support PGP | |
632 encryption. | |
633 | |
634 @end enumerate | |
635 | |
636 @quotation | |
637 @emph{Note:} These steps need only be done once, although repeating them | |
638 from time to time is probably a good idea, since remailers come and go. | |
639 @end quotation | |
640 | |
641 Now test the remailer functions. First compose an outgoing Email | |
642 message (using @kbd{C-x m}, for example) addressed to yourself. Type | |
643 @kbd{C-c / r}. Choose a remailer; use @kbd{@key{TAB}} to get completion | |
644 on its name. The buffer will be rewritten for anonymous mailing through | |
645 that remailer. | |
646 | |
647 @node Remailer Chains, Response Blocks, Remailer Quick Start, Remailer Support | |
648 @section Remailer Chains | |
649 | |
650 @findex mc-remailer-encrypt-for-chain | |
651 @kindex C-c / r | |
652 @code{mc-write-mode} binds the function | |
653 @code{mc-remailer-encrypt-for-chain} to the key @kbd{C-c / r}. This | |
654 function rewrites the message for a remailer or chain. The resulting | |
655 buffer is just a new Email message, so it can itself be rewritten for | |
656 another remailer; this is one way to manually construct a remailer | |
657 chain. | |
658 | |
659 Mailcrypt also has powerful facilities for defining automatic chains. | |
660 We will start with an example. Suppose you have put the following into | |
661 your @file{.emacs} file: | |
662 | |
663 @vindex mc-remailer-user-chains | |
664 @lisp | |
665 (setq mc-remailer-user-chains | |
666 '(("Foo" "alumni" "robo") | |
667 ("Bar" (shuffle-vector ["replay" "flame" "spook"])) | |
668 ("Baz" "Foo" "Bar" "rahul" "Bar") | |
669 ("Quux" 4))) | |
670 @end lisp | |
671 | |
672 This code defines four chains. The first is named "Foo" and consists of | |
673 "alumni" and "robo", in that order. The second is named "Bar" and | |
674 consists of "replay", "flame", and "spook" in some random order (a | |
675 different order will be chosen each time the chain is used). The third | |
676 is named "Baz" and consists of 9 remailers: The two from "Foo", followed | |
677 by a permutation of the three from "Bar", followed by "rahul", followed | |
678 by another permutation of the three from "Bar". Finally, the fourth is | |
679 named "Quux" and consists of a random permutation of the four best | |
680 remailers as ordered in the @file{~/.remailers} file. | |
681 | |
682 Now whenever you are prompted for a "remailer or chain", the chains | |
683 "Foo", "Bar", "Baz", and "Quux" will be available, including | |
684 @kbd{@key{TAB}} completion on their names. By capitalizing their names, | |
685 you guarantee they will show up near the top of the completion list if | |
686 you type @kbd{@key{TAB}} on an empty input. | |
687 | |
688 Now for the gritty details. @code{mc-remailer-user-chains} is a list of | |
689 chain definitions. A chain definition is a list whose first element is | |
690 the name (a string) and whose remaining elements form a @dfn{remailer | |
691 list}. Each element of a remailer list is one of the following: | |
692 | |
693 @enumerate | |
694 | |
695 @item | |
696 A raw remailer structure. This is the base case, but you will probably | |
697 never want nor need to deal with these directly. | |
698 | |
699 @item | |
700 A string naming another remailer chain to be spliced in at this point. | |
701 | |
702 @item | |
703 A positive integer N representing a chain to be spliced in at this point | |
704 and consisting of a random permutation of the top N remailers as ordered | |
705 in the @file{~/.remailers} file. | |
706 | |
707 @item | |
708 An arbitrary Emacs Lisp form, which should return another remailer | |
709 list which will be spliced in at this point and recursively | |
710 evaluated. Mmmm, Lisp. | |
711 | |
712 @end enumerate | |
713 So, in the example "Bar" above, @code{shuffle-vector} is actually a Lisp | |
714 primitive which returns a random permutation of the argument vector. | |
715 (Which brings up a side note: A remailer list can be a vector instead of | |
716 a list if you like.) | |
717 | |
718 So where do the definitions for "replay" etc. come from? | |
719 | |
720 @vindex mc-remailer-internal-chains | |
721 There is another variable, @code{mc-remailer-internal-chains}, which has | |
722 the same format as @code{mc-remailer-user-chains}. In fact, the | |
723 concatenation of the two is always used internally when resolving chains | |
724 by name. The "internal chains" are normally generated automatically | |
725 from a Levien-format remailer list, which lives in @file{~/.remailers} | |
726 by default and is parsed at startup time. The parser creates several | |
727 chains, each containing a single remailer, and names each chain after | |
728 the respective remailer. | |
729 | |
730 Thus "replay" (for example) is actually the name of a @emph{chain} whose | |
731 single element is the remailer at <remailer@@replay.com>. So "replay" | |
732 is a valid name of a chain to include in the definition of another | |
733 chain, as was done above in the definition of "Bar". | |
734 | |
735 @node Response Blocks, Pseudonyms, Remailer Chains, Remailer Support | |
736 @section Response Blocks | |
737 | |
738 @kindex C-c / b | |
739 Mailcrypt can generate a response block for you. Just type @kbd{C-c / b} | |
740 in an outgoing mail buffer. That will prompt you for a chain to use, | |
741 and will insert the response block at point. Note that you can use any | |
742 chain you want for your response block; it need not be related to the | |
743 chain you (later) use to remail the message. | |
744 | |
745 If instead you type @kbd{C-u C-c / b}, you will be dropped into a | |
746 recursive edit of the innermost part of the response block. This text | |
747 is what you will see at the top of the message when the response block | |
748 is used. This text is the only way to identify the response block, | |
749 since it will be used to mail you through anonymous remailers. | |
750 | |
751 You probably won't need to use the @kbd{C-u} feature, since by default | |
752 the response block contains the date, @samp{To} field, and @samp{From} | |
753 field of the message you are composing. However, if you want your | |
754 response block to point to a USENET newsgroup instead of your Email | |
755 address, you may edit the innermost part of the response block to have a | |
756 @samp{Newsgroups} line instead of a @samp{To} line. | |
757 | |
758 Inserting a response block also updates the @samp{Reply-to} hashmark | |
759 header field. So, when your recipient replies to your message, the | |
760 reply will automatically be addressed properly. This only works if the | |
761 last remailer in the chain used to encrypt the @emph{message} supports | |
762 hashmarks (the response block chain doesn't matter). If the last | |
763 remailer does not support hashmarks, Mailcrypt will generate an error | |
764 when you try to use the chain. | |
765 | |
766 Note that you should insert your response block before you encrypt the | |
767 message for remailing. Also, see @ref{Remailer Security}. | |
768 | |
769 @node Pseudonyms, Remailing Posts, Response Blocks, Remailer Support | |
770 @section Pseudonyms | |
771 | |
772 @kindex C-c / p | |
773 Mailcrypt supports pseudonyms. Type @kbd{C-c / p} in an outgoing message | |
774 buffer and you will be prompted for a pseudonym to use. Your pseudonym | |
775 will show up in the @samp{From} line that the recipient sees. Your | |
776 pseudonym may either be a complete @samp{From} line (including an Email | |
777 address), or just a full name (with no Email address). In the latter | |
778 case, the Email address will automatically be set to <x@@x.x>, an invalid | |
779 address designed to prevent sendmail from going rewrite-happy. | |
780 | |
781 If you have one or more pseudonyms which you normally use, and you | |
782 aren't afraid of revealing them if your account is compromised, you can | |
783 set up a default list of pseudonyms with lines like the following in | |
784 your @file{.emacs} file: | |
785 | |
786 @vindex mc-remailer-pseudonyms | |
787 @lisp | |
788 (setq mc-remailer-pseudonyms | |
789 '("Elvis Presley" "Vanna White" "Charles Manson")) | |
790 @end lisp | |
791 | |
792 Then those names will be available for completion when you are | |
793 prompted for your pseudonym. | |
794 | |
795 You should insert your pseudonym before you insert a response block, so | |
796 that the response block will contain the @samp{From} line as well as the | |
797 @samp{To} line. That way you can tell who you were pretending to be | |
798 when you get a reply to your message. | |
799 | |
800 Note: Many remailers do not support pseudonyms. In addition, the Levien | |
801 format does not (yet) indicate which do and which do not, so Mailcrypt | |
802 can't warn you when your pseudonym isn't going to work. The only way to | |
803 be sure is to send yourself a test message, and to try different | |
804 remailers until you find one or more which work. On the bright side, | |
805 only the last remailer in the chain needs to provide such support; none | |
806 of the others matter. | |
807 | |
808 @node Remailing Posts, Mixmaster Support, Pseudonyms, Remailer Support | |
809 @section Remailing Posts | |
810 Mailcrypt knows how to rewrite USENET posts for anonymous or | |
811 pseudonymous remailing. Just compose your post or followup normally, | |
812 and use @kbd{C-c / r} to rewrite it for a remailer chain. You don't | |
813 even need to start your newsreader to make a post; you can just compose | |
814 a message in mail mode and replace the @samp{To} line with a | |
815 @samp{Newsgroups} line before doing @kbd{C-c / r}. | |
816 | |
817 @vindex mc-remailer-preserved-headers | |
818 Mailcrypt will generate an error if the last remailer in the chain does | |
819 not have both the @code{post} and @code{hash} (hashmarks) properties. | |
820 The hashmarks are used to preserve @samp{References} and similar | |
821 headers, so your anonymous or pseudonymous followups will thread | |
822 properly. The variable @code{mc-remailer-preserved-headers} controls | |
823 which headers are preserved when rewriting a message, but you should not | |
824 need to change it since the default value is reasonable. | |
825 | |
826 Before rewriting, you can use @kbd{C-c / p} to insert your pseudonym, | |
827 and @kbd{C-c / b} to insert your response block, just like when | |
828 composing mail. In this case, the response block will include the | |
829 @samp{From} line and the @samp{Newsgroups} line (which is the news | |
830 analogue to the @samp{To} line). | |
831 | |
832 @node Mixmaster Support, Remailer Security, Remailing Posts, Remailer Support | |
833 @section Mixmaster Support | |
834 | |
835 @dfn{Mixmaster} is a new kind of remailer which provides excellent | |
836 security against traffic analysis and replay attacks. (For more | |
837 information on these attacks and Mixmaster, see Lance Cottrell's home | |
838 page at @file{http://www.obscura.com/~loki/}. | |
839 | |
840 If you do not use Mixmaster, you may skip this section entirely; | |
841 Mailcrypt's default configuration treats Mixmaster as if it did not | |
842 exist. | |
843 | |
844 If you have the Mixmaster executable installed, you can tell Mailcrypt | |
845 to use it by placing lines like the following into your @file{.emacs} | |
846 file: | |
847 | |
848 @vindex mc-mixmaster-path | |
849 @vindex mc-mixmaster-list-path | |
850 @lisp | |
851 (setq mc-mixmaster-path "mixmaster") | |
852 (setq mc-mixmaster-list-path "/foo/bar/baz/type2.list") | |
853 @end lisp | |
854 | |
855 @code{mc-mixmaster-path} is a string representing the Mixmaster | |
856 executable. @code{mc-mixmaster-list-path} is the complete path to the | |
857 @code{type2.list} file. | |
858 | |
859 Once these variables are defined, Mailcrypt will automatically try to | |
860 use the Mixmaster executable whenever possible. Specifically, when you | |
861 rewrite a message for a chain, Mailcrypt will find maximal length | |
862 sub-chains which have the @code{mix} property and will use the Mixmaster | |
863 executable to rewrite for those sub-chains. | |
864 | |
865 This allows arbitrary intermingling of Mixmaster and normal (also called | |
866 @dfn{Type 1}) remailers, but you should note that this is @emph{not | |
867 recommended}. The recommended procedure is to have a single Mixmaster | |
868 sub-chain which is most or all of the whole chain. | |
869 | |
870 There are advantages and disadvantages to having the Mixmaster sub-chain | |
871 at the end of the whole chain. The primary advantage is that Mixmaster | |
872 remailers support multiple recipients. The primary disadvantages are | |
873 that they do not support pseudonyms nor posting. | |
874 | |
875 So here, as always, it is the last element of the chain which needs to | |
876 support the special features you want. In general, the remaining | |
877 elements do not matter, and the superior security of Mixmaster remailers | |
878 is a good argument for using them for the bulk of your chains. | |
879 | |
880 @findex mc-demix | |
881 Mixmaster remailers also have a "Type 1 compatibility mode" which you | |
882 might want to invoke to use a pseudonym or make a post. You can do this | |
883 with the function @code{mc-demix}. Here is an example of its use: | |
884 | |
885 @lisp | |
886 (setq mc-remailer-user-chains | |
887 '(("Foo" "vishnu" "spook") | |
888 ("Bar" "Foo" (mc-demix "replay")))) | |
889 @end lisp | |
890 | |
891 This makes "Bar" a chain of three remailers, and guarantees that the | |
892 last one ("replay") will be used in compatibility mode. | |
893 | |
894 Note that Mixmaster remailers cannot be used for response blocks. | |
895 Mailcrypt will ignore the @code{mix} property when generating a response | |
896 block. | |
897 | |
898 @node Remailer Security, Verifiable Pseudonyms, Mixmaster Support, Remailer Support | |
899 @section Remailer Security | |
900 | |
901 Keep in mind that there is only one person fully qualified to protect | |
902 your privacy: @emph{you}. You are responsible for obtaining a list of | |
903 remailers and their public keys; you are responsible for choosing which | |
904 of them to use and in what order. There are public lists of remailers | |
905 and keys (the Quick Start section above relies on them), but you pay for | |
906 the convenience by putting your trust in a single source. This is one | |
907 reason Mailcrypt does not access these public lists automatically; you | |
908 need to get into the habit of watching what goes on behind the scenes. | |
909 You should also try to learn something about the remailers themselves, | |
910 since you are relying on them to help protect your privacy. | |
911 | |
912 How many remailers should you include in your chain, and how should | |
913 you choose them? That depends on whom you perceive as a threat. If | |
914 the threat is your ex-spouse or your boss, even a single remailer is | |
915 probably adequate (more won't hurt, but will cost in latency). If the | |
916 threat is the Church of Scientology, you probably want to use a fair | |
917 number of remailers across multiple continents. If the threat is a | |
918 major world government, well, best of luck to you. | |
919 | |
920 Also, there is a huge difference between chains suitable for regular | |
921 messages and chains suitable for response blocks. Some remailers don't | |
922 even keep mail logs (at least, their operators claim they do not), so it | |
923 may be literally impossible to trace a message back to you after the | |
924 fact if you chain it through enough remailers. Response blocks, on the | |
925 other hand, have your identity buried in there @emph{somewhere}. In | |
926 principle, at least, it is possible to compromise the keys of all the | |
927 remailers in the chain and decrypt the response block. So you should | |
928 either use very long and strong chains for your response blocks, avoid | |
929 using response blocks at all, or only use response blocks which | |
930 themselves ultimately point to a newsgroup. | |
931 | |
932 @node Verifiable Pseudonyms, Remailer Tips, Remailer Security, Remailer Support | |
933 @section Verifiable Pseudonyms | |
934 Here is a plausible sequence of operations when using the remailer | |
935 support in Mailcrypt: | |
936 | |
937 @enumerate | |
938 | |
939 @item | |
940 You create a public/private PGP key pair. You give it a User ID which | |
941 is your pseudonym. You upload the public key to the key servers or | |
942 otherwise distribute it. (Be aware that anyone who compromises your | |
943 account can read the IDs on your secret keyring, thus discovering your | |
944 verifiable pseudonyms.) | |
945 | |
946 @item | |
947 You compose an Email message, Email reply, news post, or news followup. | |
948 | |
949 @item | |
950 You insert your pseudonym with @kbd{C-c / p}. | |
951 | |
952 @item | |
953 (Optional) You insert your response block with @kbd{C-c / b}. | |
954 | |
955 @item | |
956 You type @kbd{C-c / s} to sign the message. The @code{mc-sign} function | |
957 understands pseudonyms. | |
958 | |
959 @item | |
960 You type @kbd{C-c / r} to rewrite the message for remailing. (Or use | |
961 @kbd{C-u C-c / r} to view each step of the rewriting as it happens.) | |
962 | |
963 @item | |
964 You type @kbd{C-c C-c} to send the message. | |
965 | |
966 @end enumerate | |
967 | |
968 Now the recipient(s), reading your message through mail or news, can | |
969 verify your pseudonymous signature; thus you have started to create a | |
970 verifiable pseudonymous identity. If you use it consistently, it will | |
971 develop a reputation of its own. With Mailcrypt, using a pseudonym is | |
972 almost as easy as using your real name (and your followups in news | |
973 will even thread properly). Welcome to the new age of letters@dots{} | |
974 | |
975 @node Remailer Tips, , Verifiable Pseudonyms, Remailer Support | |
976 @section Remailer Tips | |
977 | |
978 This is a collection of tips for using Mailcrypt's remailer support. | |
979 | |
980 @itemize @bullet | |
981 | |
982 @item | |
983 @vindex mc-levien-file-name | |
984 Read and understand the @file{.remailers} file. If the service at | |
985 kiwi.cs.berkeley.edu is gone by the time you read this, track down a | |
986 comparable service elsewhere. (Ask around in | |
987 @file{news:alt.privacy.anon-server} or, as a last resort, | |
988 @file{news:alt.security.pgp}.) Check the documentation (@kbd{C-h v}) | |
989 for the variable @code{mc-levien-file-name} for a description of Levien | |
990 format. | |
991 | |
992 @item | |
993 The relevant remailer properties are @code{pgp} (required), @code{hash} | |
994 (required if you use hashmark headers), and @code{post} (required for | |
995 posting to USENET). Remailers which do not support PGP won't even show | |
996 up in the completion list. | |
997 | |
998 @item | |
999 The only remailer which needs special properties (e.g., posting, | |
1000 hashmarks, pseudonym support) is the last one in a chain. Any remailer | |
1001 can be used at the beginning or in the middle. So if you find a few | |
1002 remailers which support the feature(s) you require, and you always use | |
1003 them at the end of your chains, then you can be confident that even the | |
1004 longest chains will work. | |
1005 | |
1006 @item | |
1007 @findex mc-reread-levien-file | |
1008 If you update your @file{~/.remailers} file, you can reread it with | |
1009 @kbd{M-x mc-reread-levien-file}. | |
1010 | |
1011 @item | |
1012 Remember the natural order of operations. First you compose your | |
1013 message. Then you insert your pseudonym with @kbd{C-c / p}. Then you | |
1014 insert your response block with @kbd{C-c / b}. Then you sign (@kbd{C-c / | |
1015 s}) or sign and encrypt (@kbd{C-c / e}) the message. Then you rewrite it | |
1016 for a remailer or chain (@kbd{C-c / r}). Then you send it. All but the | |
1017 first and last two of these are optional. (Well, strictly speaking, | |
1018 they are all optional, but you get the idea.) | |
1019 | |
1020 @item | |
1021 Find and read some of the excellent remailer documentation available on | |
1022 the Internet. For some good starting points, see @ref{References}. | |
1023 | |
1024 @end itemize | |
1025 | |
1026 @node Passphrase Cache, Key Fetching, Remailer Support, Top | |
1027 @chapter Passphrase Cache | |
1028 | |
1029 @vindex mc-passwd-timeout | |
1030 Mailcrypt can remember your passphrase so that you need not type it | |
1031 repeatedly. It will also "forget" your passphrase if it has not been | |
1032 used in a while, thus trading some security for some convenience. You | |
1033 can tune this tradeoff with the variable @code{mc-passwd-timeout}, which | |
1034 is a duration in seconds from the last time the passphrase was used | |
1035 until Mailcrypt will forget it. The default value is 60 seconds. | |
1036 | |
1037 So, for example, to make Mailcrypt remember your passphrase for 10 | |
1038 minutes after each use, you would use the following line in your | |
1039 @file{.emacs} file: | |
1040 | |
1041 @lisp | |
1042 (setq mc-passwd-timeout 600) | |
1043 @end lisp | |
1044 | |
1045 A value of @code{nil} or 0 will disable passphrase caching completely. | |
1046 This provides some increase in security, but be aware that you are | |
1047 already playing a dangerous game by typing your passphrase at a Lisp | |
1048 interpreter. | |
1049 | |
1050 Mailcrypt understands multiple secret keys with distinct passphrases. | |
1051 | |
1052 @findex mc-deactivate-passwd | |
1053 @kindex C-c / f | |
1054 To manually force Mailcrypt to forget your passphrase(s), use the | |
1055 function @code{mc-deactivate-passwd}. Both @code{mc-read-mode} and | |
1056 @code{mc-write-mode} bind this function to @kbd{C-c / f} by default. | |
1057 | |
1058 @quotation | |
1059 @strong{Warning:} Although Mailcrypt takes pains to overwrite your | |
1060 passphrase when "forgetting", it cannot prevent the Emacs garbage | |
1061 collector from possibly leaving copies elsewhere in memory. Also, your | |
1062 last 100 keystrokes can always be viewed with the function | |
1063 @code{view-lossage}, normally bound to @kbd{C-h l}. So be sure to type | |
1064 at least 100 characters after typing your passphrase if you plan to | |
1065 leave your terminal unattended. | |
1066 @end quotation | |
1067 | |
1068 @node Key Fetching, Miscellaneous Configuration, Passphrase Cache, Top | |
1069 @chapter Key Fetching | |
1070 | |
1071 @findex mc-pgp-fetch-key | |
1072 @kindex C-c / k | |
1073 Mailcrypt knows how to fetch PGP public keys from the key servers | |
1074 (@pxref{Key Servers}). The function @code{mc-pgp-fetch-key} is bound by | |
1075 default to @kbd{C-c / k} in both @code{mc-read-mode} and | |
1076 @code{mc-write-mode}. Additionally, @code{mc-encrypt}, | |
1077 @code{mc-decrypt}, and @code{mc-verify} will offer to call this function | |
1078 to automatically fetch a desired key. If you call it manually, it will | |
1079 prompt you for the User ID of the key to fetch. | |
1080 | |
1081 @vindex mc-pgp-fetch-methods | |
1082 The variable @code{mc-pgp-fetch-methods} is a list of ways to attempt to | |
1083 fetch a key. (More precisely, it is a list of functions to be called, | |
1084 each of which will attempt to fetch the key.) The methods will be tried | |
1085 in the order listed. The default list is: | |
1086 | |
1087 @lisp | |
1088 '(mc-pgp-fetch-from-keyrings | |
1089 mc-pgp-fetch-from-finger | |
1090 mc-pgp-fetch-from-http) | |
1091 @end lisp | |
1092 | |
1093 For a description of these functions, see the following sections. | |
1094 | |
1095 If you are not directly on the Internet, you probably want to obtain a | |
1096 copy of the global public key ring from the keyservers, install it | |
1097 somewhere under the name @file{public-keys.pgp}, and do: | |
1098 | |
1099 @lisp | |
1100 (setq mc-pgp-fetch-methods '(mc-pgp-fetch-from-keyrings)) | |
1101 (setq mc-pgp-fetch-keyring-list '("/blah/blah/blah/public-keys.pgp")) | |
1102 @end lisp | |
1103 | |
1104 This will allow you to fetch keys from your local copy of the global key | |
1105 ring instead of sending requests to the key servers directly | |
1106 (@pxref{Keyring Fetch}). Alternately, if your organization has a proxy | |
1107 HTTP server, you can configure Mailcrypt to use that. See @ref{HTTP | |
1108 Fetch}. | |
1109 | |
1110 If the key is found, you will be shown the result of running PGP on it | |
1111 locally. This allows you to inspect the signatures on the key | |
1112 @emph{relative to your own keyring} before you consent to having it | |
1113 added. @strong{Inspect the signatures carefully!} Key distribution is | |
1114 often the Achilles' heel of public key protocols. If you blindly use | |
1115 keys obtained from the key servers, you are asking for trouble. | |
1116 | |
1117 All of the methods use @code{mc-pgp-fetch-timeout} as a timeout in | |
1118 seconds; the default value is 30. | |
1119 | |
1120 @menu | |
1121 * Keyring Fetch:: Fetching from one or more other | |
1122 keyrings on the local system. | |
1123 * Finger Fetch:: Fetching a key through finger. | |
1124 * HTTP Fetch:: Fetching a key off of the Web. | |
1125 @end menu | |
1126 | |
1127 @node Keyring Fetch, Finger Fetch, Key Fetching, Key Fetching | |
1128 @section Keyring Fetch | |
1129 | |
1130 @findex mc-pgp-fetch-from-keyrings | |
1131 The function @code{mc-pgp-fetch-from-keyrings} will attempt to fetch a | |
1132 key from a set of keyrings on the locally accessible filesystem. This | |
1133 is useful if your organization maintains a large common public keyring | |
1134 whose entire contents you do not wish to duplicate on your own ring. It | |
1135 is also useful if you download a copy of the global public ring from the | |
1136 key servers (@pxref{Key Servers}). | |
1137 | |
1138 @vindex mc-pgp-fetch-keyring-list | |
1139 The variable @code{mc-pgp-fetch-keyring-list} controls this behavior. | |
1140 It is a list of file names of public keyrings which this function will | |
1141 search, in order, when seeking a key. The default value is @code{nil}, | |
1142 meaning this search will always fail. | |
1143 | |
1144 @node Finger Fetch, HTTP Fetch, Keyring Fetch, Key Fetching | |
1145 @section Finger Fetch | |
1146 | |
1147 @findex mc-pgp-fetch-from-finger | |
1148 The function @code{mc-pgp-fetch-from-finger} will attempt to fetch a key | |
1149 by fingering an address and parsing the output for a PGP public key | |
1150 block. | |
1151 | |
1152 @node HTTP Fetch, , Finger Fetch, Key Fetching | |
1153 @section HTTP Fetch | |
1154 | |
1155 @findex mc-pgp-fetch-from-http | |
1156 The function @code{mc-pgp-fetch-from-http} will attempt to fetch a key | |
1157 by connecting to a key server (@pxref{Key Servers}) which has a World | |
1158 Wide Web interface. | |
1159 | |
1160 @vindex mc-pgp-keyserver-address | |
1161 @vindex mc-pgp-keyserver-port | |
1162 @vindex mc-pgp-keyserver-url-template | |
1163 The variables @code{mc-pgp-keyserver-address}, | |
1164 @code{mc-pgp-keyserver-port}, and @code{mc-pgp-keyserver-url-template} | |
1165 control the fetching process. The default is to use Brian LaMacchia's | |
1166 key server at MIT. If this default should stop working, or if you want | |
1167 to help with network congestion and machine load, you can choose a | |
1168 different server. As of this writing, any of the following sequences of | |
1169 Emacs Lisp in your @file{.emacs} file will work; choose one: | |
1170 | |
1171 @lisp | |
1172 ;; Key server at MIT (Massachusetts, USA) | |
1173 ;; This is the default; these lines are only for reference | |
1174 ;(setq mc-pgp-keyserver-address "pgp.ai.mit.edu") | |
1175 ;(setq mc-pgp-keyserver-port 80) | |
1176 ;(setq mc-pgp-keyserver-url-template | |
1177 ; "/htbin/pks-extract-key.pl?op=get&search=%s") | |
1178 @end lisp | |
1179 | |
1180 @lisp | |
1181 ;; Key server at UPC (Barcelona, Spain) | |
1182 (setq mc-pgp-keyserver-address "goliat.upc.es") | |
1183 (setq mc-pgp-keyserver-port 80) | |
1184 (setq mc-pgp-keyserver-url-template | |
1185 "/cgi-bin/pks-extract-key.pl?op=get&search=%s") | |
1186 @end lisp | |
1187 | |
1188 @lisp | |
1189 ;; Key server at Cambridge University (Cambridge, England) | |
1190 (setq mc-pgp-keyserver-address "www.cl.cam.ac.uk") | |
1191 (setq mc-pgp-keyserver-port 80) | |
1192 (setq mc-pgp-keyserver-url-template | |
1193 "/cgi-bin/pks-extract-key.pl?op=get&search=%s") | |
1194 @end lisp | |
1195 | |
1196 @lisp | |
1197 ;; Key server at UIT (Tromso, Norway) | |
1198 (setq mc-pgp-keyserver-address "www.service.uit.no") | |
1199 (setq mc-pgp-keyserver-port 80) | |
1200 (setq mc-pgp-keyserver-url-template | |
1201 "/cgi-bin/pks-extract-key.pl?op=get&search=%s") | |
1202 @end lisp | |
1203 | |
1204 @lisp | |
1205 ;; Key server at CMU (Pennsylvania, USA) | |
1206 (setq mc-pgp-keyserver-address "gs211.sp.cs.cmu.edu") | |
1207 (setq mc-pgp-keyserver-port 80) | |
1208 (setq mc-pgp-keyserver-url-template "/cgi-bin/pgp-key?pgpid=%s") | |
1209 @end lisp | |
1210 | |
1211 If your organization has a firewall, you might not be able to access the | |
1212 World Wide Web directly. Your organization may have a proxy HTTP server | |
1213 set up, however. In that case, you should place code like the following | |
1214 in your @file{.emacs} file. You can use any of the above key servers | |
1215 instead of the one at MIT, of course. | |
1216 | |
1217 @lisp | |
1218 ;; Mailcrypt configuration for accessing key server through HTTP proxy | |
1219 (setq mc-pgp-keyserver-address "your.proxy.com") | |
1220 (setq mc-pgp-keyserver-port 13013) ; Your proxy's port | |
1221 (setq mc-pgp-keyserver-url-template | |
1222 "http://pgp.ai.mit.edu/htbin/pks-extract-key.pl?op=get&search=%s") | |
1223 @end lisp | |
1224 | |
1225 Note that fetching from a key server can be somewhat slow, so be | |
1226 patient. (At least it beats the tar out of the Email interface.) | |
1227 | |
1228 @node Miscellaneous Configuration, Tips, Key Fetching, Top | |
1229 @chapter Miscellaneous Configuration | |
1230 | |
1231 This chapter documents some additional Mailcrypt configuration options | |
1232 which could not be naturally described elsewhere. | |
1233 | |
1234 @menu | |
1235 * Alternate Keyring:: Specifying a different file to act | |
1236 like your public keyring. | |
1237 * Comment Field:: Burma | |
1238 Shave | |
1239 * Mode Line:: Changing that "MC-w" and "MC-r" stuff | |
1240 * Key Bindings:: Which keys cause which actions. | |
1241 * Nonstandard Paths:: Useful if your PGP installation is weird. | |
1242 @end menu | |
1243 | |
1244 @node Alternate Keyring, Comment Field, Miscellaneous Configuration, Miscellaneous Configuration | |
1245 @section Alternate Keyring | |
1246 | |
1247 By default, Mailcrypt will use the same public keyring that PGP would | |
1248 use if executed from the shell. | |
1249 | |
1250 @vindex mc-pgp-alternate-keyring | |
1251 You can cause Mailcrypt to use a specific public keyring by setting the | |
1252 variable @code{mc-pgp-alternate-keyring}. If this variable is set, | |
1253 Mailcrypt will use that keyring for all functions which would otherwise | |
1254 have used the default. This includes adding keys, extracting keys, | |
1255 verifying signatures, and encrypting messages. | |
1256 | |
1257 This feature might be useful if you maintain multiple keyrings; you can | |
1258 switch between them by setting this variable. Depending on your tastes, | |
1259 you might want to configure fetching from a keyring as well | |
1260 (@pxref{Keyring Fetch}). | |
1261 | |
1262 @node Comment Field, Mode Line, Alternate Keyring, Miscellaneous Configuration | |
1263 @section Comment Field | |
1264 | |
1265 By default, Mailcrypt will supply a "comment" option to PGP, resulting | |
1266 in output which looks something like this: | |
1267 | |
1268 @example | |
1269 ----- BEGIN PGP FOOBAR ----- | |
1270 Version: 2.6.3 | |
1271 Comment: Processed by Mailcrypt @value{VERSION}, an Emacs/PGP interface | |
1272 | |
1273 @dots{} | |
1274 ----- END PGP FOOBAR ----- | |
1275 @end example | |
1276 | |
1277 @vindex mc-pgp-comment | |
1278 To change the comment to one of your own, set the variable | |
1279 @code{mc-pgp-comment}. Set it to @code{nil} to use PGP's default, which | |
1280 is probably either no comment or something defined in @file{config.txt}. | |
1281 | |
1282 @node Mode Line, Key Bindings, Comment Field, Miscellaneous Configuration | |
1283 @section Mode Line | |
1284 | |
1285 @code{mc-read-mode} and @code{mc-write-mode} will each indicate they are | |
1286 active by placing the string @samp{MC-r} or @samp{MC-w} in the mode | |
1287 line, respectively. | |
1288 | |
1289 @vindex mc-read-mode-string | |
1290 @vindex mc-write-mode-string | |
1291 You can change these strings by setting the variables | |
1292 @code{mc-read-mode-string} and @code{mc-write-mode-string}. So, for | |
1293 example, to get rid of the mode indicators entirely, you might put the | |
1294 following lines into your @file{.emacs} file: | |
1295 | |
1296 @lisp | |
1297 (setq mc-read-mode-string "") | |
1298 (setq mc-write-mode-string "") | |
1299 @end lisp | |
1300 | |
1301 @node Key Bindings, Nonstandard Paths, Mode Line, Miscellaneous Configuration | |
1302 @section Key Bindings | |
1303 | |
1304 @vindex mc-read-mode-map | |
1305 @vindex mc-write-mode-map | |
1306 The Mailcrypt key bindings are defined by the keymaps | |
1307 @code{mc-read-mode-map} and @code{mc-write-mode-map}. To change the key | |
1308 bindings, you just need to set these variables in your @file{.emacs} | |
1309 file. | |
1310 | |
1311 For example, if you wanted @kbd{C-c C-m} to be the Mailcrypt prefix | |
1312 (instead of @kbd{C-c /}) in @code{mc-read-mode}, you would put the | |
1313 following code in your @file{.emacs} file: | |
1314 | |
1315 @lisp | |
1316 (setq mc-read-mode-map (make-sparse-keymap)) | |
1317 (define-key mc-read-mode-map "\C-c\C-mf" 'mc-deactivate-passwd) | |
1318 (define-key mc-read-mode-map "\C-c\C-md" 'mc-decrypt) | |
1319 (define-key mc-read-mode-map "\C-c\C-mv" 'mc-verify) | |
1320 (define-key mc-read-mode-map "\C-c\C-ma" 'mc-snarf) | |
1321 (define-key mc-read-mode-map "\C-c\C-mk" 'mc-pgp-fetch-key) | |
1322 @end lisp | |
1323 | |
1324 For more information on Emacs key bindings, see @ref{Key Bindings, , | |
1325 Customizing Key Bindings, emacs, The GNU Emacs Manual}. | |
1326 | |
1327 @node Nonstandard Paths, , Key Bindings, Miscellaneous Configuration | |
1328 @section Nonstandard Paths | |
1329 | |
1330 The information in this section should be unnecessary, but is provided | |
1331 "just in case". | |
1332 | |
1333 @vindex mc-pgp-path | |
1334 Mailcrypt will look for the PGP executable in your standard search path | |
1335 under the name @file{pgp}. To use a different name (or to provide a | |
1336 complete path), set the variable @code{mc-pgp-path}. | |
1337 | |
1338 In order to keep your identities straight, Mailcrypt needs to know where | |
1339 your secret keyring resides. | |
1340 | |
1341 Mailcrypt figures this out heuristically by assuming that the file | |
1342 @file{secring.pgp} is in the same directory as your public key ring. It | |
1343 determines the location of the latter by doing a dry run of PGP with | |
1344 @samp{+verbose=1} and parsing the output. | |
1345 | |
1346 @vindex mc-pgp-keydir | |
1347 If this heuristic is failing for you, you can manually tell Mailcrypt | |
1348 where your secret key ring is by setting the variable | |
1349 @code{mc-pgp-keydir}, like this: | |
1350 | |
1351 @lisp | |
1352 (setq mc-pgp-keydir "/users/patl/.pgp/") | |
1353 @end lisp | |
1354 | |
1355 Note that the trailing slash is @emph{required}. | |
1356 | |
1357 If the heuristic fails, please report it as a bug (@pxref{Credits}). | |
1358 | |
1359 Note that if you have changed the default location of your secret | |
1360 keyring, Mailcrypt will be unable to locate it. You can work around | |
1361 this by either setting @code{mc-pgp-keydir}, or by making a symbolic | |
1362 link to your secret keyring from @file{secring.pgp} in your default | |
1363 public keyring directory. | |
1364 | |
1365 @node Tips, Limitations, Miscellaneous Configuration, Top | |
1366 @chapter Tips | |
1367 | |
1368 Here are some random tips. | |
1369 | |
1370 @itemize @bullet | |
1371 | |
1372 @item | |
1373 PGP provides quite good security when used correctly. You are far more | |
1374 likely to use it correctly if you have read the directions. Read the | |
1375 @cite{PGP User's Guide}! | |
1376 | |
1377 @item | |
1378 60 seconds is a relatively safe but somewhat inconvenient value for | |
1379 @code{mc-passwd-timeout}. If your paranoia permits, consider increasing | |
1380 it to five or ten minutes (@pxref{Passphrase Cache}). | |
1381 | |
1382 @item | |
1383 If Mailcrypt ever does something you wish it had not, @emph{DON'T | |
1384 PANIC}. Just use the normal Emacs undo command, @kbd{M-x undo} or | |
1385 @kbd{C-x u}, to restore your buffer (@pxref{Undo, Emacs Undo, Undoing | |
1386 Changes, emacs, The GNU Emacs Manual}). Mailcrypt keeps almost no state | |
1387 except what you see in your buffer, so any action can be undone this | |
1388 way. | |
1389 | |
1390 @item | |
1391 All Mailcrypt operations place PGP's output in the @code{*MailCrypt*} | |
1392 buffer. Check it occasionally for status and warning messages. | |
1393 | |
1394 @item | |
1395 Add yourself to the Mailcrypt announcements mailing list (@pxref{Mailing | |
1396 List}). That way you can find out about new versions of Mailcrypt | |
1397 automatically, and we can enjoy the feeling that people are actually | |
1398 using our package. | |
1399 | |
1400 @end itemize | |
1401 | |
1402 @node Limitations, References, Tips, Top | |
1403 @chapter Limitations | |
1404 | |
1405 Mailcrypt is a powerful program, but it is not a complete PGP interface. | |
1406 Perhaps some future version will be; in the meantime, you will need to | |
1407 use the command-line interface for some operations. Things which the | |
1408 current version does not support include: | |
1409 | |
1410 @table @emph | |
1411 | |
1412 @item Complete Key Management | |
1413 Mailcrypt's key management support is limited to adding and extracting | |
1414 keys from keyrings. It does not support key generation, key removal, | |
1415 key revocation, ID and trust parameter editing, or key signing. It also | |
1416 ignores PGP's warnings when you use a key which is not fully certified. | |
1417 (Of course, you can see these warnings by viewing the @code{*MailCrypt*} | |
1418 buffer; see @ref{Tips}.) | |
1419 | |
1420 @item Encryption with Conventional Cryptography | |
1421 Mailcrypt supports decryption but not encryption with "conventional" | |
1422 (i.e., non-public key) cryptography. | |
1423 | |
1424 @item Detached Signatures | |
1425 Mailcrypt does not support the creation nor the verification of detached | |
1426 signatures. | |
1427 | |
1428 @item "For your eyes only" Decryption | |
1429 Mailcrypt will be unable to decrypt a file which was encrypted with the | |
1430 "for your eyes only" (@samp{-m}) option. This is actually a bug in PGP, | |
1431 which provides no portable way to avoid its paging behavior. | |
1432 | |
1433 @end table | |
1434 | |
1435 @node References, Credits, Limitations, Top | |
1436 @chapter References | |
1437 | |
1438 This chapter contains information and pointers to information about | |
1439 topics related to PGP and Mailcrypt. | |
1440 | |
1441 @menu | |
1442 * Online Resources:: Recreational reading with a purpose. | |
1443 * Key Servers:: Keepers of the Global Keyring. | |
1444 * Mailing List:: Staying informed while pumping the | |
1445 authors' egos. | |
1446 * Politics:: Anarcho-foobarism. | |
1447 @end menu | |
1448 | |
1449 @node Online Resources, Key Servers, References, References | |
1450 @section Online Resources | |
1451 | |
1452 @table @file | |
1453 | |
1454 @item http://world.std.com/~franl/crypto.html | |
1455 "Cryptography, PGP, and Your Privacy", by Fran Litterio. This page is | |
1456 simply excellent. It makes all the other References in this chapter | |
1457 redundant, but we will include them anyway for redundancy. | |
1458 | |
1459 @item http://web.mit.edu/network/pgp.html | |
1460 MIT is the canonical distribution site for PGP; this is the announcement | |
1461 page. | |
1462 | |
1463 @item ftp://rtfm.mit.edu/pub/usenet/alt.security.pgp/ | |
1464 This is an archive site for the @file{alt.security.pgp} FAQ lists. | |
1465 | |
1466 @item news:alt.security.pgp | |
1467 The @file{alt.security.pgp} newsgroup is a good place to go for | |
1468 discussion about PGP, as well as any topic which any fool anywhere ever | |
1469 thinks is related to PGP. It is also a good last resort for getting | |
1470 answers to questions, but please read the FAQ lists first. | |
1471 | |
1472 @item http://pgp.ai.mit.edu/~bal/pks-toplev.html | |
1473 Brian LaMacchia (bal@@zurich.ai.mit.edu) has put together a World Wide | |
1474 Web interface to the public key servers (@pxref{Key Servers}). | |
1475 Mailcrypt uses this interface by default when attempting to fetch keys | |
1476 via HTTP (@pxref{HTTP Fetch}); most people get to his interface through | |
1477 this page. | |
1478 | |
1479 @item ftp://ftp.csua.berkeley.edu/pub/cypherpunks/Home.html | |
1480 The Cypherpunks are dedicated to taking proactive measures to ensure | |
1481 privacy in the digital age. They wrote the software for, and operate | |
1482 many of, the anonymous remailers currently in existence. | |
1483 | |
1484 @item http://www.cs.berkeley.edu/~raph/ | |
1485 Raph Levien actively maintains a remailer list which Mailcrypt knows how | |
1486 to parse. If you are impressed by how easy it is to configure | |
1487 Mailcrypt's remailer functions, Raph is the one to thank. Raph's page | |
1488 also has many useful links. | |
1489 | |
1490 @item http://www.obscura.com/~loki/ | |
1491 Lance Cottrell is the author of Mixmaster. His home page is the | |
1492 canonical source for information on Mixmaster and is a good source for | |
1493 PGP pointers in general. | |
1494 | |
1495 @end table | |
1496 | |
1497 @node Key Servers, Mailing List, Online Resources, References | |
1498 @section Key Servers | |
1499 | |
1500 @dfn{Key servers} are machines with a publicly accessible interface to | |
1501 an enormous global public keyring. Anyone may add keys to or query this | |
1502 keyring. Each key server holds a complete copy of the global keyring, | |
1503 and they arrange to keep one another informed of additions they receive. | |
1504 | |
1505 This means you can tell any key server to add your public key to the | |
1506 global keyring, and all of the other servers will know about it within a | |
1507 day or so. Then anyone will be able to query any key server to obtain | |
1508 your public key. | |
1509 | |
1510 To add your key to the keyservers, send an Email message to | |
1511 @code{pgp-public-keys@@pgp.ai.mit.edu} with a subject line of @samp{ADD} | |
1512 and a body containing your public key block. With Mailcrypt installed, | |
1513 you can just type @kbd{C-c / x} to insert your public key block | |
1514 (@pxref{Inserting Keys}) into the body of the message. | |
1515 | |
1516 For help with the Email interface to the key servers, send a message | |
1517 with a subject line of @samp{HELP}. For a World Wide Web interface to | |
1518 the key servers, see Brian LaMacchia's home page at | |
1519 @file{http://www-swiss.ai.mit.edu/~bal/}. | |
1520 | |
1521 Some other key servers include: | |
1522 | |
1523 @itemize @bullet | |
1524 | |
1525 @item | |
1526 pgp-public-keys@@jpunix.com | |
1527 | |
1528 @item | |
1529 pgp-public-keys@@kub.nl | |
1530 | |
1531 @item | |
1532 pgp-public-keys@@uit.no | |
1533 | |
1534 @item | |
1535 pgp-public-keys@@pgp.ox.ac.uk | |
1536 | |
1537 @end itemize | |
1538 | |
1539 For a complete list, consult any good online repository of PGP | |
1540 information (@pxref{Online Resources}). | |
1541 | |
1542 It is strongly recommended that you submit your key to the key servers, | |
1543 since many humans and programs (including Mailcrypt) may look for it | |
1544 there. Besides, it takes mere seconds and the pain passes quickly. | |
1545 | |
1546 @node Mailing List, Politics, Key Servers, References | |
1547 @section Mailing List | |
1548 If you would like to automatically receive information about new | |
1549 releases of Mailcrypt, send Email to | |
1550 @samp{mc-announce-request@@cag.lcs.mit.edu} asking to be placed on the | |
1551 @samp{mc-announce} mailing list. The mailing list is maintained | |
1552 manually, so please be patient. | |
1553 | |
1554 The @samp{mc-announce} list is reserved for announcements of new | |
1555 Mailcrypt versions, so it has extremely low volume. We encourage you to | |
1556 add yourself so we can get a rough idea of how many people are using | |
1557 our package. | |
1558 | |
1559 @node Politics, , Mailing List, References | |
1560 @section Politics | |
1561 | |
1562 Cryptography in general, PGP in particular, and free software are | |
1563 politically somewhat controversial topics. Heck, in the U.S. Congress, | |
1564 freedom of speech is a controversial topic. Anyway, here are some | |
1565 organizations you should definitely watch and preferably send lots of | |
1566 money. | |
1567 | |
1568 @table @emph | |
1569 | |
1570 @item The Electronic Frontier Foundation | |
1571 The EFF (@file{http://www.eff.org/}) works to protect civil liberties in | |
1572 cyberspace. They also maintain an impressive collection of on-line | |
1573 resources. If you like Mailcrypt so much that you wish you had paid for | |
1574 it, this is the number one place we would want to see your money go. | |
1575 The EFF newsgroups, @file{comp.org.eff.news} and | |
1576 @file{comp.org.eff.talk}, are required reading for the well-informed. | |
1577 | |
1578 @item The League for Programming Freedom | |
1579 The LPF (@file{http://www.lpf.org/}) works to fight software patents, | |
1580 which threaten to make free software like Mailcrypt impossible. | |
1581 | |
1582 @item The Center for Democracy and Technology | |
1583 The CDT (@file{http://www.cdt.org/}) has essentially the same goals as | |
1584 the EFF, but is more of a lobbying group. | |
1585 | |
1586 @end table | |
1587 | |
1588 Mailcrypt's remailer support was inspired by the Communications Decency | |
1589 Act of 1995 (see @file{http://www.cdt.org/cda.html}) and by the | |
1590 International "Church" of Scientology (see | |
1591 @file{http://www.mit.edu:8001/people/rnewman/scientology/}). | |
1592 | |
1593 @node Credits, Index, References, Top | |
1594 @chapter Credits | |
1595 Mailcrypt was written by Jin Choi (jin@@atype.com) and Pat LoPresti | |
1596 (patl@@lcs.mit.edu). Please send us your bug reports and comments. | |
1597 Also see @ref{Mailing List}. | |
1598 | |
1599 This documentation was mostly written by Pat LoPresti, but borrows | |
1600 heavily from an earlier version by Hal Abelson (hal@@mit.edu). | |
1601 | |
1602 Mailcrypt would not be as robust nor as featureful if it were not for | |
1603 our outstanding set of Beta testers: | |
1604 | |
1605 @itemize @bullet | |
1606 | |
1607 @item | |
1608 Samuel Tardieu <sam@@inf.enst.fr> | |
1609 @item | |
1610 Richard Stanton <stanton@@haas.berkeley.edu> | |
1611 @item | |
1612 Peter Arius <arius@@immd2.informatik.uni-erlangen.de> | |
1613 @item | |
1614 Tomaz Borstnar <tomaz@@cmir.arnes.si> | |
1615 @item | |
1616 Barry Brumitt <belboz@@frc2.frc.ri.cmu.edu> | |
1617 @item | |
1618 Steffen Zahn <Steffen.Zahn%robinie@@sunserv.sie.siemens.co.at> | |
1619 @item | |
1620 Mike Campbell <mcampbel@@offenbach.sbi.com> | |
1621 @item | |
1622 Mark Baushke <mdb@@cisco.com> | |
1623 @item | |
1624 Mike Long <mike.long@@analog.com> | |
1625 | |
1626 @end itemize | |
1627 | |
1628 @node Index, , Credits, Top | |
1629 @unnumbered Index | |
1630 | |
1631 This index has an entry for every key sequence, function, and variable | |
1632 documented in this manual. | |
1633 | |
1634 @printindex cp | |
1635 | |
1636 @contents | |
1637 @bye | |
1638 | |
1639 @c End: |