Synch with No Gnus (201201010159).
[elisp/gnus-doc-ja.git] / auth-ja.texi
1 \input texinfo                  @c -*-texinfo-*-
2
3 @include gnus-overrides-ja.texi
4
5 @setfilename auth-ja
6 @settitle Emacs auth-source Library @value{VERSION}
7
8 @set VERSION 0.3
9
10 @copying
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
12
13 Copyright @copyright{} 2008-2011 Free Software Foundation, Inc.
14
15 @quotation
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''
22 in the Emacs manual.
23
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
29 \e$B$$$^$9!#\e(B
30
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.''
34
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
38
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.
43
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
48 @end quotation
49 @end copying
50
51 @dircategory Emacs lisp libraries
52 @direntry
53 * Auth-source-ja: (auth-ja).    The Emacs auth-source library (Japanese).
54 @end direntry
55
56 @titlepage
57 @ifset WEBHACKDEVEL
58 @title Emacs auth-source Library (DEVELOPMENT VERSION)
59 @end ifset
60 @ifclear WEBHACKDEVEL
61 @title Emacs auth-source Library
62 @end ifclear
63 @author by Ted Zlatanov
64 @page
65 @vskip 0pt plus 1filll
66 @insertcopying
67 @end titlepage
68
69 @contents
70
71 @ifnottex
72 @node Top
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
75
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
78
79 @insertcopying
80
81 @menu
82 * Overview::                    auth-source \e$B%i%$%V%i%j!<$N35MW\e(B
83 * Help for users::
84 * Secret Service API::
85 * Help for developers::
86 * GnuPG and EasyPG Assistant Configuration::
87 * Index::
88 * Function Index::
89 * Variable Index::
90 @end menu
91 @end ifnottex
92
93 @node Overview
94 @chapter \e$B35MW\e(B
95
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
99
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)
101
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
104
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
109
110 @node Help for users
111 @chapter \e$BMxMQ<T$N$?$a$N%X%k%W\e(B
112
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:
114 @example
115 machine @var{mymachine} login @var{myloginname} password @var{mypassword} port @var{myport}
116 @end example
117
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
121
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
124
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
128
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
132
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
134
135 @example
136 password @var{mypassword}
137 @end example
138
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
142
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
147
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
153 \e$B$3$H$G$9!#\e(B
154
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
158
159 @lisp
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
162 @end lisp
163
164 @defvar auth-sources
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:
169
170 @lisp
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"))
180 @end lisp
181
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
187
188 \e$B$3$l$O!":.:_$9$k\e(B 2\e$B$D$N%=!<%9$r;H$&Nc$G$9\e(B:
189
190 @lisp
191 (setq auth-sources '((:source (:secrets default) :host "myserver" :user "joe")
192                      "~/.authinfo.gpg"))
193 @end lisp
194
195 @end defvar
196
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
202
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
205
206 \e$BBeI=E*$J\e(B netrc \e$B9T$NNc$O!"%]!<%H$,L5$$$b$N$G$9!#\e(B
207
208 @example
209 machine YOURMACHINE login YOU password YOURPASSWORD
210 @end example
211
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
215
216 @example
217 machine YOURMACHINE login YOU password SMTPPASSWORD port 433
218 machine YOURMACHINE login YOU password GENERALPASSWORD
219 @end example
220
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:
223
224 @example
225 machine yourmachine.com:80 port http login testuser password testpass
226 @end example
227
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
231
232 Tramp \e$B$NG'>Z$K$O$3$l$r;H$C$F$/$@$5$$\e(B:
233
234 @example
235 machine yourmachine.com port scp login testuser password testpass
236 @end example
237
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
242
243 @node Secret Service API
244 @chapter \e$B%7!<%/%l%C%H%5!<%S%9\e(B API
245
246 TODO: \e$B$I$&F/$/$+$r0lHLE*$K!"\e(Bsecrets.el \e$B$O$I$&$d$k$+!"$$$/$D$+$NNc!#\e(B
247
248 @node Help for developers
249 @chapter \e$B3+H/<T$N$?$a$N%X%k%W\e(B
250
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
252 \e$B$G$-$^$9!#\e(B
253
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
258 @end defvar
259
260 auth-source \e$B%i%$%V%i%j!<$K$O!"30It$G;H$&$?$a$N4X?t$O>/$7$7$+$"$j$^$;$s!#\e(B
261
262 @defun auth-source-search SPEC
263
264 TODO: \e$B$I$&$d$C$F\e(B docstring \e$B$r4^$a$k\e(B?
265
266 @end defun
267
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
270
271 @example
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
277                                            :host address
278                                            :port ports
279                                            :require '(:user :secret)
280                                            :create t))))
281     (if found
282         (list (plist-get found :user)
283               (let ((secret (plist-get found :secret)))
284                 (if (functionp secret)
285                     (funcall secret)
286                   secret))
287               (plist-get found :save-function))
288       nil)))
289 @end example
290
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
297 \e$B$9!#\e(B
298
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
301
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:
304
305 @example
306 (when (functionp (nth 2 credentials))
307    (funcall (nth 2 credentials)))
308 @end example
309
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
314
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
319
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
322
323 @defun auth-source-delete SPEC
324
325 TODO: \e$B$I$&$d$C$F\e(B docstring \e$B$r4^$a$k\e(B?
326
327 @end defun
328
329 @defun auth-source-forget SPEC
330
331 TODO: \e$B$I$&$d$C$F\e(B docstring \e$B$r4^$a$k\e(B?
332
333 @end defun
334
335 @defun auth-source-forget+ SPEC
336
337 TODO: \e$B$I$&$d$C$F\e(B docstring \e$B$r4^$a$k\e(B?
338
339 @end defun
340
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
343
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
348
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:
352
353 @lisp
354 (require 'epa-file)
355 (epa-file-enable)
356 @end lisp
357
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
361
362 \e$B<jAa$/;H$$;O$a$k$K$O!"$^$:0J2<$N@_Ld$KBP$9$kEz$rMQ0U$7$F$/$@$5$$\e(B:
363
364 @enumerate
365 @item
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?
367 @item
368 \e$B8x3+800E9f$G$J$J$/!"6&DL800E9f$r;H$C$F$$$^$9$+\e(B?
369 @item
370 gpg-agent \e$B$r;H$$$?$$$G$9$+\e(B?
371 @end enumerate
372
373 \e$B0J2<$O>e5-$N<A5?$KBP$9$k$"$J$?$N2sEz$K4p$E$$$?@_Dj$G$9\e(B:
374
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
385 @end multitable
386
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
389
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
392 \e$B$/$@$5$$!#\e(B
393
394 @node Index
395 @chapter Index
396 @printindex cp
397
398 @node Function Index
399 @chapter Function Index
400 @printindex fn
401
402 @node Variable Index
403 @chapter Variable Index
404 @printindex vr
405
406 @bye
407
408 @c Local Variables:
409 @c coding: iso-2022-7bit
410 @c fill-column: 72
411 @c mode: texinfo
412 @c use-kuten-for-period: t
413 @c use-touten-for-comma: t
414 @c End: