descriptionSASL library
homepage URL
last changeFri, 31 Aug 2007 22:51:10 +0000 (1 00:51 +0200)
content tags
GNU SASL README -- Important introductory notes.
Copyright (C) 2002, 2003, 2004, 2005, 2007 Simon Josefsson
See the end for copying conditions.

This directory holds GNU SASL which is an implementation of the Simple
Authentication and Security Layer (SASL).  See doc/gsasl.{info,ps,pdf}
for the manual.

The GNU SASL library is licensed under the GNU Lesser General Public
License (LGPL) version 2.1.  See the file lib/COPYING.  The GNU
project typically uses the GNU General Public License (GPL) for
libraries, and not the LGPL, but for this project we decided that we
would get more help from the community if we used the LGPL, as other
free SASL implementations exists.  See also

The command-line application and test suite (src/, and tests/) are
licensed under the GNU General Public License license version 3.0.
See the file COPYING.

The documentation (doc/) is licensed under the GNU Free Documentation

If you need help to use GNU SASL, or wish to help others, you are
invited to join our mailing list, see

Currently there is some support for the following mechanisms:

  - CRAM-MD5 (RFC 2195)
  - EXTERNAL (RFC 2222)
  - GSSAPI (RFC 2222, requires GSS, Heimdal or MIT Kerberos)
  - ANONYMOUS (RFC 2245)
  - PLAIN (RFC 2595)
  - SECURID (RFC 2808)
  - DIGEST-MD5 (RFC 2831)
  - LOGIN (non-standard)
  - NTLM (non-standard, client only, requires Libntlm)
  - KERBEROS_V5 (experimental, requires Shishi)

The library should be portable to all C89 platforms.  The command-line
application currently requires POSIX for network communication.

Things left to do below.  If you like to start working on anything,
please let me know so work duplication can be avoided.

  * Implement GS2.
  * Security layer improvements (e.g., DES and AES in DIGEST-MD5).
  * Bug: If gsasl_decode is handed a string longer than one SASL token,
    the remaining data will be discarded.  This means if the sender
    packed two SASL tokens in one network packet, only the first will be
    seen.  To fix this the best way, and the same time also improve
    string handling (security), the entire SASL step API probably
    should change.  Later: It occured to me that the en/de-code functions
    can simply buffer the left over data until the next invocation.
    Still, it would be nice to change the API to one that encapsulates
    string operations inte a separate package (my safestring.*).
  + Authentication infrastructure implementing the callbacks for
    PAM, Kerberos, SQL, etc.  Separate project?  GNU Mailutils has
    some starting points for this, but the API is inflexible.
  + Provide standard callbacks for tty, GTK, gpg-agent etc.  Probably
    should be a separate library.
  + Port applications to use libgsasl
  + More SASL mechanisms
  - Cleanup code, possibly by using some string abstraction library.
  - Privacy separation (authenticate in one process, pass state to another).
  - Improve documentation
  - Port to Cyclone? CCured?

For updates to the project, see <>.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
2007-08-31 Simon JosefssonAdd.master
2007-08-31 Simon JosefssonDrop gnits mode.
2007-08-31 Simon JosefssonDrop gnits mode.
2007-08-31 Simon JosefssonBump versions.
2007-08-31 Simon JosefssonAdd.
2007-08-31 Simon JosefssonUpdate gnulib files.
2007-08-28 Simon JosefssonFix warnings.
2007-08-22 Simon JosefssonGenerated.gsasl-0-2-21
2007-08-22 Simon JosefssonGenerated.
2007-08-22 Simon JosefssonVersion 0.2.21.
2007-08-22 Simon JosefssonAdd.
2007-08-22 Simon JosefssonBump versions.
2007-08-22 Simon JosefssonUpdate gnulib files.
2007-08-22 Simon JosefssonAdd.
2007-08-22 Simon JosefssonBump versions.
2007-08-22 Simon JosefssonAdd.
9 years ago gsasl-0-2-21 0.2.21
9 years ago gsasl-0-2-20 0.2.20
9 years ago gsasl-0-2-19 0.2.19
9 years ago gsasl-0-2-18 0.2.18
9 years ago gsasl-0-2-17 0.2.17
unknown libgsasl-0-0-7
unknown libgsasl-0-0-6
unknown libgsasl-0-0-5
unknown libgsasl-0-0-4
unknown libgsasl-0-0-3
unknown libgsasl-0-0-2
unknown libgsasl-0-0-1
unknown libgsasl-0-0-0
unknown gsasl-0-2-9
unknown gsasl-0-2-8
unknown gsasl-0-2-7
9 years ago master
9 years ago origin