Synch with No Gnus (200812211937).
[elisp/gnus-doc-ja.git] / pgg-ja.texi
1 \input texinfo                  @c -*-texinfo-*-
2
3 @setfilename pgg-ja
4 @iftex
5 @firstparagraphindent insert
6 @end iftex
7
8 @set VERSION 0.1
9
10 @copying
11 This file describes PGG, an Emacs interface to various PGP implementations.
12
13 Copyright @copyright{} 2001, 2003, 2004, 2005, 2006, 2007, 2008
14 Free Software Foundation, Inc.
15
16 @quotation
17 Permission is granted to copy, distribute and/or modify this document
18 under the terms of the GNU Free Documentation License, Version 1.3 or
19 any later version published by the Free Software Foundation; with no
20 Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
21 and with the Back-Cover Texts as in (a) below.  A copy of the license
22 is included in the section entitled ``GNU Free Documentation License''.
23
24 \e$B$3$NJ8=q$r!"%U%j!<%=%U%H%&%'%":bCDH/9T$N\e(B GNU \e$B%U%j!<J8=qMxMQ5vBz7@Ls=q\e(B
25 \e$BBh\e(B 1.3 \e$BHG$^$?$O$=$l0J9_$NHG$,Dj$a$k>r7o$N2<$GJ#@=!"G[I[!"$"$k$$$OJQ99$9\e(B
26 \e$B$k$3$H$r5v2D$7$^$9!#JQ99IT2DItJ,$O;XDj$7$^$;$s!#!H\e(BA GNU Manual\e$B!I$OI=I=;f\e(B
27 \e$B%F%-%9%H!"0J2<$N\e(B (a) \e$B$ON"I=;f%F%-%9%H$G$9!#$3$NMxMQ5vBz7@Ls=q$NJ#<L$O\e(B
28 \e$B!V\e(BGNU \e$B%U%j!<J8=qMxMQ5vBz7@Ls=q!W$H$$$&>O$K4^$^$l$F$$$^$9!#\e(B
29
30 (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
31 modify this GNU manual.  Buying copies from the FSF supports it in
32 developing GNU and promoting software freedom.''
33
34 (a) FSF \e$B$NN"I=;f%F%-%9%H\e(B:\e$B!V$"$J$?$K$O$3$N\e(B GNU Manual \e$B$rJ#@=$7$?$jJQ99$9\e(B
35 \e$B$k<+M3$,$"$j$^$9!#\e(BFSF \e$B$+$i$NJ#<L$N9XF~$O\e(B GNU \e$B$N3+H/$H%=%U%H%&%'%"$N<+M3\e(B
36 \e$B$NB%?J$r;Y1g$7$^$9!#!W\e(B
37 @end quotation
38 @end copying
39
40 @dircategory Emacs
41 @direntry
42 * PGG-ja: (pgg-ja).        Emacs interface to various PGP implementations (Ja).
43 @end direntry
44
45 @settitle PGG @value{VERSION}
46
47 @titlepage
48 @title PGG
49
50 @author by Daiki Ueno
51 @page
52
53 @vskip 0pt plus 1filll
54 @insertcopying
55 @end titlepage
56 @page
57
58 @node Top
59 @top PGG
60
61 \e$B$3$l$O\e(B PGG \e$B$N%^%K%e%"%k$G$9!#\e(BPGG \e$B$O!"0BA4$JDL?.$N$?$a$NMM!9$J%D!<%k\e(B
62 \e$B$H\e(B Emacs \e$B$NCg$r<h$j;}$D%i%$%V%i%j!<$G$9!#$^$?!"\e(BPGG \e$B$O\e(B MIME \e$B%a%C%;!<%8$N\e(B
63 \e$B0E9f2=$H2rFI!"$=$l$K=pL>$H8!>Z$N$?$a$NC1=c$J%f!<%6!<%$%s%?%U%'!<%9$bDs6!\e(B
64 \e$B$7$^$9!#\e(B
65
66 @menu
67 * Overview::                    PGG \e$B$H$O\e(B
68 * Prerequisites::               \e$B$"$i$+$8$a$7$F$*$/$Y$-J#;($J;vJA\e(B
69 * How to use::                  \e$B$H$C$H$H;H$$;O$a$h$&\e(B
70 * Architecture::                
71 * Parsing OpenPGP packets::     
72 * GNU Free Documentation License:: \e$B$3$NJ8=q$NMxMQ5vBz7@Ls=q\e(B
73 * Function Index::              
74 * Variable Index::              
75 @end menu
76
77 @node Overview
78 @chapter \e$B35MW\e(B
79
80 PGG \e$B$O!"0BA4$JDL?.$N$?$a$NMM!9$J%D!<%k$H\e(B Emacs \e$B$NCg$r<h$j;}$D%i%$%V%i%j!<\e(B
81 \e$B$G$9!#F1MM$N5!G=$O\e(B Mailcrypt \e$B$b;}$C$F$$$^$9$,!"\e(BMailcrypt \e$B$O\e(B PGP/MIME \e$B$N\e(B
82 \e$B%$%s%U%i$GDL>oMQ$$$i$l$kJ,N%$5$l$?\e(B PGP \e$B%a%C%;!<%8$r<h$j07$&$3$H$,$G$-$^\e(B
83 \e$B$;$s!#$3$l$,!";d\e(B (\e$B:n<T\e(B) \e$B$,?7$7$$%i%$%V%i%j!<$r=q$$$?<g$JM}M3$G$9!#\e(B
84
85 PGP/MIME \e$B$O\e(B MIME Object Security Services (RFC1848) \e$B$N<BAu$G$9!#$=$NI8=`\e(B
86 \e$B$O\e(B RFC2015 \e$B$G5-=R$5$l$F$$$^$9!#\e(B
87
88 @node Prerequisites
89 @chapter \e$BI,MW>r7o\e(B
90
91 PGG \e$B$r;H$&$?$a$K$O!">/$J$/$H$b0l$D$N%W%i%$%P%7!<J]8n%7%9%F%`$N<BAu$,I,MW\e(B
92 \e$B$G$9!#$3$N%^%K%e%"%k$O!"$=$N$h$&$J%W%m%0%i%`$r$9$G$K<hF@!"%$%s%9%H!<%k$7\e(B
93 \e$B$F$$$F!"4pK\E*$J;H$$J}$rCN$C$F$$$k$3$H$rA[Dj$7$F$$$^$9!#\e(B
94
95 \e$B%G%#%U%)%k%H$G$O\e(B PGG \e$B$O\e(B GnuPG \e$B$r;H$$$^$9!#$=$N$h$&$J%7%9%F%`$K47$l$F$$$J\e(B
96 \e$B$$$N$G$"$l$P!"\e(B@uref{http://www.gnupg.org/documentation/} \e$B$K$"$k\e(B GNU
97 Privacy Handbook (GPH) \e$B$KL\$rDL$9$3$H$r4+$a$^$9!#\e(B
98
99 GnuPG \e$B$r;H$&>l9g$K$O\e(B @code{gpg-agent} \e$B$NMxMQ$r?d>)$7$^$9!#$=$l$O%P!<%8%g\e(B
100 \e$B%s\e(B 2.0 \e$B0J9_$N\e(B GnuPG \e$B$H$H$b$KG[I[$5$l$F$$$^$9!#$3$l$O!"$I$s$J%W%m%H%3%k$r\e(B
101 \e$B;H$&$+$H$OL54X78$KHkL)80$r4IM}$9$k%G!<%b%s$G!"%Q%9%U%l!<%:$rF~NO$7$F%-%c%C\e(B
102 \e$B%7%e$9$k$?$a$N:G$b0BA4$J<jCJ$rDs6!$7$^$9\e(B (@pxref{Caching passphrase})\e$B!#\e(B
103 \e$B$=$l$,2TF/$7$F$$$k>l9g!"\e(BPGG \e$B$O%G%#%U%)%k%H$G\e(B @code{gpg-agent} \e$B$r;H$*$&$H\e(B
104 \e$B$7$^$9!#\e(B@xref{Invoking GPG-AGENT,,,gnupg,Using the GNU Privacy Guard}.
105
106 PGG \e$B$O\e(B Pretty Good Privacy \e$B%P!<%8%g%s\e(B 2 \e$B$^$?$O%P!<%8%g%s\e(B 5 \e$B$b%5%]!<%H$7\e(B
107 \e$B$^$9!#\e(B
108
109 @node How to use
110 @chapter \e$B;H$$J}\e(B
111
112 \e$B$3$N%i%$%V%i%j!<$N:G>e0L%$%s%?%U%'!<%9$O$H$F$bC1=c$G!"8x3+80$K$h$k0E9f$N\e(B
113 \e$BA`:n$N$_$rA[Dj$7$F$$$^$9!#\e(B
114
115 PGG \e$B$r;H$&$?$a$K$O!"%"%W%j%1!<%7%g%s%W%m%0%i%`$NKAF,$G<!$N\e(B S \e$B<0$rI>2A$7\e(B
116 \e$B$F$/$@$5$$!#\e(B
117
118 @lisp
119 (require 'pgg)
120 @end lisp
121
122 \e$B<B9T;~$K\e(B pgg.el \e$B$NB8:_$r3NG'$7$?$$$J$i!">e5-$NJ}K!$G$O$J$/0J2<$N$h$&$K!"\e(B
123 \e$BI,MW$J5!G=$N\e(B autoload \e$B$r@_Dj$9$k$3$H$b$G$-$^$9!#\e(B
124
125 @lisp
126 (autoload 'pgg-encrypt-region "pgg"
127   "Encrypt the current region." t)
128 (autoload 'pgg-encrypt-symmetric-region "pgg"
129   "Encrypt the current region with symmetric algorithm." t)
130 (autoload 'pgg-decrypt-region "pgg"
131   "Decrypt the current region." t)
132 (autoload 'pgg-sign-region "pgg"
133   "Sign the current region." t)
134 (autoload 'pgg-verify-region "pgg"
135   "Verify the current region." t)
136 (autoload 'pgg-insert-key "pgg"
137   "Insert the ASCII armored public key." t)
138 (autoload 'pgg-snarf-keys-region "pgg"
139   "Import public keys in the current region." t)
140 @end lisp
141
142 @menu
143 * User Commands::               
144 * Selecting an implementation::  
145 * Caching passphrase::          
146 * Default user identity::       
147 @end menu
148
149 @node User Commands
150 @section \e$B%f!<%6!<%3%^%s%I\e(B
151
152 \e$B$3$N;~E@$G!"$$$/$D$+$N0E9f$K4X$9$k%3%^%s%I$r;H$&$3$H$,$G$-$^$9!#$3$l$i$N\e(B
153 \e$B%3%^%s%I$N5sF0$O5/F0J}K!$K0MB8$7$^$9!#$3$l$i$N%3%^%s%I$O!"%i%$%V%i%j!<4X\e(B
154 \e$B?t$H$7$FMxMQ$5$l$k$3$H$b$"$k$+$i$G$9!#Nc$($P!"$"$J$?$,$"$k=pL><T$N8x3+80\e(B
155 \e$B$r;}$C$F$$$J$$$H\e(B @code{pgg-verify-region} \e$B$H$$$&4X?t$OB(:B$K<:GT$7$^$9$,!"\e(B
156 \e$B$3$l$,BPOCE*$K8F$S=P$5$l$?>l9g$K$O!"%5!<%P!<$+$i8x3+80$r%@%&%s%m!<%I$9$k\e(B
157 \e$B$+$I$&$+$r$"$J$?$K?R$M$^$9!#\e(B
158
159 @deffn Command pgg-encrypt-region start end recipients &optional sign passphrase
160 @var{start} \e$B$H\e(B @var{end} \e$B$N4V$NNN0h$r\e(B @var{recipients} \e$B08$KAw$k$b$N$H$7\e(B
161 \e$B$F0E9f2=$7$^$9!#BPOCE*$K8F$V$H!"<u?.<T$r?R$M$^$9!#\e(B
162
163 \e$B0E9f2=$K@.8y$9$k$H!"8=:_$NNN0h$NFbMF$r0E9f2=$7$?%G!<%?$GCV$-49$($^$9!#\e(B
164
165 \e$B%*%W%7%g%s0z?t\e(B @var{sign} \e$B$,\e(B @code{nil} \e$B$G$J$+$C$?$i!"=pL>$H0E9f2=$rF1;~\e(B
166 \e$B$K9T$J$$$^$9!#8=:_$3$N5!G=$O\e(B GnuPG \e$B$GF0:n$9$k$3$H$,3NG'$5$l$F$$$^$9$,!"\e(B
167 PGP \e$B$d\e(B PGP5 \e$B$G$OF0:n$7$J$$$+$b$7$l$^$;$s!#\e(B
168
169 \e$B%*%W%7%g%s0z?t\e(B @var{passphrase} \e$B$,\e(B @code{nil} \e$B$@$C$?$i!"%Q%9%U%l!<%:$N\e(B
170 \e$B%-%c%C%7%e$+$i$+!"$^$?$O%f!<%6!<$KF~NO$7$F$b$i$&$3$H$K$h$C$F%Q%9%U%l!<%:\e(B
171 \e$B$rF@$^$9!#\e(B
172 @end deffn
173
174 @deffn Command pgg-encrypt-symmetric-region &optional start end passphrase
175 \e$B8=:_$N\e(B @var{start} \e$B$H\e(B @var{end} \e$B$N4V$NNN0h$r!"6&DL800E9f\e(B (symmetric
176 cipher) \e$B$G0E9f2=$7$^$9!#8F$S=P$7$?8e$G%Q%9%U%l!<%:$,?R$M$i$l$^$9!#\e(B
177
178 \e$B%*%W%7%g%s0z?t\e(B @var{passphrase} \e$B$,\e(B @code{nil} \e$B$@$C$?$i!"%Q%9%U%l!<%:$N\e(B
179 \e$B%-%c%C%7%e$+$i$+!"$^$?$O%f!<%6!<$KF~NO$7$F$b$i$&$3$H$K$h$C$F%Q%9%U%l!<%:\e(B
180 \e$B$rF@$^$9!#\e(B
181
182 \e$B6&DL800E9f$K$h$k0E9f2=$O!"8=:_\e(B GnuPG \e$B$@$1$G<BAu$5$l$F$$$^$9!#\e(B
183 @end deffn
184
185 @deffn Command pgg-decrypt-region start end &optional passphrase
186 @var{start} \e$B$H\e(B @var{end} \e$B$N4V$NNN0h$r2rFI$7$^$9!#2rFI$K@.8y$9$k$H!"8=:_\e(B
187 \e$B$NNN0h$NFbMF$r2rFI$7$?%G!<%?$GCV$-49$($^$9!#\e(B
188
189 \e$B%*%W%7%g%s0z?t\e(B @var{passphrase} \e$B$,\e(B @code{nil} \e$B$@$C$?$i!"%Q%9%U%l!<%:$N\e(B
190 \e$B%-%c%C%7%e$+$i$+!"$^$?$O%f!<%6!<$KF~NO$7$F$b$i$&$3$H$K$h$C$F%Q%9%U%l!<%:\e(B
191 \e$B$rF@$^$9!#\e(B
192 @end deffn
193
194 @deffn Command pgg-sign-region start end &optional cleartext passphrase
195 @var{start} \e$B$H\e(B @var{end} \e$B$N4V$N%F%-%9%H$K=pL>$7$^$9!#;0HVL\$N%*%W%7%g%s\e(B
196 \e$B0z?t\e(B @var{cleartext} \e$B$,\e(B @code{nil} \e$B$G$O$J$$$+!"$"$k$$$OBPOCE*$K8F$P$l$?\e(B
197 \e$B>l9g!"J,N%$5$l$?=pL>$r:n$j$^$;$s!#$=$N$h$&$J>l9g$K$O!"8=:_$NNN0h$NFbMF$r\e(B
198 \e$B=pL>$7$?%G!<%?$GCV$-49$($^$9!#\e(B
199
200 \e$B%*%W%7%g%s0z?t\e(B @var{passphrase} \e$B$,\e(B @code{nil} \e$B$@$C$?$i!"%Q%9%U%l!<%:$N\e(B
201 \e$B%-%c%C%7%e$+$i$+!"$^$?$O%f!<%6!<$KF~NO$7$F$b$i$&$3$H$K$h$C$F%Q%9%U%l!<%:\e(B
202 \e$B$rF@$^$9!#\e(B
203 @end deffn
204
205 @deffn Command pgg-verify-region start end &optional signature fetch
206 @var{start} \e$B$H\e(B @var{end} \e$B$N4V$NNN0h$K$"$k=pL>$r8!>Z$7$^$9!#;0HVL\$N%*%W\e(B
207 \e$B%7%g%s0z?t\e(B @var{signature} \e$B$,\e(B @code{nil} \e$B$G$J$+$C$?$i!"$=$N0z?t$O8=:_$N\e(B
208 \e$BNN0h$NJ,N%$5$l$?=pL>$N%U%!%$%k$H$7$F<h$j07$o$l$^$9!#\e(B
209
210 \e$B;MHVL\$N%*%W%7%g%s0z?t\e(B @var{fetch} \e$B$,\e(B @code{nil} \e$B$G$O$J$$$+!"$"$k$$$OBP\e(B
211 \e$BOCE*$K8F$P$l$?>l9g!"8x3+80$r%5!<%P!<$+$i<hF@$7$^$9!#\e(B
212 @end deffn
213
214 @deffn Command pgg-insert-key
215 \e$B%f!<%6!<$N8x3+80$r<hF@$7$F!"$=$l$r\e(B ASCII \e$BAu9C$N7A<0$GA^F~$7$^$9!#\e(B
216 @end deffn
217
218 @deffn Command pgg-snarf-keys-region start end
219 @var{start} \e$B$H\e(B @var{end} \e$B$N4V$NNN0h$K$"$k8x3+80$r=8$a!"%f!<%6!<$N80\e(B
220 \e$BB+\e(B (keyring) \e$B$KDI2C$7$^$9!#\e(B
221 @end deffn
222
223 @node Selecting an implementation
224 @section \e$B$I$N<BAu$r;H$&$+\e(B
225
226 PGP \e$B$ONr;K$,D9$/!":#$G$OB?$/$N<BAu$rMxMQ$9$k$3$H$,$G$-$k$N$G!"$=$l$>$l$,\e(B
227 \e$B;}$C$F$$$k8D!9$N5!G=$,$:$$$V$s0[$J$C$F$$$k$3$H$,$"$j$^$9!#Nc$(\e(B
228 \e$B$P\e(B GnuPG \e$B$r;H$C$F$$$k$N$J$i$P!"0E9f%"%k%4%j%:%`$H$7$F\e(B 3DES \e$B$d\e(B CAST5\e$B!"\e(B
229 BLOWFISH \e$B$J$I$rA*$V$3$H$,$G$-$^$9$,!"\e(BPGP \e$B$N%P!<%8%g%s\e(B 2 \e$B$O\e(B IDEA \e$B$7$+%5%]!<\e(B
230 \e$B%H$7$F$$$^$;$s!#\e(B
231
232 \e$B$I$N<BAu$r;H$&$+$O\e(B @code{pgg-scheme} \e$BJQ?t$,@)8f$7$^$9!#\e(B@code{nil} \e$B$@$C$?\e(B
233 \e$B$i\e(B (\e$B$=$l$,%G%#%U%)%k%H\e(B)\e$B!"Be$o$j$K\e(B @code{pgg-default-scheme} \e$BJQ?t$NCM$r;H\e(B
234 \e$B$$$^$9!#\e(B
235
236 @defvar pgg-scheme
237 \e$B$I$N\e(B PGP \e$B<BAu$rMQ$$$k$+$r6/@)$7$^$9!#@_Dj$G$-$k$N$O\e(B @code{gpg}\e$B!"\e(B
238 @code{pgp} \e$B$*$h$S\e(B @code{pgp5} \e$B$N$I$l$+$G$9!#%G%#%U%)%k%H$O\e(B @code{nil} \e$B$G\e(B
239 \e$B$9!#\e(B
240 @end defvar
241
242 @defvar pgg-default-scheme
243 \e$B%G%#%U%)%k%H$N\e(B PGP \e$B<BAu$G$9!#CM$O\e(B @code{gpg}\e$B!"\e(B@code{pgp} \e$B$*$h\e(B
244 \e$B$S\e(B @code{pgp5} \e$B$N$I$l$+$G$J$1$l$P$J$j$^$;$s!#%G%#%U%)%k%H\e(B
245 \e$B$O\e(B @code{gpg} \e$B$G$9!#\e(B
246 @end defvar
247
248 @node Caching passphrase
249 @section \e$B%Q%9%U%l!<%:$r%-%c%C%7%e$9$k\e(B
250
251 PGP \e$B<BAu$H$7$F\e(B GnuPG (gpg) \e$B$r;H$&$N$G$"$l$P!"%Q%9%U%l!<%:$NF~NO$H%-%c%C\e(B
252 \e$B%7%e\e(B@footnote{@code{gpg-agent} \e$B$O<B:]$K$O%Q%9%U%l!<%:$G$O$J$/$FHkL)80$r\e(B
253 \e$B%-%c%C%7%e$7$^$9!#0lJ}%f!<%6!<$N;kE@$+$i$O!"$3$N5;=QE*$J:90[$O8+$($^$;\e(B
254 \e$B$s!#\e(B}\e$B$9$k$?$a$K\e(B @code{gpg-agent} \e$B$H$$$&%W%m%0%i%`$r;H$&$3$H$r?d>)$7$^$9!#\e(B
255
256 @defvar pgg-gpg-use-agent
257 @code{nil} \e$B$G$J$$CM$G$O!"2DG=$J>l9g$O>o$K$$$D$G$b\e(B @code{gpg-agent} \e$B$r;H\e(B
258 \e$B$*$&$H$7$^$9!#%G%#%U%#%U%)%k%H$O\e(B @code{t} \e$B$G$9!#\e(B@code{gpg-agent} \e$B$,2TF/\e(B
259 \e$B$7$F$$$J$$$+!"$^$?$O\e(B GnuPG \e$B$,8=:_$N\e(B PGP \e$B<BAu$H$7$FA*Br$5$l$F$$$J$$>l9g$O!"\e(B
260 PGG \e$B<+?H$,;}$C$F$$$k%Q%9%U%l!<%:$r%-%c%C%7%e$9$k;EAH$_$,;H$o$l$^$9\e(B (\e$B2<5-\e(B
261 \e$B;2>H\e(B)\e$B!#\e(B
262 @end defvar
263
264 PGG \e$B$G\e(B @code{gpg-agent}\e$B$r;H$&$K$O!"Bh0l$K\e(B @code{gpg-agent} \e$B$,3N<B$K2TF/\e(B
265 \e$B$7$F$$$k$h$&$K$7$F$/$@$5$$!#Nc$($P\e(B X Window System \e$B$rAv$i$;$F$$$k$N$G$"\e(B
266 \e$B$l$P!"0J2<$N9T$r$"$J$?$N\e(B @file{.xsession} \e$B%U%!%$%k$KCV$/$3$H$K$h$C$F!"$=\e(B
267 \e$B$l$r3N<B$K$9$k$3$H$,$G$-$^$9\e(B:
268
269 @smallexample
270 eval "$(gpg-agent --daemon)"
271 @end smallexample
272
273 @code{gpg-agent} \e$B$N5/F0$K4X$9$k$5$i$K>\$7$$$3$H$O!"\e(B@xref{Invoking
274 GPG-AGENT,,,gnupg,Using the GNU Privacy Guard}.
275
276 GnuPG \e$B$N%Q%9%U%l!<%:$rI,MW$H$9$k\e(B PGG \e$B$N5!G=$r<B9T$9$k$H$-$O$$$D$b!"\e(B
277 GnuPG \e$B$O\e(B @code{gpg-agent} \e$B$H$d$j<h$j$r9T$J$$!"$=$l$O$"$J$?$K%Q%9%U%l!<%:\e(B
278 \e$B$rF~NO$9$k$3$H$rMW5a$7$^$9!#$7$+$7\e(B @code{gpg-agent} \e$B$,$=$N7k2L$r!V%-%c%C\e(B
279 \e$B%7%e!W$9$k$N$G!"<!2s0J9_$N<B9T$G$O:F$S%Q%9%U%l!<%:$NF~NO$OMW$j$^$;$s!#\e(B
280 (\e$BDL>o$3$N%-%c%C%7%e$O0lDj;~4V7P2a8e$K4|8B@Z$l>C5n$5$l$^$9!#$3$l$rJQ99$9\e(B
281 \e$B$k$K$O!"\e(B@code{gpg-agent} \e$B$r5/F0$9$k$H$-$K\e(B @code{--default-cache-ttl} \e$B%*\e(B
282 \e$B%W%7%g%s$r;H$C$F$/$@$5$$!#\e(B)
283
284 X Window System \e$B$N4D6-$G$O\e(B @code{gpg-agent} \e$B$O%Q%9%U%l!<%:$NF~NO$rMW5a$9\e(B
285 \e$B$k$?$a$K%0%i%U%#%C%/$J%&%#%s%I%&$r3+$-$^$9!#$7$+$7J8;zC<Kv$G\e(B Emacs \e$B$r;H$C\e(B
286 \e$B$F$$$k>l9g$O!"\e(B@code{gpg-agent} \e$B$OC<Kv$+$i$NF~NO$r<u$1<h$k>e$GLdBj$,$"$j\e(B
287 \e$B$^$9!#$=$l$,\e(B Emacs \e$B$KAw$i$l$F$7$^$&$+$i$G$9!#$3$NLdBj$KBP=h$9$k$?$a$N;C\e(B
288 \e$BDjE*$JBP:v$N$R$H$D$O!"\e(B@code{gpg-agent} \e$B$r\e(B @code{--keep-tty} \e$B%*%W%7%g%s$H\e(B
289 \e$B$H$b$K\e(B Emacs \e$B$H$OJL$NC<Kv$GAv$i$;$k$3$H$G$9!#$3$l$O\e(B @code{gpg-agent} \e$B$K!"\e(B
290 \e$B%Q%9%U%l!<%:$NF~NO$K$=$l<+?H$NC<Kv$r;H$&$h$&$K$5$;$^$9!#\e(B
291
292 @code{gpg-agent} \e$B$r;H$o$J$$>l9g!"\e(BPGG \e$B$O\e(B Emacs \e$B$r2p$7$F%Q%9%U%l!<%:$NF~NO\e(B
293 \e$B$rMW5a$7$^$9!#$3$l$K$O%Q%9%U%l!<%:$r%-%c%C%7%e$9$k;EAH$_$,$"$j!"$=$l$OJQ\e(B
294 \e$B?t\e(B @code{pgg-cache-passphrase} \e$B$G@)8f$5$l$^$9\e(B (\e$B2<5-;2>H\e(B)\e$B!#\e(B
295
296 @code{gpg-agent} \e$B$G$O$J$/\e(B PGG \e$B$G%Q%9%U%l!<%:$r07$&>l9g$K$O0BA4>e$N%j%9%/\e(B
297 \e$B$,$"$j$^$9!#\e(BEmacs \e$B$NMW5a$K=>$C$F%Q%9%U%l!<%:$rF~NO$9$k$H!"$=$l$O0l;~E*\e(B
298 \e$B$K\e(B Emacs \e$B$,<B9T$7$F$$$k%a%b%j!<$K\e(B cleartext \e$BJ8;zNs$H$7$F3JG<$5$l$^$9!#$b\e(B
299 \e$B$7$=$N%a%b%j!<$,%G%#%9%/$H$N4V$G\e(B swap \e$B$5$l$k$H!"M}O@>e\e(B root \e$B%f!<%6!<$O%Q\e(B
300 \e$B%9%U%l!<%:$r\e(B swap \e$B%U%!%$%k$+$iCj=P$9$k$3$H$,$G$-$^$9!#$=$N>e!"$=$N%7%9%F\e(B
301 \e$B%`$,GQ4~$5$l$?$jEpFq$K2q$C$?8e$b!"$=$N\e(B cleartext \e$B$N%Q%9%U%l!<%:$,4^$^$l\e(B
302 \e$B$F$$$k\e(B swap \e$B%U%!%$%k$O%G%#%9%/$K;D$C$F$$$k$+$b$7$l$J$$$N$G$9!#\e(B
303 @code{gpg-agent} \e$B$O%a%b%j!<$r\e(B lock \e$B$9$k$h$&$J:v$r$b$C$F!"$3$NLdBj$r2sHr\e(B
304 \e$B$7$F$$$^$9!#$=$l$O\e(B Emacs \e$B$K$O<BAu$5$l$F$$$^$;$s!#\e(B
305
306 @defvar pgg-cache-passphrase
307 @code{nil} \e$B$G$J$1$l$P!"%Q%9%U%l!<%:$rJ];}$7$^$9!#=i4|CM$O\e(B @code{t} \e$B$G$9!#\e(B
308 \e$B$7$+$7!"$"$J$?$,%;%-%e%j%F%#$K$D$$$F5$3]$+$j$J$i!"$3$NJQ?t\e(B
309 \e$B$r\e(B @code{nil} \e$B$K@_Dj$9$k$3$H$K$h$C$F!"%Q%9%U%l!<%:$N%-%c%C%7%e$r$d$a$5$;\e(B
310 \e$B$k$3$H$,$G$-$^$9!#\e(B
311 @end defvar
312
313 @defvar pgg-passphrase-cache-expiry
314 \e$B%Q%9%U%l!<%:$rJ];}$7$F$*$/;~4V$rIC$G;XDj$7$^$9!#\e(B
315 @end defvar
316
317 \e$B%Q%9%U%l!<%:$,Hs\e(B-ASCII \e$BJ8;z$r4^$s$G$$$k>l9g$O!"$=$l$r%(%s%3!<%I$9$k$?$a\e(B
318 \e$B$N\e(B coding system \e$B$r;XDj$9$kI,MW$,$"$j$^$9!#\e(BGnuPG \e$B$O%Q%9%U%l!<%:$rJ8;zNs\e(B
319 \e$B$H$7$F$G$O$J$/!"%P%$%HNs$H$7$F07$&$+$i$G$9!#\e(B
320
321 @defvar pgg-passphrase-coding-system
322 \e$B%Q%9%U%l!<%:$r%(%s%3!<%I$9$k$?$a$N\e(B coding system \e$B$G$9!#\e(B
323 @end defvar
324
325 @node Default user identity
326 @section \e$B%G%#%U%)%k%H$N%f!<%6!<\e(B ID
327
328 \e$BDL>o\e(B PGP \e$B$N<BAu$O!"0E9f2=$*$h$SI|9f2=$K;H$&E,@Z$J80$rA*$V$3$H$,$G$-$^$9\e(B
329 \e$B$,!"$"$J$?$,0l$D0J>e$N80$r;}$C$F$$$k>l9g!"MQ$$$k80$N\e(B id \e$B$r;XDj$9$kI,MW$,\e(B
330 \e$B$"$j$^$9!#\e(B
331
332 @defvar pgg-default-user-id
333 \e$B%G%#%U%)%k%H$N%f!<%6!<\e(B ID \e$B$G$9!#;XDj$7$J$$>l9g\e(B
334 \e$B$O\e(B @samp{(user-login-name)} \e$B$NLa$jCM$,%G%#%U%)%k%H$K$J$j$^$9!#$3$NJQ?t$O\e(B
335 \e$B%+%9%?%^%$%:2DG=$G$9!#\e(B
336 @end defvar
337
338 @defvar pgg-gpg-user-id
339 GnuPG \e$B$G;H$&%G%#%U%)%k%H$N%f!<%6!<\e(B ID \e$B$G$9!#%G%#%U%)%k%H$O\e(B @samp{nil} \e$B$G\e(B
340 \e$B$9!#\e(B@code{nil} \e$B$G$O$J$$CM$K$9$k$H!"\e(B@samp{pgg-default-user-id} \e$B$h$jM%@h$7\e(B
341 \e$B$F;H$o$l$^$9!#%+%9%?%^%$%:2DG=$G$9!#\e(B
342 @end defvar
343
344 @defvar pgg-pgp-user-id
345 PGP 2.x/6.x \e$B$G;H$&%G%#%U%)%k%H$N%f!<%6!<\e(B ID \e$B$G$9!#%G%#%U%)%k%H\e(B
346 \e$B$O\e(B @samp{nil} \e$B$G$9!#\e(B@code{nil} \e$B$G$O$J$$CM$K$9$k$H!"\e(B
347 @samp{pgg-default-user-id} \e$B$h$jM%@h$7$F;H$o$l$^$9!#%+%9%?%^%$%:2DG=$G$9!#\e(B
348 @end defvar
349
350 @defvar pgg-pgp5-user-id
351 PGP 5.x \e$B$G;H$&%G%#%U%)%k%H$N%f!<%6\e(B ID \e$B$G$9!#%G%#%U%)%k%H$O\e(B @samp{nil} \e$B$G\e(B
352 \e$B$9!#\e(B@code{nil} \e$B$G$O$J$$CM$K$9$k$H!"\e(B@samp{pgg-default-user-id} \e$B$h$jM%@h$7\e(B
353 \e$B$F;H$o$l$^$9!#%+%9%?%^%$%:2DG=$G$9!#\e(B
354 @end defvar
355
356 @node Architecture
357 @chapter \e$B9=@.\e(B
358
359 PGG \e$B$O!V\e(BPGP \e$B<BAu$N%9%-!<%`\e(B (\e$BOHAH\e(B)\e$B!W$H$$$&9M$($rF3F~$7$^$9!#0J8e!"!V%9%-!<\e(B
360 \e$B%`\e(B (scheme)\e$B!W$HI=5-$7$^$9!#$3$NMQ8l$O\e(B luna object system \e$B$G$N\e(B singleton
361 object \e$B$KM3Mh$7$^$9!#\e(B
362
363 PGG \e$B$O\e(B PGP \e$B$N5!G=$K%"%/%;%9$9$k$HF1;~$K$=$l$r3+H/$9$k$?$a$K@_7W$5$l$?$N\e(B
364 \e$B$G!"$=$N9=@.$O!"Aj8_1?MQ@-$@$1$G$J$/3HD%@-$b9MN8$9$kI,MW$,$"$j$^$7$?!#$3\e(B
365 \e$B$N>O$G$O!"\e(BPGG \e$B$N%P%C%/%(%s%I$r$I$N$h$&$K5-=R$9$k$+$rC5$7$J$,$i!"\e(BPGG \e$B$,$I\e(B
366 \e$B$N$h$&$K$D$/$i$l$F$$$k$+$rC58!$7$F$_$^$7$g$&!#\e(B
367
368 @menu
369 * Initializing::                
370 * Back end methods::             
371 * Getting output::              
372 @end menu
373
374 @node Initializing
375 @section \e$B=i4|2=\e(B
376
377 \e$B%9%-!<%`$O!";H$&A0$K=i4|2=$5$l$J$1$l$P$J$j$^$;$s!#$?$@0l$D$N%9%-!<%`$r;H\e(B
378 \e$B$&$3$H$rJ]>Z$9$k$N$,NI$$$G$7$g$&!#\e(B
379
380 \e$B0J2<$N%3!<%I$O\e(B @file{pgg-gpg.el} \e$B$+$i$NH4$-=q$-$G$9!#$"\e(B
381 \e$B$k\e(B @code{pgg-gpg} \e$B$N%9%-!<%`$,$$$C$?$s=i4|2=$5$l$k$H!"$=$l\e(B
382 \e$B$O\e(B @code{pgg-scheme-gpg-instance} \e$BJQ?t$KJ]B8$5$l!"0J8e!":FMxMQ$5$l$^$9!#\e(B
383
384 @lisp
385 (defvar pgg-scheme-gpg-instance nil)
386
387 (defun pgg-make-scheme-gpg ()
388   (or pgg-scheme-gpg-instance
389       (setq pgg-scheme-gpg-instance
390             (luna-make-entity 'pgg-scheme-gpg))))
391 @end lisp
392
393 \e$B4X?t$NL>A0$O\e(B @code{pgg-make-scheme-} \e$B$N8e$m$K%P%C%/%(%s%IL>$rIU2C$7$?$b\e(B
394 \e$B$N$K$7$J$1$l$P$J$j$^$;$s!#\e(B
395
396 @node Back end methods
397 @section \e$B%P%C%/%(%s%I$N%a%=%C%I\e(B
398
399 \e$B3F%P%C%/%(%s%I$K$O!"$3$l$i$N%a%=%C%I$,B8:_$7$J$1$l$P$J$j$^$;$s!#%a%=%C%I\e(B
400 \e$B$N<B9T7k2L$N%9%F!<%?%9$rCN$i$;$J$1$l$P$J$i$J$$$N$G!"%a%=%C%I$N=PNO$OFCJL\e(B
401 \e$B$J%P%C%U%!!<$KJ]B8$5$l$^$9\e(B (@pxref{Getting output})\e$B!#\e(B
402
403 @deffn Method pgg-scheme-lookup-key scheme string &optional type
404 @var{string} \e$B$K4XO"IU$1$i$l$?80$rJV$7$^$9!#;0HVL\$N%*%W%7%g%s0z\e(B
405 \e$B?t\e(B @var{type} \e$B$,Hs\e(B-@code{nil} \e$B$@$C$?$i!"HkL)$N80B+$+$i8!:w$7$^$9!#\e(B
406 @end deffn
407
408 @deffn Method pgg-scheme-encrypt-region scheme start end recipients &optional sign passphrase
409 @var{start} \e$B$H\e(B @var{end} \e$B$N4V$NNN0h$r\e(B @var{recipients} \e$B08$KAw$k$b$N$H$7\e(B
410 \e$B$F0E9f2=$7$^$9!#%*%W%7%g%s0z?t\e(B @var{sign} \e$B$,\e(B @code{nil} \e$B$G$J$+$C$?$i!"=p\e(B
411 \e$BL>$H0E9f2=$rF1;~$K9T$J$$$^$9!#0E9f2=$K@.8y$9$k$H\e(B @code{t} \e$B$r!"<:GT$9$k\e(B
412 \e$B$H\e(B @code{nil} \e$B$rJV$7$^$9!#\e(B
413 @end deffn
414
415 @deffn Method pgg-scheme-encrypt-symmetric-region scheme start end &optional passphrase
416 \e$B8=:_$N\e(B @var{start} \e$B$H\e(B @var{end} \e$B$N4V$NNN0h$r!"6&DL800E9f\e(B (symmetric
417 cipher) \e$B$H%Q%9%U%l!<%:$G0E9f2=$7$^$9!#0E9f2=$K@.8y$9$k$H\e(B @code{t} \e$B$rJV$7!"\e(B
418 \e$B$=$&$G$J$1$l$P\e(B @code{nil} \e$B$rJV$7$^$9!#$3$N5!G=$O8=:_\e(B GnuPG \e$B$@$1$G<BAu$5\e(B
419 \e$B$l$F$$$^$9!#\e(B
420 @end deffn
421
422 @deffn Method pgg-scheme-decrypt-region scheme start end &optional passphrase
423 @var{start} \e$B$H\e(B @var{end} \e$B$N4V$NNN0h$r2rFI$7$^$9!#2rFI$K@.8y$9$k\e(B
424 \e$B$H\e(B @code{t} \e$B$r!"<:GT$9$k$H\e(B @code{nil} \e$B$rJV$7$^$9!#\e(B
425 @end deffn
426
427 @deffn Method pgg-scheme-sign-region scheme start end &optional cleartext passphrase
428 @var{start} \e$B$H\e(B @var{end} \e$B$N4V$N%F%-%9%H$K=pL>$7$^$9!#;0HVL\$N%*%W%7%g%s\e(B
429 \e$B0z?t\e(B @var{cleartext} \e$B$,\e(B @code{nil} \e$B$G$O$J$$>l9g!"J,N%$5$l$?=pL>$r:n$j$^\e(B
430 \e$B$;$s!#=pL>$K@.8y$9$k$H\e(B @code{t} \e$B$r!"<:GT$9$k$H\e(B @code{nil} \e$B$rJV$7$^$9!#\e(B
431 @end deffn
432
433 @deffn Method pgg-scheme-verify-region scheme start end &optional signature
434 @var{start} \e$B$H\e(B @var{end} \e$B$N4V$NNN0h$K$"$k=pL>$r8!>Z$7$^$9!#;0HVL\$N%*%W\e(B
435 \e$B%7%g%s0z?t\e(B @var{signature} \e$B$,\e(B @code{nil} \e$B$G$J$+$C$?$i!"$=$N0z?t$O8=:_$N\e(B
436 \e$BNN0h$NJ,N%$5$l$?=pL>$N%U%!%$%k$H$7$F<h$j07$o$l$^$9!#=pL>$,@5$7$/8!>Z$5$l\e(B
437 \e$B$?>l9g$O\e(B @code{t} \e$B$r!"<:GT$9$k$H\e(B @code{nil} \e$B$rJV$7$^$9!#\e(B
438 @end deffn
439
440 @deffn Method pgg-scheme-insert-key scheme
441 \e$B%f!<%6!<$N8x3+80$r<hF@$7$F!"$=$l$r\e(B ASCII \e$BAu9C$N7A<0$GA^F~$7$^$9!#@.8y$9\e(B
442 \e$B$k$H\e(B @code{t} \e$B$r!"<:GT$9$k$H\e(B @code{nil} \e$B$rJV$7$^$9!#\e(B
443 @end deffn
444
445 @deffn Method pgg-scheme-snarf-keys-region scheme start end
446 @var{start} \e$B$H\e(B @var{end} \e$B$N4V$NNN0h$K$"$k8x3+80$r=8$a!"%f!<%6!<$N80\e(B
447 \e$BB+\e(B (keyring) \e$B$KDI2C$7$^$9!#@.8y$9$k$H\e(B @code{t} \e$B$r!"<:GT$9$k\e(B
448 \e$B$H\e(B @code{nil} \e$B$rJV$7$^$9!#\e(B
449 @end deffn
450
451 @node Getting output
452 @section \e$B=PNO$rF@$k\e(B
453
454 \e$B%P%C%/%(%s%I%a%=%C%I\e(B (@pxref{Back end methods}) \e$B$N=PNO$OFCJL$J%P%C%U%!!<\e(B
455 \e$B$K3JG<$5$l$^$9!#$7$?$,$C$F!"$3$l$i$N%a%=%C%I$O<B9T7k2L$rEA$($kI,MW$,$"$j\e(B
456 \e$B$^$9!#\e(B
457
458 @defvar pgg-errors-buffer
459 PGP \e$B%3%^%s%I<B9T;~$NI8=`%(%i!<=PNO$O!"$3$N%P%C%U%!!<$K3JG<$5$l$^$9!#\e(B
460 @end defvar
461
462 @defvar pgg-output-buffer
463 PGP \e$B%3%^%s%I<B9T;~$NI8=`=PNO$O!"$3$N%P%C%U%!!<$K3JG<$5$l$^$9!#\e(B
464 @end defvar
465
466 @defvar pgg-status-buffer
467 PGP \e$B%3%^%s%I<B9T;~$N$=$NB>$N7k2L$N>pJs$O!"$3$N%P%C%U%!!<$K3JG<$5$l$^$9!#\e(B
468 @end defvar
469
470 @node Parsing OpenPGP packets
471 @chapter OpenPGP \e$B%Q%1%C%H$N2r@O\e(B
472
473 OpenPGP \e$B$N%a%C%;!<%8$N%U%)!<%^%C%H$O!"Aj8_1?MQ$G$-$k%"%W%j%1!<%7%g%s3+H/\e(B
474 \e$B$KI,MW$J$9$Y$F$N>pJs$r=PNO$9$k$h$&$K0];}$5$l$F$$$^$9!#$=$NI8=`\e(B
475 \e$B$O\e(B RFC2440 \e$B$K5-:\$5$l$F$$$^$9!#\e(B
476
477 PGG \e$B$O\e(B OpenPGP \e$B%Q%1%C%H$KBP1~$7$?FH<+$N%a%C%;!<%82r@O$r9T$J$$$^$9!#\e(B
478
479 @defun pgg-parse-armor string
480 @var{string} \e$BFb$N%Q%1%C%H$NJB$S$r\e(B @code{list} \e$B$N7A<0$GJV$7$^$9!#\e(B
481 @end defun
482
483 @defun pgg-parse-armor-region start end
484 @var{start} \e$B$H\e(B @var{end} \e$B$N4V$NNN0h$K$"$k%Q%1%C%H$NJB$S$r\e(B @code{list} \e$B$N\e(B
485 \e$B7A<0$GJV$7$^$9!#\e(B
486 @end defun
487
488 @defvar pgg-ignore-packet-checksum
489 @code{nil} \e$B$G$J$+$C$?$i!"%Q%1%C%H$N%A%'%C%/%5%`$r8!>Z$7$^$;$s!#\e(B
490 @end defvar
491
492 @node GNU Free Documentation License
493 @chapter GNU \e$B%U%j!<J8=qMxMQ5vBz7@Ls=q\e(B
494
495 \e$BLuCm\e(B: @uref{http://www.opensource.jp/fdl/fdl.ja.html.euc-jp,
496 \e$BHs8x<0$JF|K\8lLu\e(B} \e$B$,$"$j$^$9!#\e(B
497
498 @include doclicense.texi
499
500 @node Function Index
501 @unnumbered Function Index
502 @printindex fn
503
504 @node Variable Index
505 @unnumbered Variable Index
506 @printindex vr
507
508 @summarycontents
509 @contents
510 @bye
511
512 @c Local Variables:
513 @c coding: iso-2022-7bit
514 @c fill-column: 72
515 @c mode: texinfo
516 @c use-kuten-for-period: t
517 @c use-touten-for-comma: t
518 @c End: