* sasl-digest.el (sasl-digest-md5-response): Refer client "qop".
[elisp/flim.git] / sasl.texi
index 4f78374..4e538d5 100644 (file)
--- a/sasl.texi
+++ b/sasl.texi
 
 @settitle Emacs SASL Library @value{VERSION}
 
+@ifinfo
+This file describes the Emacs SASL library.
+
+Copyright (C) 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".
+@end ifinfo
+
+@tex
+
+@titlepage
+@title Emacs SASL Library
+
+@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".
+@end titlepage
+@page
+
+@end tex
+
 @node Top
 @top Emacs SASL
 This manual describes the Emacs SASL library.
 
-This library provides a common interface to share several authentication
-mechanisms between applications using different protocols.
-
+A common interface to share several authentication mechanisms between
+applications using different protocols.
 
 @menu
-* Overview::                    
-* Mechanisms::                  
-* Clients::                     
-* Steps::                       
-* Backend Drivers::             
+* 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::              
@@ -38,14 +71,42 @@ adding authentication support to various application protocols.
 
 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.
+of authentication mechanism drivers (@ref{Backend drivers}).
+
+Backend drivers are designed to be close as possible to the
+authentication mechanism.  You can access the additional configuration
+information anywhere from the implementation.
+
+@node How to use
+@chapter How to use
+
+(Not yet written).
+
+To use Emacs SASL library, please evaluate following expression at the
+beginning of your application program.
+
+@lisp
+(require 'sasl)
+@end lisp
+
+If you want to check existence of sasl.el at runtime, instead you
+can list autoload settings for functions you want.
+
+@node Data types
+@chapter Data types
 
 There are three data types to be used for carrying a negotiated
 security layer---a mechanism, a client parameter and an authentication
 step.
 
+@menu
+* Mechanisms::                  
+* Clients::                     
+* Steps::                       
+@end menu
+
 @node Mechanisms
-@chapter Mechanisms
+@section Mechanisms
 
 A mechanism (@code{sasl-mechanism} object) is a schema of the @sc{sasl}
 authentication mechanism driver.
@@ -58,7 +119,7 @@ A list of mechanism names.
 
 Retrieve an apropriate mechanism.
 This function compares MECHANISMS and @code{sasl-mechanisms} then
-returns apropriate @sc{sasl} mechanism object.
+returns apropriate @code{sasl-mechanism} object.
 
 @example
 (let ((sasl-mechanisms '("CRAM-MD5" "DIGEST-MD5")))
@@ -72,11 +133,11 @@ Return name of mechanism, a string.
 @end defun
 
 If you want to write an authentication mechanism driver (@ref{Backend
-Drivers}), use @code{sasl-make-mechanism} and modify
+drivers}), use @code{sasl-make-mechanism} and modify
 @code{sasl-mechanisms} and @code{sasl-mechanism-alist} correctly.
 
 @defun sasl-make-mechanism name steps
-Allocate a mechanism.
+Allocate a @code{sasl-mechanism} object.
 This function takes two parameters---name of the mechanism, and a list
 of authentication functions.
 
@@ -92,54 +153,54 @@ of authentication functions.
 @end defun
 
 @node Clients
-@chapter Clients
+@section Clients
 
 A client (@code{sasl-client} object) initialized with four
 parameters---a mechanism, a user name, name of the service and name of
 the server.
 
 @defun sasl-make-client mechanism name service server
-Prepare a client parameter object.
+Prepare a @code{sasl-client} object.
 @end defun
 
 @defun sasl-client-mechanism client
-Return the authentication mechanism driver of CLIENT.
+Return the mechanism (@code{sasl-mechanism} object) of client.
 @end defun
 
 @defun sasl-client-name client
-Return the authorization name of CLIENT, a string.
+Return the authorization name of client, a string.
 @end defun
 
 @defun sasl-client-service client
-Return the service name of CLIENT, a string.
+Return the service name of client, a string.
 @end defun
 
 @defun sasl-client-server client
-Return the server name of CLIENT, a string.
+Return the server name of client, a string.
 @end defun
 
 If you want to specify additional configuration properties, please use
 @code{sasl-client-set-property}.
 
 @defun sasl-client-set-property client property value
-Add the given property/value to CLIENT.
+Add the given property/value to client.
 @end defun
 
 @defun sasl-client-property client property
-Return the value of the PROPERTY of CLIENT.
+Return the value of the property of client.
 @end defun
 
 @defun sasl-client-set-properties client plist
-Destructively set the properties of CLIENT.
-The second argument PLIST is the new property list.
+Destructively set the properties of client.
+The second argument is the new property list.
 @end defun
 
 @defun sasl-client-properties client
-Return the whole property list of CLIENT configuration.
+Return the whole property list of client configuration.
 @end defun
 
 @node Steps
-@chapter Steps
+@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
@@ -179,8 +240,8 @@ Perform the authentication step.
 At the first time STEP should be set to nil.
 @end defun
 
-@node Backend Drivers
-@chapter Backend Drivers
+@node Backend drivers
+@chapter Backend drivers
 
 (Not yet written).