1 \input texinfo @c -*-texinfo-*-
9 This file describes the PGG.
11 Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
12 Copyright (C) 2001 Daiki Ueno.
15 Permission is granted to copy, distribute and/or modify this document
16 under the terms of the GNU Free Documentation License, Version 1.2 or
17 any later version published by the Free Software Foundation; with no
18 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
19 Texts. A copy of the license is included in the section entitled ``GNU
20 Free Documentation License''.
22 \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
23 \e$BBh
\e(B 1.2
\e$BHG$^$?$O$=$l0J9_$NHG$,Dj$a$k>r7o$N2<$GJ#@=!"G[I[!"$"$k$$$OJQ99$9
\e(B
24 \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
25 \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
26 \e$B$$$&>O$K4^$^$l$F$$$^$9!#
\e(B
32 * PGG-ja: (pgg-ja). Emacs interface to various PGP implementations (Ja).
35 @settitle PGG @value{VERSION}
44 @vskip 0pt plus 1filll
51 \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$H
\e(B
52 Emacs
\e$B$NCg$r<h$j;}$D%$%s%?%U%'!<%9$G$9!#$^$?!"
\e(BPGG
\e$B$O!"
\e(BMIME
\e$B%a%C%;!<%8
\e(B
53 \e$B$N0E9f2=!"I|9f2=!"=pL>!"8!>Z$N$?$a$NC1=c$J%f!<%6%$%s%?%U%'!<%9$bDs6!$7$^
\e(B
57 * Overview:: PGG
\e$B$H$O
\e(B
58 * Prerequisites::
\e$B$"$i$+$8$a$7$F$*$/$Y$-J#;($J;vJA
\e(B
59 * How to use::
\e$B$H$C$H$H;H$$;O$a$h$&
\e(B
61 * Parsing OpenPGP packets::
69 PGG
\e$B$O!"0BA4$JDL?.$N$?$a$NMM!9$J%D!<%k$H
\e(B Emacs
\e$B$NCg$r<h$j;}$D%$%s%?%U%'!<
\e(B
70 \e$B%9$G$9!#F1MM$N5!G=$O
\e(B Mailcrypt
\e$B$b;}$C$F$$$^$9$,!"
\e(B
71 Mailcrypt
\e$B$O
\e(B PGP/MIME
\e$B$N%$%s%U%i$GDL>oMQ$$$i$l$kJ,N%$5$l$?
\e(B
72 PGP
\e$B%a%C%;!<%8$r<h$j07$&$3$H$,$G$-$^$;$s!#$3$l$,!";d
\e(B(
\e$B:n<T
\e(B)
\e$B$,?7$7$$%i%$%V
\e(B
73 \e$B%i%j$r=q$$$?<g$JM}M3$G$9!#
\e(B
75 PGP/MIME
\e$B$O
\e(B MIME Object Security Services (RFC1848)
\e$B$N<BAu$G$9!#$=$NI8=`
\e(B
76 \e$B$O
\e(B RFC2015
\e$B$G5-=R$5$l$F$$$^$9!#
\e(B
79 @chapter Prerequisites
81 PGG
\e$B$r;H$&$?$a$K$O>/$J$/$H$b
\e(B1
\e$B$D$N%W%i%$%P%7!<J]8n%7%9%F%`$N<BAu$,I,MW$G
\e(B
82 \e$B$9!#$3$N%^%K%e%"%k$G$O!"$"$J$?$,$=$N$h$&$J%W%m%0%i%`$r$9$G$K<hF@!"%$%s%9
\e(B
83 \e$B%H!<%k$7$F$$$F!"4pK\E*$J;H$$J}$rCN$C$F$$$k$3$H$r2>Dj$7$^$9!#
\e(B
85 \e$B%G%#%U%)%k%H$G$O!"
\e(BPGG
\e$B$O
\e(B GnuPG
\e$B$r;H$$$^$9!#$7$+$7!"
\e(BPGP (Pretty Good
86 Privacy)
\e$B$N%P!<%8%g%s
\e(B2
\e$B$^$?$O
\e(B5
\e$B$b%5%]!<%H$7$^$9!#$b$7!"$"$J$?$,$3$N$h$&$J
\e(B
87 \e$B%7%9%F%`$K47$l$F$$$J$$$N$G$"$l$P!"
\e(BGNU Privacy Handbook (GPH)
\e$B$r@h$KFI$^
\e(B
88 \e$B$l$k$3$H$r$*A&$a$7$^$9!#
\e(BGPH
\e$B$O!"
\e(B@uref{http://www.gnupg.org/gph/}
\e$B$G8+$k
\e(B
89 \e$B$3$H$,$G$-$^$9!#
\e(B
94 \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$NA`
\e(B
95 \e$B:n$N$_$rA[Dj$7$F$$$^$9!#
\e(B
97 PGG
\e$B$r;H$&$?$a$K$O!"$"$J$?$N%"%W%j%1!<%7%g%s%W%m%0%i%`$NKAF,$G<!$N
\e(B S
\e$B<0
\e(B
98 \e$B$rI>2A$7$^$9!#
\e(B
104 \e$B$"$J$?$,
\e(B pgg.el
\e$B$NB8:_$r3NG'$7$?$$$J$i!">e5-$NJ}K!$G$O$J$/0J2<$N$h$&$K!"
\e(B
105 \e$BI,MW$J5!G=$K$D$$$F
\e(B autoload
\e$B$N%j%9%H$r@_Dj$9$k$3$H$b$G$-$^$9!#
\e(B
108 (autoload 'pgg-encrypt-region "pgg"
109 "Encrypt the current region." t)
110 (autoload 'pgg-decrypt-region "pgg"
111 "Decrypt the current region." t)
112 (autoload 'pgg-sign-region "pgg"
113 "Sign the current region." t)
114 (autoload 'pgg-verify-region "pgg"
115 "Verify the current region." t)
116 (autoload 'pgg-insert-key "pgg"
117 "Insert the ASCII armored public key." t)
118 (autoload 'pgg-snarf-keys-region "pgg"
119 "Import public keys in the current region." t)
124 * Selecting an implementation::
125 * Caching passphrase::
126 * Default user identity::
130 @section User Commands
132 \e$B$3$N;~E@$G!"$"$J$?$O$$$/$D$+$N0E9f$K4X$9$k%3%^%s%I$r;H$&$3$H$,$G$-$^$9!#
\e(B
133 \e$B$3$l$i$N%3%^%s%I$N5sF0$O5/F0J}K!$K0MB8$7$^$9!#$3$l$i$N%3%^%s%I$O%i%$%V%i
\e(B
134 \e$B%j4X?t$H$7$FMxMQ$5$l$k$3$H$b$"$k$+$i$G$9!#Nc$($P!"$"$J$?$,$"$k=pL><T$N8x
\e(B
135 \e$B3+80$r;}$C$F$$$J$$$H$-!"
\e(B@code{pgg-verify-region}
\e$B$H$$$&4X?t$OB(:B$K<:GT
\e(B
136 \e$B$7$^$9$,!"$3$l$,BPOCE*$K8F$S=P$5$l$?>l9g$K$O!"%5!<%P$+$i8x3+80$r%@%&%s%m!<
\e(B
137 \e$B%I$9$k$+$I$&$+!"$"$J$?$K3NG'$7$^$9!#
\e(B
139 @deffn Command pgg-encrypt-region start end recipients &optional sign
140 @var{recipients}
\e$B08$N%a%C%;!<%8$K$D$$$F!"
\e(B@var{start}
\e$B$H
\e(B@var{end}
\e$B$N4V$G;XDj
\e(B
141 \e$B$5$l$?8=:_$NHO0O$r0E9f2=$7$^$9!#BPOCE*$K8F$P$l$k$H!"<u?.<T$rJ9$+$l$^$9!#
\e(B
143 \e$B0E9f2=$K@.8y$9$k$H!"8=:_$NHO0O$NFbMF$,
\e(B(
\e$B2DG=$JItJ,$K$D$$$F
\e(B)
\e$B0E9f2=$5$l$?Fb
\e(B
144 \e$BMF$KCV$-49$($i$l$^$9!#
\e(B
146 \e$B%*%W%7%g%s0z?t
\e(B @var{sign}
\e$B$,
\e(B non-@code{nil}
\e$B$J$i$P!"=pL>$H0E9f2=$,F1;~$K
\e(B
147 \e$B9T$o$l$^$9!#8=:_!"$3$N5!G=$O
\e(B GnuPG
\e$B$G$@$1F0:n$7$^$9!#
\e(B
150 @deffn Command pgg-decrypt-region start end
151 @var{start}
\e$B$H
\e(B@var{end}
\e$B$N4V$G;XDj$5$l$?8=:_$NHO0O$rI|9f2=$7$^$9!#I|9f2=$K
\e(B
152 \e$B@.8y$9$k$H!"8=:_$NHO0O$NFbMF$,
\e(B(
\e$B2DG=$JItJ,$K$D$$$F
\e(B)
\e$BI|9f2=$5$l$?FbMF$KCV$-
\e(B
153 \e$B49$($i$l$^$9!#
\e(B
156 @deffn Command pgg-sign-region start end &optional cleartext
157 @var{start}
\e$B$H
\e(B@var{end}
\e$B$N4V$N%F%-%9%H$K=pL>$7$^$9!#
\e(B3
\e$BHVL\$N%*%W%7%g%s0z?t
\e(B
158 @var{cleartext}
\e$B$,
\e(B non-@code{nil}
\e$B$G$"$k$+!"$"$k$$$OBPOCE*$K8F$P$l$?>l9g!"
\e(B
159 \e$BJ,N%$5$l$?=pL>$O:n$i$l$^$;$s!#$=$N$h$&$J>l9g!"8=:_$NHO0O$NFbMF$,
\e(B(
\e$B2DG=$J
\e(B
160 \e$BItJ,$K$D$$$F
\e(B)
\e$B=pL>$5$l$?7k2L$KCV$-49$($i$l$^$9!#
\e(B
163 @deffn Command pgg-verify-region start end &optional signature fetch
164 @var{start}
\e$B$H
\e(B@var{end}
\e$B$N4V$NHO0O$r8!::$7$^$9!#
\e(B3
\e$BHVL\$N%*%W%7%g%s0z?t
\e(B
165 @var{signature}
\e$B$,
\e(B non-@code{nil}
\e$B$G$"$k$+!"$"$k$$$OBPOCE*$K8F$P$l$?>l9g!"
\e(B
166 \e$BJ,N%$5$l$?=pL>$H$7$F<h$j07$o$l$^$9!#
\e(B
168 4
\e$BHVL\$N%*%W%7%g%s0z?t
\e(B @var{fetch}
\e$B$,
\e(B non-@code{nil}
\e$B$G$"$k$+!"$"$k$$$OBP
\e(B
169 \e$BOCE*$K8F$P$l$?>l9g!"8x3+80$r%5!<%P$+$i<hF@$7$^$9!#
\e(B
172 @deffn Command pgg-insert-key
173 \e$B%f!<%6$N8x3+80$r<hF@$7$F!"
\e(BASCII-armored
\e$B%U%)!<%^%C%H$GA^F~$7$^$9!#
\e(B
176 @deffn Command pgg-snarf-keys-region start end
177 @var{start}
\e$B$H
\e(B@var{end}
\e$B$N4V$NHO0O$K$"$k8x3+80$r=8$a!"
\e(B
178 \e$B%f!<%6$N80NX
\e(B (keyring)
\e$B$KDI2C$7$^$9!#
\e(B
181 @node Selecting an implementation
182 @section Selecting an implementation
184 PGP
\e$B$ONr;K$,D9$/!":#$G$OB?$/$N<BAu$rMxMQ$9$k$3$H$,$G$-$k$N$G!"$=$l$>$l$,
\e(B
185 \e$B;}$C$F$$$k8D!9$N5!G=$,$:$$$V$s0[$J$C$F$$$k$3$H$,$"$j$^$9!#Nc$($P!"$"$J$?
\e(B
186 \e$B$,
\e(B GnuPG
\e$B$r$*;H$$$J$i!"0E9f%"%k%4%j%:%`$K
\e(B 3DES
\e$B$d
\e(B CAST5
\e$B!"
\e(BBLOWFISH
\e$B$J$I$r
\e(B
187 \e$BA*$V$3$H$,$G$-$k$,!"
\e(BPGP
\e$B$N%P!<%8%g%s
\e(B 2
\e$B$G$O
\e(B IDEA
\e$B$7$+%5%]!<%H$5$l$F$$$J
\e(B
188 \e$B$$$3$H$r$4B8$8$G$7$g$&!#
\e(B
190 \e$B%G%U%)%k%H$G$O!"
\e(B@code{pgg-scheme}
\e$BJQ?t$,@_Dj$5$l$F$$$J$1$l$P!"
\e(BPGG
\e$B$O$"$i
\e(B
191 \e$B$+$8$aMQ0U$5$l$?%9%-!<%`
\e(B (scheme)
\e$B$+$i!"MQ$$$?$$0E9f%"%k%4%j%:%`$KI,MW$J
\e(B
192 \e$B%5!<%S%9$N<BAu$r8!:w$7$^$9!#8@$$49$($l$P!"$d$C$F$/$k
\e(B PGP
\e$BIpAu$r=hM}$9$k
\e(B
193 \e$B$N$K$I$N%3%^%s%I$r;H$&$+$r@)8f$9$k$?$a$N
\e(B 2
\e$B$D$N%*%W%7%g%s$,$"$j$^$9!#
\e(B
194 1
\e$B$D$O0E9f2=$H=pL>$K$D$$$F!"$b$&0lJ}$OI|9f2=$H8!>Z$K$D$$$F!"$G$9!#
\e(B
197 \e$BI|9f2=$H8!>Z$K$I$N
\e(B PGP
\e$B<BAu$rMQ$$$k$+$r6/@)$7$^$9!#
\e(B
198 \e$B@_Dj$G$-$k$N$O
\e(B @code{gpg}
\e$B!"
\e(B@code{pgp}
\e$B$*$h$S
\e(B @code{pgp5}
\e$B$N$I$l$+$G$9!#
\e(B
201 @defvar pgg-default-scheme
202 \e$B0E9f2=$H=pL>$K$I$N
\e(B PGP
\e$B<BAu$rMQ$$$k$+$r6/@)$7$^$9!#
\e(B
203 \e$B@_Dj$G$-$k$N$O
\e(B @code{gpg}
\e$B!"
\e(B@code{pgp}
\e$B$*$h$S
\e(B @code{pgp5}
\e$B$N$I$l$+$G$9!#
\e(B
206 @node Caching passphrase
207 @section Caching passphrase
209 PGG
\e$B$O%Q%9%U%l!<%:$r%-%c%C%7%e$7$F$*$/$N$KC1=c$J%a%+%K%:%`$r;H$$$^$9!#$3
\e(B
210 \e$B$l$,%G%U%)%k%H$G$9!#
\e(B
212 @defvar pgg-cache-passphrase
213 non-@code{nil}
\e$B$G$J$1$l$P!"%Q%9%U%l!<%:$rJ];}$7$^$9!#
\e(B
214 \e$B=i4|CM$O
\e(B @code{t}
\e$B$G$9!#$7$+$7!"$"$J$?$,%;%-%e%j%F%#$K$D$$$F5$3]$+$j$J$i!"
\e(B
215 \e$B$3$l$r
\e(B @code{nil}
\e$B$K@_Dj$7$F$d$l$P!"%Q%9%U%l!<%:$NJ];}$r$d$a$5$;$k$3$H$,
\e(B
219 @defvar pgg-passphrase-cache-expiry
220 \e$B%Q%9%U%l!<%:$rJ];}$7$F$*$/;~4V$rIC$G;XDj$7$^$9!#
\e(B
223 @node Default user identity
224 @section Default user identity
226 PGP
\e$B$N<BAu$O!"DL>o!"0E9f2=$*$h$SI|9f2=$K;H$&E,@Z$J80$rA*$V$3$H$,$G$-$^$9
\e(B
227 \e$B$,!"$"$J$?$,
\e(B1
\e$B$D0J>e$N80$r;}$C$F$$$k>l9g!"MQ$$$k80$N
\e(B id
\e$B$r;XDj$9$kI,MW$,
\e(B
230 @defvar pgg-default-user-id
231 \e$B$"$J$?<+?H$NDL>oMQ$$$k%f!<%6
\e(B ID
\e$B$G$9!#
\e(B
232 \e$B;XDj$7$J$$>l9g!"=i4|CM$O
\e(B @samp{(user-login-name)}
\e$B$NLaCM$G7hDj$5$l$^$9!#
\e(B
233 \e$B%+%9%?%^%$%:2DG=$G$9!#
\e(B
236 @defvar pgg-gpg-user-id
237 GnuPG
\e$B$G;H$&$"$J$?<+?H$N%f!<%6
\e(B ID
\e$B$G$9!#%G%U%)%k%H$O
\e(B @samp{nil}
\e$B$G$9!#
\e(B
238 \e$B$3$NCM$O
\e(B @samp{pgg-default-user-id}
\e$B$r>e=q$-$7$^$9!#%+%9%?%^%$%:2DG=$G$9!#
\e(B
241 @defvar pgg-pgp-user-id
242 PGP 2.x/6.x
\e$B$G;H$&$"$J$?<+?H$N%f!<%6
\e(B ID
\e$B$G$9!#
\e(B
243 \e$B%G%U%)%k%H$O
\e(B @samp{nil}
\e$B$G$9!#$3$NCM$O
\e(B @samp{pgg-default-user-id}
\e$B$r>e=q
\e(B
244 \e$B$-$7$^$9!#%+%9%?%^%$%:2DG=$G$9!#
\e(B
247 @defvar pgg-pgp5-user-id
248 PGP 5.x
\e$B$G;H$&$"$J$?<+?H$N%f!<%6
\e(B ID
\e$B$G$9!#%G%U%)%k%H$O
\e(B @samp{nil}
\e$B$G$9!#
\e(B
249 \e$B$3$NCM$O
\e(B @samp{pgg-default-user-id}
\e$B$r>e=q$-$7$^$9!#%+%9%?%^%$%:2DG=$G$9!#
\e(B
253 @chapter Architecture
255 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!"
\e(B
256 \e$B!V%9%-!<%`
\e(B (scheme)
\e$B!W$HI=5-$7$^$9!#$3$NMQ8l$O
\e(B luna object system
\e$B$G$N
\e(B
257 singleton object
\e$B$KM3Mh$7$^$9!#
\e(B
259 PGG
\e$B$O
\e(B PGP
\e$B$N5!G=$K%"%/%;%9$G$-$k$HF1;~$K$=$l$r3+H/$9$k$?$a$K@_7W$5$l$?
\e(B
260 \e$B$N$G!"$=$N4pK\@_7W$G$O!"Aj8_1?MQ@-$@$1$G$J$/3HD%@-$b9M$($J$$$H$$$1$^$;$s!#
\e(B
261 \e$B$3$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$,
\e(B
262 \e$B$I$N$h$&$K$D$/$i$l$F$$$k$+$rC58!$7$F$_$^$7$g$&!#
\e(B
271 @section Initializing
273 \e$B%9%-!<%`$O!";H$&A0$K=i4|2=$5$l$J$1$l$P$J$j$^$;$s!#
\e(B
274 \e$B$?$@$R$H$D$N%9%-!<%`$rJ]$D$h$&J]>Z$9$k$N$,$h$$$G$7$g$&!#
\e(B
276 \e$B0J2<$N%3!<%I$O
\e(B @file{pgg-gpg.el}
\e$B$+$i$NH4$-=q$-$G$9!#
\e(B
277 \e$B0lC6!"$"$k
\e(B @code{pgg-gpg}
\e$B$N%9%-!<%`$,=i4|2=$5$l$k$H!"
\e(B
278 \e$B$=$l$O
\e(B @code{pgg-scheme-gpg-instance}
\e$BJQ?t$KJ]B8$5$l!"0J8e!":FMxMQ$5$l$^
\e(B
282 (defvar pgg-scheme-gpg-instance nil)
284 (defun pgg-make-scheme-gpg ()
285 (or pgg-scheme-gpg-instance
286 (setq pgg-scheme-gpg-instance
287 (luna-make-entity 'pgg-scheme-gpg))))
290 \e$B4X?t$NL>A0$O
\e(B @code{pgg-make-scheme-}
\e$B$N8e$m$K%P%C%/%(%s%IL>$,IU2C$9$k$h
\e(B
291 \e$B$&$KIU$1$i$l$J$1$l$P$J$j$^$;$s!#
\e(B
293 @node Back end methods
294 @section Back end methods
296 \e$B3F%P%C%/%(%s%I$K$O%a%=%C%I$,B8:_$7$J$1$l$P$J$j$^$;$s!#%a%=%C%I$N<B9T7k2L
\e(B
297 \e$B$N%9%F!<%?%9$rCN$i$;$J$1$l$P$J$i$J$$$N$G!"%a%=%C%I$N=PNO$OFCJL$J%P%C%U%!
\e(B
298 \e$B$KJ]B8$5$l$^$9
\e(B(@ref{Getting output})
\e$B!#
\e(B
300 @deffn Method pgg-scheme-lookup-key scheme string &optional type
301 @var{string}
\e$B$K4XO"$E$1$i$l$?80$rJV$7$^$9!#
\e(B
302 3
\e$BHVL\$N%*%W%7%g%s0z?t
\e(B @var{type}
\e$B$,
\e(B non-@code{nil}
\e$B$J$i$P!"HkL)80NX$+$i
\e(B
306 @deffn Method pgg-scheme-encrypt-region scheme start end recipients &optional sign
307 @var{recipients}
\e$B08$N%a%C%;!<%8$K$D$$$F!"
\e(B@var{start}
\e$B$H
\e(B@var{end}
\e$B$N4V$G;XDj
\e(B
308 \e$B$5$l$?8=:_$NHO0O$r0E9f2=$7$^$9!#
\e(B
309 \e$B%*%W%7%g%s0z?t
\e(B @var{sign}
\e$B$,
\e(B non-@code{nil}
\e$B$J$i$P!"=pL>$H0E9f2=$,F1;~$K
\e(B
310 \e$B9T$o$l$^$9!#0E9f2=$K@.8y$9$k$H
\e(B @code{t}
\e$B$r!"<:GT$9$k$H
\e(B @code{nil}
\e$B$rJV$7
\e(B
314 @deffn Method pgg-scheme-decrypt-region scheme start end
315 @var{start}
\e$B$H
\e(B@var{end}
\e$B$N4V$G;XDj$5$l$?8=:_$NHO0O$rI|9f2=$7$^$9!#I|9f2=$K
\e(B
316 \e$B@.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
319 @deffn Method pgg-scheme-sign-region scheme start end &optional cleartext
320 @var{start}
\e$B$H
\e(B@var{end}
\e$B$N4V$N%F%-%9%H$K=pL>$7$^$9!#
\e(B3
\e$BHVL\$N%*%W%7%g%s0z?t
\e(B
321 @var{cleartext}
\e$B$,
\e(B non-@code{nil}
\e$B$G$"$k$+!"$"$k$$$OBPOCE*$K8F$P$l$?>l9g!"
\e(B
322 \e$BJ,N%$5$l$?=pL>$O:n$i$l$^$;$s!#=pL>$K@.8y$9$k$H
\e(B @code{t}
\e$B$r!"
\e(B
323 \e$B<:GT$9$k$H
\e(B @code{nil}
\e$B$rJV$7$^$9!#
\e(B
326 @deffn Method pgg-scheme-verify-region scheme start end &optional signature
327 @var{start}
\e$B$H
\e(B@var{end}
\e$B$N4V$NHO0O$r8!::$7$^$9!#
\e(B3
\e$BHVL\$N%*%W%7%g%s0z?t
\e(B
328 @var{signature}
\e$B$,
\e(B non-@code{nil}
\e$B$G$"$k>l9g!"J,N%$5$l$?=pL>$H$7$F<h$j07
\e(B
329 \e$B$o$l$^$9!#=pL>$,@5$7$/8!>Z$5$l$?>l9g!"
\e(B@code{t}
\e$B$r!"
\e(B
330 \e$B<:GT$9$k$H
\e(B @code{nil}
\e$B$rJV$7$^$9!#
\e(B
333 @deffn Method pgg-scheme-insert-key scheme
334 \e$B%f!<%6$N8x3+80$r<hF@$7$F!"
\e(BASCII-armored
\e$B%U%)!<%^%C%H$GA^F~$7$^$9!#
\e(B
335 \e$B@.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
338 @deffn Method pgg-scheme-snarf-keys-region scheme start end
339 @var{start}
\e$B$H
\e(B@var{end}
\e$B$N4V$NHO0O$K$"$k8x3+80$r=8$a!"
\e(B
340 \e$B%f!<%6$N80NX
\e(B (keyring)
\e$B$KDI2C$7$^$9!#
\e(B
341 \e$B@.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
345 @section Getting output
347 \e$B%P%C%/%(%s%I%a%=%C%I
\e(B (@ref{Back end methods})
\e$B$N=PNO$OFCJL$J%P%C%U%!$KJ]
\e(B
348 \e$BB8$5$l$^$9!#$7$?$,$C$F!"$3$l$i$N%a%=%C%I$O<B9T7k2L$rEA$($kI,MW$,$"$j$^$9!#
\e(B
350 @defvar pgg-errors-buffer
351 PGP
\e$B%3%^%s%I<B9T;~$NI8=`%(%i!<=PNO$O!"$3$N%P%C%U%!$KJ]B8$5$l$^$9!#
\e(B
354 @defvar pgg-output-buffer
355 PGP
\e$B%3%^%s%I<B9T;~$NI8=`=PNO$O!"$3$N%P%C%U%!$KJ]B8$5$l$^$9!#
\e(B
358 @defvar pgg-status-buffer
359 PGP
\e$B%3%^%s%I<B9T;~$N$=$NB>$N7k2L>pJs$O!"$3$N%P%C%U%!$KJ]B8$5$l$^$9!#
\e(B
362 @node Parsing OpenPGP packets
363 @chapter Parsing OpenPGP packets
365 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
366 \e$B$KI,MW$J$9$Y$F$N>pJs$r=PNO$9$k$h$&$K0];}$5$l$F$$$^$9!#
\e(B
367 \e$B$=$NI8=`$O!"
\e(BRFC2440
\e$B$K5-:\$5$l$F$$$^$9!#
\e(B
369 PGG
\e$B$O
\e(B OpenPGP
\e$B$KBP1~$7$?FH<+$N%a%C%;!<%82r@O$r9T$$$^$9!#
\e(B
371 @defun pgg-parse-armor string
372 @var{string}
\e$BFb$N%Q%1%C%H$NJB$S$r0lMw$7$^$9!#
\e(B
375 @defun pgg-parse-armor-region start end
376 @var{start}
\e$B$H
\e(B@var{end}
\e$B$N4V$NHO0OFb$N%Q%1%C%H$NJB$S$r0lMw$7$^$9!#
\e(B
379 @defvar pgg-ignore-packet-checksum
380 non-@code{nil}
\e$B$J$i$P!"%Q%1%C%H$N%A%'%C%/%5%`$r8!>Z$7$^$;$s!#
\e(B
384 @chapter Function Index
388 @chapter Variable Index
396 @c coding: iso-2022-7bit
399 @c use-kuten-for-period: t
400 @c use-touten-for-comma: t