Mercurial > emacs
view doc/misc/sasl.texi @ 85972:51aa47312c4b
* ediff-init.el (ediff-xemacs-p, ediff-emacs-p): Remove.
(ediff-has-face-support-p, ediff-BAD-INFO, ediff-check-version)
(ediff-current-diff-A, ediff-current-diff-B)
(ediff-current-diff-C, ediff-fine-diff-C, ediff-fine-diff-A)
(ediff-fine-diff-B, ediff-fine-diff-Ancestor, ediff-even-diff-A)
(ediff-even-diff-B, ediff-even-diff-C, ediff-even-diff-Ancestor)
(ediff-odd-diff-A, ediff-odd-diff-B, ediff-odd-diff-C)
(ediff-odd-diff-Ancestor, ediff-reset-mouse):
* ediff-wind.el (ediff-narrow-control-frame-leftward-shift)
(ediff-setup-windows-plain-merge)
(ediff-setup-windows-plain-compare, ediff-setup-control-frame)
(ediff-refresh-control-frame, ediff-get-visible-buffer-window):
* ediff-util.el (ediff-setup-keymap, )
(ediff-toggle-wide-display, ediff-toggle-multiframe)
(ediff-toggle-use-toolbar, ediff-really-quit)
(ediff-good-frame-under-mouse)
(ediff-highlight-diff-in-one-buffer)
(ediff-remove-flags-from-buffer, ediff-place-flags-in-buffer1)
(ediff-make-bullet-proof-overlay):
* ediff-mult.el (ediff-setup-meta-map, ediff-emacs-p)
(ediff-set-meta-overlay):
* ediff-help.el (ediff-help-region-map, ediff-set-help-overlays):
* ediff.el (ediff-documentation): Replace ediff-xemacs-p and
ediff-emacs-p with their former definitions.
* emulation/viper-init.el (viper-xemacs-p, viper-emacs-p): Remove.
(viper-has-face-support-p, viper-inactivate-input-method)
(viper-activate-input-method)
(viper-use-replace-region-delimiters, viper-restore-cursor-type):
* emulation/viper-mous.el (viper-multiclick-timeout)
(viper-surrounding-word, viper-mouse-click-insert-word)
(viper-mouse-click-search-word, viper-parse-mouse-key):
* emulation/viper-macs.el (viper-char-array-to-macro):
* emulation/viper.el (viper-go-away, viper-set-hooks)
(viper-non-hook-settings):
* emulation/viper-util.el (viper-get-saved-cursor-color-in-replace-mode)
(viper-get-saved-cursor-color-in-insert-mode)
(viper-get-saved-cursor-color-in-emacs-mode)
(viper-check-version, viper-get-visible-buffer-window)
(viper-file-checked-in-p, viper-set-replace-overlay)
(viper-set-replace-overlay-glyphs, viper-set-minibuffer-overlay)
(viper-check-minibuffer-overlay, viper-read-key-sequence)
(viper-key-to-emacs-key): Replace viper-xemacs-p and viper-emacs-p
with their former definitions.
(viper-eventify-list-xemacs): Only do work for XEmacs.
(viper-set-unread-command-events): Only do work for Emacs.
(viper-overlay-p, viper-make-overlay, viper-overlay-live-p)
(viper-move-overlay, viper-overlay-start, viper-overlay-end)
(viper-overlay-get, viper-overlay-put, viper-read-event)
(viper-characterp, viper-int-to-char, viper-get-face)
(viper-color-defined-p, viper-iconify): New defaliases replacing
the old fsets.
* progmodes/fortran.el (comment-region-function)
(uncomment-region-function): Pacify byte compiler.
* vc.el (vc-diff-internal): Remove code for an old version of
gnus.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Fri, 09 Nov 2007 05:20:57 +0000 |
parents | a3c27999decb |
children | bec74d38ca1e |
line wrap: on
line source
\input texinfo @c -*-texinfo-*- @setfilename sasl.info @set VERSION 0.2 @dircategory Emacs @direntry * SASL: (sasl). The Emacs SASL library. @end direntry @settitle Emacs SASL Library @value{VERSION} @ifinfo This file describes the Emacs SASL library. Copyright @copyright{} 2004, 2005, 2006 Free Software Foundation, Inc. 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.2 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.2 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. A common interface to share several authentication mechanisms between applications using different protocols. @menu * Overview:: What Emacs SASL library is. * How to use:: Adding authentication support to your applications. * Data types:: * Back end drivers:: Writing your own drivers. * Index:: * Function Index:: * Variable Index:: @end menu @node Overview @chapter Overview @sc{sasl} is short for @dfn{Simple Authentication and Security Layer}. This standard is documented in RFC2222. It provides a simple method for 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 (@ref{Back end drivers}). 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. @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 @section Mechanisms A mechanism (@code{sasl-mechanism} object) is a schema of the @sc{sasl} authentication mechanism driver. @defvar sasl-mechanisms A list of mechanism names. @end defvar @defun sasl-find-mechanism mechanisms Retrieve an apropriate mechanism. This function compares @var{mechanisms} and @code{sasl-mechanisms} then returns apropriate @code{sasl-mechanism} object. @example (let ((sasl-mechanisms '("CRAM-MD5" "DIGEST-MD5"))) (setq mechanism (sasl-find-mechanism server-supported-mechanisms))) @end example @end defun @defun sasl-mechanism-name mechanism Return name of mechanism, a string. @end defun 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. @defun sasl-make-mechanism name steps Allocate a @code{sasl-mechanism} object. This function takes two parameters---name of the mechanism, and a list of authentication functions. @example (defconst sasl-anonymous-steps '(identity ;no initial response sasl-anonymous-response)) (put 'sasl-anonymous 'sasl-mechanism (sasl-make-mechanism "ANONYMOUS" sasl-anonymous-steps)) @end example @end defun @node 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 @code{sasl-client} object. @end defun @defun sasl-client-mechanism 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. @end defun @defun sasl-client-service client Return the service name of client, a string. @end defun @defun sasl-client-server client 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. @end defun @defun sasl-client-property client property 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 is the new property list. @end defun @defun sasl-client-properties client Return the whole property list of client configuration. @end defun @node 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 authentication process (the latter is not accessible). @defun sasl-step-data step Return the data which @var{step} holds, a string. @end defun @defun sasl-step-set-data step data 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 @code{nil}. @example (setq name (sasl-mechanism-name mechanism)) @end example At this point we could send the command which starts a SASL authentication protocol exchange. For example, @example (process-send-string process (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 To go on with the authentication process, all you have to do is call @code{sasl-next-step} consecutively. @defun sasl-next-step client step Perform the authentication step. At the first time @var{step} should be set to @code{nil}. @end defun @node Back end drivers @chapter Back end drivers (Not yet written). @node Index @chapter Index @printindex cp @node Function Index @chapter Function Index @printindex fn @node Variable Index @chapter Variable Index @printindex vr @summarycontents @contents @bye @c End: @ignore arch-tag: dc9650be-a953-40bf-bc55-24fe5f19d875 @end ignore