1 \input texinfo @c -*-texinfo-*-
4 @settitle PGG @value{VERSION}
6 @firstparagraphindent insert
12 \e$B$3$N%U%!%$%k$OMM!9$J
\e(B PGP
\e$B$N<BAu$X$N
\e(B Emacs
\e$B%$%s%?!<%U%'!<%9$G$"$k
\e(B PGG
13 @value{VERSION}
\e$B$r@bL@$7$^$9!#
\e(B
15 Copyright @copyright{} 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
16 Free Software Foundation, Inc.
19 Permission is granted to copy, distribute and/or modify this document
20 under the terms of the GNU Free Documentation License, Version 1.3 or
21 any later version published by the Free Software Foundation; with no
22 Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
23 and with the Back-Cover Texts as in (a) below. A copy of the license
24 is included in the section entitled ``GNU Free Documentation License''.
26 \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
27 \e$BBh
\e(B 1.3
\e$BHG$^$?$O$=$l0J9_$NHG$,Dj$a$k>r7o$N2<$GJ#@=!"G[I[!"$"$k$$$OJQ99$9
\e(B
28 \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
29 \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
30 \e$B!V
\e(BGNU
\e$B%U%j!<J8=qMxMQ5vBz7@Ls=q!W$H$$$&>O$K4^$^$l$F$$$^$9!#
\e(B
32 (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
33 modify this GNU manual. Buying copies from the FSF supports it in
34 developing GNU and promoting software freedom.''
36 (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
37 \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
38 \e$B$NB%?J$r;Y1g$7$^$9!#!W
\e(B
44 * PGG-ja: (pgg-ja). Emacs interface to various PGP implementations (Ja).
53 @vskip 0pt plus 1filll
62 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
63 \e$B$G$9!#$^$?!"
\e(BPGG
\e$B$O
\e(B MIME
\e$B%a%C%;!<%8$N0E9f2=$H2rFI!"$=$l$K=pL>$H8!>Z$N$?$a
\e(B
64 \e$B$NC1=c$J%f!<%6!<%$%s%?%U%'!<%9$bDs6!$7$^$9!#
\e(B
71 * Overview:: PGG
\e$B$H$O
\e(B
72 * Prerequisites::
\e$B$"$i$+$8$a$7$F$*$/$Y$-J#;($J;vJA
\e(B
73 * How to use::
\e$B$H$C$H$H;H$$;O$a$h$&
\e(B
75 * Parsing OpenPGP packets::
76 * GNU Free Documentation License::
\e$B$3$NJ8=q$NMxMQ5vBz7@Ls=q
\e(B
84 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
85 \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
86 \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
87 \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
89 PGP/MIME
\e$B$O
\e(B MIME Object Security Services (RFC1848)
\e$B$N<BAu$G$9!#$=$NI8=`
\e(B
90 \e$B$O
\e(B RFC2015
\e$B$G5-=R$5$l$F$$$^$9!#
\e(B
93 @chapter
\e$BI,MW>r7o
\e(B
95 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
96 \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
97 \e$B$F$$$F!"4pK\E*$J;H$$J}$rCN$C$F$$$k$3$H$rA[Dj$7$F$$$^$9!#
\e(B
99 \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
100 \e$B$$$N$G$"$l$P!"
\e(B@uref{http://www.gnupg.org/documentation/}
\e$B$K$"$k
\e(B GNU
101 Privacy Handbook (GPH)
\e$B$KL\$rDL$9$3$H$r4+$a$^$9!#
\e(B
103 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
104 \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
105 \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
106 \e$B%7%e$9$k$?$a$N:G$b0BA4$J<jCJ$rDs6!$7$^$9
\e(B (@pxref{Caching passphrase})
\e$B!#
\e(B
107 \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
108 \e$B$7$^$9!#
\e(B@xref{Invoking GPG-AGENT,,,gnupg,Using the GNU Privacy Guard}.
110 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
114 @chapter
\e$B;H$$J}
\e(B
116 \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
117 \e$BA`:n$N$_$rA[Dj$7$F$$$^$9!#
\e(B
119 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
126 \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
127 \e$BI,MW$J5!G=$N
\e(B autoload
\e$B$r@_Dj$9$k$3$H$b$G$-$^$9!#
\e(B
130 (autoload 'pgg-encrypt-region "pgg"
131 "Encrypt the current region." t)
132 (autoload 'pgg-encrypt-symmetric-region "pgg"
133 "Encrypt the current region with symmetric algorithm." t)
134 (autoload 'pgg-decrypt-region "pgg"
135 "Decrypt the current region." t)
136 (autoload 'pgg-sign-region "pgg"
137 "Sign the current region." t)
138 (autoload 'pgg-verify-region "pgg"
139 "Verify the current region." t)
140 (autoload 'pgg-insert-key "pgg"
141 "Insert the ASCII armored public key." t)
142 (autoload 'pgg-snarf-keys-region "pgg"
143 "Import public keys in the current region." t)
148 * Selecting an implementation::
149 * Caching passphrase::
150 * Default user identity::
154 @section
\e$B%f!<%6!<%3%^%s%I
\e(B
156 \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
157 \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
158 \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
159 \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
160 \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
161 \e$B$+$I$&$+$r$"$J$?$K?R$M$^$9!#
\e(B
163 @deffn Command pgg-encrypt-region start end recipients &optional sign passphrase
164 @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
165 \e$B$F0E9f2=$7$^$9!#BPOCE*$K8F$V$H!"<u?.<T$r?R$M$^$9!#
\e(B
167 \e$B0E9f2=$K@.8y$9$k$H!"8=:_$NNN0h$NFbMF$r0E9f2=$7$?%G!<%?$GCV$-49$($^$9!#
\e(B
169 \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
170 \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
171 PGP
\e$B$d
\e(B PGP5
\e$B$G$OF0:n$7$J$$$+$b$7$l$^$;$s!#
\e(B
173 \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
174 \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
178 @deffn Command pgg-encrypt-symmetric-region &optional start end passphrase
179 \e$B8=:_$N
\e(B @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$r!"6&DL800E9f
\e(B (symmetric
180 cipher)
\e$B$G0E9f2=$7$^$9!#8F$S=P$7$?8e$G%Q%9%U%l!<%:$,?R$M$i$l$^$9!#
\e(B
182 \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
183 \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
186 \e$B6&DL800E9f$K$h$k0E9f2=$O!"8=:_
\e(B GnuPG
\e$B$@$1$G<BAu$5$l$F$$$^$9!#
\e(B
189 @deffn Command pgg-decrypt-region start end &optional passphrase
190 @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
191 \e$B$NNN0h$NFbMF$r2rFI$7$?%G!<%?$GCV$-49$($^$9!#
\e(B
193 \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
194 \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
198 @deffn Command pgg-sign-region start end &optional cleartext passphrase
199 @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
200 \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
201 \e$B>l9g!"J,N%$5$l$?=pL>$r:n$j$^$;$s!#$=$N$h$&$J>l9g$K$O!"8=:_$NNN0h$NFbMF$r
\e(B
202 \e$B=pL>$7$?%G!<%?$GCV$-49$($^$9!#
\e(B
204 \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
205 \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
209 @deffn Command pgg-verify-region start end &optional signature fetch
210 @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
211 \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
212 \e$BNN0h$NJ,N%$5$l$?=pL>$N%U%!%$%k$H$7$F<h$j07$o$l$^$9!#
\e(B
214 \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
215 \e$BOCE*$K8F$P$l$?>l9g!"8x3+80$r%5!<%P!<$+$i<hF@$7$^$9!#
\e(B
218 @deffn Command pgg-insert-key
219 \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
222 @deffn Command pgg-snarf-keys-region start end
223 @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$K$"$k8x3+80$r=8$a!"%f!<%6!<$N80
\e(B
224 \e$BB+
\e(B (keyring)
\e$B$KDI2C$7$^$9!#
\e(B
227 @node Selecting an implementation
228 @section
\e$B$I$N<BAu$r;H$&$+
\e(B
230 PGP
\e$B$ONr;K$,D9$/!":#$G$OB?$/$N<BAu$rMxMQ$9$k$3$H$,$G$-$k$N$G!"$=$l$>$l$,
\e(B
231 \e$B;}$C$F$$$k8D!9$N5!G=$,$:$$$V$s0[$J$C$F$$$k$3$H$,$"$j$^$9!#Nc$(
\e(B
232 \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
233 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
234 \e$B%H$7$F$$$^$;$s!#
\e(B
236 \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
237 \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
241 \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
242 @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
246 @defvar pgg-default-scheme
247 \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
248 \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
249 \e$B$O
\e(B @code{gpg}
\e$B$G$9!#
\e(B
252 @node Caching passphrase
253 @section
\e$B%Q%9%U%l!<%:$r%-%c%C%7%e$9$k
\e(B
255 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
256 \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
257 \e$B%-%c%C%7%e$7$^$9!#0lJ}%f!<%6!<$N;kE@$+$i$O!"$3$N5;=QE*$J:90[$O8+$($^$;
\e(B
258 \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
260 @defvar pgg-gpg-use-agent
261 @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
262 \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
263 \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
264 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
265 \e$B;2>H
\e(B)
\e$B!#
\e(B
268 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
269 \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
270 \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
271 \e$B$l$r3N<B$K$9$k$3$H$,$G$-$^$9
\e(B:
274 eval "$(gpg-agent --daemon)"
277 @code{gpg-agent}
\e$B$N5/F0$K4X$9$k$5$i$K>\$7$$$3$H$O!"
\e(B@xref{Invoking
278 GPG-AGENT,,,gnupg,Using the GNU Privacy Guard}.
280 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
281 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
282 \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
283 \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
284 (
\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
285 \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
286 \e$B%W%7%g%s$r;H$C$F$/$@$5$$!#
\e(B)
288 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
289 \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
290 \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
291 \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
292 \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
293 \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
294 \e$B%Q%9%U%l!<%:$NF~NO$K$=$l<+?H$NC<Kv$r;H$&$h$&$K$5$;$^$9!#
\e(B
296 @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
297 \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
298 \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
300 @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
301 \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
302 \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
303 \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
304 \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
305 \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
306 \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
307 @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
308 \e$B$7$F$$$^$9!#$=$l$O
\e(B Emacs
\e$B$K$O<BAu$5$l$F$$$^$;$s!#
\e(B
310 @defvar pgg-cache-passphrase
311 @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
312 \e$B$7$+$7!"$"$J$?$,%;%-%e%j%F%#$K$D$$$F5$3]$+$j$J$i!"$3$NJQ?t
\e(B
313 \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
314 \e$B$k$3$H$,$G$-$^$9!#
\e(B
317 @defvar pgg-passphrase-cache-expiry
318 \e$B%Q%9%U%l!<%:$rJ];}$7$F$*$/;~4V$rIC$G;XDj$7$^$9!#
\e(B
321 \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
322 \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
323 \e$B$H$7$F$G$O$J$/!"%P%$%HNs$H$7$F07$&$+$i$G$9!#
\e(B
325 @defvar pgg-passphrase-coding-system
326 \e$B%Q%9%U%l!<%:$r%(%s%3!<%I$9$k$?$a$N
\e(B coding system
\e$B$G$9!#
\e(B
329 @node Default user identity
330 @section
\e$B%G%#%U%)%k%H$N%f!<%6!<
\e(B ID
332 \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
333 \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
336 @defvar pgg-default-user-id
337 \e$B%G%#%U%)%k%H$N%f!<%6!<
\e(B ID
\e$B$G$9!#;XDj$7$J$$>l9g
\e(B
338 \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
339 \e$B%+%9%?%^%$%:2DG=$G$9!#
\e(B
342 @defvar pgg-gpg-user-id
343 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
344 \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
345 \e$B$F;H$o$l$^$9!#%+%9%?%^%$%:2DG=$G$9!#
\e(B
348 @defvar pgg-pgp-user-id
349 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
350 \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
351 @samp{pgg-default-user-id}
\e$B$h$jM%@h$7$F;H$o$l$^$9!#%+%9%?%^%$%:2DG=$G$9!#
\e(B
354 @defvar pgg-pgp5-user-id
355 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
356 \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
357 \e$B$F;H$o$l$^$9!#%+%9%?%^%$%:2DG=$G$9!#
\e(B
361 @chapter
\e$B9=@.
\e(B
363 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
364 \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
365 object
\e$B$KM3Mh$7$^$9!#
\e(B
367 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
368 \e$B$G!"$=$N9=@.$O!"Aj8_1?MQ@-$@$1$G$J$/3HD%@-$b9MN8$9$kI,MW$,$"$j$^$7$?!#$3
\e(B
369 \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
370 \e$B$N$h$&$K$D$/$i$l$F$$$k$+$rC58!$7$F$_$^$7$g$&!#
\e(B
379 @section
\e$B=i4|2=
\e(B
381 \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
382 \e$B$&$3$H$rJ]>Z$9$k$N$,NI$$$G$7$g$&!#
\e(B
384 \e$B0J2<$N%3!<%I$O
\e(B @file{pgg-gpg.el}
\e$B$+$i$NH4$-=q$-$G$9!#$"
\e(B
385 \e$B$k
\e(B @code{pgg-gpg}
\e$B$N%9%-!<%`$,$$$C$?$s=i4|2=$5$l$k$H!"$=$l
\e(B
386 \e$B$O
\e(B @code{pgg-scheme-gpg-instance}
\e$BJQ?t$KJ]B8$5$l!"0J8e!":FMxMQ$5$l$^$9!#
\e(B
389 (defvar pgg-scheme-gpg-instance nil)
391 (defun pgg-make-scheme-gpg ()
392 (or pgg-scheme-gpg-instance
393 (setq pgg-scheme-gpg-instance
394 (luna-make-entity 'pgg-scheme-gpg))))
397 \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
398 \e$B$N$K$7$J$1$l$P$J$j$^$;$s!#
\e(B
400 @node Back end methods
401 @section
\e$B%P%C%/%(%s%I$N%a%=%C%I
\e(B
403 \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
404 \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
405 \e$B$J%P%C%U%!!<$KJ]B8$5$l$^$9
\e(B (@pxref{Getting output})
\e$B!#
\e(B
407 @deffn Method pgg-scheme-lookup-key scheme string &optional type
408 @var{string}
\e$B$K4XO"IU$1$i$l$?80$rJV$7$^$9!#;0HVL\$N%*%W%7%g%s0z
\e(B
409 \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
412 @deffn Method pgg-scheme-encrypt-region scheme start end recipients &optional sign passphrase
413 @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
414 \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
415 \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
416 \e$B$H
\e(B @code{nil}
\e$B$rJV$7$^$9!#
\e(B
419 @deffn Method pgg-scheme-encrypt-symmetric-region scheme start end &optional passphrase
420 \e$B8=:_$N
\e(B @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$r!"6&DL800E9f
\e(B (symmetric
421 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
422 \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
426 @deffn Method pgg-scheme-decrypt-region scheme start end &optional passphrase
427 @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$r2rFI$7$^$9!#2rFI$K@.8y$9$k
\e(B
428 \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
431 @deffn Method pgg-scheme-sign-region scheme start end &optional cleartext passphrase
432 @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
433 \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
434 \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
437 @deffn Method pgg-scheme-verify-region scheme start end &optional signature
438 @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
439 \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
440 \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
441 \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
444 @deffn Method pgg-scheme-insert-key scheme
445 \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
446 \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
449 @deffn Method pgg-scheme-snarf-keys-region scheme start end
450 @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$K$"$k8x3+80$r=8$a!"%f!<%6!<$N80
\e(B
451 \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
452 \e$B$H
\e(B @code{nil}
\e$B$rJV$7$^$9!#
\e(B
456 @section
\e$B=PNO$rF@$k
\e(B
458 \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
459 \e$B$K3JG<$5$l$^$9!#$7$?$,$C$F!"$3$l$i$N%a%=%C%I$O<B9T7k2L$rEA$($kI,MW$,$"$j
\e(B
462 @defvar pgg-errors-buffer
463 PGP
\e$B%3%^%s%I<B9T;~$NI8=`%(%i!<=PNO$O!"$3$N%P%C%U%!!<$K3JG<$5$l$^$9!#
\e(B
466 @defvar pgg-output-buffer
467 PGP
\e$B%3%^%s%I<B9T;~$NI8=`=PNO$O!"$3$N%P%C%U%!!<$K3JG<$5$l$^$9!#
\e(B
470 @defvar pgg-status-buffer
471 PGP
\e$B%3%^%s%I<B9T;~$N$=$NB>$N7k2L$N>pJs$O!"$3$N%P%C%U%!!<$K3JG<$5$l$^$9!#
\e(B
474 @node Parsing OpenPGP packets
475 @chapter OpenPGP
\e$B%Q%1%C%H$N2r@O
\e(B
477 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
478 \e$B$KI,MW$J$9$Y$F$N>pJs$r=PNO$9$k$h$&$K0];}$5$l$F$$$^$9!#$=$NI8=`
\e(B
479 \e$B$O
\e(B RFC2440
\e$B$K5-:\$5$l$F$$$^$9!#
\e(B
481 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
483 @defun pgg-parse-armor string
484 @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
487 @defun pgg-parse-armor-region start end
488 @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
489 \e$B7A<0$GJV$7$^$9!#
\e(B
492 @defvar pgg-ignore-packet-checksum
493 @code{nil}
\e$B$G$J$+$C$?$i!"%Q%1%C%H$N%A%'%C%/%5%`$r8!>Z$7$^$;$s!#
\e(B
496 @node GNU Free Documentation License
497 @chapter GNU
\e$B%U%j!<J8=qMxMQ5vBz7@Ls=q
\e(B
499 \e$BLuCm
\e(B: @uref{http://www.opensource.jp/fdl/fdl.ja.html.euc-jp,
500 \e$BHs8x<0$JF|K\8lLu
\e(B}
\e$B$,$"$j$^$9!#
\e(B
502 @include doclicense.texi
505 @unnumbered Function Index
509 @unnumbered Variable Index
515 @c coding: iso-2022-7bit
518 @c use-kuten-for-period: t
519 @c use-touten-for-comma: t