1 \input texinfo @c -*-texinfo-*-
5 @firstparagraphindent insert
11 This file describes the PGG.
13 Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
14 Copyright (C) 2001 Daiki Ueno.
17 Permission is granted to copy, distribute and/or modify this document
18 under the terms of the GNU Free Documentation License, Version 1.2 or
19 any later version published by the Free Software Foundation; with no
20 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
21 Texts. A copy of the license is included in the section entitled ``GNU
22 Free Documentation License''.
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.2
\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,!"I=I=;f%F%-%9%H$*$h$SN"I=;f%F%-%9%H$O;X
\e(B
27 \e$BDj$7$^$;$s!#$3$NMxMQ5vBz7@Ls=q$NJ#<L$O!V
\e(BGNU
\e$B%U%j!<J8=qMxMQ5vBz7@Ls=q!W$H
\e(B
28 \e$B$$$&>O$K4^$^$l$F$$$^$9!#
\e(B
34 * PGG-ja: (pgg-ja). Emacs interface to various PGP implementations (Ja).
37 @settitle PGG @value{VERSION}
45 @vskip 0pt plus 1filll
53 \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
54 \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
55 \e$B0E9f2=$H2rFI!"$=$l$K=pL>$H8!>Z$N$?$a$NC1=c$J%f!<%6!<%$%s%?%U%'!<%9$bDs6!
\e(B
59 * Overview:: PGG
\e$B$H$O
\e(B
60 * Prerequisites::
\e$B$"$i$+$8$a$7$F$*$/$Y$-J#;($J;vJA
\e(B
61 * How to use::
\e$B$H$C$H$H;H$$;O$a$h$&
\e(B
63 * Parsing OpenPGP packets::
71 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
72 \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
73 \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
74 \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
76 PGP/MIME
\e$B$O
\e(B MIME Object Security Services (RFC1848)
\e$B$N<BAu$G$9!#$=$NI8=`
\e(B
77 \e$B$O
\e(B RFC2015
\e$B$G5-=R$5$l$F$$$^$9!#
\e(B
80 @chapter
\e$BI,MW>r7o
\e(B
82 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
83 \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
84 \e$B$F$$$F!"4pK\E*$J;H$$J}$rCN$C$F$$$k$3$H$rA[Dj$7$F$$$^$9!#
\e(B
86 \e$B%G%#%U%)%k%H$G$O
\e(B PGG
\e$B$O
\e(B GnuPG
\e$B$r;H$$$^$9!#$7$+$7!"
\e(BPGP (Pretty Good
87 Privacy)
\e$B$N%P!<%8%g%s
\e(B 2
\e$B$^$?$O
\e(B 5
\e$B$b%5%]!<%H$7$^$9!#$b$7!"$3$N$h$&$J%7%9
\e(B
88 \e$B%F%`$K47$l$F$$$J$$$N$G$"$l$P!"
\e(BGNU Privacy Handbook (GPH)
\e$B$r@h$KFI$s$G$*
\e(B
89 \e$B$/$3$H$rA&$a$^$9!#
\e(BGPH
\e$B$O
\e(B @uref{http://www.gnupg.org/gph/}
\e$B$G8+$k$3$H$,$G
\e(B
93 @chapter
\e$B;H$$J}
\e(B
95 \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
96 \e$BA`:n$N$_$rA[Dj$7$F$$$^$9!#
\e(B
98 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
105 \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
106 \e$BI,MW$J5!G=$N
\e(B autoload
\e$B$r@_Dj$9$k$3$H$b$G$-$^$9!#
\e(B
109 (autoload 'pgg-encrypt-region "pgg"
110 "Encrypt the current region." t)
111 (autoload 'pgg-encrypt-symmetric-region "pgg"
112 "Encrypt the current region with symmetric algorithm." t)
113 (autoload 'pgg-decrypt-region "pgg"
114 "Decrypt the current region." t)
115 (autoload 'pgg-sign-region "pgg"
116 "Sign the current region." t)
117 (autoload 'pgg-verify-region "pgg"
118 "Verify the current region." t)
119 (autoload 'pgg-insert-key "pgg"
120 "Insert the ASCII armored public key." t)
121 (autoload 'pgg-snarf-keys-region "pgg"
122 "Import public keys in the current region." t)
127 * Selecting an implementation::
128 * Caching passphrase::
129 * Default user identity::
133 @section
\e$B%f!<%6!<%3%^%s%I
\e(B
135 \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
136 \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
137 \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
138 \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
139 \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
140 \e$B$+$I$&$+$r$"$J$?$K?R$M$^$9!#
\e(B
142 @deffn Command pgg-encrypt-region start end recipients &optional sign passphrase
143 @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
144 \e$B$F0E9f2=$7$^$9!#BPOCE*$K8F$V$H!"<u?.<T$r?R$M$^$9!#
\e(B
146 \e$B0E9f2=$K@.8y$9$k$H!"8=:_$NNN0h$NFbMF$r0E9f2=$7$?%G!<%?$GCV$-49$($^$9!#
\e(B
148 \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
149 \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
150 PGP
\e$B$d
\e(B PGP5
\e$B$G$OF0:n$7$J$$$+$b$7$l$^$;$s!#
\e(B
152 \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
153 \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
157 @deffn Command pgg-encrypt-symmetric-region &optional start end passphrase
158 \e$B8=:_$N
\e(B @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$r!"6&DL800E9f
\e(B (symmetric
159 cipher)
\e$B$G0E9f2=$7$^$9!#8F$S=P$7$?8e$G%Q%9%U%l!<%:$,?R$M$i$l$^$9!#
\e(B
161 \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
162 \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
165 \e$B6&DL800E9f$K$h$k0E9f2=$O!"8=:_
\e(B GnuPG
\e$B$@$1$G<BAu$5$l$F$$$^$9!#
\e(B
168 @deffn Command pgg-decrypt-region start end &optional passphrase
169 @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
170 \e$B$NNN0h$NFbMF$r2rFI$7$?%G!<%?$GCV$-49$($^$9!#
\e(B
172 \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
173 \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
177 @deffn Command pgg-sign-region start end &optional cleartext passphrase
178 @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
179 \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
180 \e$B>l9g!"J,N%$5$l$?=pL>$r:n$j$^$;$s!#$=$N$h$&$J>l9g$K$O!"8=:_$NNN0h$NFbMF$r
\e(B
181 \e$B=pL>$7$?%G!<%?$GCV$-49$($^$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
188 @deffn Command pgg-verify-region start end &optional signature fetch
189 @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
190 \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
191 \e$BNN0h$NJ,N%$5$l$?=pL>$N%U%!%$%k$H$7$F<h$j07$o$l$^$9!#
\e(B
193 \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
194 \e$BOCE*$K8F$P$l$?>l9g!"8x3+80$r%5!<%P!<$+$i<hF@$7$^$9!#
\e(B
197 @deffn Command pgg-insert-key
198 \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
201 @deffn Command pgg-snarf-keys-region start end
202 @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$K$"$k8x3+80$r=8$a!"%f!<%6!<$N80
\e(B
203 \e$BB+
\e(B (keyring)
\e$B$KDI2C$7$^$9!#
\e(B
206 @node Selecting an implementation
207 @section
\e$B$I$N<BAu$r;H$&$+
\e(B
209 PGP
\e$B$ONr;K$,D9$/!":#$G$OB?$/$N<BAu$rMxMQ$9$k$3$H$,$G$-$k$N$G!"$=$l$>$l$,
\e(B
210 \e$B;}$C$F$$$k8D!9$N5!G=$,$:$$$V$s0[$J$C$F$$$k$3$H$,$"$j$^$9!#Nc$(
\e(B
211 \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
212 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
213 \e$B%H$7$F$$$^$;$s!#
\e(B
215 \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
216 \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
220 \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
221 @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
225 @defvar pgg-default-scheme
226 \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
227 \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
228 \e$B$O
\e(B @code{gpg}
\e$B$G$9!#
\e(B
231 @node Caching passphrase
232 @section
\e$B%Q%9%U%l!<%:$r%-%c%C%7%e$9$k
\e(B
234 PGG
\e$B$OC1=c$J%a%+%K%:%`$r;H$C$F%Q%9%U%l!<%:$r%-%c%C%7%e$7$^$9!#$=$l$r9T$J
\e(B
235 \e$B$&$3$H$O!"%G%#%U%)%k%H$GM-8z$K$J$C$F$$$^$9!#
\e(B
237 @defvar pgg-cache-passphrase
238 @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
239 \e$B$7$+$7!"$"$J$?$,%;%-%e%j%F%#$K$D$$$F5$3]$+$j$J$i!"$3$NJQ?t
\e(B
240 \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
241 \e$B$k$3$H$,$G$-$^$9!#
\e(B
244 @defvar pgg-passphrase-cache-expiry
245 \e$B%Q%9%U%l!<%:$rJ];}$7$F$*$/;~4V$rIC$G;XDj$7$^$9!#
\e(B
248 @node Default user identity
249 @section
\e$B%G%#%U%)%k%H$N%f!<%6!<
\e(B ID
251 \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
252 \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
255 @defvar pgg-default-user-id
256 \e$B%G%#%U%)%k%H$N%f!<%6!<
\e(B ID
\e$B$G$9!#;XDj$7$J$$>l9g
\e(B
257 \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
258 \e$B%+%9%?%^%$%:2DG=$G$9!#
\e(B
261 @defvar pgg-gpg-user-id
262 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
263 \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
264 \e$B$F;H$o$l$^$9!#%+%9%?%^%$%:2DG=$G$9!#
\e(B
267 @defvar pgg-pgp-user-id
268 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
269 \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
270 @samp{pgg-default-user-id}
\e$B$h$jM%@h$7$F;H$o$l$^$9!#%+%9%?%^%$%:2DG=$G$9!#
\e(B
273 @defvar pgg-pgp5-user-id
274 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
275 \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
276 \e$B$F;H$o$l$^$9!#%+%9%?%^%$%:2DG=$G$9!#
\e(B
280 @chapter
\e$B9=@.
\e(B
282 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
283 \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
284 object
\e$B$KM3Mh$7$^$9!#
\e(B
286 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
287 \e$B$G!"$=$N9=@.$O!"Aj8_1?MQ@-$@$1$G$J$/3HD%@-$b9MN8$9$kI,MW$,$"$j$^$7$?!#$3
\e(B
288 \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
289 \e$B$N$h$&$K$D$/$i$l$F$$$k$+$rC58!$7$F$_$^$7$g$&!#
\e(B
298 @section
\e$B=i4|2=
\e(B
300 \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
301 \e$B$&$3$H$rJ]>Z$9$k$N$,NI$$$G$7$g$&!#
\e(B
303 \e$B0J2<$N%3!<%I$O
\e(B @file{pgg-gpg.el}
\e$B$+$i$NH4$-=q$-$G$9!#$"
\e(B
304 \e$B$k
\e(B @code{pgg-gpg}
\e$B$N%9%-!<%`$,$$$C$?$s=i4|2=$5$l$k$H!"$=$l
\e(B
305 \e$B$O
\e(B @code{pgg-scheme-gpg-instance}
\e$BJQ?t$KJ]B8$5$l!"0J8e!":FMxMQ$5$l$^$9!#
\e(B
308 (defvar pgg-scheme-gpg-instance nil)
310 (defun pgg-make-scheme-gpg ()
311 (or pgg-scheme-gpg-instance
312 (setq pgg-scheme-gpg-instance
313 (luna-make-entity 'pgg-scheme-gpg))))
316 \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
317 \e$B$N$K$7$J$1$l$P$J$j$^$;$s!#
\e(B
319 @node Back end methods
320 @section
\e$B%P%C%/%(%s%I$N%a%=%C%I
\e(B
322 \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
323 \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
324 \e$B$J%P%C%U%!!<$KJ]B8$5$l$^$9
\e(B (@pxref{Getting output})
\e$B!#
\e(B
326 @deffn Method pgg-scheme-lookup-key scheme string &optional type
327 @var{string}
\e$B$K4XO"IU$1$i$l$?80$rJV$7$^$9!#;0HVL\$N%*%W%7%g%s0z
\e(B
328 \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
331 @deffn Method pgg-scheme-encrypt-region scheme start end recipients &optional sign passphrase
332 @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
333 \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
334 \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
335 \e$B$H
\e(B @code{nil}
\e$B$rJV$7$^$9!#
\e(B
338 @deffn Method pgg-scheme-encrypt-symmetric-region scheme start end &optional passphrase
339 \e$B8=:_$N
\e(B @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$r!"6&DL800E9f
\e(B (symmetric
340 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
341 \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
345 @deffn Method pgg-scheme-decrypt-region scheme start end &optional passphrase
346 @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$r2rFI$7$^$9!#2rFI$K@.8y$9$k
\e(B
347 \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
350 @deffn Method pgg-scheme-sign-region scheme start end &optional cleartext passphrase
351 @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
352 \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
353 \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
356 @deffn Method pgg-scheme-verify-region scheme start end &optional signature
357 @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
358 \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
359 \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
360 \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
363 @deffn Method pgg-scheme-insert-key scheme
364 \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
365 \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
368 @deffn Method pgg-scheme-snarf-keys-region scheme start end
369 @var{start}
\e$B$H
\e(B @var{end}
\e$B$N4V$NNN0h$K$"$k8x3+80$r=8$a!"%f!<%6!<$N80
\e(B
370 \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
371 \e$B$H
\e(B @code{nil}
\e$B$rJV$7$^$9!#
\e(B
375 @section
\e$B=PNO$rF@$k
\e(B
377 \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
378 \e$B$K3JG<$5$l$^$9!#$7$?$,$C$F!"$3$l$i$N%a%=%C%I$O<B9T7k2L$rEA$($kI,MW$,$"$j
\e(B
381 @defvar pgg-errors-buffer
382 PGP
\e$B%3%^%s%I<B9T;~$NI8=`%(%i!<=PNO$O!"$3$N%P%C%U%!!<$K3JG<$5$l$^$9!#
\e(B
385 @defvar pgg-output-buffer
386 PGP
\e$B%3%^%s%I<B9T;~$NI8=`=PNO$O!"$3$N%P%C%U%!!<$K3JG<$5$l$^$9!#
\e(B
389 @defvar pgg-status-buffer
390 PGP
\e$B%3%^%s%I<B9T;~$N$=$NB>$N7k2L$N>pJs$O!"$3$N%P%C%U%!!<$K3JG<$5$l$^$9!#
\e(B
393 @node Parsing OpenPGP packets
394 @chapter OpenPGP
\e$B%Q%1%C%H$N2r@O
\e(B
396 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
397 \e$B$KI,MW$J$9$Y$F$N>pJs$r=PNO$9$k$h$&$K0];}$5$l$F$$$^$9!#$=$NI8=`
\e(B
398 \e$B$O
\e(B RFC2440
\e$B$K5-:\$5$l$F$$$^$9!#
\e(B
400 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
402 @defun pgg-parse-armor string
403 @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
406 @defun pgg-parse-armor-region start end
407 @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
408 \e$B7A<0$GJV$7$^$9!#
\e(B
411 @defvar pgg-ignore-packet-checksum
412 @code{nil}
\e$B$G$J$+$C$?$i!"%Q%1%C%H$N%A%'%C%/%5%`$r8!>Z$7$^$;$s!#
\e(B
416 @chapter Function Index
420 @chapter Variable Index
428 @c coding: iso-2022-7bit
431 @c use-kuten-for-period: t
432 @c use-touten-for-comma: t