| 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 | |