* smtp.el (smtp-sasl-properties): New user option.
[elisp/flim.git] / sasl.texi
index 7ae5ce4..6d6e9ec 100644 (file)
--- a/sasl.texi
+++ b/sasl.texi
 @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,17 +36,45 @@ 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 process.
+authentication mechanism driver.
 
 @defvar sasl-mechanisms
 A list of mechanism names.
@@ -56,9 +82,9 @@ A list of mechanism names.
 
 @defun sasl-find-mechanism mechanisms
 
-Retrieve an apropriate authentication mechanism.
+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 +98,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 an authentication mechanism.
+Allocate a @code{sasl-mechanism} object.
 This function takes two parameters---name of the mechanism, and a list
 of authentication functions.
 
@@ -92,54 +118,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 +205,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).