• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * \file doc_mainpage.h
3  *
4  * \brief Main page documentation file.
5  */
6 /*
7  *
8  *  Copyright The Mbed TLS Contributors
9  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
10  *
11  *  This file is provided under the Apache License 2.0, or the
12  *  GNU General Public License v2.0 or later.
13  *
14  *  **********
15  *  Apache License 2.0:
16  *
17  *  Licensed under the Apache License, Version 2.0 (the "License"); you may
18  *  not use this file except in compliance with the License.
19  *  You may obtain a copy of the License at
20  *
21  *  http://www.apache.org/licenses/LICENSE-2.0
22  *
23  *  Unless required by applicable law or agreed to in writing, software
24  *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
25  *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26  *  See the License for the specific language governing permissions and
27  *  limitations under the License.
28  *
29  *  **********
30  *
31  *  **********
32  *  GNU General Public License v2.0 or later:
33  *
34  *  This program is free software; you can redistribute it and/or modify
35  *  it under the terms of the GNU General Public License as published by
36  *  the Free Software Foundation; either version 2 of the License, or
37  *  (at your option) any later version.
38  *
39  *  This program is distributed in the hope that it will be useful,
40  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
41  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
42  *  GNU General Public License for more details.
43  *
44  *  You should have received a copy of the GNU General Public License along
45  *  with this program; if not, write to the Free Software Foundation, Inc.,
46  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
47  *
48  *  **********
49  */
50 
51 /**
52  * @mainpage mbed TLS v2.16.10 source code documentation
53  *
54  * This documentation describes the internal structure of mbed TLS.  It was
55  * automatically generated from specially formatted comment blocks in
56  * mbed TLS's source code using Doxygen.  (See
57  * http://www.stack.nl/~dimitri/doxygen/ for more information on Doxygen)
58  *
59  * mbed TLS has a simple setup: it provides the ingredients for an SSL/TLS
60  * implementation. These ingredients are listed as modules in the
61  * \ref mainpage_modules "Modules section". This "Modules section" introduces
62  * the high-level module concepts used throughout this documentation.\n
63  * Some examples of mbed TLS usage can be found in the \ref mainpage_examples
64  * "Examples section".
65  *
66  * @section mainpage_modules Modules
67  *
68  * mbed TLS supports SSLv3 up to TLSv1.2 communication by providing the
69  * following:
70  * - TCP/IP communication functions: listen, connect, accept, read/write.
71  * - SSL/TLS communication functions: init, handshake, read/write.
72  * - X.509 functions: CRT, CRL and key handling
73  * - Random number generation
74  * - Hashing
75  * - Encryption/decryption
76  *
77  * Above functions are split up neatly into logical interfaces. These can be
78  * used separately to provide any of the above functions or to mix-and-match
79  * into an SSL server/client solution that utilises a X.509 PKI. Examples of
80  * such implementations are amply provided with the source code.
81  *
82  * Note that mbed TLS does not provide a control channel or (multiple) session
83  * handling without additional work from the developer.
84  *
85  * @section mainpage_examples Examples
86  *
87  * Example server setup:
88  *
89  * \b Prerequisites:
90  * - X.509 certificate and private key
91  * - session handling functions
92  *
93  * \b Setup:
94  * - Load your certificate and your private RSA key (X.509 interface)
95  * - Setup the listening TCP socket (TCP/IP interface)
96  * - Accept incoming client connection (TCP/IP interface)
97  * - Initialise as an SSL-server (SSL/TLS interface)
98  *   - Set parameters, e.g. authentication, ciphers, CA-chain, key exchange
99  *   - Set callback functions RNG, IO, session handling
100  * - Perform an SSL-handshake (SSL/TLS interface)
101  * - Read/write data (SSL/TLS interface)
102  * - Close and cleanup (all interfaces)
103  *
104  * Example client setup:
105  *
106  * \b Prerequisites:
107  * - X.509 certificate and private key
108  * - X.509 trusted CA certificates
109  *
110  * \b Setup:
111  * - Load the trusted CA certificates (X.509 interface)
112  * - Load your certificate and your private RSA key (X.509 interface)
113  * - Setup a TCP/IP connection (TCP/IP interface)
114  * - Initialise as an SSL-client (SSL/TLS interface)
115  *   - Set parameters, e.g. authentication mode, ciphers, CA-chain, session
116  *   - Set callback functions RNG, IO
117  * - Perform an SSL-handshake (SSL/TLS interface)
118  * - Verify the server certificate (SSL/TLS interface)
119  * - Write/read data (SSL/TLS interface)
120  * - Close and cleanup (all interfaces)
121  */
122