annotate doc/misc/pgg.texi @ 112353:71904feb29f6

Improve performance on non-GCC hosts with __aligned__.
author Paul Eggert <eggert@cs.ucla.edu>
date Mon, 17 Jan 2011 20:55:12 -0800
parents 417b1e4d63cd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1 \input texinfo @c -*-texinfo-*-
84329
3d431f1997d8 (setfilename): Go up one more level to ../../info.
Glenn Morris <rgm@gnu.org>
parents: 84310
diff changeset
2 @setfilename ../../info/pgg
102059
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
3 @settitle PGG @value{VERSION}
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
4
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
5 @set VERSION 0.1
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
6
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
7 @copying
102059
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
8 This file describes PGG @value{VERSION}, an Emacs interface to various
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
9 PGP implementations.
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
10
109264
f1266b2f017e Untabify doc/misc/*.texi.
Glenn Morris <rgm@gnu.org>
parents: 106815
diff changeset
11 Copyright @copyright{} 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
112218
376148b31b5e Add 2011 to FSF/AIST copyright years.
Glenn Morris <rgm@gnu.org>
parents: 109274
diff changeset
12 2010, 2011 Free Software Foundation, Inc.
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
13
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
14 @quotation
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
15 Permission is granted to copy, distribute and/or modify this document
99709
6de181810d0f Relicense all texi files under FDL 1.3 or later.
Glenn Morris <rgm@gnu.org>
parents: 95981
diff changeset
16 under the terms of the GNU Free Documentation License, Version 1.3 or
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
17 any later version published by the Free Software Foundation; with no
95981
0080e1e64a78 Add Cover-Texts.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
18 Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
0080e1e64a78 Add Cover-Texts.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
19 and with the Back-Cover Texts as in (a) below. A copy of the license
0080e1e64a78 Add Cover-Texts.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
20 is included in the section entitled ``GNU Free Documentation License.''
0080e1e64a78 Add Cover-Texts.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
21
0080e1e64a78 Add Cover-Texts.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
22 (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
0080e1e64a78 Add Cover-Texts.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
23 modify this GNU manual. Buying copies from the FSF supports it in
0080e1e64a78 Add Cover-Texts.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
24 developing GNU and promoting software freedom.''
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
25 @end quotation
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
26 @end copying
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
27
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
28 @dircategory Emacs
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
29 @direntry
109274
a91e94388547 Minor doc/misc/*.texi direntry fixes.
Glenn Morris <rgm@gnu.org>
parents: 109264
diff changeset
30 * PGG: (pgg). Emacs interface to various PGP implementations.
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
31 @end direntry
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
32
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
33 @titlepage
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
34 @title PGG
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
35
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
36 @author by Daiki Ueno
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
37 @page
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
38
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
39 @vskip 0pt plus 1filll
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
40 @insertcopying
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
41 @end titlepage
102059
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
42
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
43 @contents
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
44
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
45 @node Top
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
46 @top PGG
102059
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
47
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
48 PGG is an interface library between Emacs
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
49 and various tools for secure communication. PGG also provides a simple
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
50 user interface to encrypt, decrypt, sign, and verify MIME messages.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
51
102059
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
52 @ifnottex
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
53 @insertcopying
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
54 @end ifnottex
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
55
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
56 @menu
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
57 * Overview:: What PGG is.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
58 * Prerequisites:: Complicated stuff you may have to do.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
59 * How to use:: Getting started quickly.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
60 * Architecture::
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
61 * Parsing OpenPGP packets::
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
62 * GNU Free Documentation License:: The license for this documentation.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
63 * Function Index::
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
64 * Variable Index::
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
65 @end menu
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
66
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
67 @node Overview
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
68 @chapter Overview
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
69
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
70 PGG is an interface library between Emacs and various tools for secure
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
71 communication. Even though Mailcrypt has similar feature, it does not
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
72 deal with detached PGP messages, normally used in PGP/MIME
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
73 infrastructure. This was the main reason why I wrote the new library.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
74
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
75 PGP/MIME is an application of MIME Object Security Services (RFC1848).
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
76 The standard is documented in RFC2015.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
77
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
78 @node Prerequisites
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
79 @chapter Prerequisites
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
80
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
81 PGG requires at least one implementation of privacy guard system.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
82 This document assumes that you have already obtained and installed them
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
83 and that you are familiar with its basic functions.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
84
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
85 By default, PGG uses GnuPG. If you are new to such a system, I
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
86 recommend that you should look over the GNU Privacy Handbook (GPH)
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
87 which is available at @uref{http://www.gnupg.org/documentation/}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
88
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
89 When using GnuPG, we recommend the use of the @code{gpg-agent}
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
90 program, which is distributed with versions 2.0 and later of GnuPG.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
91 This is a daemon to manage private keys independently from any
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
92 protocol, and provides the most secure way to input and cache your
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
93 passphrases (@pxref{Caching passphrase}). By default, PGG will
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
94 attempt to use @code{gpg-agent} if it is running. @xref{Invoking
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
95 GPG-AGENT,,,gnupg,Using the GNU Privacy Guard}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
96
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
97 PGG also supports Pretty Good Privacy version 2 or version 5.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
98
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
99 @node How to use
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
100 @chapter How to use
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
101
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
102 The toplevel interface of this library is quite simple, and only
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
103 intended to use with public-key cryptographic operation.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
104
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
105 To use PGG, evaluate following expression at the beginning of your
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
106 application program.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
107
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
108 @lisp
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
109 (require 'pgg)
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
110 @end lisp
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
111
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
112 If you want to check existence of pgg.el at runtime, instead you can
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
113 list autoload setting for desired functions as follows.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
114
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
115 @lisp
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
116 (autoload 'pgg-encrypt-region "pgg"
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
117 "Encrypt the current region." t)
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
118 (autoload 'pgg-encrypt-symmetric-region "pgg"
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
119 "Encrypt the current region with symmetric algorithm." t)
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
120 (autoload 'pgg-decrypt-region "pgg"
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
121 "Decrypt the current region." t)
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
122 (autoload 'pgg-sign-region "pgg"
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
123 "Sign the current region." t)
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
124 (autoload 'pgg-verify-region "pgg"
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
125 "Verify the current region." t)
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
126 (autoload 'pgg-insert-key "pgg"
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
127 "Insert the ASCII armored public key." t)
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
128 (autoload 'pgg-snarf-keys-region "pgg"
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
129 "Import public keys in the current region." t)
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
130 @end lisp
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
131
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
132 @menu
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
133 * User Commands::
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
134 * Selecting an implementation::
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
135 * Caching passphrase::
109264
f1266b2f017e Untabify doc/misc/*.texi.
Glenn Morris <rgm@gnu.org>
parents: 106815
diff changeset
136 * Default user identity::
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
137 @end menu
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
138
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
139 @node User Commands
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
140 @section User Commands
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
141
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
142 At this time you can use some cryptographic commands. The behavior of
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
143 these commands relies on a fashion of invocation because they are also
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
144 intended to be used as library functions. In case you don't have the
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
145 signer's public key, for example, the function @code{pgg-verify-region}
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
146 fails immediately, but if the function had been called interactively, it
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
147 would ask you to retrieve the signer's public key from the server.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
148
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
149 @deffn Command pgg-encrypt-region start end recipients &optional sign passphrase
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
150 Encrypt the current region between @var{start} and @var{end} for
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
151 @var{recipients}. When the function were called interactively, you
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
152 would be asked about the recipients.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
153
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
154 If encryption is successful, it replaces the current region contents (in
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
155 the accessible portion) with the resulting data.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
156
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
157 If optional argument @var{sign} is non-@code{nil}, the function is
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
158 request to do a combined sign and encrypt. This currently is
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
159 confirmed to work with GnuPG, but might not work with PGP or PGP5.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
160
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
161 If optional @var{passphrase} is @code{nil}, the passphrase will be
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
162 obtained from the passphrase cache or user.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
163 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
164
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
165 @deffn Command pgg-encrypt-symmetric-region &optional start end passphrase
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
166 Encrypt the current region between @var{start} and @var{end} using a
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
167 symmetric cipher. After invocation you are asked for a passphrase.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
168
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
169 If optional @var{passphrase} is @code{nil}, the passphrase will be
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
170 obtained from the passphrase cache or user.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
171
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
172 symmetric-cipher encryption is currently only implemented for GnuPG.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
173 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
174
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
175 @deffn Command pgg-decrypt-region start end &optional passphrase
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
176 Decrypt the current region between @var{start} and @var{end}. If
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
177 decryption is successful, it replaces the current region contents (in
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
178 the accessible portion) with the resulting data.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
179
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
180 If optional @var{passphrase} is @code{nil}, the passphrase will be
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
181 obtained from the passphrase cache or user.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
182 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
183
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
184 @deffn Command pgg-sign-region start end &optional cleartext passphrase
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
185 Make the signature from text between @var{start} and @var{end}. If the
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
186 optional third argument @var{cleartext} is non-@code{nil}, or the
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
187 function is called interactively, it does not create a detached
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
188 signature. In such a case, it replaces the current region contents (in
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
189 the accessible portion) with the resulting data.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
190
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
191 If optional @var{passphrase} is @code{nil}, the passphrase will be
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
192 obtained from the passphrase cache or user.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
193 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
194
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
195 @deffn Command pgg-verify-region start end &optional signature fetch
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
196 Verify the current region between @var{start} and @var{end}. If the
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
197 optional third argument @var{signature} is non-@code{nil}, it is treated
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
198 as the detached signature file of the current region.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
199
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
200 If the optional 4th argument @var{fetch} is non-@code{nil}, or the
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
201 function is called interactively, we attempt to fetch the signer's
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
202 public key from the key server.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
203 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
204
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
205 @deffn Command pgg-insert-key
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
206 Retrieve the user's public key and insert it as ASCII-armored format.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
207 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
208
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
209 @deffn Command pgg-snarf-keys-region start end
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
210 Collect public keys in the current region between @var{start} and
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
211 @var{end}, and add them into the user's keyring.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
212 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
213
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
214 @node Selecting an implementation
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
215 @section Selecting an implementation
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
216
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
217 Since PGP has a long history and there are a number of PGP
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
218 implementations available today, the function which each one has differs
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
219 considerably. For example, if you are using GnuPG, you know you can
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
220 select cipher algorithm from 3DES, CAST5, BLOWFISH, and so on, but on
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
221 the other hand the version 2 of PGP only supports IDEA.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
222
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
223 Which implementation is used is controlled by the @code{pgg-scheme}
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
224 variable. If it is @code{nil} (the default), the value of the
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
225 @code{pgg-default-scheme} variable will be used instead.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
226
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
227 @defvar pgg-scheme
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
228 Force specify the scheme of PGP implementation. The value can be set to
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
229 @code{gpg}, @code{pgp}, and @code{pgp5}. The default is @code{nil}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
230 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
231
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
232 @defvar pgg-default-scheme
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
233 The default scheme of PGP implementation. The value should be one of
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
234 @code{gpg}, @code{pgp}, and @code{pgp5}. The default is @code{gpg}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
235 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
236
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
237 @node Caching passphrase
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
238 @section Caching passphrase
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
239
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
240 When using GnuPG (gpg) as the PGP scheme, we recommend using a program
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
241 called @code{gpg-agent} for entering and caching
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
242 passphrases@footnote{Actually, @code{gpg-agent} does not cache
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
243 passphrases but private keys. On the other hand, from a user's point
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
244 of view, this technical difference isn't visible.}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
245
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
246 @defvar pgg-gpg-use-agent
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
247 If non-@code{nil}, attempt to use @code{gpg-agent} whenever possible.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
248 The default is @code{t}. If @code{gpg-agent} is not running, or GnuPG
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
249 is not the current PGP scheme, PGG's own passphrase-caching mechanism
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
250 is used (see below).
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
251 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
252
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
253 To use @code{gpg-agent} with PGG, you must first ensure that
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
254 @code{gpg-agent} is running. For example, if you are running in the X
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
255 Window System, you can do this by putting the following line in your
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
256 @file{.xsession} file:
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
257
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
258 @smallexample
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
259 eval "$(gpg-agent --daemon)"
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
260 @end smallexample
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
261
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
262 For more details on invoking @code{gpg-agent}, @xref{Invoking
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
263 GPG-AGENT,,,gnupg,Using the GNU Privacy Guard}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
264
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
265 Whenever you perform a PGG operation that requires a GnuPG passphrase,
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
266 GnuPG will contact @code{gpg-agent}, which prompts you for the
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
267 passphrase. Furthermore, @code{gpg-agent} ``caches'' the result, so
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
268 that subsequent uses will not require you to enter the passphrase
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
269 again. (This cache usually expires after a certain time has passed;
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
270 you can change this using the @code{--default-cache-ttl} option when
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
271 invoking @code{gpg-agent}.)
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
272
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
273 If you are running in a X Window System environment, @code{gpg-agent}
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
274 prompts for a passphrase by opening a graphical window. However, if
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
275 you are running Emacs on a text terminal, @code{gpg-agent} has trouble
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
276 receiving input from the terminal, since it is being sent to Emacs.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
277 One workaround for this problem is to run @code{gpg-agent} on a
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
278 different terminal from Emacs, with the @code{--keep-tty} option; this
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
279 tells @code{gpg-agent} use its own terminal to prompt for passphrases.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
280
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
281 When @code{gpg-agent} is not being used, PGG prompts for a passphrase
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
282 through Emacs. It also has its own passphrase caching mechanism,
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
283 which is controlled by the variable @code{pgg-cache-passphrase} (see
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
284 below).
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
285
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
286 There is a security risk in handling passphrases through PGG rather
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
287 than @code{gpg-agent}. When you enter your passphrase into an Emacs
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
288 prompt, it is temporarily stored as a cleartext string in the memory
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
289 of the Emacs executable. If the executable memory is swapped to disk,
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
290 the root user can, in theory, extract the passphrase from the
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
291 swapfile. Furthermore, the swapfile containing the cleartext
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
292 passphrase might remain on the disk after the system is discarded or
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
293 stolen. @code{gpg-agent} avoids this problem by using certain tricks,
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
294 such as memory locking, which have not been implemented in Emacs.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
295
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
296 @defvar pgg-cache-passphrase
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
297 If non-@code{nil}, store passphrases. The default value of this
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
298 variable is @code{t}. If you are worried about security issues,
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
299 however, you could stop the caching of passphrases by setting this
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
300 variable to @code{nil}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
301 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
302
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
303 @defvar pgg-passphrase-cache-expiry
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
304 Elapsed time for expiration in seconds.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
305 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
306
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
307 If your passphrase contains non-ASCII characters, you might need to
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
308 specify the coding system to be used to encode your passphrases, since
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
309 GnuPG treats them as a byte sequence, not as a character sequence.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
311 @defvar pgg-passphrase-coding-system
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
312 Coding system used to encode passphrase.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
313 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
314
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
315 @node Default user identity
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
316 @section Default user identity
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
317
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
318 The PGP implementation is usually able to select the proper key to use
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
319 for signing and decryption, but if you have more than one key, you may
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
320 need to specify the key id to use.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
321
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
322 @defvar pgg-default-user-id
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
323 User ID of your default identity. It defaults to the value returned
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
324 by @samp{(user-login-name)}. You can customize this variable.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
325 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
326
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
327 @defvar pgg-gpg-user-id
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
328 User ID of the GnuPG default identity. It defaults to @samp{nil}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
329 This overrides @samp{pgg-default-user-id}. You can customize this
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
330 variable.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
331 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
332
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
333 @defvar pgg-pgp-user-id
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
334 User ID of the PGP 2.x/6.x default identity. It defaults to
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
335 @samp{nil}. This overrides @samp{pgg-default-user-id}. You can
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
336 customize this variable.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
337 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
338
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
339 @defvar pgg-pgp5-user-id
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
340 User ID of the PGP 5.x default identity. It defaults to @samp{nil}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
341 This overrides @samp{pgg-default-user-id}. You can customize this
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
342 variable.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
343 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
344
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
345 @node Architecture
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
346 @chapter Architecture
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
347
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
348 PGG introduces the notion of a "scheme of PGP implementation" (used
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
349 interchangeably with "scheme" in this document). This term refers to a
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
350 singleton object wrapped with the luna object system.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
351
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
352 Since PGG was designed for accessing and developing PGP functionality,
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
353 the architecture had to be designed not just for interoperability but
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
354 also for extensiblity. In this chapter we explore the architecture
85712
a3c27999decb Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents: 84329
diff changeset
355 while finding out how to write the PGG back end.
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
356
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
357 @menu
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
358 * Initializing::
85712
a3c27999decb Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents: 84329
diff changeset
359 * Back end methods::
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
360 * Getting output::
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
361 @end menu
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
362
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
363 @node Initializing
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
364 @section Initializing
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
365
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
366 A scheme must be initialized before it is used.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
367 It had better guarantee to keep only one instance of a scheme.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
368
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
369 The following code is snipped out of @file{pgg-gpg.el}. Once an
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
370 instance of @code{pgg-gpg} scheme is initialized, it's stored to the
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
371 variable @code{pgg-scheme-gpg-instance} and will be reused from now on.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
372
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
373 @lisp
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
374 (defvar pgg-scheme-gpg-instance nil)
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
375
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
376 (defun pgg-make-scheme-gpg ()
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
377 (or pgg-scheme-gpg-instance
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
378 (setq pgg-scheme-gpg-instance
109264
f1266b2f017e Untabify doc/misc/*.texi.
Glenn Morris <rgm@gnu.org>
parents: 106815
diff changeset
379 (luna-make-entity 'pgg-scheme-gpg))))
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
380 @end lisp
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
381
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
382 The name of the function must follow the
85712
a3c27999decb Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents: 84329
diff changeset
383 regulation---@code{pgg-make-scheme-} follows the back end name.
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
384
85712
a3c27999decb Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents: 84329
diff changeset
385 @node Back end methods
a3c27999decb Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents: 84329
diff changeset
386 @section Back end methods
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
387
85712
a3c27999decb Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents: 84329
diff changeset
388 In each back end, these methods must be present. The output of these
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
389 methods is stored in special buffers (@ref{Getting output}), so that
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
390 these methods must tell the status of the execution.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
391
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
392 @deffn Method pgg-scheme-lookup-key scheme string &optional type
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
393 Return keys associated with @var{string}. If the optional third
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
394 argument @var{type} is non-@code{nil}, it searches from the secret
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
395 keyrings.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
396 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
397
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
398 @deffn Method pgg-scheme-encrypt-region scheme start end recipients &optional sign passphrase
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
399 Encrypt the current region between @var{start} and @var{end} for
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
400 @var{recipients}. If @var{sign} is non-@code{nil}, do a combined sign
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
401 and encrypt. If encryption is successful, it returns @code{t},
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
402 otherwise @code{nil}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
403 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
404
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
405 @deffn Method pgg-scheme-encrypt-symmetric-region scheme start end &optional passphrase
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
406 Encrypt the current region between @var{start} and @var{end} using a
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
407 symmetric cipher and a passphrases. If encryption is successful, it
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
408 returns @code{t}, otherwise @code{nil}. This function is currently only
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
409 implemented for GnuPG.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
410 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
411
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
412 @deffn Method pgg-scheme-decrypt-region scheme start end &optional passphrase
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
413 Decrypt the current region between @var{start} and @var{end}. If
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
414 decryption is successful, it returns @code{t}, otherwise @code{nil}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
415 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
416
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
417 @deffn Method pgg-scheme-sign-region scheme start end &optional cleartext passphrase
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
418 Make the signature from text between @var{start} and @var{end}. If the
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
419 optional third argument @var{cleartext} is non-@code{nil}, it does not
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
420 create a detached signature. If signing is successful, it returns
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
421 @code{t}, otherwise @code{nil}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
422 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
423
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
424 @deffn Method pgg-scheme-verify-region scheme start end &optional signature
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
425 Verify the current region between @var{start} and @var{end}. If the
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
426 optional third argument @var{signature} is non-@code{nil}, it is treated
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
427 as the detached signature of the current region. If the signature is
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
428 successfully verified, it returns @code{t}, otherwise @code{nil}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
429 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
430
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
431 @deffn Method pgg-scheme-insert-key scheme
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
432 Retrieve the user's public key and insert it as ASCII-armored format.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
433 On success, it returns @code{t}, otherwise @code{nil}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
434 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
435
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
436 @deffn Method pgg-scheme-snarf-keys-region scheme start end
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
437 Collect public keys in the current region between @var{start} and
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
438 @var{end}, and add them into the user's keyring.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
439 On success, it returns @code{t}, otherwise @code{nil}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
440 @end deffn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
441
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
442 @node Getting output
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
443 @section Getting output
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
444
85712
a3c27999decb Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents: 84329
diff changeset
445 The output of the back end methods (@ref{Back end methods}) is stored in
84310
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
446 special buffers, so that these methods must tell the status of the
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
447 execution.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
448
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
449 @defvar pgg-errors-buffer
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
450 The standard error output of the execution of the PGP command is stored
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
451 here.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
452 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
453
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
454 @defvar pgg-output-buffer
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
455 The standard output of the execution of the PGP command is stored here.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
456 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
457
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
458 @defvar pgg-status-buffer
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
459 The rest of status information of the execution of the PGP command is
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
460 stored here.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
461 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
462
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
463 @node Parsing OpenPGP packets
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
464 @chapter Parsing OpenPGP packets
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
465
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
466 The format of OpenPGP messages is maintained in order to publish all
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
467 necessary information needed to develop interoperable applications.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
468 The standard is documented in RFC 2440.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
469
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
470 PGG has its own parser for the OpenPGP packets.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
471
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
472 @defun pgg-parse-armor string
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
473 List the sequence of packets in @var{string}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
474 @end defun
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
475
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
476 @defun pgg-parse-armor-region start end
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
477 List the sequence of packets in the current region between @var{start}
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
478 and @var{end}.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
479 @end defun
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
480
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
481 @defvar pgg-ignore-packet-checksum
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
482 If non-@code{nil}, don't check the checksum of the packets.
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
483 @end defvar
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
484
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
485 @node GNU Free Documentation License
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
486 @appendix GNU Free Documentation License
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
487 @include doclicense.texi
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
488
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
489 @node Function Index
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
490 @unnumbered Function Index
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
491 @printindex fn
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
492
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
493 @node Variable Index
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
494 @unnumbered Variable Index
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
495 @printindex vr
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
496
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
497 @bye
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
498
9626e8859adb Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
499 @c End: