1 | /*! \mainpage GNU SASL Library |
2 | * |
3 | * \section intro Introduction |
4 | * |
5 | * GNU SASL is an implementation of the Simple Authentication and Security |
6 | * Layer framework and a few common SASL mechanisms. SASL is used by |
7 | * network servers (e.g., IMAP, SMTP) to request authentication from |
8 | * clients, and in clients to authenticate against servers. |
9 | * |
10 | * GNU SASL consists of a library (`libgsasl'), a command line utility |
11 | * (`gsasl') to access the library from the shell, and a manual. The |
12 | * library includes support for the framework (with authentication |
13 | * functions and application data privacy and integrity functions) and at |
14 | * least partial support for the CRAM-MD5, EXTERNAL, GSSAPI, ANONYMOUS, |
15 | * PLAIN, SECURID, DIGEST-MD5, LOGIN, and NTLM mechanisms. |
16 | * |
17 | * The library is easily ported because it does not do network |
18 | * communication by itself, but rather leaves it up to the calling |
19 | * application. The library is flexible with regards to the authorization |
20 | * infrastructure used, as it utilize a callback into the application to |
21 | * decide whether a user is authorized or not. |
22 | * |
23 | * GNU SASL is developed for the GNU/Linux system, but runs on over 20 |
24 | * platforms including most major Unix platforms and Windows, and many |
25 | * kind of devices including iPAQ handhelds and S/390 mainframes. |
26 | * |
27 | * GNU SASL is written in pure ANSI C89 to be portable to embedded and |
28 | * otherwise limited platforms. The entire library, with full support for |
29 | * ANONYMOUS, EXTERNAL, PLAIN, LOGIN and CRAM-MD5, and the front-end that |
30 | * support client and server mode, and the IMAP and SMTP protocols, fits |
31 | * in under 60kb on an Intel x86 platform, without any modifications to |
32 | * the code. (This figure was accurate as of version 0.0.13.) |
33 | * |
34 | * The library is licensed under the GNU Lesser General Public License, |
35 | * and the command-line interface, self-tests and examples are licensed |
36 | * under the GNU General Public License. |
37 | * |
38 | * |
39 | * The project web page:\n |
40 | * http://www.gnu.org/software/gsasl/ |
41 | * |
42 | * The software archive:\n |
43 | * ftp://alpha.gnu.org/pub/gnu/gsasl/ |
44 | * |
45 | * Further information and paid contract development:\n |
46 | * Simon Josefsson <simon@josefsson.org> |
47 | * |
48 | * \section abstraction Logical overview |
49 | * |
50 | * \image html abstraction.png |
51 | * \image latex abstraction.eps "Logical overview" width=10cm |
52 | * |
53 | * \section controlflow Control flow in application using the library |
54 | * |
55 | * \image html controlflow.png |
56 | * \image latex controlflow.eps "Control flow" width=15cm |
57 | |
58 | * \image html controlflow2.png |
59 | * \image latex controlflow2.eps "Control flow" width=16cm |
60 | * |
61 | * \section examples Examples |
62 | * |
63 | * \include client.c |
64 | * \include client-serverfirst.c |
65 | * \include client-mech.c |
66 | * \include client-callback.c |
67 | */ |
68 | |