\input texinfo @c -*-texinfo-*-
+@include gnus-overrides.texi
+
@setfilename sasl.info
@set VERSION 0.2
-
-@direntry
-* SASL: (sasl). The Emacs SASL library.
-@end direntry
-
@settitle Emacs SASL Library @value{VERSION}
-@ifinfo
-This file describes the Emacs SASL library.
+@copying
+This file describes the Emacs SASL library, version @value{VERSION}.
-Copyright (C) 2000 Daiki Ueno.
+Copyright @copyright{} 2000, 2004--2012 Free Software Foundation, Inc.
+@quotation
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
+under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts. A copy of the license is included in the section entitled "GNU
-Free Documentation License".
-@end ifinfo
+Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
+and with the Back-Cover Texts as in (a) below. A copy of the license
+is included in the section entitled ``GNU Free Documentation License''.
+
+(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
+modify this GNU manual.''
+@end quotation
+@end copying
+
+@dircategory Emacs network features
+@direntry
+* SASL: (sasl). The Emacs SASL library.
+@end direntry
-@tex
@titlepage
-@title Emacs SASL Library
+@ifset WEBHACKDEVEL
+@title Emacs SASL Library @value{VERSION} (DEVELOPMENT VERSION)
+@end ifset
+@ifclear WEBHACKDEVEL
+@title Emacs SASL Library @value{VERSION}
+@end ifclear
@author by Daiki Ueno
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 2000 Daiki Ueno.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts. A copy of the license is included in the section entitled "GNU
-Free Documentation License".
+@insertcopying
@end titlepage
-@page
-@end tex
@node Top
@top Emacs SASL
-This manual describes the Emacs SASL library.
-A common interface to share several authentication mechanisms between
+SASL is a common interface to share several authentication mechanisms between
applications using different protocols.
+@ifnottex
+@insertcopying
+@end ifnottex
+
@menu
* Overview:: What Emacs SASL library is.
* How to use:: Adding authentication support to your applications.
-* Data types::
-* Backend drivers:: Writing your own drivers.
-* Index::
-* Function Index::
-* Variable Index::
+* Data types::
+* Back end drivers:: Writing your own drivers.
+* GNU Free Documentation License:: The license for this documentation.
+* Index::
+* Function Index::
+* Variable Index::
@end menu
@node Overview
The toplevel interface of this library is inspired by Java @sc{sasl}
Application Program Interface. It defines an abstraction over a series
-of authentication mechanism drivers (@ref{Backend drivers}).
+of authentication mechanism drivers (@ref{Back end drivers}).
-Backend drivers are designed to be close as possible to the
+Back end drivers are designed to be close as possible to the
authentication mechanism. You can access the additional configuration
information anywhere from the implementation.
step.
@menu
-* Mechanisms::
-* Clients::
-* Steps::
+* Mechanisms::
+* Clients::
+* Steps::
@end menu
@node Mechanisms
@defun sasl-find-mechanism mechanisms
-Retrieve an apropriate mechanism.
-This function compares MECHANISMS and @code{sasl-mechanisms} then
-returns apropriate @code{sasl-mechanism} object.
+Retrieve an appropriate mechanism.
+This function compares @var{mechanisms} and @code{sasl-mechanisms} then
+returns appropriate @code{sasl-mechanism} object.
@example
(let ((sasl-mechanisms '("CRAM-MD5" "DIGEST-MD5")))
Return name of mechanism, a string.
@end defun
-If you want to write an authentication mechanism driver (@ref{Backend
+If you want to write an authentication mechanism driver (@ref{Back end
drivers}), use @code{sasl-make-mechanism} and modify
@code{sasl-mechanisms} and @code{sasl-mechanism-alist} correctly.
@example
(defconst sasl-anonymous-steps
- '(identity ;no initial response
+ '(identity ;no initial response
sasl-anonymous-response))
(put 'sasl-anonymous 'sasl-mechanism
@section Steps
A step (@code{sasl-step} object) is an abstraction of authentication
-"step" which holds the response value and the next entry point for the
+``step'' which holds the response value and the next entry point for the
authentication process (the latter is not accessible).
@defun sasl-step-data step
-Return the data which STEP holds, a string.
+Return the data which @var{step} holds, a string.
@end defun
@defun sasl-step-set-data step data
-Store DATA string to STEP.
+Store @var{data} string to @var{step}.
@end defun
To get the initial response, you should call the function
-@code{sasl-next-step} with the second argument nil.
+@code{sasl-next-step} with the second argument @code{nil}.
@example
(setq name (sasl-mechanism-name mechanism))
@example
(process-send-string
process
- (if (sasl-step-data step) ;initial response
+ (if (sasl-step-data step) ;initial response
(format "AUTH %s %s\r\n" name (base64-encode-string (sasl-step-data step) t))
(format "AUTH %s\r\n" name)))
@end example
@defun sasl-next-step client step
Perform the authentication step.
-At the first time STEP should be set to nil.
+At the first time @var{step} should be set to @code{nil}.
@end defun
-@node Backend drivers
-@chapter Backend drivers
+@node Back end drivers
+@chapter Back end drivers
(Not yet written).
+@node GNU Free Documentation License
+@appendix GNU Free Documentation License
+@include doclicense.texi
+
@node Index
-@chapter Index
+@unnumbered Index
@printindex cp
@node Function Index
-@chapter Function Index
+@unnumbered Function Index
@printindex fn
@node Variable Index
-@chapter Variable Index
+@unnumbered Variable Index
@printindex vr
@summarycontents