1 \input texinfo @c -*-texinfo-*-
5 @firstparagraphindent insert
9 @settitle Emacs SASL Library @value{VERSION}
12 \e$B$3$N%U%!%$%k$O
\e(B Emacs SASL
\e$B%i%$%V%i%j!<!"%P!<%8%g%s
\e(B @value{VERSION}
\e$B$r@b
\e(B
15 Copyright @copyright{} 2000, 2004, 2005, 2006, 2007, 2008, 2009, 2010
16 Free Software Foundation, Inc.
19 Permission is granted to copy, distribute and/or modify this document
20 under the terms of the GNU Free Documentation License, Version 1.3 or
21 any later version published by the Free Software Foundation; with no
22 Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
23 and with the Back-Cover Texts as in (a) below. A copy of the license
24 is included in the section entitled ``GNU 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.3
\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,$O;XDj$7$^$;$s!#!H
\e(BA GNU Manual
\e$B!I$OI=I=;f
\e(B
29 \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$O
\e(B
30 \e$B!V
\e(BGNU
\e$B%U%j!<J8=qMxMQ5vBz7@Ls=q!W$H$$$&>O$K4^$^$l$F$$$^$9!#
\e(B
32 (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
33 modify this GNU manual. Buying copies from the FSF supports it in
34 developing GNU and promoting software freedom.''
36 (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
37 \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
38 \e$B$NB%?J$r;Y1g$7$^$9!#!W
\e(B
40 This document is part of a collection distributed under the GNU Free
41 Documentation License. If you want to distribute this document
42 separately from the collection, you can do so by adding a copy of the
43 license to the document, as described in section 6 of the license.
45 \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
46 \e$B$N0lIt$G$9!#$b$7$"$J$?$,$3$NJ8=q$r<}=8Cx:nJ*$+$iJ,N%$7$FG[I[$7$?$$$H$-$O!"
\e(B
47 \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
48 \e$B$K$h$C$F!"9T$J$&$3$H$,$G$-$^$9!#
\e(B
54 * SASL-ja: (sasl-ja). The Emacs SASL library (Japanese).
58 @title Emacs SASL Library @value{VERSION}
63 @vskip 0pt plus 1filll
70 SASL
\e$B$O0[$J$k%W%m%H%3%k$r;H$&%"%W%j%1!<%7%g%s4V$G!"J#?t$NG'>Z%a%+%K%:%`
\e(B
71 \e$B$r6&M-$9$k$?$a$N6&DL%$%s%?!<%U%'!<%9$G$9!#
\e(B
78 * Overview:: Emacs SASL
\e$B%i%$%V%i%j!<$H$O
\e(B
79 * How to use::
\e$B%"%W%j%1!<%7%g%s$KG'>Z%5%]!<%H$rDI2C$9$k
\e(B
81 * Back end drivers::
\e$BFH<+$N%I%i%$%P!<$r=q$/
\e(B
90 @sc{sasl}
\e$B$O
\e(B @dfn{Simple Authentication and Security Layer}
\e$B$NN,$G$9!#I8
\e(B
91 \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
92 \e$B%W%m%H%3%k$K!"G'>Z%5%]!<%H$rDI2C$9$k$?$a$N4JC1$J<jCJ$rDs6!$7$^$9!#
\e(B
94 \e$B$3$N%i%$%V%i%j!<$N:G>e0L$N%$%s%?!<%U%'!<%9$O!"
\e(BJava @sc{sasl} Application
95 Program Interface
\e$B$K$h$C$F?(H/$5$l$^$7$?!#$=$l$O!"Cj>]2=$7$?0lO"$NG'>Z%a
\e(B
96 \e$B%+%K%:%`$N%I%i%$%P!<$rDj5A$7$^$9!#
\e(B
98 \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
99 \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
103 @chapter
\e$B;H$$J}
\e(B
105 (
\e$B$^$@=q$+$l$F$$$^$;$s
\e(B)
\e$B!#
\e(B
107 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
108 \e$B0J2<$N<0$rI>2A$7$F$/$@$5$$!#
\e(B
114 \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
115 \e$B$J4X?t$N
\e(B autoload
\e$B$N@_Dj$rJB$Y$F$*$$$F$b9=$$$^$;$s!#
\e(B
118 @chapter
\e$B%G!<%?$N7?
\e(B
120 \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
121 \e$B%a%+%K%:%`!"%/%i%$%"%s%H!&%Q%i%a!<%?!<!"$*$h$SG'>Z%9%F%C%W$,$"$j$^$9!#
\e(B
130 @section
\e$B%a%+%K%:%`
\e(B
132 \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
133 \e$B%:%`$N%I%i%$%P!<$N%9%-!<%`$G$9!#
\e(B
135 @defvar sasl-mechanisms
136 \e$B%a%+%K%:%`L>$N%j%9%H!#
\e(B
139 @defun sasl-find-mechanism mechanisms
140 \e$BE,@Z$J%a%+%K%:%`$r<hF@$7$^$9!#
\e(B@*
141 \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
142 \e$B$J
\e(B @code{sasl-mechanism}
\e$B%*%V%8%'%/%H$rJV$7$^$9!#
\e(B
145 (let ((sasl-mechanisms '("CRAM-MD5" "DIGEST-MD5")))
146 (setq mechanism (sasl-find-mechanism server-supported-mechanisms)))
150 @defun sasl-mechanism-name mechanism
151 \e$B%a%+%K%:%`$NL>A0$rJ8;zNs$GJV$7$^$9!#
\e(B
154 \e$BG'>Z%a%+%K%:%`$N%I%i%$%P!<
\e(B (@ref{Back end drivers})
\e$B$r=q$-$?$1$l$P!"
\e(B
155 @code{sasl-make-mechanism}
\e$B$r;H$$!"
\e(B@code{sasl-mechanisms}
\e$B$*$h
\e(B
156 \e$B$S
\e(B @code{sasl-mechanism-alist}
\e$B$r@5$7$/JQ99$7$F$/$@$5$$!#
\e(B
158 @defun sasl-make-mechanism name steps
159 @code{sasl-mechanism}
\e$B%*%V%8%'%/%H$r3d$jEv$F$^$9!#
\e(B@*
160 \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
161 \e$B$a$N4X?t$N%j%9%H$r<u$1<h$j$^$9!#
\e(B
164 (defconst sasl-anonymous-steps
165 '(identity ;
\e$B:G=i$O1~EzL5$7
\e(B
166 sasl-anonymous-response))
168 (put 'sasl-anonymous 'sasl-mechanism
169 (sasl-make-mechanism "ANONYMOUS" sasl-anonymous-steps))
174 @section
\e$B%/%i%$%"%s%H
\e(B
176 \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
177 \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
180 @defun sasl-make-client mechanism name service server
181 @code{sasl-client}
\e$B%*%V%8%'%/%H$rMQ0U$7$^$9!#
\e(B
184 @defun sasl-client-mechanism client
185 \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
188 @defun sasl-client-name client
189 \e$B%/%i%$%"%s%H$NG'>ZL>$rJ8;zNs$GJV$7$^$9!#
\e(B
192 @defun sasl-client-service client
193 \e$B%/%i%$%"%s%H$N%5!<%S%9L>$rJ8;zNs$GJV$7$^$9!#
\e(B
196 @defun sasl-client-server client
197 \e$B%/%i%$%"%s%H$N%5!<%P!<L>$rJ8;zNs$GJV$7$^$9!#
\e(B
200 \e$BB0@-$N@_Dj$rDI2C$7$?$$>l9g$O!"
\e(B@code{sasl-client-set-property}
\e$B$r;H$C$F$/
\e(B
203 @defun sasl-client-set-property client property value
204 \e$BM?$($i$l$?B0@-$*$h$S$=$NCM$r%/%i%$%"%s%H$KDI2C$7$^$9!#
\e(B
207 @defun sasl-client-property client property
208 \e$B%/%i%$%s%H$NB0@-$NCM$rJV$7$^$9!#
\e(B
211 @defun sasl-client-set-properties client plist
212 \e$B%/%i%$%"%s%H$NB0@-$rGK2uE*$K@_Dj$7$^$9!#
\e(B@*
213 \e$BBhFs0z?t$O?7$7$$%W%m%Q%F%#!<!&%j%9%H
\e(B (plist)
\e$B$G$9!#
\e(B
216 @defun sasl-client-properties client
217 \e$B%/%i%$%"%s%H$N@_Dj$N%W%m%Q%F%#!<!&%j%9%H$r!"$^$k$4$HJV$7$^$9!#
\e(B
221 @section
\e$B%9%F%C%W
\e(B
223 \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
224 \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
225 \e$B$^$;$s
\e(B)
\e$B!#
\e(B
227 @defun sasl-step-data step
228 @var{step}
\e$B$,J];}$9$k%G!<%?$rJ8;zNs$GJV$7$^$9!#
\e(B
231 @defun sasl-step-set-data step data
232 @var{step}
\e$B$K
\e(B @var{data}
\e$B$NJ8;zNs$r3JG<$7$^$9!#
\e(B
235 \e$B:G=i$N1~Ez$rF@$k$K$O!"BhFs0z?t$r
\e(B @code{nil}
\e$B$K$7$F4X
\e(B
236 \e$B?t
\e(B @code{sasl-next-step}
\e$B$r8F$P$J$1$l$P$J$j$^$;$s!#
\e(B
239 (setq name (sasl-mechanism-name mechanism))
242 \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
243 \e$B$-$^$9!#Nc$G$9!#
\e(B
248 (if (sasl-step-data step) ;
\e$B:G=i$N1~Ez
\e(B
249 (format "AUTH %s %s\r\n"
250 name (base64-encode-string (sasl-step-data step) t))
251 (format "AUTH %s\r\n" name)))
254 \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
255 \e$B$F
\e(B @code{sasl-next-step}
\e$B$r8F$V$3$H$G$9!#
\e(B
257 @defun sasl-next-step client step
258 \e$BG'>Z%9%F%C%W$r<B9T$7$^$9!#
\e(B@*
259 \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
262 @node Back end drivers
263 @chapter
\e$B%P%C%/%(%s%I!&%I%i%$%P!<
\e(B
265 (
\e$B$^$@=q$+$l$F$$$^$;$s
\e(B)
\e$B!#
\e(B
272 @chapter Function Index
276 @chapter Variable Index
284 @c coding: iso-2022-7bit
287 @c use-kuten-for-period: t
288 @c use-touten-for-comma: t