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 10 * 11 * Licensed under the Apache License, Version 2.0 (the "License"); you may 12 * not use this file except in compliance with the License. 13 * You may obtain a copy of the License at 14 * 15 * http://www.apache.org/licenses/LICENSE-2.0 16 * 17 * Unless required by applicable law or agreed to in writing, software 18 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 19 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 * See the License for the specific language governing permissions and 21 * limitations under the License. 22 */ 23 24 /** 25 * @mainpage mbed TLS v3.1.0 source code documentation 26 * 27 * This documentation describes the internal structure of mbed TLS. It was 28 * automatically generated from specially formatted comment blocks in 29 * mbed TLS's source code using Doxygen. (See 30 * http://www.stack.nl/~dimitri/doxygen/ for more information on Doxygen) 31 * 32 * mbed TLS has a simple setup: it provides the ingredients for an SSL/TLS 33 * implementation. These ingredients are listed as modules in the 34 * \ref mainpage_modules "Modules section". This "Modules section" introduces 35 * the high-level module concepts used throughout this documentation.\n 36 * Some examples of mbed TLS usage can be found in the \ref mainpage_examples 37 * "Examples section". 38 * 39 * @section mainpage_modules Modules 40 * 41 * mbed TLS supports TLSv1.0 up to TLSv1.2 communication by providing the 42 * following: 43 * - TCP/IP communication functions: listen, connect, accept, read/write. 44 * - SSL/TLS communication functions: init, handshake, read/write. 45 * - X.509 functions: CRT, CRL and key handling 46 * - Random number generation 47 * - Hashing 48 * - Encryption/decryption 49 * 50 * Above functions are split up neatly into logical interfaces. These can be 51 * used separately to provide any of the above functions or to mix-and-match 52 * into an SSL server/client solution that utilises a X.509 PKI. Examples of 53 * such implementations are amply provided with the source code. 54 * 55 * Note that mbed TLS does not provide a control channel or (multiple) session 56 * handling without additional work from the developer. 57 * 58 * @section mainpage_examples Examples 59 * 60 * Example server setup: 61 * 62 * \b Prerequisites: 63 * - X.509 certificate and private key 64 * - session handling functions 65 * 66 * \b Setup: 67 * - Load your certificate and your private RSA key (X.509 interface) 68 * - Setup the listening TCP socket (TCP/IP interface) 69 * - Accept incoming client connection (TCP/IP interface) 70 * - Initialise as an SSL-server (SSL/TLS interface) 71 * - Set parameters, e.g. authentication, ciphers, CA-chain, key exchange 72 * - Set callback functions RNG, IO, session handling 73 * - Perform an SSL-handshake (SSL/TLS interface) 74 * - Read/write data (SSL/TLS interface) 75 * - Close and cleanup (all interfaces) 76 * 77 * Example client setup: 78 * 79 * \b Prerequisites: 80 * - X.509 certificate and private key 81 * - X.509 trusted CA certificates 82 * 83 * \b Setup: 84 * - Load the trusted CA certificates (X.509 interface) 85 * - Load your certificate and your private RSA key (X.509 interface) 86 * - Setup a TCP/IP connection (TCP/IP interface) 87 * - Initialise as an SSL-client (SSL/TLS interface) 88 * - Set parameters, e.g. authentication mode, ciphers, CA-chain, session 89 * - Set callback functions RNG, IO 90 * - Perform an SSL-handshake (SSL/TLS interface) 91 * - Verify the server certificate (SSL/TLS interface) 92 * - Write/read data (SSL/TLS interface) 93 * - Close and cleanup (all interfaces) 94 */ 95