1 \input texinfo @c -*-texinfo-*-
9 * SASL-ja: (sasl-ja). The Emacs SASL library (Japanese).
12 @settitle Emacs SASL Library @value{VERSION}
15 \e$B$3$N%U%!%$%k$O
\e(B Emacs SASL
\e$B%i%$%V%i%j!<$r@bL@$7$^$9!#
\e(B
17 Copyright (C) 2000 Daiki Ueno.
19 Permission is granted to copy, distribute and/or modify this document
20 under the terms of the GNU Free Documentation License, Version 1.2 or
21 any later version published by the Free Software Foundation; with no
22 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
23 Texts. A copy of the license is included in the section entitled "GNU
24 Free Documentation License".
26 \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
27 \e$BBh
\e(B 1.2
\e$BHG$^$?$O$=$l0J9_$NHG$,Dj$a$k>r7o$N2<$GJ#@=!"G[I[!"$"$k$$$OJQ99$9
\e(B
28 \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
29 \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
30 \e$B$$$&>O$K4^$^$l$F$$$^$9!#
\e(B
36 @title Emacs SASL Library
41 @vskip 0pt plus 1filll
42 Copyright @copyright{} 2000 Daiki Ueno.
44 Permission is granted to copy, distribute and/or modify this document
45 under the terms of the GNU Free Documentation License, Version 1.2 or
46 any later version published by the Free Software Foundation; with no
47 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
48 Texts. A copy of the license is included in the section entitled "GNU
49 Free Documentation License".
51 \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
52 \e$BBh
\e(B 1.2
\e$BHG$^$?$O$=$l0J9_$NHG$,Dj$a$k>r7o$N2<$GJ#@=!"G[I[!"$"$k$$$OJQ99$9
\e(B
53 \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
54 \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
55 \e$B$$$&>O$K4^$^$l$F$$$^$9!#
\e(B
64 \e$B$3$N%^%K%e%"%k$O
\e(B Emacs SASL
\e$B%i%$%V%i%j!<$r@bL@$7$^$9!#
\e(B
66 \e$B0[$J$k%W%m%H%3%k$r;H$&%"%W%j%1!<%7%g%s4V$G!"J#?t$NG'>Z%a%+%K%:%`$r6&M-$9
\e(B
67 \e$B$k$?$a$N6&DL%$%s%?!<%U%'!<%9$G$9!#
\e(B
70 * Overview:: Emacs SASL
\e$B%i%$%V%i%j!<$H$O
\e(B
71 * How to use::
\e$B%"%W%j%1!<%7%g%s$KG'>Z%5%]!<%H$rDI2C$9$k
\e(B
73 * Back end drivers::
\e$BFH<+$N%I%i%$%P!<$r=q$/
\e(B
82 @sc{sasl}
\e$B$O
\e(B @dfn{Simple Authentication and Security Layer}
\e$B$NN,$G$9!#I8
\e(B
83 \e$B=`$O
\e(B RFC2222
\e$B$KJ8=q2=$5$l$F$$$^$9!#$3$l$O!"$5$^$6$^$J%"%W%j%1!<%7%g%s!&
\e(B
84 \e$B%W%m%H%3%k$K!"G'>Z%5%]!<%H$rDI2C$9$k$?$a$N4JC1$J<jCJ$rDs6!$7$^$9!#
\e(B
86 \e$B$3$N%i%$%V%i%j!<$N:G>e0L$N%$%s%?!<%U%'!<%9$O!"
\e(BJava @sc{sasl} Application
87 Program Interface
\e$B$K$h$C$F?(H/$5$l$^$7$?!#$=$l$O!"Cj>]2=$7$?0lO"$NG'>Z%a
\e(B
88 \e$B%+%K%:%`$N%I%i%$%P!<$rDj5A$7$^$9!#
\e(B
90 \e$B%P%C%/%(%s%I$N%I%i%$%P!<$O!"$J$k$Y$/G'>Z%a%+%K%:%`$KL)@\$7$F$$$k$3$H$rL\
\e(B
91 \e$B;X$7$F$$$^$9!#$I$3$K$"$kDI2C$N@_Dj>pJs$K$b!"$3$N<BAu$+$i%"%/%;%9$9$k$3$H
\e(B
95 @chapter
\e$B;H$$J}
\e(B
97 (
\e$B$^$@=q$+$l$F$$$^$;$s
\e(B)
\e$B!#
\e(B
99 Emacs SASL
\e$B%i%$%V%i%j!<$r;H$&$K$O!"%"%W%j%1!<%7%g%s!&%W%m%0%i%`$N:G=i$G!"
\e(B
100 \e$B0J2<$N<0$rI>2A$7$F2<$5$$!#
\e(B
106 \e$B<B9T;~$K$N$_
\e(B sasl.el
\e$B$,B8:_$7$F$$$k$3$H$r8!::$7$?$$$J$i$P!"Be$o$j$KI,MW
\e(B
107 \e$B$J4X?t$N
\e(B autoload
\e$B$N@_Dj$rJB$Y$F$*$$$F$b9=$$$^$;$s!#
\e(B
110 @chapter
\e$B%G!<%?$N7?
\e(B
112 \e$B%M%4%7%(!<%H$5$l$?%;%-%e%j%F%#!<AX$NEAAw$K;H$o$l$k;0$D$N%G!<%?$N7?$H$7$F!"
\e(B
113 \e$B%a%+%K%:%`!"%/%i%$%"%s%H!&%Q%i%a!<%?!<!"$*$h$SG'>Z%9%F%C%W$,$"$j$^$9!#
\e(B
122 @section
\e$B%a%+%K%:%`
\e(B
124 \e$B%a%+%K%:%`
\e(B (@code{sasl-mechanism}
\e$B%*%V%8%'%/%H
\e(B)
\e$B$,!"
\e(B@sc{sasl}
\e$BG'>Z%a%+%K
\e(B
125 \e$B%:%`$N%I%i%$%P!<$N%9%-!<%`$G$9!#
\e(B
127 @defvar sasl-mechanisms
128 \e$B%a%+%K%:%`L>$N%j%9%H!#
\e(B
131 @defun sasl-find-mechanism mechanisms
132 \e$BE,@Z$J%a%+%K%:%`$r<hF@$7$^$9!#
\e(B@*
133 \e$B$3$N4X?t$O
\e(B @var{mechanisms}
\e$B$H
\e(B @code{sasl-mechanisms}
\e$B$rHf3S$7$F!"E,@Z
\e(B
134 \e$B$J
\e(B @code{sasl-mechanism}
\e$B%*%V%8%'%/%H$rJV$7$^$9!#
\e(B
137 (let ((sasl-mechanisms '("CRAM-MD5" "DIGEST-MD5")))
138 (setq mechanism (sasl-find-mechanism server-supported-mechanisms)))
142 @defun sasl-mechanism-name mechanism
143 \e$B%a%+%K%:%`$NL>A0$rJ8;zNs$GJV$7$^$9!#
\e(B
146 \e$BG'>Z%a%+%K%:%`$N%I%i%$%P!<
\e(B (@ref{Back end drivers})
\e$B$r=q$-$?$1$l$P!"
\e(B
147 @code{sasl-make-mechanism}
\e$B$r;H$$!"
\e(B@code{sasl-mechanisms}
\e$B$*$h
\e(B
148 \e$B$S
\e(B @code{sasl-mechanism-alist}
\e$B$r@5$7$/JQ99$7$F2<$5$$!#
\e(B
150 @defun sasl-make-mechanism name steps
151 @code{sasl-mechanism}
\e$B%*%V%8%'%/%H$r3d$jEv$F$^$9!#
\e(B@*
152 \e$B$3$N4X?t$OFs$D$N%Q%i%a!<%?!<!"$9$J$o$A%a%+%K%:%`$NL>A0!"$*$h$SG'>Z$9$k$?
\e(B
153 \e$B$a$N4X?t$N%j%9%H$r<u$1<h$j$^$9!#
\e(B
156 (defconst sasl-anonymous-steps
157 '(identity ;
\e$B:G=i$O1~EzL5$7
\e(B
158 sasl-anonymous-response))
160 (put 'sasl-anonymous 'sasl-mechanism
161 (sasl-make-mechanism "ANONYMOUS" sasl-anonymous-steps))
166 @section
\e$B%/%i%$%"%s%H
\e(B
168 \e$B%/%i%$%"%s%H
\e(B (@code{sasl-client}
\e$B%*%V%8%'%/%H
\e(B)
\e$B$O;M$D$N%Q%i%a!<%?!<!"$9
\e(B
169 \e$B$J$o$A%a%+%K%:%`!"%f!<%6!<L>!"%5!<%S%9L>!"$*$h$S%5!<%P!<L>$K$h$C$F=i4|2=
\e(B
172 @defun sasl-make-client mechanism name service server
173 @code{sasl-client}
\e$B%*%V%8%'%/%H$rMQ0U$7$^$9!#
\e(B
176 @defun sasl-client-mechanism client
177 \e$B%/%i%$%"%s%H$N%a%+%K%:%`
\e(B (@code{sasl-mechanism}
\e$B%*%V%8%'%/%H
\e(B)
\e$B$rJV$7$^$9!#
\e(B
180 @defun sasl-client-name client
181 \e$B%/%i%$%"%s%H$NG'>ZL>$rJ8;zNs$GJV$7$^$9!#
\e(B
184 @defun sasl-client-service client
185 \e$B%/%i%$%"%s%H$N%5!<%S%9L>$rJ8;zNs$GJV$7$^$9!#
\e(B
188 @defun sasl-client-server client
189 \e$B%/%i%$%"%s%H$N%5!<%P!<L>$rJ8;zNs$GJV$7$^$9!#
\e(B
192 \e$BB0@-$N@_Dj$rDI2C$7$?$$>l9g$O!"
\e(B@code{sasl-client-set-property}
\e$B$r;H$C$F2<
\e(B
195 @defun sasl-client-set-property client property value
196 \e$BM?$($i$l$?B0@-$*$h$S$=$NCM$r%/%i%$%"%s%H$KDI2C$7$^$9!#
\e(B
199 @defun sasl-client-property client property
200 \e$B%/%i%$%s%H$NB0@-$NCM$rJV$7$^$9!#
\e(B
203 @defun sasl-client-set-properties client plist
204 \e$B%/%i%$%"%s%H$NB0@-$rGK2uE*$K@_Dj$7$^$9!#
\e(B@*
205 \e$BBhFs0z?t$O?7$7$$%W%m%Q%F%#!<!&%j%9%H
\e(B (plist)
\e$B$G$9!#
\e(B
208 @defun sasl-client-properties client
209 \e$B%/%i%$%"%s%H$N@_Dj$N%W%m%Q%F%#!<!&%j%9%H$r!"$^$k$4$HJV$7$^$9!#
\e(B
213 @section
\e$B%9%F%C%W
\e(B
215 \e$B%9%F%C%W
\e(B (@code{sasl-step}
\e$B%*%V%8%'%/%H
\e(B)
\e$B$OG'>Z!V%9%F%C%W!W$NCj>]2=$G$9!#
\e(B
216 \e$B$=$l$O!"1~Ez$NCM$H<!2s$NG'>Z=hM}$NF~$j8}$rJ];}$7$^$9
\e(B (
\e$B8e<T$O%"%/%;%9$G$-
\e(B
217 \e$B$^$;$s
\e(B)
\e$B!#
\e(B
219 @defun sasl-step-data step
220 @var{step}
\e$B$,J];}$9$k%G!<%?$rJ8;zNs$GJV$7$^$9!#
\e(B
223 @defun sasl-step-set-data step data
224 @var{step}
\e$B$K
\e(B @var{data}
\e$B$NJ8;zNs$r3JG<$7$^$9!#
\e(B
227 \e$B:G=i$N1~Ez$rF@$k$K$O!"BhFs0z?t$r
\e(B @code{nil}
\e$B$K$7$F4X
\e(B
228 \e$B?t
\e(B @code{sasl-next-step}
\e$B$r8F$P$J$1$l$P$J$j$^$;$s!#
\e(B
231 (setq name (sasl-mechanism-name mechanism))
234 \e$B$3$NCJ3,$G!"
\e(BSASL
\e$B$NG'>Z%W%m%H%3%k$N8r49$r3+;O$9$k%3%^%s%I$rAw$k$3$H$,$G
\e(B
235 \e$B$-$^$9!#Nc$G$9!#
\e(B
240 (if (sasl-step-data step) ;
\e$B:G=i$N1~Ez
\e(B
241 (format "AUTH %s %s\r\n"
242 name (base64-encode-string (sasl-step-data step) t))
243 (format "AUTH %s\r\n" name)))
246 \e$BG'>Z=hM}$rB3$1$k$?$a$K9T$J$o$J$1$l$P$J$i$J$$$3$H$O!"O"B3$7
\e(B
247 \e$B$F
\e(B @code{sasl-next-step}
\e$B$r8F$V$3$H$G$9!#
\e(B
249 @defun sasl-next-step client step
250 \e$BG'>Z%9%F%C%W$r<B9T$7$^$9!#
\e(B@*
251 \e$B:G=i$O
\e(B @var{step}
\e$B$r
\e(B @code{nil}
\e$B$K@_Dj$7$J$1$l$P$J$j$^$;$s!#
\e(B
254 @node Back end drivers
255 @chapter
\e$B%P%C%/%(%s%I!&%I%i%$%P!<
\e(B
257 (
\e$B$^$@=q$+$l$F$$$^$;$s
\e(B)
\e$B!#
\e(B
264 @chapter Function Index
268 @chapter Variable Index
276 @c coding: iso-2022-7bit
279 @c use-kuten-for-period: t
280 @c use-touten-for-comma: t