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 2010 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
45 implementations (Japanese).
54 @vskip 0pt plus 1filll
63 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
64 \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
65 \e$B$NC1=c$J%f!<%6!<%$%s%?%U%'!<%9$bDs6!$7$^$9!#
\e(B
72 * Overview:: PGG
\e$B$H$O
\e(B
73 * Prerequisites::
\e$B$"$i$+$8$a$7$F$*$/$Y$-J#;($J;vJA
\e(B
74 * How to use::
\e$B$H$C$H$H;H$$;O$a$h$&
\e(B
76 * Parsing OpenPGP packets::
77 * GNU Free Documentation License::
\e$B$3$NJ8=q$NMxMQ5vBz7@Ls=q
\e(B
85 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
86 \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
87 \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
88 \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
90 PGP/MIME
\e$B$O
\e(B MIME Object Security Services (RFC1848)
\e$B$N<BAu$G$9!#$=$NI8=`
\e(B
91 \e$B$O
\e(B RFC2015
\e$B$G5-=R$5$l$F$$$^$9!#
\e(B
94 @chapter
\e$BI,MW>r7o
\e(B
96 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
97 \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
98 \e$B$F$$$F!"4pK\E*$J;H$$J}$rCN$C$F$$$k$3$H$rA[Dj$7$F$$$^$9!#
\e(B
100 \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
101 \e$B$$$N$G$"$l$P!"
\e(B@uref{http://www.gnupg.org/documentation/}
\e$B$K$"$k
\e(B GNU
102 Privacy Handbook (GPH)
\e$B$KL\$rDL$9$3$H$r4+$a$^$9!#
\e(B
104 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
105 \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
106 \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
107 \e$B%7%e$9$k$?$a$N:G$b0BA4$J<jCJ$rDs6!$7$^$9
\e(B (@pxref{Caching passphrase})
\e$B!#
\e(B
108 \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
109 \e$B$7$^$9!#
\e(B@xref{Invoking GPG-AGENT,,,gnupg,Using the GNU Privacy Guard}.
111 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
115 @chapter
\e$B;H$$J}
\e(B
117 \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
118 \e$BA`:n$N$_$rA[Dj$7$F$$$^$9!#
\e(B
120 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
127 \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
128 \e$BI,MW$J5!G=$N
\e(B autoload
\e$B$r@_Dj$9$k$3$H$b$G$-$^$9!#
\e(B
131 (autoload 'pgg-encrypt-region "pgg"
132 "Encrypt the current region." t)
133 (autoload 'pgg-encrypt-symmetric-region "pgg"
134 "Encrypt the current region with symmetric algorithm." t)
135 (autoload 'pgg-decrypt-region "pgg"
136 "Decrypt the current region." t)
137 (autoload 'pgg-sign-region "pgg"
138 "Sign the current region." t)
139 (autoload 'pgg-verify-region "pgg"
140 "Verify the current region." t)
141 (autoload 'pgg-insert-key "pgg"
142 "Insert the ASCII armored public key." t)
143 (autoload 'pgg-snarf-keys-region "pgg"
144 "Import public keys in the current region." t)
149 * Selecting an implementation::
150 * Caching passphrase::
151 * Default user identity::
155 @section
\e$B%f!<%6!<%3%^%s%I
\e(B
157 \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
158 \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
159 \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
160 \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
161 \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
162 \e$B$+$I$&$+$r$"$J$?$K?R$M$^$9!#
\e(B
164 @deffn Command pgg-encrypt-region start end recipients &optional sign passphrase
165 @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
166 \e$B$F0E9f2=$7$^$9!#BPOCE*$K8F$V$H!"<u?.<T$r?R$M$^$9!#
\e(B
168 \e$B0E9f2=$K@.8y$9$k$H!"8=:_$NNN0h$NFbMF$r0E9f2=$7$?%G!<%?$GCV$-49$($^$9!#
\e(B
170 \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
171 \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
172 PGP
\e$B$d
\e(B PGP5
\e$B$G$OF0:n$7$J$$$+$b$7$l$^$;$s!#
\e(B
174 \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
175 \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
179 @deffn Command pgg-encrypt-symmetric-region &optional start end passphrase
180 \e$B8=:_$N
\e(B @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$r!"6&DL800E9f
\e(B (symmetric
181 cipher)
\e$B$G0E9f2=$7$^$9!#8F$S=P$7$?8e$G%Q%9%U%l!<%:$,?R$M$i$l$^$9!#
\e(B
183 \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
184 \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
187 \e$B6&DL800E9f$K$h$k0E9f2=$O!"8=:_
\e(B GnuPG
\e$B$@$1$G<BAu$5$l$F$$$^$9!#
\e(B
190 @deffn Command pgg-decrypt-region start end &optional passphrase
191 @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
192 \e$B$NNN0h$NFbMF$r2rFI$7$?%G!<%?$GCV$-49$($^$9!#
\e(B
194 \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
195 \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
199 @deffn Command pgg-sign-region start end &optional cleartext passphrase
200 @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
201 \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
202 \e$B>l9g!"J,N%$5$l$?=pL>$r:n$j$^$;$s!#$=$N$h$&$J>l9g$K$O!"8=:_$NNN0h$NFbMF$r
\e(B
203 \e$B=pL>$7$?%G!<%?$GCV$-49$($^$9!#
\e(B
205 \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
206 \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
210 @deffn Command pgg-verify-region start end &optional signature fetch
211 @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
212 \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
213 \e$BNN0h$NJ,N%$5$l$?=pL>$N%U%!%$%k$H$7$F<h$j07$o$l$^$9!#
\e(B
215 \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
216 \e$BOCE*$K8F$P$l$?>l9g!"8x3+80$r%5!<%P!<$+$i<hF@$7$^$9!#
\e(B
219 @deffn Command pgg-insert-key
220 \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
223 @deffn Command pgg-snarf-keys-region start end
224 @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$K$"$k8x3+80$r=8$a!"%f!<%6!<$N80
\e(B
225 \e$BB+
\e(B (keyring)
\e$B$KDI2C$7$^$9!#
\e(B
228 @node Selecting an implementation
229 @section
\e$B$I$N<BAu$r;H$&$+
\e(B
231 PGP
\e$B$ONr;K$,D9$/!":#$G$OB?$/$N<BAu$rMxMQ$9$k$3$H$,$G$-$k$N$G!"$=$l$>$l$,
\e(B
232 \e$B;}$C$F$$$k8D!9$N5!G=$,$:$$$V$s0[$J$C$F$$$k$3$H$,$"$j$^$9!#Nc$(
\e(B
233 \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
234 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
235 \e$B%H$7$F$$$^$;$s!#
\e(B
237 \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
238 \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
242 \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
243 @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
247 @defvar pgg-default-scheme
248 \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
249 \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
250 \e$B$O
\e(B @code{gpg}
\e$B$G$9!#
\e(B
253 @node Caching passphrase
254 @section
\e$B%Q%9%U%l!<%:$r%-%c%C%7%e$9$k
\e(B
256 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
257 \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
258 \e$B%-%c%C%7%e$7$^$9!#0lJ}%f!<%6!<$N;kE@$+$i$O!"$3$N5;=QE*$J:90[$O8+$($^$;
\e(B
259 \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
261 @defvar pgg-gpg-use-agent
262 @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
263 \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
264 \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
265 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
266 \e$B;2>H
\e(B)
\e$B!#
\e(B
269 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
270 \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
271 \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
272 \e$B$l$r3N<B$K$9$k$3$H$,$G$-$^$9
\e(B:
275 eval "$(gpg-agent --daemon)"
278 @code{gpg-agent}
\e$B$N5/F0$K4X$9$k$5$i$K>\$7$$$3$H$O!"
\e(B@xref{Invoking
279 GPG-AGENT,,,gnupg,Using the GNU Privacy Guard}.
281 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
282 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
283 \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
284 \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
285 (
\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
286 \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
287 \e$B%W%7%g%s$r;H$C$F$/$@$5$$!#
\e(B)
289 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
290 \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
291 \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
292 \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
293 \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
294 \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
295 \e$B%Q%9%U%l!<%:$NF~NO$K$=$l<+?H$NC<Kv$r;H$&$h$&$K$5$;$^$9!#
\e(B
297 @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
298 \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
299 \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
301 @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
302 \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
303 \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
304 \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
305 \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
306 \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
307 \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
308 @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
309 \e$B$7$F$$$^$9!#$=$l$O
\e(B Emacs
\e$B$K$O<BAu$5$l$F$$$^$;$s!#
\e(B
311 @defvar pgg-cache-passphrase
312 @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
313 \e$B$7$+$7!"$"$J$?$,%;%-%e%j%F%#$K$D$$$F5$3]$+$j$J$i!"$3$NJQ?t
\e(B
314 \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
315 \e$B$k$3$H$,$G$-$^$9!#
\e(B
318 @defvar pgg-passphrase-cache-expiry
319 \e$B%Q%9%U%l!<%:$rJ];}$7$F$*$/;~4V$rIC$G;XDj$7$^$9!#
\e(B
322 \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
323 \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
324 \e$B$H$7$F$G$O$J$/!"%P%$%HNs$H$7$F07$&$+$i$G$9!#
\e(B
326 @defvar pgg-passphrase-coding-system
327 \e$B%Q%9%U%l!<%:$r%(%s%3!<%I$9$k$?$a$N
\e(B coding system
\e$B$G$9!#
\e(B
330 @node Default user identity
331 @section
\e$B%G%#%U%)%k%H$N%f!<%6!<
\e(B ID
333 \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
334 \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
337 @defvar pgg-default-user-id
338 \e$B%G%#%U%)%k%H$N%f!<%6!<
\e(B ID
\e$B$G$9!#;XDj$7$J$$>l9g
\e(B
339 \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
340 \e$B%+%9%?%^%$%:2DG=$G$9!#
\e(B
343 @defvar pgg-gpg-user-id
344 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
345 \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
346 \e$B$F;H$o$l$^$9!#%+%9%?%^%$%:2DG=$G$9!#
\e(B
349 @defvar pgg-pgp-user-id
350 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
351 \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
352 @samp{pgg-default-user-id}
\e$B$h$jM%@h$7$F;H$o$l$^$9!#%+%9%?%^%$%:2DG=$G$9!#
\e(B
355 @defvar pgg-pgp5-user-id
356 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
357 \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
358 \e$B$F;H$o$l$^$9!#%+%9%?%^%$%:2DG=$G$9!#
\e(B
362 @chapter
\e$B9=@.
\e(B
364 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
365 \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
366 object
\e$B$KM3Mh$7$^$9!#
\e(B
368 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
369 \e$B$G!"$=$N9=@.$O!"Aj8_1?MQ@-$@$1$G$J$/3HD%@-$b9MN8$9$kI,MW$,$"$j$^$7$?!#$3
\e(B
370 \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
371 \e$B$N$h$&$K$D$/$i$l$F$$$k$+$rC58!$7$F$_$^$7$g$&!#
\e(B
380 @section
\e$B=i4|2=
\e(B
382 \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
383 \e$B$&$3$H$rJ]>Z$9$k$N$,NI$$$G$7$g$&!#
\e(B
385 \e$B0J2<$N%3!<%I$O
\e(B @file{pgg-gpg.el}
\e$B$+$i$NH4$-=q$-$G$9!#$"
\e(B
386 \e$B$k
\e(B @code{pgg-gpg}
\e$B$N%9%-!<%`$,$$$C$?$s=i4|2=$5$l$k$H!"$=$l
\e(B
387 \e$B$O
\e(B @code{pgg-scheme-gpg-instance}
\e$BJQ?t$KJ]B8$5$l!"0J8e!":FMxMQ$5$l$^$9!#
\e(B
390 (defvar pgg-scheme-gpg-instance nil)
392 (defun pgg-make-scheme-gpg ()
393 (or pgg-scheme-gpg-instance
394 (setq pgg-scheme-gpg-instance
395 (luna-make-entity 'pgg-scheme-gpg))))
398 \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
399 \e$B$N$K$7$J$1$l$P$J$j$^$;$s!#
\e(B
401 @node Back end methods
402 @section
\e$B%P%C%/%(%s%I$N%a%=%C%I
\e(B
404 \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
405 \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
406 \e$B$J%P%C%U%!!<$KJ]B8$5$l$^$9
\e(B (@pxref{Getting output})
\e$B!#
\e(B
408 @deffn Method pgg-scheme-lookup-key scheme string &optional type
409 @var{string}
\e$B$K4XO"IU$1$i$l$?80$rJV$7$^$9!#;0HVL\$N%*%W%7%g%s0z
\e(B
410 \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
413 @deffn Method pgg-scheme-encrypt-region scheme start end recipients &optional sign passphrase
414 @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
415 \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
416 \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
417 \e$B$H
\e(B @code{nil}
\e$B$rJV$7$^$9!#
\e(B
420 @deffn Method pgg-scheme-encrypt-symmetric-region scheme start end &optional passphrase
421 \e$B8=:_$N
\e(B @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$r!"6&DL800E9f
\e(B (symmetric
422 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
423 \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
427 @deffn Method pgg-scheme-decrypt-region scheme start end &optional passphrase
428 @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$r2rFI$7$^$9!#2rFI$K@.8y$9$k
\e(B
429 \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
432 @deffn Method pgg-scheme-sign-region scheme start end &optional cleartext passphrase
433 @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
434 \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
435 \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
438 @deffn Method pgg-scheme-verify-region scheme start end &optional signature
439 @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
440 \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
441 \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
442 \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
445 @deffn Method pgg-scheme-insert-key scheme
446 \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
447 \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
450 @deffn Method pgg-scheme-snarf-keys-region scheme start end
451 @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$K$"$k8x3+80$r=8$a!"%f!<%6!<$N80
\e(B
452 \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
453 \e$B$H
\e(B @code{nil}
\e$B$rJV$7$^$9!#
\e(B
457 @section
\e$B=PNO$rF@$k
\e(B
459 \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
460 \e$B$K3JG<$5$l$^$9!#$7$?$,$C$F!"$3$l$i$N%a%=%C%I$O<B9T7k2L$rEA$($kI,MW$,$"$j
\e(B
463 @defvar pgg-errors-buffer
464 PGP
\e$B%3%^%s%I<B9T;~$NI8=`%(%i!<=PNO$O!"$3$N%P%C%U%!!<$K3JG<$5$l$^$9!#
\e(B
467 @defvar pgg-output-buffer
468 PGP
\e$B%3%^%s%I<B9T;~$NI8=`=PNO$O!"$3$N%P%C%U%!!<$K3JG<$5$l$^$9!#
\e(B
471 @defvar pgg-status-buffer
472 PGP
\e$B%3%^%s%I<B9T;~$N$=$NB>$N7k2L$N>pJs$O!"$3$N%P%C%U%!!<$K3JG<$5$l$^$9!#
\e(B
475 @node Parsing OpenPGP packets
476 @chapter OpenPGP
\e$B%Q%1%C%H$N2r@O
\e(B
478 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
479 \e$B$KI,MW$J$9$Y$F$N>pJs$r=PNO$9$k$h$&$K0];}$5$l$F$$$^$9!#$=$NI8=`
\e(B
480 \e$B$O
\e(B RFC2440
\e$B$K5-:\$5$l$F$$$^$9!#
\e(B
482 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
484 @defun pgg-parse-armor string
485 @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
488 @defun pgg-parse-armor-region start end
489 @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
490 \e$B7A<0$GJV$7$^$9!#
\e(B
493 @defvar pgg-ignore-packet-checksum
494 @code{nil}
\e$B$G$J$+$C$?$i!"%Q%1%C%H$N%A%'%C%/%5%`$r8!>Z$7$^$;$s!#
\e(B
497 @node GNU Free Documentation License
498 @chapter GNU
\e$B%U%j!<J8=qMxMQ5vBz7@Ls=q
\e(B
500 \e$BLuCm
\e(B: @uref{http://www.opensource.jp/fdl/fdl.ja.html.euc-jp,
501 \e$BHs8x<0$JF|K\8lLu
\e(B}
\e$B$,$"$j$^$9!#
\e(B
503 @include doclicense.texi
506 @unnumbered Function Index
510 @unnumbered Variable Index
516 @c coding: iso-2022-7bit
519 @c use-kuten-for-period: t
520 @c use-touten-for-comma: t