<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>mbed TLS v2.7.8: mbed TLS v2.7.8 source code documentation</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">mbed TLS v2.7.8 </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.13 --> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',false,false,'search.php','Search'); }); </script> <div id="main-nav"></div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">mbed TLS v2.7.8 source code documentation </div> </div> </div><!--header--> <div class="contents"> <div class="textblock"><p>This documentation describes the internal structure of mbed TLS. It was automatically generated from specially formatted comment blocks in mbed TLS's source code using Doxygen. (See <a href="http://www.stack.nl/~dimitri/doxygen/">http://www.stack.nl/~dimitri/doxygen/</a> for more information on Doxygen)</p> <p>mbed TLS has a simple setup: it provides the ingredients for an SSL/TLS implementation. These ingredients are listed as modules in the <a class="el" href="index.html#mainpage_modules">Modules section</a>. This "Modules section" introduces the high-level module concepts used throughout this documentation.<br /> Some examples of mbed TLS usage can be found in the <a class="el" href="index.html#mainpage_examples">Examples section</a>.</p> <h1><a class="anchor" id="mainpage_modules"></a> Modules</h1> <p>mbed TLS supports SSLv3 up to TLSv1.2 communication by providing the following:</p><ul> <li>TCP/IP communication functions: listen, connect, accept, read/write.</li> <li>SSL/TLS communication functions: init, handshake, read/write.</li> <li>X.509 functions: CRT, CRL and key handling</li> <li>Random number generation</li> <li>Hashing</li> <li>Encryption/decryption</li> </ul> <p>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.</p> <p>Note that mbed TLS does not provide a control channel or (multiple) session handling without additional work from the developer.</p> <h1><a class="anchor" id="mainpage_examples"></a> Examples</h1> <p>Example server setup:</p> <p><b>Prerequisites:</b> </p><ul> <li>X.509 certificate and private key</li> <li>session handling functions</li> </ul> <p><b>Setup:</b> </p><ul> <li>Load your certificate and your private RSA key (X.509 interface)</li> <li>Setup the listening TCP socket (TCP/IP interface)</li> <li>Accept incoming client connection (TCP/IP interface)</li> <li>Initialise as an SSL-server (SSL/TLS interface)<ul> <li>Set parameters, e.g. authentication, ciphers, CA-chain, key exchange</li> <li>Set callback functions RNG, IO, session handling</li> </ul> </li> <li>Perform an SSL-handshake (SSL/TLS interface)</li> <li>Read/write data (SSL/TLS interface)</li> <li>Close and cleanup (all interfaces)</li> </ul> <p>Example client setup:</p> <p><b>Prerequisites:</b> </p><ul> <li>X.509 certificate and private key</li> <li>X.509 trusted CA certificates</li> </ul> <p><b>Setup:</b> </p><ul> <li>Load the trusted CA certificates (X.509 interface)</li> <li>Load your certificate and your private RSA key (X.509 interface)</li> <li>Setup a TCP/IP connection (TCP/IP interface)</li> <li>Initialise as an SSL-client (SSL/TLS interface)<ul> <li>Set parameters, e.g. authentication mode, ciphers, CA-chain, session</li> <li>Set callback functions RNG, IO</li> </ul> </li> <li>Perform an SSL-handshake (SSL/TLS interface)</li> <li>Verify the server certificate (SSL/TLS interface)</li> <li>Write/read data (SSL/TLS interface)</li> <li>Close and cleanup (all interfaces) </li> </ul> </div></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Tue Jan 1 2019 18:27:18 for mbed TLS v2.7.8 by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.13 </small></address> </body> </html>