doc_mainpage.h 2.89 KB
 Paul Bakker committed Jan 23, 2012 1 /**  Paul Bakker committed Jan 06, 2011 2 3 4 5 6  * @file * Main page documentation file. */ /**  Paul Bakker committed Apr 11, 2014 7  * @mainpage PolarSSL v1.3.6 source code documentation  Paul Bakker committed Sep 10, 2013 8  *  Paul Bakker committed Jan 06, 2011 9 10 11 12  * This documentation describes the internal structure of PolarSSL. It was * automatically generated from specially formatted comment blocks in * PolarSSL's source code using Doxygen. (See * http://www.stack.nl/~dimitri/doxygen/ for more information on Doxygen)  Paul Bakker committed Sep 10, 2013 13 14 15 16 17  * * PolarSSL has a simple setup: it provides the ingredients for an SSL/TLS * implementation. These ingredients are listed as modules in the * \ref mainpage_modules "Modules section". This "Modules section" introduces * the high-level module concepts used throughout this documentation.\n  Paul Bakker committed Jan 06, 2011 18 19  * Some examples of PolarSSL usage can be found in the \ref mainpage_examples * "Examples section".  Paul Bakker committed Sep 10, 2013 20  *  Paul Bakker committed Jan 06, 2011 21  * @section mainpage_modules Modules  Paul Bakker committed Sep 10, 2013 22 23  * * PolarSSL supports SSLv3 up to TLSv1.2 communication by providing the  Paul Bakker committed Jan 06, 2011 24 25 26 27 28 29 30 31  * following: * - TCP/IP communication functions: listen, connect, accept, read/write. * - SSL/TLS communication functions: init, handshake, read/write. * - X.509 functions: CRT, CRL and key handling * - Random number generation * - Hashing * - Encryption/decryption *  Paul Bakker committed Sep 10, 2013 32 33 34 35 36  * Above functions are split up neatly into logical interfaces. These can be * used separately to provide any of the above functions or to mix-and-match * into an SSL server/client solution that utilises a X.509 PKI. Examples of * such implementations are amply provided with the source code. *  Paul Bakker committed Jan 06, 2011 37  * Note that PolarSSL does not provide a control channel or (multiple) session  Paul Bakker committed Sep 10, 2013 38  * handling without additional work from the developer.  Paul Bakker committed Jan 06, 2011 39 40  * * @section mainpage_examples Examples  Paul Bakker committed Sep 10, 2013 41  *  Paul Bakker committed Jan 06, 2011 42 43  * Example server setup: *  Paul Bakker committed Sep 10, 2013 44  * \b Prerequisites:  Paul Bakker committed Jan 06, 2011 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76  * - X.509 certificate and private key * - session handling functions * * \b Setup: * - Load your certificate and your private RSA key (X.509 interface) * - Setup the listening TCP socket (TCP/IP interface) * - Accept incoming client connection (TCP/IP interface) * - Initialise as an SSL-server (SSL/TLS interface) * - Set parameters, e.g. authentication, ciphers, CA-chain, key exchange * - Set callback functions RNG, IO, session handling * - Perform an SSL-handshake (SSL/TLS interface) * - Read/write data (SSL/TLS interface) * - Close and cleanup (all interfaces) * * Example client setup: * * \b Prerequisites: * - X.509 certificate and private key * - X.509 trusted CA certificates * * \b Setup: * - Load the trusted CA certificates (X.509 interface) * - Load your certificate and your private RSA key (X.509 interface) * - Setup a TCP/IP connection (TCP/IP interface) * - Initialise as an SSL-client (SSL/TLS interface) * - Set parameters, e.g. authentication mode, ciphers, CA-chain, session * - Set callback functions RNG, IO * - Perform an SSL-handshake (SSL/TLS interface) * - Verify the server certificate (SSL/TLS interface) * - Write/read data (SSL/TLS interface) * - Close and cleanup (all interfaces) */