Update gnulib files.
[gsasl.git] / lib / README
bloba1e77963dca8794cc5a0d5c23a6df35572162240
1 GNU SASL LIBRARY README -- Important introductory notes.
2 Copyright (C) 2002, 2003, 2004 Simon Josefsson
3 See the end for copying conditions.
5 This directory holds the GNU SASL library which is an implementation
6 of the Simple Authentication and Security Layer (SASL).
8 The GNU SASL library is licensed under the GNU Lesser General Public
9 License (LGPL).  The GNU project typically uses the GNU General Public
10 License (GPL) for libraries, and not the LGPL, but for this project we
11 decided that we would get more help from the community if we used the
12 LGPL, as other free SASL implementations exists.  See also
13 <http://www.gnu.org/licenses/why-not-lgpl.html>.
15 Currently there is some support for the following mechanisms:
17   - CRAM-MD5 (RFC 2195)
18   - EXTERNAL (RFC 2222)
19   - GSSAPI (RFC 2222, requires GSS, Heimdal or MIT Kerberos)
20   - ANONYMOUS (RFC 2245)
21   - PLAIN (RFC 2595)
22   - SECURID (RFC 2808)
23   - DIGEST-MD5 (RFC 2831)
24   - LOGIN (non-standard)
25   - NTLM (non-standard, client only, requires Libntlm)
26   - KERBEROS_V5 (experimental, requires Shishi)
28 The library should be portable to all C89 platforms.
30 Things left to do below.  If you like to start working on anything,
31 please let me know so work duplication can be avoided.
33   * Security layer improvements (e.g., DES and AES in DIGEST-MD5).
34   * Bug: If gsasl_decode is handed a string longer than one SASL token,
35     the remaining data will be discarded.  This means if the sender
36     packed two SASL tokens in one network packet, only the first will be
37     seen.  To fix this the best way, and the same time also improve
38     string handling (security), the entire SASL step API probably
39     should change.  Later: It occured to me that the en/de-code functions
40     can simply buffer the left over data until the next invocation.
41     Still, it would be nice to change the API to one that encapsulates
42     string operations inte a separate package (my safestring.*).
43   + Authentication infrastructure implementing the callbacks for
44     PAM, Kerberos, SQL, etc.  Separate project?  GNU Mailutils has
45     some starting points for this, but the API is inflexible.
46   + Provide standard callbacks for tty, GTK, gpg-agent etc.  Probably
47     should be a separate library.
48   + Port applications to use libgsasl
49   + More SASL mechanisms
50   + Cleanup code, possibly by using some string abstraction library.
51     (lib/digest-md5.c most problematic)
52   - Privacy separation (authenticate in one process, pass state to another).
53   - Improve documentation
54   - Port to Cyclone? CCured?
56 For updates to the project, see <http://www.gnu.org/software/gsasl/>.
58 ----------------------------------------------------------------------
59 Copying and distribution of this file, with or without modification,
60 are permitted in any medium without royalty provided the copyright
61 notice and this notice are preserved.