Synch with No Gnus (201111152323).
[elisp/gnus-doc-ja.git] / auth-ja.texi
index 9b660c8..7ae1c3b 100644 (file)
@@ -1,19 +1,16 @@
 \input texinfo                  @c -*-texinfo-*-
 
+@include gnus-overrides-ja.texi
+
 @setfilename auth-ja
 @settitle Emacs auth-source Library @value{VERSION}
-@set VERSION 0.1
 
-@dircategory Emacs
-@direntry
-* Auth-source-ja: (auth-ja).   The Emacs auth-source library (Japanese).
-@end direntry
+@set VERSION 0.3
 
 @copying
 \e$B$3$N%U%!%$%k$O\e(B Emacs auth-source \e$B%i%$%V%i%j!<$r@bL@$7$^$9!#\e(B
 
-Copyright @copyright{} 2008, 2009
-Free Software Foundation, Inc.
+Copyright @copyright{} 2008-2011 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -51,21 +48,27 @@ license to the document, as described in section 6 of the license.
 @end quotation
 @end copying
 
-@tex
+@dircategory Emacs lisp libraries
+@direntry
+* Auth-source-ja: (auth-ja).    The Emacs auth-source library (Japanese).
+@end direntry
 
 @titlepage
+@ifset WEBHACKDEVEL
+@title Emacs auth-source Library (DEVELOPMENT VERSION)
+@end ifset
+@ifclear WEBHACKDEVEL
 @title Emacs auth-source Library
-
+@end ifclear
 @author by Ted Zlatanov
 @page
-
 @vskip 0pt plus 1filll
 @insertcopying
 @end titlepage
-@page
 
-@end tex
+@contents
 
+@ifnottex
 @node Top
 @top Emacs auth-source
 \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
@@ -73,70 +76,147 @@ license to the document, as described in section 6 of the license.
 \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
 \e$B$"$k\e(B) \e$B0l$D$N@_Dj$r6&M-$9$k$?$a$N<jCJ$G$9!#\e(B
 
+@insertcopying
+
 @menu
 * Overview::                    auth-source \e$B%i%$%V%i%j!<$N35MW\e(B
 * Help for users::
+* Secret Service API::
 * Help for developers::
+* GnuPG and EasyPG Assistant Configuration::
 * Index::
 * Function Index::
 * Variable Index::
 @end menu
+@end ifnottex
 
 @node Overview
 @chapter \e$B35MW\e(B
 
-To be done.
+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
+\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
+\e$BCJ$N0l$D$G$9!#\e(B
+
+(\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)
+
+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
+\e$B30$N$b$N$b07$&$3$H$,$G$-$^$9!#\e(B
+
+\e$BF1MM$K\e(B auth-source \e$B%i%$%V%i%j!<$OB?$/$NCyB"%P%C%/%(%s%I!"8=:_$OEAE}E*\e(B
+\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
+\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
+\e$B$l!"$b$7I,MW$J$i$"$J$?FH<+$N$b$N$r=q$/$3$H$,$G$-$^$9!#\e(B
 
 @node Help for users
 @chapter \e$BMxMQ<T$N$?$a$N%X%k%W\e(B
 
-\e$B$b$7%]!<%H$GLdBj$,$"$k$N$J$i!"\e(B@code{gnus-verbose} \e$B$NCM$rBg$-$/$7$F!"$=$N\e(B
-\e$B%i%$%V%i%j!<$,$I$N%]!<%H$r%A%'%C%/$7$F$$$k$+$r8+$F$/$@$5$$!#F1MM$KB>$N$I\e(B
-\e$B$s$JLdBj$K$D$$$F$b!"2?$,%A%'%C%/$5$l$F$$$k$+$rD4$Y$k$N$,!"$"$J$?$NBh0lJb\e(B
-\e$B$G$9!#\e(B
+``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:
+@example
+machine @var{mymachine} login @var{myloginname} password @var{mypassword} port @var{myport}
+@end example
+
+@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
+@code{auth-source-search} \e$B8!:w$K$*$1$k\e(B @var{:host} \e$B$G$b$"$j$^$9!#\e(B
+@code{host} \e$B$b;H$&$3$H$,$G$-$^$9!#\e(B
+
+@code{port} \e$B$O@\B3$9$k%]!<%H$^$?$O%W%m%H%3%k$G$9!#\e(B
+@code{auth-source-search} \e$B8!:w$K$*$1$k\e(B @var{:port} \e$B$G$b$"$j$^$9!#\e(B
+
+@code{user} \e$B$O%f!<%6!<L>$G$9!#\e(B@code{auth-source-search} \e$B8!:w$K$*$1\e(B
+\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
+\e$B$H$,$G$-$^$9!#\e(B
+
+\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
+\e$B$$$+$b$7$l$^$;$s$,\e(B)\e$B!#%G!<%?$O0zMQId$G0O$s$G$/$@$5$$!#%G!<%?Cf$N0zMQId$O\e(B
+\e$B$"$J$?$NM=A[DL$j\e(B @code{\} \e$B$G%(%9%1!<%W$7$F$/$@$5$$!#\e(B
 
-\e$B@_Dj\e(B:
+\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
+
+@example
+password @var{mypassword}
+@end example
+
+\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
+\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
+\e$B$o$J$$$G$/$@$5$$\e(B}\e$B!#$5$b$J$$$H$R$I$$L\$K2q$&$G$7$g$&!#\e(B
+
+``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
+\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
+\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
+\e$B$r=uD9$7$F$$$^$9!#\e(B
+
+\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
+\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
+\e$B$k$+$r\e(B @code{*Messages*} \e$B%P%C%U%!!<$G8+$F$/$@$5$$!#F1MM$KB>$N$I$s$JLdBj\e(B
+\e$B$K$D$$$F$b!"2?$,%A%'%C%/$5$l$F$$$k$+$rD4$Y$k$N$,!"$"$J$?$NBh0lJb$G$9!#Bh\e(B
+\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
+\e$B$3$H$G$9!#\e(B
+
+\e$BJQ?t\e(B @code{auth-sources} \e$B$r%+%9%?%^%$%:$9$k$3$H$,$G$-$^$9!#$b$78E$$%P!<\e(B
+\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
+\e$B$,FI$_9~$^$l$J$$>l9g!"<!$N$b$N$,I,MW$K$J$k$G$7$g$&!#\e(B
 
 @lisp
-(require 'auth-source)
+(require 'auth-source)             ;; \e$B$*$=$i$/ITMW\e(B
 (customize-variable 'auth-sources) ;; \e$BG$0U!"0l2s$@$19T$J$C$F$/$@$5$$\e(B
 @end lisp
 
 @defvar auth-sources
-@var{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
-\e$B%k$,$I$3$K:_$k$+$r\e(B auth-source \e$B%i%$%V%i%j!<$KCN$i$;$^$9!#9%$_$K1~$8$F$I\e(B
-\e$B$&$K$G$b$G$-$^$9$,!"%G%#%U%)%k%H$N:G$b4J7i$J@_Dj$O<!$NDL$j$G$9\e(B:
+@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
+\e$B%$%k$^$?$O%7!<%/%l%C%H%5!<%S%9\e(B API \e$B$N<}=8J*$,$I$3$K:_$k$+\e(B
+\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
+\e$B$,!"%G%#%U%)%k%H$N:G$b4J7i$J@_Dj$O<!$NDL$j$G$9\e(B:
 
 @lisp
-(setq auth-sources '((:source "~/.authinfo.gpg" :host t :protocol t)))
+;;; \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
+(setq auth-sources '((:source "~/.authinfo.gpg" :host t :port t)))
+;;; \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
+(setq auth-sources '((:source "~/.authinfo.gpg")))
+;;; \e$B$5$i$KC;$$\e(B @emph{\e$B%G%#%U%)%k%H\e(B}:
+(setq auth-sources '("~/.authinfo.gpg" "~/.authinfo" "~/.netrc"))
+;;; \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
+;;; (@pxref{Secret Service API})
+(setq auth-sources '("secrets:Login"))
+@end lisp
+
+\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
+\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
+\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
+\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
+\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
+
+\e$B$3$l$O!":.:_$9$k\e(B 2\e$B$D$N%=!<%9$r;H$&Nc$G$9\e(B:
+
+@lisp
+(setq auth-sources '((:source (:secrets default) :host "myserver" :user "joe")
+                     "~/.authinfo.gpg"))
 @end lisp
 
-\e$B8D!9$N%[%9%H$^$?$O%W%m%H%3%k$N$?$a$NJ#?t$N9`L\$r$=$N%j%9%H$K2C$($k$3$H$K\e(B
-\e$B$h$C$F!"$=$N%[%9%H$d%W%m%H%3%k$N$?$a$NFCDj$N\e(B netrc \e$B%U%!%$%k$r;}$D$3$H$,\e(B
-\e$B$G$-$^$9!#\e(B
 @end defvar
 
-``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:
+\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
+\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
+\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
+\e$B$O\e(B GnuPG \e$B$G0E9f2=$5$l$?%U%!%$%k$G$9\e(B (@pxref{GnuPG and EasyPG Assistant
+Configuration})\e$B!#\e(B
+
+\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
+\e$B$k\e(B @code{~/.authinfo}\e$B!"B3$$$F\e(B @code{~/.netrc} \e$B$,;H$o$l$^$9!#\e(B
+
+\e$BBeI=E*$J\e(B netrc \e$B9T$NNc$O!"%]!<%H$,L5$$$b$N$G$9!#\e(B
+
 @example
-machine mymachine login myloginname password mypassword port myport
+machine YOURMACHINE login YOU password YOURPASSWORD
 @end example
 
-\e$B%]!<%H$N;XDj$OL5$/$F$b9=$$$^$;$s!#L5$$>l9g!"\e(Bauth-source \e$B$O$I$s$J%]!<%H\e(B
-\e$B$b\e(B OK \e$B$J$N$@$H2r<a$7$^$9!#<B:]$N$H$3$m!"%]!<%H$O%W%m%H%3%k$NL>A0$+%]!<%H\e(B
-\e$BHV9f$N$I$A$i$G$bNI$$$N$G!"$b$7$=$&$7$?$$$N$J$i$P!"%]!<%H\e(B 143 \e$B$H%W%m%H%3\e(B
-\e$B%k\e(B ``imap'' \e$B$N$?$a$N9`L\$rJL!9$K;}$D$3$H$,$G$-$^$9!#\e(B
-
-\e$B$b$7\e(B @var{auth-sources} \e$B$r%+%9%?%^%$%:$7$J$$$H!"%G%#%U%)%k%H$G@83h$9$k$3\e(B
-\e$B$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
-\e$B$b\e(B netrc \e$B%U%!%$%k\e(B @code{~/.authinfo.gpg} \e$B$r;2>H$9$k$H$$$&$3$H$G$9!#$3$l\e(B
-\e$B$O0E9f2=$5$l$?%U%!%$%k$G$9!#\e(BEPA \e$B$r;H$($k$h$&$K$7$F$$$k>l9g$K8B$j$^$9$,!"\e(B
-\e$B$=$l$,6/$/?d>)$5$l$^$9!#\e(B
+\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
+\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
+\e$B$"$k$J$i$P!"$I$&$G$9$+!)\e(B
 
-@lisp
-(require 'epa-file)
-(epa-file-enable)
-(setq epa-file-cache-passphrase-for-symmetric-encryption t) ; \e$B$H$F$b=EMW\e(B
-@end lisp
+@example
+machine YOURMACHINE login YOU password SMTPPASSWORD port 433
+machine YOURMACHINE login YOU password GENERALPASSWORD
+@end example
 
 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
 \e$BI,MW$,$"$j$^$9\e(B:
@@ -145,8 +225,9 @@ 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$
 machine yourmachine.com:80 port http login testuser password testpass
 @end example
 
-\e$B$3$l$O$I$s$J3&LL$HG'>ZJ}<0\e(B (basic \e$B$^$?$O\e(B digest) \e$B$K$b9gCW$7$^$9!#$b$C$H\e(B
-\e$B>\:Y$J@)8f$,I,MW$J>l9g$O!"\e(Burl-auth \e$B$N%=!<%9%3!<%I$HJQ?t$rD4$Y$F$/$@$5$$!#\e(B
+\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
+\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
+url-auth \e$B$N%=!<%9%3!<%I$HJQ?t$rD4$Y$F$/$@$5$$!#\e(B
 
 Tramp \e$B$NG'>Z$K$O$3$l$r;H$C$F$/$@$5$$\e(B:
 
@@ -156,40 +237,160 @@ machine yourmachine.com port scp login testuser password testpass
 
 \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
 \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
-\e$B$7$^$9!#\e(B
+\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
+\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
+
+@node Secret Service API
+@chapter \e$B%7!<%/%l%C%H%5!<%S%9\e(B API
+
+TODO: \e$B$I$&F/$/$+$r0lHLE*$K!"\e(Bsecrets.el \e$B$O$I$&$d$k$+!"$$$/$D$+$NNc!#\e(B
 
 @node Help for developers
 @chapter \e$B3+H/<T$N$?$a$N%X%k%W\e(B
 
-auth-source \e$B%i%$%V%i%j!<$K$O!"30It$G;H$&$?$a$N4X?t$O0l$D$7$+$"$j$^$;$s!#\e(B
+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
+\e$B$G$-$^$9!#\e(B
+
+@defvar auth-source-debug
+\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
+\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
+\e$B$r@_Dj$7$F!"$"$J$?FH<+$N$d$jJ}$G5-O?$r:N$k$3$H$b$G$-$^$9!#\e(B
+@end defvar
 
-@defun auth-source-user-or-password mode host port
-\e$B%[%9%H\e(B @var{host} \e$B$*$h$S%]!<%H\e(B @var{port} \e$B$N$?$a$N\e(B @var{mode} \e$B$G7h$^$k!"\e(B
-\e$BE,@Z$JG'>Z%H!<%/%s$r<h$j9~$_$^$9!#\e(B@code{gnus-verbose} \e$B$,\e(B 9 \e$B0J>e$G$"$l$P!"\e(B
-\e$B%G%P%C%0$N$?$a$N%a%C%;!<%8$rI=<($7$^$9!#\e(B
+auth-source \e$B%i%$%V%i%j!<$K$O!"30It$G;H$&$?$a$N4X?t$O>/$7$7$+$"$j$^$;$s!#\e(B
 
-\e$B$b$7\e(B @var{mode} \e$B$,J8;zNs$N%j%9%H$J$i$P!"4X?t$OJ8;zNs$N%j%9%H$^$?\e(B
-\e$B$O\e(B @code{nil} \e$B$rJV$7$^$9!#$=$l$,$?$@$NJ8;zNs$J$i$P!"4X?t$O0l$D$NJ8;zNs\e(B
-\e$B$+\e(B @code{nil} \e$B$rJV$7$^$9!#:#$N$H$3$m\e(B mode \e$B$H$7\e(B
-\e$B$F\e(B ``login'' \e$B$H\e(B ``password'' \e$B$@$1$rG'<1$7$^$9$,!">-Mh$O$b$C$H2C$($i$l$k\e(B
-\e$B$G$7$g$&!#\e(B
+@defun auth-source-search SPEC
 
-@var{host} \e$B$O%[%9%HL>$NJ8;zNs$G$9!#\e(B
+TODO: \e$B$I$&$d$C$F\e(B docstring \e$B$r4^$a$k\e(B?
+
+@end defun
 
-@var{port} \e$B$O%W%m%H%3%kL>\e(B (\e$BNc$($P\e(B ``imap'') \e$B$^$?$O%]!<%HHV9f$G$9!#%f!<%6!<\e(B
-\e$B$N\e(B netrc \e$B%U%!%$%k$K$"$k%]!<%H$KBP1~$9$kJ8;zNs$G$J$1$l$P$J$j$^$;$s!#\e(B
+\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
+\e$B8+$F$_$^$7$g$&!#\e(B
 
 @example
-;; IMAP example
-(setq auth (auth-source-user-or-password
-            '("login" "password")
-            "anyhostnamehere"
-            "imap"))
-(nth 0 auth) ; \e$B%m%0%$%sL>\e(B
-(nth 1 auth) ; \e$B%Q%9%o!<%I\e(B
+(defun nnimap-credentials (address ports)
+  (let* ((auth-source-creation-prompts
+          '((user  . "IMAP user at %h: ")
+            (secret . "IMAP password for %u@@%h: ")))
+         (found (nth 0 (auth-source-search :max 1
+                                           :host address
+                                           :port ports
+                                           :require '(:user :secret)
+                                           :create t))))
+    (if found
+        (list (plist-get found :user)
+              (let ((secret (plist-get found :secret)))
+                (if (functionp secret)
+                    (funcall secret)
+                  secret))
+              (plist-get found :save-function))
+      nil)))
 @end example
+
+@c \e$B0J2<$NLuJ8$N<A$,0-$$$N$O86J8$N=PMh$N9s$5$N$?$a!#\e(B
+\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
+\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
+\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
+\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
+\e$B$a$K\e(B @code{auth-source-creation-defaults} \e$B$K$"$k%G!<%?$rEO$9$3$H$b$G$-$^\e(B
+\e$B$9!#\e(B
+
+\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
+\e$B$@$5$$!#$"$kDxEY$N0BA4BP:v$H$7$F!"$=$l$O4X?t$GJq$^$l$F$$$^$9!#\e(B
+
+\e$B$=$N8e%m%0%$%s$K@.8y$7$?$i\e(B @code{nnimal.el} \e$B$O<!$N$h$&\e(B
+\e$B$K\e(B @code{:save-function} \e$B$r8F$S$^$9\e(B:
+
+@example
+(when (functionp (nth 2 credentials))
+   (funcall (nth 2 credentials)))
+@end example
+
+\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
+@code{:save-function}\e$B$O?7$7$$9`L\$,:n$i$l$?$H$-$@$1Ds6!$5$l$k$N$G!"$3$l\e(B
+\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
+\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
+
+\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
+(\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
+\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
+\e$B$jJV$5$l$k$3$H$O$J$$$H$$$&$3$H$G$9!#\e(B
+
+\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
+\e$B$k$J$i$P\e(B @code{:save-function} \e$B$r8F$V$3$H$G$9!#\e(B
+
+@defun auth-source-delete SPEC
+
+TODO: \e$B$I$&$d$C$F\e(B docstring \e$B$r4^$a$k\e(B?
+
+@end defun
+
+@defun auth-source-forget SPEC
+
+TODO: \e$B$I$&$d$C$F\e(B docstring \e$B$r4^$a$k\e(B?
+
+@end defun
+
+@defun auth-source-forget+ SPEC
+
+TODO: \e$B$I$&$d$C$F\e(B docstring \e$B$r4^$a$k\e(B?
+
 @end defun
 
+@node GnuPG and EasyPG Assistant Configuration
+@appendix GnuPG \e$B$*$h$S\e(B EasyPG \e$B%"%7%9%?%s%H$N@_Dj\e(B
+
+@code{auth-sources} \e$B$r%+%9%?%^%$%:$7$J$$>l9g!"\e(Bauth-source \e$B%i%$%V%i%j!<\e(B
+\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
+\e$B$=$N8e$G\e(B @file{~/.authinfo} \e$B$r8!::$7$^$9$,!"$=$N$h$&$J0E9f2=$5$l$F$$$J$$\e(B
+\e$B%U%!%$%k$r;H$&$3$H$O?d>)$7$^$;$s!#\e(B
+
+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
+\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
+\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:
+
+@lisp
+(require 'epa-file)
+(epa-file-enable)
+@end lisp
+
+\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
+@code{gpg-agent} \e$B$^$?$O\e(B EasyPG \e$B%"%7%9%"%s%H$r@_Dj$7$F$/$@$5\e(B
+\e$B$$\e(B (@pxref{Caching Passphrases, , Caching Passphrases, epa})\e$B!#\e(B
+
+\e$B<jAa$/;H$$;O$a$k$K$O!"$^$:0J2<$N@_Ld$KBP$9$kEz$rMQ0U$7$F$/$@$5$$\e(B:
+
+@enumerate
+@item
+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?
+@item
+\e$B8x3+800E9f$G$J$J$/!"6&DL800E9f$r;H$C$F$$$^$9$+\e(B?
+@item
+gpg-agent \e$B$r;H$$$?$$$G$9$+\e(B?
+@end enumerate
+
+\e$B0J2<$O>e5-$N<A5?$KBP$9$k$"$J$?$N2sEz$K4p$E$$$?@_Dj$G$9\e(B:
+
+@multitable {111} {222} {333} {configuration configuration configuration}
+@item @b{1} @tab @b{2} @tab @b{3} @tab Configuration
+@item Yes @tab Yes @tab Yes @tab gpg-agent \e$B$r@_Dj$7$F$/$@$5$$!#\e(B
+@item Yes @tab Yes @tab No @tab gpg-agent \e$BL5$7$G$O$G$-$^$;$s!#\e(B
+@item Yes @tab No @tab Yes @tab gpg-agent \e$B$r@_Dj$7$F$/$@$5$$!#\e(B
+@item Yes @tab No @tab No @tab gpg-agent \e$BL5$7$G$O$G$-$^$;$s!#\e(B
+@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
+@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
+@item No @tab No @tab Yes @tab gpg-agent \e$B$r@_Dj$7$F$/$@$5$$!#\e(B
+@item No @tab No @tab No @tab gpg-agent \e$BL5$7$G$O$G$-$^$;$s!#\e(B
+@end multitable
+
+gpg-agent \e$B$r@_Dj$9$k$K$O\e(B GnuPG \e$B%^%K%e%"%k\e(B (@pxref{Invoking GPG-AGENT, ,
+Invoking GPG-AGENT, gnupg}) \e$B$N@bL@$K=>$C$F$/$@$5$$!#\e(B
+
+ELisp \e$BHG$N%Q%9%o!<%I!&%-%c%C%7%e$r;H$&>l9g\e(B
+\e$B$O\e(B @code{epa-file-cache-passphrase-for-symmetric-encryption} \e$B$r@_Dj$7$F\e(B
+\e$B$/$@$5$$!#\e(B
+
 @node Index
 @chapter Index
 @printindex cp
@@ -202,8 +403,6 @@ auth-source \e$B%i%$%V%i%j!<$K$O!"30It$G;H$&$?$a$N4X?t$O0l$D$7$+$"$j$^$;$s!#\e(B
 @chapter Variable Index
 @printindex vr
 
-@summarycontents
-@contents
 @bye
 
 @c Local Variables: