1 \input texinfo @c -*-texinfo-*-
3 @include gnus-overrides-ja.texi
6 @settitle Emacs auth-source Library @value{VERSION}
11 \e$B$3$N%U%!%$%k$O
\e(B Emacs auth-source
\e$B%i%$%V%i%j!<$r@bL@$7$^$9!#
\e(B
13 Copyright @copyright{} 2008-2012 Free Software Foundation, Inc.
16 Permission is granted to copy, distribute and/or modify this document
17 under the terms of the GNU Free Documentation License, Version 1.3 or
18 any later version published by the Free Software Foundation; with no
19 Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
20 and with the Back-Cover Texts as in (a) below. A copy of the license
21 is included in the section entitled ``GNU 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.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
\e(B
28 \e$B$O
\e(B Emacs
\e$B%^%K%e%"%k$N!V
\e(BGNU
\e$B%U%j!<J8=qMxMQ5vBz7@Ls=q!W$H$$$&>O$K4^$^$l$F
\e(B
31 (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
32 modify this GNU manual. Buying copies from the FSF supports it in
33 developing GNU and promoting software freedom.''
35 (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
36 \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
37 \e$B$NB%?J$r;Y1g$7$^$9!#!W
\e(B
39 This document is part of a collection distributed under the GNU Free
40 Documentation License. If you want to distribute this document
41 separately from the collection, you can do so by adding a copy of the
42 license to the document, as described in section 6 of the license.
44 \e$B$3$NJ8=q$O!V
\e(BGNU
\e$B%U%j!<J8=qMxMQ5vBz7@Ls=q!W$K4p$E$$$FG[I[$5$l$?<}=8Cx:nJ*
\e(B
45 \e$B$N0lIt$G$9!#$b$7$"$J$?$,$3$NJ8=q$r<}=8Cx:nJ*$+$iJ,N%$7$FG[I[$7$?$$$H$-$O!"
\e(B
46 \e$B7@Ls=q$NBh
\e(B 6
\e$B9`$K5-=R$5$l$F$$$k$h$&$K!"J8=q$K7@Ls=q$NJ#<L$rIU2C$9$k$3$H
\e(B
47 \e$B$K$h$C$F!"9T$J$&$3$H$,$G$-$^$9!#
\e(B
51 @dircategory Emacs lisp libraries
53 * Auth-source-ja: (auth-ja). The Emacs auth-source library (Japanese).
58 @title Emacs auth-source Library (DEVELOPMENT VERSION)
61 @title Emacs auth-source Library
63 @author by Ted Zlatanov
65 @vskip 0pt plus 1filll
73 @top Emacs auth-source
74 \e$B$3$N%^%K%e%"%k$O
\e(B Emacs auth-source
\e$B%i%$%V%i%j!<$r@bL@$7$^$9!#
\e(B
76 \e$BMxMQ<T$NJX59$N$?$a$K!"J#?t$N%"%W%j%1!<%7%g%s$G!"
\e(B(Emacs
\e$B$^$?$O%U%!%$%k$K
\e(B
77 \e$B$"$k
\e(B)
\e$B0l$D$N@_Dj$r6&M-$9$k$?$a$N<jCJ$G$9!#
\e(B
82 * Overview:: auth-source
\e$B%i%$%V%i%j!<$N35MW
\e(B
84 * Secret Service API::
85 * Help for developers::
86 * GnuPG and EasyPG Assistant Configuration::
96 auth-source
\e$B%i%$%V%i%j!<$O!"!V;d$N%f!<%6!<L>$H%Q%9%o!<%I$O2?$@$C$1
\e(B?
\e$B!W$H
\e(B
97 \e$B$$$&@N$J$,$i$NG.Nu$JLd$$$KEz$($k$?$a$N!"
\e(BEmacs
\e$B$H
\e(B Gnus
\e$BMQ$N?t$"$kC1=c$J<j
\e(B
98 \e$BCJ$N0l$D$G$9!#
\e(B
100 (
\e$B$3$l$O2P;v$N$H$-$N!V>C2P4o$O$I$3$@
\e(B?
\e$B!W$H$$$&8E$/$+$i$NLd$$$H$O0[$J$j$^$9!#
\e(B)
102 Auth-source
\e$B%i%$%V%i%j!<$OC1$J$k%f!<%6!<L>$d%Q%9%o!<%I
\e(B (
\e$B$$$o$f$kHkL)
\e(B)
\e$B0J
\e(B
103 \e$B30$N$b$N$b07$&$3$H$,$G$-$^$9!#
\e(B
105 \e$BF1MM$K
\e(B auth-source
\e$B%i%$%V%i%j!<$OB?$/$NCyB"%P%C%/%(%s%I!"8=:_$OEAE}E*
\e(B
106 \e$B$J
\e(B ``netrc''
\e$B%P%/%(%s%I
\e(B (
\e$B$3$NJ8=q$N8e$NJ}$K$"$j$^$9
\e(B)
\e$B$^$?$O%7!<%/%l%C%H
\e(B
107 \e$B%5!<%S%9
\e(B API
\e$B$r%5%]!<%H$7$^$9!#$3$l$O
\e(B EIEIO
\e$B$K4p$E$$$?%P%/%(%s%I$G9T$J$o
\e(B
108 \e$B$l!"$b$7I,MW$J$i$"$J$?FH<+$N$b$N$r=q$/$3$H$,$G$-$^$9!#
\e(B
111 @chapter
\e$BMxMQ<T$N$?$a$N%X%k%W
\e(B
113 ``Netrc''
\e$B%U%!%$%k$O;v<B>e$NI8=`$G$9!#$=$l$i$O$3$N$h$&$K$J$C$F$$$^$9
\e(B:
115 machine @var{mymachine} login @var{myloginname} password @var{mypassword} port @var{myport}
118 @code{machine}
\e$B$O%5!<%P!<$G$9
\e(B (DNS
\e$BL>$^$?$O
\e(B IP
\e$B%"%I%l%9$N$I$A$i$+
\e(B)
\e$B!#
\e(B
119 @code{auth-source-search}
\e$B8!:w$K$*$1$k
\e(B @var{:host}
\e$B$G$b$"$j$^$9!#
\e(B
120 @code{host}
\e$B$b;H$&$3$H$,$G$-$^$9!#
\e(B
122 @code{port}
\e$B$O@\B3$9$k%]!<%H$^$?$O%W%m%H%3%k$G$9!#
\e(B
123 @code{auth-source-search}
\e$B8!:w$K$*$1$k
\e(B @var{:port}
\e$B$G$b$"$j$^$9!#
\e(B
125 @code{user}
\e$B$O%f!<%6!<L>$G$9!#
\e(B@code{auth-source-search}
\e$B8!:w$K$*$1
\e(B
126 \e$B$k
\e(B @var{:user}
\e$B$G$b$"$j$^$9!#
\e(B@code{login}
\e$B$*$h$S
\e(B @code{account}
\e$B$b;H$&$3
\e(B
127 \e$B$H$,$G$-$^$9!#
\e(B
129 \e$B6uGrJ8;z$O
\e(B auth-source
\e$B$K4X$7$F$O>o$K
\e(B OK
\e$B$G$9
\e(B (
\e$BB>$N%W%m%0%i%`$K$ONI$/$J
\e(B
130 \e$B$$$+$b$7$l$^$;$s$,
\e(B)
\e$B!#%G!<%?$O0zMQId$G0O$s$G$/$@$5$$!#%G!<%?Cf$N0zMQId$O
\e(B
131 \e$B$"$J$?$NM=A[DL$j
\e(B @code{\}
\e$B$G%(%9%1!<%W$7$F$/$@$5$$!#
\e(B
133 \e$B$9$Y$F$3$l$i$OG$0U$G$9!#$I$3$G$bF1$8%Q%9%o!<%I$r;H$&$?$a$K!"$?$@C1$K
\e(B
136 password @var{mypassword}
139 \e$B$H@_Dj$9$k$3$H$,$G$-$^$9
\e(B---
\e$B$H$$$&$3$H$,2DG=$G$"$k$3$H$r<($7$F$$$k$N$G$"$C
\e(B
140 \e$B$F!"$=$l$r?d>)$7$F$$$k$o$1$G$O$"$j$^$;$s!#7+$jJV$7$^$9$,
\e(B @emph{
\e$B$3$l$O;H
\e(B
141 \e$B$o$J$$$G$/$@$5$$
\e(B}
\e$B!#$5$b$J$$$H$R$I$$L\$K2q$&$G$7$g$&!#
\e(B
143 ``Netrc''
\e$B%U%!%$%k$ODL>o
\e(B @code{.authinfo}
\e$B$^$?$O
\e(B @code{.netrc}
\e$B$H8F$P$l
\e(B
144 \e$B$^$9!#:#$G$O
\e(B @code{.authinfo}
\e$B$NJ}$,Ia5Z$7$F$$$k$h$&$G$9$,!"8e$G$o$+$k$h
\e(B
145 \e$B$&$K
\e(B auth-source
\e$B%i%$%V%i%j!<$O$=$l$i$NN>J}$r<u$1F~$l$k$?$a$K!"$3$N:.Mp
\e(B
146 \e$B$r=uD9$7$F$$$^$9!#
\e(B
148 \e$B$b$78!:w$GLdBj$,$"$k$N$J$i
\e(B @code{auth-source-debug}
\e$B$r
\e(B @code{trivia}
\e$B$K
\e(B
149 \e$B@_Dj$7$F!"%i%$%V%i%j!<$,$I$N%[%9%H!"%]!<%H$*$h$S%f!<%6!<$r%A%'%C%/$7$F$$
\e(B
150 \e$B$k$+$r
\e(B @code{*Messages*}
\e$B%P%C%U%!!<$G8+$F$/$@$5$$!#F1MM$KB>$N$I$s$JLdBj
\e(B
151 \e$B$K$D$$$F$b!"2?$,%A%'%C%/$5$l$F$$$k$+$rD4$Y$k$N$,!"$"$J$?$NBh0lJb$G$9!#Bh
\e(B
152 \e$BFs$N%9%F%C%W$O$b$A$m$s$=$l$K$D$$$F$N
\e(B blog
\e$B$r=q$$$F!"%3%a%s%H$G2sEz$rBT$D
\e(B
155 \e$BJQ?t
\e(B @code{auth-sources}
\e$B$r%+%9%?%^%$%:$9$k$3$H$,$G$-$^$9!#$b$78E$$%P!<
\e(B
156 \e$B%8%g%s$N
\e(B Emacs
\e$B$r;H$C$F$$$k$+!"2?$+$NM}M3$N$?$a$K
\e(B auth-source
\e$B%i%$%V%i%j!<
\e(B
157 \e$B$,FI$_9~$^$l$J$$>l9g!"<!$N$b$N$,I,MW$K$J$k$G$7$g$&!#
\e(B
160 (require 'auth-source) ;;
\e$B$*$=$i$/ITMW
\e(B
161 (customize-variable 'auth-sources) ;;
\e$BG$0U!"0l2s$@$19T$J$C$F$/$@$5$$
\e(B
165 @code{auth-sources}
\e$BJQ?t$O!"8D!9$N%[%9%H$H%W%m%H%3%k$N$?$a$N
\e(B netrc
\e$B%U%!
\e(B
166 \e$B%$%k$^$?$O%7!<%/%l%C%H%5!<%S%9
\e(B API
\e$B$N<}=8J*$,$I$3$K:_$k$+
\e(B
167 \e$B$r
\e(B auth-source
\e$B%i%$%V%i%j!<$KCN$i$;$^$9!#9%$_$K1~$8$F$I$&$K$G$b$G$-$^$9
\e(B
168 \e$B$,!"%G%#%U%)%k%H$N:G$b4J7i$J@_Dj$O<!$NDL$j$G$9
\e(B:
171 ;;;
\e$B5l%G%#%U%)%k%H
\e(B: :host
\e$B$H
\e(B :port
\e$B$,I,MW$@$C$?$,!"$b$O$dITMW!#
\e(B
172 (setq auth-sources '((:source "~/.authinfo.gpg" :host t :port t)))
173 ;;;
\e$B$[$\Ey2A$@$,!"$h$jC;$$
\e(B (
\e$B8e=R$N
\e(B fallback
\e$B$K$D$$$F$N5-=R$r;2>H
\e(B)
\e$B!#
\e(B
174 (setq auth-sources '((:source "~/.authinfo.gpg")))
175 ;;;
\e$B$5$i$KC;$$
\e(B @emph{
\e$B%G%#%U%)%k%H
\e(B}:
176 (setq auth-sources '("~/.authinfo.gpg" "~/.authinfo" "~/.netrc"))
177 ;;;
\e$B%7!<%/%l%C%H
\e(B API
\e$B$N
\e(B @var{Login}
\e$B%3%l%/%7%g%s$r;H$&
\e(B
178 ;;; (@pxref{Secret Service API})
179 (setq auth-sources '("secrets:Login"))
182 \e$BFCDj$N%[%9%H$+%W%m%H%3%k$N%(%s%H%j!<$rJ#?t
\e(B @code{auth-sources}
\e$B$KDI2C$9
\e(B
183 \e$B$k$3$H$K$h$C$F!"$=$N%[%9%H$+%W%m%H%3%k$KFC2=$7$?
\e(B netrc
\e$B%U%!%$%k$r;}$D$3
\e(B
184 \e$B$H$,$G$-$^$9!#IaDL$3$l$OI,MW$"$j$^$;$s$,!"
\e(Bnetrc
\e$B%U%!%$%k$r6&M-$7$?$jJQ$o$C
\e(B
185 \e$B$?@_Dj$,$"$k>l9g$O0UL#$,$"$k$+$b$7$l$^$;$s
\e(B (90%
\e$B$N
\e(B Emacs
\e$B%f!<%6!<$OJQ$J
\e(B
186 \e$B@_Dj$r;}$C$F$$$F!";D$j$N
\e(B 10%
\e$B$O
\e(B @emph{
\e$BK\Ev$K
\e(B}
\e$BJQ$o$C$F$$$^$9
\e(B)
\e$B!#
\e(B
188 \e$B$3$l$O!":.:_$9$k
\e(B 2
\e$B$D$N%=!<%9$r;H$&Nc$G$9
\e(B:
191 (setq auth-sources '((:source (:secrets default) :host "myserver" :user "joe")
197 \e$B$b$7
\e(B @code{auth-sources}
\e$B$r%+%9%?%^%$%:$7$J$$$H!"%G%#%U%)%k%H$G@83h$9$k
\e(B
198 \e$B$3$H$K$J$k$G$7$g$&!#$=$N%G%#%U%)%k%H$H$O!"$I$s$J%[%9%H$b%]!<%H$K$D$$$F
\e(B
199 \e$B$b
\e(B netrc
\e$B%U%!%$%k
\e(B @file{~/.authinfo.gpg}
\e$B$r;2>H$9$k$H$$$&$3$H$G$9!#$3$l
\e(B
200 \e$B$O
\e(B GnuPG
\e$B$G0E9f2=$5$l$?%U%!%$%k$G$9
\e(B (@pxref{GnuPG and EasyPG Assistant
201 Configuration})
\e$B!#
\e(B
203 \e$B$b$7$=$NFI$_9~$_$K<:GT$9$k$H!"0E9f2=$5$l$F$$$J$$
\e(B netrc
\e$B%U%!%$%k$G$"
\e(B
204 \e$B$k
\e(B @code{~/.authinfo}
\e$B!"B3$$$F
\e(B @code{~/.netrc}
\e$B$,;H$o$l$^$9!#
\e(B
206 \e$BBeI=E*$J
\e(B netrc
\e$B9T$NNc$O!"%]!<%H$,L5$$$b$N$G$9!#
\e(B
209 machine YOURMACHINE login YOU password YOURPASSWORD
212 \e$B$3$l$O$I$NG'>Z%]!<%H$K$bBP1~$7$^$9!#4JC1$G$7$g$&
\e(B?
\e$B$G$b
\e(B SMTP
\e$B%5!<%P!<
\e(B
213 \e$B$,
\e(B IMAP
\e$B%5!<%P!<$H0[$J$k%Q%9%o!<%I$rI,MW$H$9$k$=$N%^%7%s$N%]!<%H
\e(B 433
\e$B$K
\e(B
214 \e$B$"$k$J$i$P!"$I$&$G$9$+!)
\e(B
217 machine YOURMACHINE login YOU password SMTPPASSWORD port 433
218 machine YOURMACHINE login YOU password GENERALPASSWORD
221 url-auth
\e$BG'>Z
\e(B (HTTP/HTTPS)
\e$B$N$?$a$K$O!"$3$l$r
\e(B netrc
\e$B%U%!%$%k$KCV$$$F$*$/
\e(B
222 \e$BI,MW$,$"$j$^$9
\e(B:
225 machine yourmachine.com:80 port http login testuser password testpass
228 \e$B$3$l$O
\e(B HTTP
\e$B$G@\B3$9$k$I$s$J3&LL$HG'>ZJ}<0
\e(B (basic
\e$B$^$?$O
\e(B digest)
\e$B$K$bBP
\e(B
229 \e$B1~$7$^$9!#
\e(BHTTPS
\e$B$bF1MM$K@_Dj$7$^$9!#$b$C$H$-$a:Y$+$$@)8f$,I,MW$J$i!"
\e(B
230 url-auth
\e$B$N%=!<%9%3!<%I$HJQ?t$rD4$Y$F$/$@$5$$!#
\e(B
232 Tramp
\e$B$NG'>Z$K$O$3$l$r;H$C$F$/$@$5$$
\e(B:
235 machine yourmachine.com port scp login testuser password testpass
238 \e$B%]!<%H$O
\e(B Tramp
\e$B$N@\B3J}K!$r0UL#$9$k$3$H$KCm0U$7$F$/$@$5$$!#$b$7%]!<%H$N
\e(B
239 \e$B9`$r;H$o$J$1$l$P!":G=i$NJ}$G@bL@$7$?$h$&$K!"$9$Y$F$N
\e(B Tramp
\e$B$NJ}<0$K9gCW
\e(B
240 \e$B$7$^$9!#
\e(BTramp
\e$B$K$O
\e(B 88
\e$B<oN`$N@\B3J}K!$,$"$k$N$G!"JQ$o$C$?@_Dj$,$"$k>l9g$O
\e(B
241 \e$B$3$l$,I,MW$+$b$7$l$^$;$s
\e(B (
\e$B$=$l$i$K$D$$$F$N0JA0$N%3%a%s%H$r8+$F$/$@$5$$
\e(B)
\e$B!#
\e(B
243 @node Secret Service API
244 @chapter
\e$B%7!<%/%l%C%H%5!<%S%9
\e(B API
246 TODO:
\e$B$I$&F/$/$+$r0lHLE*$K!"
\e(Bsecrets.el
\e$B$O$I$&$d$k$+!"$$$/$D$+$NNc!#
\e(B
248 @node Help for developers
249 @chapter
\e$B3+H/<T$N$?$a$N%X%k%W
\e(B
251 auth-source
\e$B%i%$%V%i%j!<$O!"2?$i$+$NF0:n$r9T$J$C$?7k2L$N5-O?$r:N$k$3$H$,
\e(B
254 @defvar auth-source-debug
255 \e$B$3$NJQ?t$r
\e(B @code{trivia}
\e$B$K$9$k$H!"
\e(B@code{*Messages*}
\e$B%P%C%U%!!<$X$N$?$/
\e(B
256 \e$B$5$s$N=PNO$r8+$k$3$H$,$G$-$^$9!#$"$k$$$O$3$l$K
\e(B @code{message}
\e$B$K;w$?4X?t
\e(B
257 \e$B$r@_Dj$7$F!"$"$J$?FH<+$N$d$jJ}$G5-O?$r:N$k$3$H$b$G$-$^$9!#
\e(B
260 auth-source
\e$B%i%$%V%i%j!<$K$O!"30It$G;H$&$?$a$N4X?t$O>/$7$7$+$"$j$^$;$s!#
\e(B
262 @defun auth-source-search SPEC
264 TODO:
\e$B$I$&$d$C$F
\e(B docstring
\e$B$r4^$a$k
\e(B?
268 \e$B$G$O
\e(B Gnus
\e$B$N
\e(B @code{nnimap.el}
\e$B$+$i
\e(B @code{auth-source-search}
\e$B$r;H$&Nc$r
\e(B
269 \e$B8+$F$_$^$7$g$&!#
\e(B
272 (defun nnimap-credentials (address ports)
273 (let* ((auth-source-creation-prompts
274 '((user . "IMAP user at %h: ")
275 (secret . "IMAP password for %u@@%h: ")))
276 (found (nth 0 (auth-source-search :max 1
279 :require '(:user :secret)
282 (list (plist-get found :user)
283 (let ((secret (plist-get found :secret)))
284 (if (functionp secret)
287 (plist-get found :save-function))
291 @c
\e$B0J2<$NLuJ8$N<A$,0-$$$N$O86J8$N=PMh$N9s$5$N$?$a!#
\e(B
292 \e$B$3$N8F$S=P$7$O$=$N7k2L$K%f!<%6!<L>$H%Q%9%o!<%I
\e(B (
\e$B<0Cf$N
\e(B @code{secret})
\e$B$,
\e(B
293 \e$B4^$^$l$k$3$H$r5a$a$F$$$^$9!#$5$i$K!"$b$7$=$N9`L\$,$^$@L5$+$C$?$i:n$kI,MW
\e(B
294 \e$B$b$"$j$^$9!#$=$N9`L\$r:n$k:]$K%f!<%6!<$H$d$j<h$j$9$k>l9g$O!"<0Cf$K$"$k<A
\e(B
295 \e$BLdJ8$,;H$o$l$^$9!#$3$N8F$S=P$7$O!"%f!<%6!<$X$N<ALdJ8$N%G%#%U%)%k%HCM$N$?
\e(B
296 \e$B$a$K
\e(B @code{auth-source-creation-defaults}
\e$B$K$"$k%G!<%?$rEO$9$3$H$b$G$-$^
\e(B
299 \e$B%Q%9%o!<%I$,$b$74X?t$@$C$?$i!"$=$l$OI>2A$5$l$kI,MW$,$"$k$3$H$KCm0U$7$F$/
\e(B
300 \e$B$@$5$$!#$"$kDxEY$N0BA4BP:v$H$7$F!"$=$l$O4X?t$GJq$^$l$F$$$^$9!#
\e(B
302 \e$B$=$N8e%m%0%$%s$K@.8y$7$?$i
\e(B @code{nnimap.el}
\e$B$O<!$N$h$&
\e(B
303 \e$B$K
\e(B @code{:save-function}
\e$B$r8F$S$^$9
\e(B:
306 (when (functionp (nth 2 credentials))
307 (funcall (nth 2 credentials)))
310 \e$B$3$l$O
\e(B @code{:save-function}
\e$B$NM-L5$K4X$o$i$9F0:n$9$k$G$7$g$&!#
\e(B
311 @code{:save-function}
\e$B$O?7$7$$9`L\$,:n$i$l$?$H$-$@$1Ds6!$5$l$k$N$G!"$3$l
\e(B
312 \e$B$O<B:]$K!V%m%0%$%s@.8y8e!W$J$N$G$9!#$=$7$F2f!9$,$A$g$&$I;H$C$F$$$?G'>Z>p
\e(B
313 \e$BJs
\e(B (
\e$B$?$@$7$3$l$,?7$?:n$i$l$?$b$N$G$"$k$N$J$i
\e(B)
\e$B$r%;!<%V$7$^$9!#
\e(B
315 \e$B:G=i$K$=$l$,8F$P$l$?8e!"
\e(B@code{:save-function}
\e$B$,:FEYAv$k$3$H$O$"$j$^$;$s
\e(B
316 (
\e$B$7$+$7$b$7
\e(B @code{auth-source-debug}
\e$B$r
\e(B @code{'trivia}
\e$B$K@_Dj$7$F$"$k$J
\e(B
317 \e$B$i$P!"$=$N$3$H$rB?>/5-O?$7$^$9!#$3$l$9$J$o$A!"$=$l$O]5F+$7$$F1$8<ALd$,7+
\e(B
318 \e$B$jJV$5$l$k$3$H$O$J$$$H$$$&$3$H$G$9!#
\e(B
320 \e$B$7$?$,$C$F
\e(B @code{:create t}
\e$B$r@_Dj$7$?
\e(B API
\e$B%f!<%6!<$N@UG$$O!"$b$7B8:_$9
\e(B
321 \e$B$k$J$i$P
\e(B @code{:save-function}
\e$B$r8F$V$3$H$G$9!#
\e(B
323 @defun auth-source-delete SPEC
325 TODO:
\e$B$I$&$d$C$F
\e(B docstring
\e$B$r4^$a$k
\e(B?
329 @defun auth-source-forget SPEC
331 TODO:
\e$B$I$&$d$C$F
\e(B docstring
\e$B$r4^$a$k
\e(B?
335 @defun auth-source-forget+ SPEC
337 TODO:
\e$B$I$&$d$C$F
\e(B docstring
\e$B$r4^$a$k
\e(B?
341 @node GnuPG and EasyPG Assistant Configuration
342 @appendix GnuPG
\e$B$*$h$S
\e(B EasyPG
\e$B%"%7%9%?%s%H$N@_Dj
\e(B
344 @code{auth-sources}
\e$B$r%+%9%?%^%$%:$7$J$$>l9g!"
\e(Bauth-source
\e$B%i%$%V%i%j!<
\e(B
345 \e$B$O
\e(B @file{~/.authinfo.gpg} (GnuPG
\e$B$G0E9f2=$5$l$?%U%!%$%k
\e(B)
\e$B$rFI$_9~$_$^$9!#
\e(B
346 \e$B$=$N8e$G
\e(B @file{~/.authinfo}
\e$B$r8!::$7$^$9$,!"$=$N$h$&$J0E9f2=$5$l$F$$$J$$
\e(B
347 \e$B%U%!%$%k$r;H$&$3$H$O?d>)$7$^$;$s!#
\e(B
349 Emacs 23
\e$B0J9_$G$O
\e(B @code{*.gpg}
\e$B%U%!%$%k$N0E9f$r<+F0E*$K2r$/$?$a$N%*%W%7%g
\e(B
350 \e$B%s
\e(B @code{auto-encryption-mode}
\e$B$,$"$j$^$9!#%G%#%U%)%k%H$GM-8z$G$9!#$b$7
\e(B
351 \e$B2?$i$+$NM}M3$G
\e(B Emacs
\e$B$N=i4|$NHG$r;H$C$F$$$k>l9g$O!"0J2<$,I,MW$G$9
\e(B:
358 \e$B$"$J$?$N
\e(B GnuPG
\e$B$N%Q%9%o!<%I$,%-%c%C%7%e$5$l$k$h$&$K$7$?$$$J$i!"
\e(B
359 @code{gpg-agent}
\e$B$^$?$O
\e(B EasyPG
\e$B%"%7%9%"%s%H$r@_Dj$7$F$/$@$5
\e(B
360 \e$B$$
\e(B (@pxref{Caching Passphrases, , Caching Passphrases, epa})
\e$B!#
\e(B
362 \e$B<jAa$/;H$$;O$a$k$K$O!"$^$:0J2<$N@_Ld$KBP$9$kEz$rMQ0U$7$F$/$@$5$$
\e(B:
366 GnuPG
\e$B$N%P!<%8%g%s
\e(B 1
\e$B$G$O$J$/!"%P!<%8%g%s
\e(B 2
\e$B$r;H$C$F$$$^$9$+
\e(B?
368 \e$B8x3+800E9f$G$J$J$/!"6&DL800E9f$r;H$C$F$$$^$9$+
\e(B?
370 gpg-agent
\e$B$r;H$$$?$$$G$9$+
\e(B?
373 \e$B0J2<$O>e5-$N<A5?$KBP$9$k$"$J$?$N2sEz$K4p$E$$$?@_Dj$G$9
\e(B:
375 @multitable {111} {222} {333} {configuration configuration configuration}
376 @item @b{1} @tab @b{2} @tab @b{3} @tab Configuration
377 @item Yes @tab Yes @tab Yes @tab gpg-agent
\e$B$r@_Dj$7$F$/$@$5$$!#
\e(B
378 @item Yes @tab Yes @tab No @tab gpg-agent
\e$BL5$7$G$O$G$-$^$;$s!#
\e(B
379 @item Yes @tab No @tab Yes @tab gpg-agent
\e$B$r@_Dj$7$F$/$@$5$$!#
\e(B
380 @item Yes @tab No @tab No @tab gpg-agent
\e$BL5$7$G$O$G$-$^$;$s!#
\e(B
381 @item No @tab Yes @tab Yes @tab ELisp
\e$BHG$N%Q%9%o!<%I!&%-%c%C%7%e$r@_Dj$7$F$/$@$5$$!#
\e(B
382 @item No @tab Yes @tab No @tab ELisp
\e$BHG$N%Q%9%o!<%I!&%-%c%C%7%e$r@_Dj$7$F$/$@$5$$!#
\e(B
383 @item No @tab No @tab Yes @tab gpg-agent
\e$B$r@_Dj$7$F$/$@$5$$!#
\e(B
384 @item No @tab No @tab No @tab gpg-agent
\e$BL5$7$G$O$G$-$^$;$s!#
\e(B
387 gpg-agent
\e$B$r@_Dj$9$k$K$O
\e(B GnuPG
\e$B%^%K%e%"%k
\e(B (@pxref{Invoking GPG-AGENT, ,
388 Invoking GPG-AGENT, gnupg})
\e$B$N@bL@$K=>$C$F$/$@$5$$!#
\e(B
390 ELisp
\e$BHG$N%Q%9%o!<%I!&%-%c%C%7%e$r;H$&>l9g
\e(B
391 \e$B$O
\e(B @code{epa-file-cache-passphrase-for-symmetric-encryption}
\e$B$r@_Dj$7$F
\e(B
399 @chapter Function Index
403 @chapter Variable Index
409 @c coding: iso-2022-7bit
412 @c use-kuten-for-period: t
413 @c use-touten-for-comma: t