<!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"/> <title>PolarSSL: polarssl/ssl.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body onload='searchBox.OnSelectItem(0);'> <!-- Generated by Doxygen 1.7.4 --> <script type="text/javascript"><!-- var searchBox = new SearchBox("searchBox", "search",false,'Search'); --></script> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">PolarSSL</div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li id="searchli"> <div id="MSearchBox" class="MSearchBoxInactive"> <span class="left"> <img id="MSearchSelect" src="search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> </span><span class="right"> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </span> </div> </li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#define-members">Defines</a> | <a href="#typedef-members">Typedefs</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> | <a href="#var-members">Variables</a> </div> <div class="headertitle"> <div class="title">polarssl/ssl.h File Reference</div> </div> </div> <div class="contents"> <div class="textblock"><code>#include <time.h></code><br/> <code>#include "<a class="el" href="net_8h_source.html">polarssl/net.h</a>"</code><br/> <code>#include "<a class="el" href="dhm_8h_source.html">polarssl/dhm.h</a>"</code><br/> <code>#include "<a class="el" href="rsa_8h_source.html">polarssl/rsa.h</a>"</code><br/> <code>#include "<a class="el" href="md5_8h_source.html">polarssl/md5.h</a>"</code><br/> <code>#include "<a class="el" href="sha1_8h_source.html">polarssl/sha1.h</a>"</code><br/> <code>#include "<a class="el" href="x509_8h_source.html">polarssl/x509.h</a>"</code><br/> </div> <p><a href="ssl_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="nested-classes"></a> Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__ssl__session.html">_ssl_session</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__ssl__context.html">_ssl_context</a></td></tr> <tr><td colspan="2"><h2><a name="define-members"></a> Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39e027ae9b490271b7c7b0e7bd4ec9a6"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE" ref="a39e027ae9b490271b7c7b0e7bd4ec9a6" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE</b>   -0x1000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adcb102bf6601922b468a812b6cbeea12"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_BAD_INPUT_DATA" ref="adcb102bf6601922b468a812b6cbeea12" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_INPUT_DATA</b>   -0x1800</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8b3452c48a066a22c809a9d60bc3752"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_INVALID_MAC" ref="ac8b3452c48a066a22c809a9d60bc3752" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_INVALID_MAC</b>   -0x2000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a1584fe2b857e6d374d086768aaa6b8"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_INVALID_RECORD" ref="a6a1584fe2b857e6d374d086768aaa6b8" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_INVALID_RECORD</b>   -0x2800</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8b88edeb614e324f968c6821566b5e9"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_INVALID_MODULUS_SIZE" ref="ac8b88edeb614e324f968c6821566b5e9" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_INVALID_MODULUS_SIZE</b>   -0x3000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa719a34cc90e8d15dbface25b41e88db"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_UNKNOWN_CIPHER" ref="aa719a34cc90e8d15dbface25b41e88db" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_UNKNOWN_CIPHER</b>   -0x3800</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a95498cade77d8c7db264bf799b2753f5"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_NO_CIPHER_CHOSEN" ref="a95498cade77d8c7db264bf799b2753f5" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_NO_CIPHER_CHOSEN</b>   -0x4000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9e85bbc0ff0e2d9d02e0c3b04f09cf4"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_NO_SESSION_FOUND" ref="af9e85bbc0ff0e2d9d02e0c3b04f09cf4" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_NO_SESSION_FOUND</b>   -0x4800</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb836450c3b6ffa966cf6cf74ffe927f"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_NO_CLIENT_CERTIFICATE" ref="aeb836450c3b6ffa966cf6cf74ffe927f" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_NO_CLIENT_CERTIFICATE</b>   -0x5000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5db026d994cb67ac466c9181f380be0"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_CERTIFICATE_TOO_LARGE" ref="ad5db026d994cb67ac466c9181f380be0" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_CERTIFICATE_TOO_LARGE</b>   -0x5800</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec0313a3fa877e3a3684756d2577d2b4"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_CERTIFICATE_REQUIRED" ref="aec0313a3fa877e3a3684756d2577d2b4" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_CERTIFICATE_REQUIRED</b>   -0x6000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a68feacf7e93dc9d0128e3888ae4a4858"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_PRIVATE_KEY_REQUIRED" ref="a68feacf7e93dc9d0128e3888ae4a4858" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_PRIVATE_KEY_REQUIRED</b>   -0x6800</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ca3ab1629e09f0d370e14ad11be523d"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_CA_CHAIN_REQUIRED" ref="a8ca3ab1629e09f0d370e14ad11be523d" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_CA_CHAIN_REQUIRED</b>   -0x7000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae047b69d2893d835285016db717d4f56"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_UNEXPECTED_MESSAGE" ref="ae047b69d2893d835285016db717d4f56" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_UNEXPECTED_MESSAGE</b>   -0x7800</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5cb8a175a1f0c3b3fe77f26fd32abda2"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_FATAL_ALERT_MESSAGE" ref="a5cb8a175a1f0c3b3fe77f26fd32abda2" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_FATAL_ALERT_MESSAGE</b>   -0x8000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab8af28117b65fb455f8bc95b7f8a1f8a"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_PEER_VERIFY_FAILED" ref="ab8af28117b65fb455f8bc95b7f8a1f8a" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_PEER_VERIFY_FAILED</b>   -0x8800</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8e4c3b27c9e170358c71c83683c554da"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY" ref="a8e4c3b27c9e170358c71c83683c554da" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY</b>   -0x9000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a981518b3ec1d68d785028766ccd735ae"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_BAD_HS_CLIENT_HELLO" ref="a981518b3ec1d68d785028766ccd735ae" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_CLIENT_HELLO</b>   -0x9800</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89e784e728eb487979ed1d66becea54e"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_BAD_HS_SERVER_HELLO" ref="a89e784e728eb487979ed1d66becea54e" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_SERVER_HELLO</b>   -0xA000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abdc6f709e309ee39f6f1b085ee941a55"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_BAD_HS_CERTIFICATE" ref="abdc6f709e309ee39f6f1b085ee941a55" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_CERTIFICATE</b>   -0xA800</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a295157be7847f73e569ac41fb81faa08"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_BAD_HS_CERTIFICATE_REQUEST" ref="a295157be7847f73e569ac41fb81faa08" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_CERTIFICATE_REQUEST</b>   -0xB000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abde15c07b9a03c3ff57e17163af425fc"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE" ref="abde15c07b9a03c3ff57e17163af425fc" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE</b>   -0xB800</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c3092523242ec70c8a83edae64ad24e"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_BAD_HS_SERVER_HELLO_DONE" ref="a0c3092523242ec70c8a83edae64ad24e" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_SERVER_HELLO_DONE</b>   -0xC000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a446cd19a186cc2a67f64993af3013fbd"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE" ref="a446cd19a186cc2a67f64993af3013fbd" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE</b>   -0xC800</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a26bdac13261b618681a39b0a20ebf103"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_BAD_HS_CERTIFICATE_VERIFY" ref="a26bdac13261b618681a39b0a20ebf103" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_CERTIFICATE_VERIFY</b>   -0xD000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b2917c9869b66d3d7c026b5b0e00652"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_BAD_HS_CHANGE_CIPHER_SPEC" ref="a1b2917c9869b66d3d7c026b5b0e00652" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_CHANGE_CIPHER_SPEC</b>   -0xD800</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5238dfb12be0905ef5243bedf195e9b"></a><!-- doxytag: member="ssl.h::POLARSSL_ERR_SSL_BAD_HS_FINISHED" ref="ad5238dfb12be0905ef5243bedf195e9b" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_FINISHED</b>   -0xE000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a84391a43fea28830ad138e2418a9728b"></a><!-- doxytag: member="ssl.h::SSL_MAJOR_VERSION_3" ref="a84391a43fea28830ad138e2418a9728b" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_MAJOR_VERSION_3</b>   3</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a4fedd81485a2c0a99b8d0d1dea245302">SSL_MINOR_VERSION_0</a>   0</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a3e0c978697874bb5457d61f7515e8f55">SSL_MINOR_VERSION_1</a>   1</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#aab565447d7abe2dcb01544e7dbfcd4c9">SSL_MINOR_VERSION_2</a>   2</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d3c4f57b35a1b8c395ebd7451e2211b"></a><!-- doxytag: member="ssl.h::SSL_IS_CLIENT" ref="a7d3c4f57b35a1b8c395ebd7451e2211b" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_IS_CLIENT</b>   0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8fe8b6c95281a7048839f8b30713ff35"></a><!-- doxytag: member="ssl.h::SSL_IS_SERVER" ref="a8fe8b6c95281a7048839f8b30713ff35" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_IS_SERVER</b>   1</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad47aca4f7ebf39713fa96eac86343e7b"></a><!-- doxytag: member="ssl.h::SSL_COMPRESS_NULL" ref="ad47aca4f7ebf39713fa96eac86343e7b" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_COMPRESS_NULL</b>   0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a060b51dc564d4b9dc941e81eab66d60c"></a><!-- doxytag: member="ssl.h::SSL_VERIFY_NONE" ref="a060b51dc564d4b9dc941e81eab66d60c" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_VERIFY_NONE</b>   0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7760ecdb03ee6f4520a21c04942c0883"></a><!-- doxytag: member="ssl.h::SSL_VERIFY_OPTIONAL" ref="a7760ecdb03ee6f4520a21c04942c0883" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_VERIFY_OPTIONAL</b>   1</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1f9549da00fa29209b3db3c5f11a329b"></a><!-- doxytag: member="ssl.h::SSL_VERIFY_REQUIRED" ref="a1f9549da00fa29209b3db3c5f11a329b" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_VERIFY_REQUIRED</b>   2</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70bafb07a819e6bf9df2c97ce6dd139d"></a><!-- doxytag: member="ssl.h::SSL_MAX_CONTENT_LEN" ref="a70bafb07a819e6bf9df2c97ce6dd139d" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_MAX_CONTENT_LEN</b>   16384</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70dcd2bbca08cfb787f98019dc98bad5"></a><!-- doxytag: member="ssl.h::SSL_BUFFER_LEN" ref="a70dcd2bbca08cfb787f98019dc98bad5" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_BUFFER_LEN</b>   (SSL_MAX_CONTENT_LEN + 512)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a34f57a075af5f38f7db5607035f84b86"></a><!-- doxytag: member="ssl.h::SSL_RSA_RC4_128_MD5" ref="a34f57a075af5f38f7db5607035f84b86" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_RSA_RC4_128_MD5</b>   0x04</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e454fd13d0cc6830f8f09520e1878c8"></a><!-- doxytag: member="ssl.h::SSL_RSA_RC4_128_SHA" ref="a6e454fd13d0cc6830f8f09520e1878c8" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_RSA_RC4_128_SHA</b>   0x05</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a12561504b916289724d9d257b164a4e8"></a><!-- doxytag: member="ssl.h::SSL_RSA_DES_168_SHA" ref="a12561504b916289724d9d257b164a4e8" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_RSA_DES_168_SHA</b>   0x0A</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1d3a8b4c2777f12f561870743a4346f"></a><!-- doxytag: member="ssl.h::SSL_EDH_RSA_DES_168_SHA" ref="ad1d3a8b4c2777f12f561870743a4346f" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_EDH_RSA_DES_168_SHA</b>   0x16</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc9c086c8fa1996d6c1f4ecd4a941324"></a><!-- doxytag: member="ssl.h::SSL_RSA_AES_128_SHA" ref="abc9c086c8fa1996d6c1f4ecd4a941324" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_RSA_AES_128_SHA</b>   0x2F</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a09cc467cc1194b851832cc2d549dd447"></a><!-- doxytag: member="ssl.h::SSL_EDH_RSA_AES_128_SHA" ref="a09cc467cc1194b851832cc2d549dd447" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_EDH_RSA_AES_128_SHA</b>   0x33</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1aa95ad620245e884e86ff7f081326c1"></a><!-- doxytag: member="ssl.h::SSL_RSA_AES_256_SHA" ref="a1aa95ad620245e884e86ff7f081326c1" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_RSA_AES_256_SHA</b>   0x35</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a332f252c32573c8bf6ae216393863566"></a><!-- doxytag: member="ssl.h::SSL_EDH_RSA_AES_256_SHA" ref="a332f252c32573c8bf6ae216393863566" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_EDH_RSA_AES_256_SHA</b>   0x39</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3d8856a6c9c449b2922d4cc73b721524"></a><!-- doxytag: member="ssl.h::SSL_RSA_CAMELLIA_128_SHA" ref="a3d8856a6c9c449b2922d4cc73b721524" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_RSA_CAMELLIA_128_SHA</b>   0x41</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acf98c580a0a1eca3f227f5dd3dfe5117"></a><!-- doxytag: member="ssl.h::SSL_EDH_RSA_CAMELLIA_128_SHA" ref="acf98c580a0a1eca3f227f5dd3dfe5117" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_EDH_RSA_CAMELLIA_128_SHA</b>   0x45</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23320e23e299c633224e9b62884d8a32"></a><!-- doxytag: member="ssl.h::SSL_RSA_CAMELLIA_256_SHA" ref="a23320e23e299c633224e9b62884d8a32" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_RSA_CAMELLIA_256_SHA</b>   0x84</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa86c62d1ef56bcecc2b9e9bf63027093"></a><!-- doxytag: member="ssl.h::SSL_EDH_RSA_CAMELLIA_256_SHA" ref="aa86c62d1ef56bcecc2b9e9bf63027093" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_EDH_RSA_CAMELLIA_256_SHA</b>   0x88</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a738eccdfea2b6a0de26231a0c2aafe4f"></a><!-- doxytag: member="ssl.h::SSL_MSG_CHANGE_CIPHER_SPEC" ref="a738eccdfea2b6a0de26231a0c2aafe4f" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_MSG_CHANGE_CIPHER_SPEC</b>   20</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3d6dc94916f324f0a42881bd6e6f7db6"></a><!-- doxytag: member="ssl.h::SSL_MSG_ALERT" ref="a3d6dc94916f324f0a42881bd6e6f7db6" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_MSG_ALERT</b>   21</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add1f218869a9aeb6f8b1190a99f0625a"></a><!-- doxytag: member="ssl.h::SSL_MSG_HANDSHAKE" ref="add1f218869a9aeb6f8b1190a99f0625a" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_MSG_HANDSHAKE</b>   22</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ea7789fe625447a1bf69d9a2382c861"></a><!-- doxytag: member="ssl.h::SSL_MSG_APPLICATION_DATA" ref="a6ea7789fe625447a1bf69d9a2382c861" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_MSG_APPLICATION_DATA</b>   23</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f8f7ea03f02f45a427379d17c0c3381"></a><!-- doxytag: member="ssl.h::SSL_ALERT_LEVEL_WARNING" ref="a3f8f7ea03f02f45a427379d17c0c3381" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_LEVEL_WARNING</b>   1</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7aada6071810eba54885ae8ba9012a14"></a><!-- doxytag: member="ssl.h::SSL_ALERT_LEVEL_FATAL" ref="a7aada6071810eba54885ae8ba9012a14" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_LEVEL_FATAL</b>   2</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad14b12418d867f679ae512c85172437d"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_CLOSE_NOTIFY" ref="ad14b12418d867f679ae512c85172437d" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_CLOSE_NOTIFY</b>   0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39c9318d0549bab6c227ecd0d70f035c"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_UNEXPECTED_MESSAGE" ref="a39c9318d0549bab6c227ecd0d70f035c" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_UNEXPECTED_MESSAGE</b>   10</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1bf699cd4643269f111c8dafe31bb56"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_BAD_RECORD_MAD" ref="ad1bf699cd4643269f111c8dafe31bb56" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_BAD_RECORD_MAD</b>   20</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9747c1125f8a52082305522b85553578"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_DECRYPTION_FAILED" ref="a9747c1125f8a52082305522b85553578" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_DECRYPTION_FAILED</b>   21</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abafde3870ba4e25a83e8f73fa8c32246"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_RECORD_OVERFLOW" ref="abafde3870ba4e25a83e8f73fa8c32246" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_RECORD_OVERFLOW</b>   22</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d4c809b89c68492e6bff977e580006a"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_DECOMPRESSION_FAILURE" ref="a6d4c809b89c68492e6bff977e580006a" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_DECOMPRESSION_FAILURE</b>   30</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a21e00498ea9a069ec7f182a87ec8b177"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_HANDSHAKE_FAILURE" ref="a21e00498ea9a069ec7f182a87ec8b177" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_HANDSHAKE_FAILURE</b>   40</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa39058a5209b2dc80ce6ed78df88ac1e"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_NO_CERT" ref="aa39058a5209b2dc80ce6ed78df88ac1e" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_NO_CERT</b>   41</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab0fc5a1e3b26c77591deb67d4c0265b7"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_BAD_CERT" ref="ab0fc5a1e3b26c77591deb67d4c0265b7" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_BAD_CERT</b>   42</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acab76dfccc5286d385afa9c41a2cbbda"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_UNSUPPORTED_CERT" ref="acab76dfccc5286d385afa9c41a2cbbda" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_UNSUPPORTED_CERT</b>   43</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa39fba2c4ce5ed5eef811bbcd331df20"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_CERT_REVOKED" ref="aa39fba2c4ce5ed5eef811bbcd331df20" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_CERT_REVOKED</b>   44</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a08cedd5d2c7b75509aec63668f02dfcd"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_CERT_EXPIRED" ref="a08cedd5d2c7b75509aec63668f02dfcd" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_CERT_EXPIRED</b>   45</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1190be949de654aa59926a1a47722ef0"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_CERT_UNKNOWN" ref="a1190be949de654aa59926a1a47722ef0" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_CERT_UNKNOWN</b>   46</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad93db03390f910032467790dab2593fe"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_ILLEGAL_PARAMETER" ref="ad93db03390f910032467790dab2593fe" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_ILLEGAL_PARAMETER</b>   47</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca99d76eb4973ab3f738810886a736f5"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_UNKNOWN_CA" ref="aca99d76eb4973ab3f738810886a736f5" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_UNKNOWN_CA</b>   48</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a00a2f8661c31e2e1211e0586398d3f3d"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_ACCESS_DENIED" ref="a00a2f8661c31e2e1211e0586398d3f3d" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_ACCESS_DENIED</b>   49</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a850d74ffe2fb34a9c8e9502413a50fb6"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_DECODE_ERROR" ref="a850d74ffe2fb34a9c8e9502413a50fb6" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_DECODE_ERROR</b>   50</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae944de2c846156585bee4200ef789392"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_DECRYPT_ERROR" ref="ae944de2c846156585bee4200ef789392" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_DECRYPT_ERROR</b>   51</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a243347f3447592161fd255351344cfbc"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_EXPORT_RESTRICTION" ref="a243347f3447592161fd255351344cfbc" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_EXPORT_RESTRICTION</b>   60</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a368e71bd5a946294a83aa59d121a5680"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_PROTOCOL_VERSION" ref="a368e71bd5a946294a83aa59d121a5680" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_PROTOCOL_VERSION</b>   70</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ee5ef076802f9d80a86676805daddeb"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_INSUFFICIENT_SECURITY" ref="a5ee5ef076802f9d80a86676805daddeb" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_INSUFFICIENT_SECURITY</b>   71</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae62074a176d711811f00e9a4a6a6596b"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_INTERNAL_ERROR" ref="ae62074a176d711811f00e9a4a6a6596b" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_INTERNAL_ERROR</b>   80</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a42430d65a46a924d2e89cd2909c0783a"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_USER_CANCELED" ref="a42430d65a46a924d2e89cd2909c0783a" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_USER_CANCELED</b>   90</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a575935e3c2a919ac2600e9f4f1ea27bb"></a><!-- doxytag: member="ssl.h::SSL_ALERT_MSG_NO_RENEGOTIATION" ref="a575935e3c2a919ac2600e9f4f1ea27bb" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_NO_RENEGOTIATION</b>   100</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afda93251f735deb8569698986df4bb95"></a><!-- doxytag: member="ssl.h::SSL_HS_HELLO_REQUEST" ref="afda93251f735deb8569698986df4bb95" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_HS_HELLO_REQUEST</b>   0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a565597ab4583db29a05d49c7fa0686a2"></a><!-- doxytag: member="ssl.h::SSL_HS_CLIENT_HELLO" ref="a565597ab4583db29a05d49c7fa0686a2" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_HS_CLIENT_HELLO</b>   1</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad10d88b523225e34a788bb2553d2593"></a><!-- doxytag: member="ssl.h::SSL_HS_SERVER_HELLO" ref="aad10d88b523225e34a788bb2553d2593" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_HS_SERVER_HELLO</b>   2</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaaaa25b3ce92c5da9f357928032c3614"></a><!-- doxytag: member="ssl.h::SSL_HS_CERTIFICATE" ref="aaaaa25b3ce92c5da9f357928032c3614" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_HS_CERTIFICATE</b>   11</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab9903e824d585f667a0018fa459dc30a"></a><!-- doxytag: member="ssl.h::SSL_HS_SERVER_KEY_EXCHANGE" ref="ab9903e824d585f667a0018fa459dc30a" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_HS_SERVER_KEY_EXCHANGE</b>   12</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a146ced9f8b0ae516cc78f1cec065b4a2"></a><!-- doxytag: member="ssl.h::SSL_HS_CERTIFICATE_REQUEST" ref="a146ced9f8b0ae516cc78f1cec065b4a2" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_HS_CERTIFICATE_REQUEST</b>   13</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56bb1fe1c001cd5905e26a7ad6cee303"></a><!-- doxytag: member="ssl.h::SSL_HS_SERVER_HELLO_DONE" ref="a56bb1fe1c001cd5905e26a7ad6cee303" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_HS_SERVER_HELLO_DONE</b>   14</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a373b6769a2f5555bc03d16f25fd43286"></a><!-- doxytag: member="ssl.h::SSL_HS_CERTIFICATE_VERIFY" ref="a373b6769a2f5555bc03d16f25fd43286" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_HS_CERTIFICATE_VERIFY</b>   15</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f20623ea264473b438e96339278c16b"></a><!-- doxytag: member="ssl.h::SSL_HS_CLIENT_KEY_EXCHANGE" ref="a3f20623ea264473b438e96339278c16b" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_HS_CLIENT_KEY_EXCHANGE</b>   16</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a47bcc86840fcbc68b5a70bfca774258a"></a><!-- doxytag: member="ssl.h::SSL_HS_FINISHED" ref="a47bcc86840fcbc68b5a70bfca774258a" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>SSL_HS_FINISHED</b>   20</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a21bb5a4f093a191a4e3f0efae924dd7c"></a><!-- doxytag: member="ssl.h::TLS_EXT_SERVERNAME" ref="a21bb5a4f093a191a4e3f0efae924dd7c" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>TLS_EXT_SERVERNAME</b>   0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a948d249c0b07844056fdf68c640bb2ca"></a><!-- doxytag: member="ssl.h::TLS_EXT_SERVERNAME_HOSTNAME" ref="a948d249c0b07844056fdf68c640bb2ca" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>TLS_EXT_SERVERNAME_HOSTNAME</b>   0</td></tr> <tr><td colspan="2"><h2><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abb59b301c07806142c790115fa49eb9e"></a><!-- doxytag: member="ssl.h::ssl_session" ref="abb59b301c07806142c790115fa49eb9e" args="" --> typedef struct <a class="el" href="struct__ssl__session.html">_ssl_session</a> </td><td class="memItemRight" valign="bottom"><b>ssl_session</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6cc90742039ba6f9fa184c22af7ea151"></a><!-- doxytag: member="ssl.h::ssl_context" ref="a6cc90742039ba6f9fa184c22af7ea151" args="" --> typedef struct <a class="el" href="struct__ssl__context.html">_ssl_context</a> </td><td class="memItemRight" valign="bottom"><b>ssl_context</b></td></tr> <tr><td colspan="2"><h2><a name="enum-members"></a> Enumerations</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><b>ssl_states</b> { <br/>   <b>SSL_HELLO_REQUEST</b>, <b>SSL_CLIENT_HELLO</b>, <b>SSL_SERVER_HELLO</b>, <b>SSL_SERVER_CERTIFICATE</b>, <br/>   <b>SSL_SERVER_KEY_EXCHANGE</b>, <b>SSL_CERTIFICATE_REQUEST</b>, <b>SSL_SERVER_HELLO_DONE</b>, <b>SSL_CLIENT_CERTIFICATE</b>, <br/>   <b>SSL_CLIENT_KEY_EXCHANGE</b>, <b>SSL_CERTIFICATE_VERIFY</b>, <b>SSL_CLIENT_CHANGE_CIPHER_SPEC</b>, <b>SSL_CLIENT_FINISHED</b>, <br/>   <b>SSL_SERVER_CHANGE_CIPHER_SPEC</b>, <b>SSL_SERVER_FINISHED</b>, <b>SSL_FLUSH_BUFFERS</b>, <b>SSL_HANDSHAKE_OVER</b> <br/> }</td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#add102a477ee9b9d9cda8fb1b86313d2e">ssl_init</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize an SSL context. <a href="#add102a477ee9b9d9cda8fb1b86313d2e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a3b71db44f3dd86fb3d4da60401a9dc0f">ssl_set_endpoint</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, int endpoint)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current endpoint type. <a href="#a3b71db44f3dd86fb3d4da60401a9dc0f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a12548c85c004225593c930c83b08a109">ssl_set_authmode</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, int authmode)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the certificate verification mode. <a href="#a12548c85c004225593c930c83b08a109"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#adc5f63c5d93e557d6a4256613155ad83">ssl_set_rng</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, int(*f_rng)(void *), void *p_rng)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the random number generator callback. <a href="#adc5f63c5d93e557d6a4256613155ad83"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a284ba5bb8d4f5e338b6a8ad9d45c9024">ssl_set_dbg</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, void(*f_dbg)(void *, int, const char *), void *p_dbg)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the debug callback. <a href="#a284ba5bb8d4f5e338b6a8ad9d45c9024"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a5fe35c2ffbb850964388e2085d7f22a4">ssl_set_bio</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, int(*f_recv)(void *, unsigned char *, int), void *p_recv, int(*f_send)(void *, unsigned char *, int), void *p_send)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the underlying BIO read and write callbacks. <a href="#a5fe35c2ffbb850964388e2085d7f22a4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a88bd6f38c238703d38bfe9f8db49efb7">ssl_set_scb</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, int(*s_get)(<a class="el" href="struct__ssl__context.html">ssl_context</a> *), int(*s_set)(<a class="el" href="struct__ssl__context.html">ssl_context</a> *))</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the session callbacks (server-side only) <a href="#a88bd6f38c238703d38bfe9f8db49efb7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a227f2d1077c32f6d901e6884c09c460d">ssl_set_session</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, int resume, int timeout, <a class="el" href="struct__ssl__session.html">ssl_session</a> *session)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the session resuming flag, timeout and data. <a href="#a227f2d1077c32f6d901e6884c09c460d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a754095125a0363659a837b4955b42a32">ssl_set_ciphers</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, int *ciphers)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the list of allowed ciphersuites. <a href="#a754095125a0363659a837b4955b42a32"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#aaefe60889e957cc307a244ea6031783a">ssl_set_ca_chain</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, <a class="el" href="struct__x509__cert.html">x509_cert</a> *ca_chain, <a class="el" href="struct__x509__crl.html">x509_crl</a> *ca_crl, const char *peer_cn)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the data required to verify peer certificate. <a href="#aaefe60889e957cc307a244ea6031783a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a211c7efa65a306d62cd5856b3b380275">ssl_set_own_cert</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, <a class="el" href="struct__x509__cert.html">x509_cert</a> *own_cert, <a class="el" href="structrsa__context.html">rsa_context</a> *rsa_key)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set own certificate and private key. <a href="#a211c7efa65a306d62cd5856b3b380275"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a1d143cccc27033e73b13cca6c09a144e">ssl_set_dh_param</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, const char *dhm_P, const char *dhm_G)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the Diffie-Hellman public P and G values, read as hexadecimal strings (server-side only) <a href="#a1d143cccc27033e73b13cca6c09a144e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a08d6dba305dbd338ed1d323dec44fc5e">ssl_set_hostname</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, const char *hostname)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set hostname for ServerName TLS Extension. <a href="#a08d6dba305dbd338ed1d323dec44fc5e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#ad08eb44d12605b422054a1bd78b33eb8">ssl_get_bytes_avail</a> (const <a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the number of data bytes available to read. <a href="#ad08eb44d12605b422054a1bd78b33eb8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#ac209bee37b76c6de34dd4d6bd97a7738">ssl_get_verify_result</a> (const <a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the result of the certificate verification. <a href="#ac209bee37b76c6de34dd4d6bd97a7738"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a303f7f37048d1c71af90019c07bd4033">ssl_get_cipher</a> (const <a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the name of the current cipher. <a href="#a303f7f37048d1c71af90019c07bd4033"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#ac16d7f3ed66ca2d497b47b0e68d58f20">ssl_handshake</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Perform the SSL handshake. <a href="#ac16d7f3ed66ca2d497b47b0e68d58f20"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a6d20f0d848db86fa3d81a2bae080b524">ssl_read</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, unsigned char *buf, int len)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Read at most 'len' application data bytes. <a href="#a6d20f0d848db86fa3d81a2bae080b524"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#ad87c332dd29a1b570f905d9e6978f0b7">ssl_write</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, const unsigned char *buf, int len)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Write exactly 'len' application data bytes. <a href="#ad87c332dd29a1b570f905d9e6978f0b7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#ab9d44e2a86b85dea525b43ae31269bf7">ssl_close_notify</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Notify the peer that the connection is being closed. <a href="#ab9d44e2a86b85dea525b43ae31269bf7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#ac58911881e51c463abfca52e2143dfd3">ssl_free</a> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free an SSL context. <a href="#ac58911881e51c463abfca52e2143dfd3"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a51adc6b0b94a54058627b86bbc9ef3e1"></a><!-- doxytag: member="ssl.h::ssl_handshake_client" ref="a51adc6b0b94a54058627b86bbc9ef3e1" args="(ssl_context *ssl)" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_handshake_client</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd78e826cdb896dbf9dc4cc922fbbab7"></a><!-- doxytag: member="ssl.h::ssl_handshake_server" ref="afd78e826cdb896dbf9dc4cc922fbbab7" args="(ssl_context *ssl)" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_handshake_server</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5dedff2211a3724e2992c5172389ce33"></a><!-- doxytag: member="ssl.h::ssl_derive_keys" ref="a5dedff2211a3724e2992c5172389ce33" args="(ssl_context *ssl)" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_derive_keys</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7e98b7c44559205426a3f78c7dd4636"></a><!-- doxytag: member="ssl.h::ssl_calc_verify" ref="ab7e98b7c44559205426a3f78c7dd4636" args="(ssl_context *ssl, unsigned char hash[36])" --> void </td><td class="memItemRight" valign="bottom"><b>ssl_calc_verify</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, unsigned char hash[36])</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a04bbbb6ff83880a6657b4eb1c2765821"></a><!-- doxytag: member="ssl.h::ssl_read_record" ref="a04bbbb6ff83880a6657b4eb1c2765821" args="(ssl_context *ssl)" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_read_record</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a29eda929bf3c7c737207305d87dacb05"></a><!-- doxytag: member="ssl.h::ssl_fetch_input" ref="a29eda929bf3c7c737207305d87dacb05" args="(ssl_context *ssl, int nb_want)" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_fetch_input</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl, int nb_want)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a32550924677c7edf4bb249d1f56916a5"></a><!-- doxytag: member="ssl.h::ssl_write_record" ref="a32550924677c7edf4bb249d1f56916a5" args="(ssl_context *ssl)" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_write_record</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab54c776878e3d8976c07ddeaa11ef9a4"></a><!-- doxytag: member="ssl.h::ssl_flush_output" ref="ab54c776878e3d8976c07ddeaa11ef9a4" args="(ssl_context *ssl)" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_flush_output</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa6c01a5ac49039a9335f6d452ed9034"></a><!-- doxytag: member="ssl.h::ssl_parse_certificate" ref="aaa6c01a5ac49039a9335f6d452ed9034" args="(ssl_context *ssl)" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_parse_certificate</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49747db4781cba620844afeeb8c393f3"></a><!-- doxytag: member="ssl.h::ssl_write_certificate" ref="a49747db4781cba620844afeeb8c393f3" args="(ssl_context *ssl)" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_write_certificate</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd03a1da48523e5aff86920bff119c7e"></a><!-- doxytag: member="ssl.h::ssl_parse_change_cipher_spec" ref="abd03a1da48523e5aff86920bff119c7e" args="(ssl_context *ssl)" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_parse_change_cipher_spec</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6613709b99e391d8b166fcee4810dccb"></a><!-- doxytag: member="ssl.h::ssl_write_change_cipher_spec" ref="a6613709b99e391d8b166fcee4810dccb" args="(ssl_context *ssl)" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_write_change_cipher_spec</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4bc3f2691c2e488329a5f60be6f25fc"></a><!-- doxytag: member="ssl.h::ssl_parse_finished" ref="ab4bc3f2691c2e488329a5f60be6f25fc" args="(ssl_context *ssl)" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_parse_finished</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ef4eeb9a03b9a474ff8aa71c9c949da"></a><!-- doxytag: member="ssl.h::ssl_write_finished" ref="a6ef4eeb9a03b9a474ff8aa71c9c949da" args="(ssl_context *ssl)" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_write_finished</b> (<a class="el" href="struct__ssl__context.html">ssl_context</a> *ssl)</td></tr> <tr><td colspan="2"><h2><a name="var-members"></a> Variables</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a07a6d5fb8775bc57dcaf42b8a8c82ff7"></a><!-- doxytag: member="ssl.h::ssl_default_ciphers" ref="a07a6d5fb8775bc57dcaf42b8a8c82ff7" args="[]" --> int </td><td class="memItemRight" valign="bottom"><b>ssl_default_ciphers</b> []</td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Copyright (C) 2006-2010, Brainspark B.V.</p> <p>This file is part of PolarSSL (<a href="http://www.polarssl.org">http://www.polarssl.org</a>) Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org></p> <p>All rights reserved.</p> <p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.</p> <p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p> <p>You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. </p> </div><hr/><h2>Define Documentation</h2> <a class="anchor" id="a4fedd81485a2c0a99b8d0d1dea245302"></a><!-- doxytag: member="ssl.h::SSL_MINOR_VERSION_0" ref="a4fedd81485a2c0a99b8d0d1dea245302" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SSL_MINOR_VERSION_0   0</td> </tr> </table> </div> <div class="memdoc"> <p>SSL v3.0 </p> </div> </div> <a class="anchor" id="a3e0c978697874bb5457d61f7515e8f55"></a><!-- doxytag: member="ssl.h::SSL_MINOR_VERSION_1" ref="a3e0c978697874bb5457d61f7515e8f55" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SSL_MINOR_VERSION_1   1</td> </tr> </table> </div> <div class="memdoc"> <p>TLS v1.0 </p> </div> </div> <a class="anchor" id="aab565447d7abe2dcb01544e7dbfcd4c9"></a><!-- doxytag: member="ssl.h::SSL_MINOR_VERSION_2" ref="aab565447d7abe2dcb01544e7dbfcd4c9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SSL_MINOR_VERSION_2   2</td> </tr> </table> </div> <div class="memdoc"> <p>TLS v1.1 </p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ab9d44e2a86b85dea525b43ae31269bf7"></a><!-- doxytag: member="ssl.h::ssl_close_notify" ref="ab9d44e2a86b85dea525b43ae31269bf7" args="(ssl_context *ssl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int ssl_close_notify </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Notify the peer that the connection is being closed. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ac58911881e51c463abfca52e2143dfd3"></a><!-- doxytag: member="ssl.h::ssl_free" ref="ac58911881e51c463abfca52e2143dfd3" args="(ssl_context *ssl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ssl_free </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Free an SSL context. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ad08eb44d12605b422054a1bd78b33eb8"></a><!-- doxytag: member="ssl.h::ssl_get_bytes_avail" ref="ad08eb44d12605b422054a1bd78b33eb8" args="(const ssl_context *ssl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int ssl_get_bytes_avail </td> <td>(</td> <td class="paramtype">const <a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return the number of data bytes available to read. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>how many bytes are available in the read buffer </dd></dl> </div> </div> <a class="anchor" id="a303f7f37048d1c71af90019c07bd4033"></a><!-- doxytag: member="ssl.h::ssl_get_cipher" ref="a303f7f37048d1c71af90019c07bd4033" args="(const ssl_context *ssl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char* ssl_get_cipher </td> <td>(</td> <td class="paramtype">const <a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return the name of the current cipher. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a string containing the cipher name </dd></dl> </div> </div> <a class="anchor" id="ac209bee37b76c6de34dd4d6bd97a7738"></a><!-- doxytag: member="ssl.h::ssl_get_verify_result" ref="ac209bee37b76c6de34dd4d6bd97a7738" args="(const ssl_context *ssl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int ssl_get_verify_result </td> <td>(</td> <td class="paramtype">const <a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return the result of the certificate verification. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, or a combination of: BADCERT_EXPIRED BADCERT_REVOKED BADCERT_CN_MISMATCH BADCERT_NOT_TRUSTED </dd></dl> </div> </div> <a class="anchor" id="ac16d7f3ed66ca2d497b47b0e68d58f20"></a><!-- doxytag: member="ssl.h::ssl_handshake" ref="ac16d7f3ed66ca2d497b47b0e68d58f20" args="(ssl_context *ssl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int ssl_handshake </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Perform the SSL handshake. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, POLARSSL_ERR_NET_TRY_AGAIN, or a specific SSL error code. </dd></dl> </div> </div> <a class="anchor" id="add102a477ee9b9d9cda8fb1b86313d2e"></a><!-- doxytag: member="ssl.h::ssl_init" ref="add102a477ee9b9d9cda8fb1b86313d2e" args="(ssl_context *ssl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int ssl_init </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Initialize an SSL context. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, or 1 if memory allocation failed </dd></dl> </div> </div> <a class="anchor" id="a6d20f0d848db86fa3d81a2bae080b524"></a><!-- doxytag: member="ssl.h::ssl_read" ref="a6d20f0d848db86fa3d81a2bae080b524" args="(ssl_context *ssl, unsigned char *buf, int len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int ssl_read </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char * </td> <td class="paramname"><em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>len</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Read at most 'len' application data bytes. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">buf</td><td>buffer that will hold the data </td></tr> <tr><td class="paramname">len</td><td>how many bytes must be read</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>This function returns the number of bytes read, or a negative error code. </dd></dl> </div> </div> <a class="anchor" id="a12548c85c004225593c930c83b08a109"></a><!-- doxytag: member="ssl.h::ssl_set_authmode" ref="a12548c85c004225593c930c83b08a109" args="(ssl_context *ssl, int authmode)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ssl_set_authmode </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>authmode</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the certificate verification mode. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">mode</td><td>can be:</td></tr> </table> </dd> </dl> <p>SSL_VERIFY_NONE: peer certificate is not checked (default), this is insecure and SHOULD be avoided.</p> <p>SSL_VERIFY_OPTIONAL: peer certificate is checked, however the handshake continues even if verification failed; <a class="el" href="ssl_8h.html#ac209bee37b76c6de34dd4d6bd97a7738" title="Return the result of the certificate verification.">ssl_get_verify_result()</a> can be called after the handshake is complete.</p> <p>SSL_VERIFY_REQUIRED: peer *must* present a valid certificate, handshake is aborted if verification failed. </p> </div> </div> <a class="anchor" id="a5fe35c2ffbb850964388e2085d7f22a4"></a><!-- doxytag: member="ssl.h::ssl_set_bio" ref="a5fe35c2ffbb850964388e2085d7f22a4" args="(ssl_context *ssl, int(*f_recv)(void *, unsigned char *, int), void *p_recv, int(*f_send)(void *, unsigned char *, int), void *p_send)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ssl_set_bio </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int(*)(void *, unsigned char *, int) </td> <td class="paramname"><em>f_recv</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>p_recv</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int(*)(void *, unsigned char *, int) </td> <td class="paramname"><em>f_send</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>p_send</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the underlying BIO read and write callbacks. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">f_recv</td><td>read callback </td></tr> <tr><td class="paramname">p_recv</td><td>read parameter </td></tr> <tr><td class="paramname">f_send</td><td>write callback </td></tr> <tr><td class="paramname">p_send</td><td>write parameter </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="aaefe60889e957cc307a244ea6031783a"></a><!-- doxytag: member="ssl.h::ssl_set_ca_chain" ref="aaefe60889e957cc307a244ea6031783a" args="(ssl_context *ssl, x509_cert *ca_chain, x509_crl *ca_crl, const char *peer_cn)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ssl_set_ca_chain </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__x509__cert.html">x509_cert</a> * </td> <td class="paramname"><em>ca_chain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__x509__crl.html">x509_crl</a> * </td> <td class="paramname"><em>ca_crl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>peer_cn</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the data required to verify peer certificate. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">ca_chain</td><td>trusted CA chain </td></tr> <tr><td class="paramname">ca_crl</td><td>trusted CA CRLs </td></tr> <tr><td class="paramname">peer_cn</td><td>expected peer CommonName (or NULL)</td></tr> </table> </dd> </dl> <dl class="note"><dt><b>Note:</b></dt><dd>TODO: add two more parameters: depth and crl </dd></dl> </div> </div> <a class="anchor" id="a754095125a0363659a837b4955b42a32"></a><!-- doxytag: member="ssl.h::ssl_set_ciphers" ref="a754095125a0363659a837b4955b42a32" args="(ssl_context *ssl, int *ciphers)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ssl_set_ciphers </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>ciphers</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the list of allowed ciphersuites. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">ciphers</td><td>0-terminated list of allowed ciphers </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a284ba5bb8d4f5e338b6a8ad9d45c9024"></a><!-- doxytag: member="ssl.h::ssl_set_dbg" ref="a284ba5bb8d4f5e338b6a8ad9d45c9024" args="(ssl_context *ssl, void(*f_dbg)(void *, int, const char *), void *p_dbg)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ssl_set_dbg </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void(*)(void *, int, const char *) </td> <td class="paramname"><em>f_dbg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>p_dbg</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the debug callback. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">f_dbg</td><td>debug function </td></tr> <tr><td class="paramname">p_dbg</td><td>debug parameter </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a1d143cccc27033e73b13cca6c09a144e"></a><!-- doxytag: member="ssl.h::ssl_set_dh_param" ref="a1d143cccc27033e73b13cca6c09a144e" args="(ssl_context *ssl, const char *dhm_P, const char *dhm_G)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int ssl_set_dh_param </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>dhm_P</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>dhm_G</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the Diffie-Hellman public P and G values, read as hexadecimal strings (server-side only) </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">dhm_P</td><td>Diffie-Hellman-Merkle modulus </td></tr> <tr><td class="paramname">dhm_G</td><td>Diffie-Hellman-Merkle generator</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful </dd></dl> </div> </div> <a class="anchor" id="a3b71db44f3dd86fb3d4da60401a9dc0f"></a><!-- doxytag: member="ssl.h::ssl_set_endpoint" ref="a3b71db44f3dd86fb3d4da60401a9dc0f" args="(ssl_context *ssl, int endpoint)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ssl_set_endpoint </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>endpoint</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the current endpoint type. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">endpoint</td><td>must be SSL_IS_CLIENT or SSL_IS_SERVER </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a08d6dba305dbd338ed1d323dec44fc5e"></a><!-- doxytag: member="ssl.h::ssl_set_hostname" ref="a08d6dba305dbd338ed1d323dec44fc5e" args="(ssl_context *ssl, const char *hostname)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int ssl_set_hostname </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>hostname</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set hostname for ServerName TLS Extension. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">hostname</td><td>the server hostname</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful </dd></dl> </div> </div> <a class="anchor" id="a211c7efa65a306d62cd5856b3b380275"></a><!-- doxytag: member="ssl.h::ssl_set_own_cert" ref="a211c7efa65a306d62cd5856b3b380275" args="(ssl_context *ssl, x509_cert *own_cert, rsa_context *rsa_key)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ssl_set_own_cert </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__x509__cert.html">x509_cert</a> * </td> <td class="paramname"><em>own_cert</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structrsa__context.html">rsa_context</a> * </td> <td class="paramname"><em>rsa_key</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set own certificate and private key. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">own_cert</td><td>own public certificate </td></tr> <tr><td class="paramname">rsa_key</td><td>own private RSA key </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="adc5f63c5d93e557d6a4256613155ad83"></a><!-- doxytag: member="ssl.h::ssl_set_rng" ref="adc5f63c5d93e557d6a4256613155ad83" args="(ssl_context *ssl, int(*f_rng)(void *), void *p_rng)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ssl_set_rng </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int(*)(void *) </td> <td class="paramname"><em>f_rng</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>p_rng</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the random number generator callback. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">f_rng</td><td>RNG function </td></tr> <tr><td class="paramname">p_rng</td><td>RNG parameter </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a88bd6f38c238703d38bfe9f8db49efb7"></a><!-- doxytag: member="ssl.h::ssl_set_scb" ref="a88bd6f38c238703d38bfe9f8db49efb7" args="(ssl_context *ssl, int(*s_get)(ssl_context *), int(*s_set)(ssl_context *))" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ssl_set_scb </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int(*)(<a class="el" href="struct__ssl__context.html">ssl_context</a> *) </td> <td class="paramname"><em>s_get</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int(*)(<a class="el" href="struct__ssl__context.html">ssl_context</a> *) </td> <td class="paramname"><em>s_set</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the session callbacks (server-side only) </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">s_get</td><td>session get callback </td></tr> <tr><td class="paramname">s_set</td><td>session set callback </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a227f2d1077c32f6d901e6884c09c460d"></a><!-- doxytag: member="ssl.h::ssl_set_session" ref="a227f2d1077c32f6d901e6884c09c460d" args="(ssl_context *ssl, int resume, int timeout, ssl_session *session)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ssl_set_session </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>resume</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>timeout</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__ssl__session.html">ssl_session</a> * </td> <td class="paramname"><em>session</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the session resuming flag, timeout and data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">resume</td><td>if 0 (default), the session will not be resumed </td></tr> <tr><td class="paramname">timeout</td><td>session timeout in seconds, or 0 (no timeout) </td></tr> <tr><td class="paramname">session</td><td>session context </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ad87c332dd29a1b570f905d9e6978f0b7"></a><!-- doxytag: member="ssl.h::ssl_write" ref="ad87c332dd29a1b570f905d9e6978f0b7" args="(ssl_context *ssl, const unsigned char *buf, int len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int ssl_write </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ssl__context.html">ssl_context</a> * </td> <td class="paramname"><em>ssl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>len</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Write exactly 'len' application data bytes. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ssl</td><td>SSL context </td></tr> <tr><td class="paramname">buf</td><td>buffer holding the data </td></tr> <tr><td class="paramname">len</td><td>how many bytes must be written</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>This function returns the number of bytes written, or a negative error code.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>When this function returns POLARSSL_ERR_NET_TRY_AGAIN, it must be called later with the *same* arguments, until it returns a positive value. </dd></dl> </div> </div> </div> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Defines</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <hr class="footer"/><address class="footer"><small>Generated on Mon May 16 2011 for PolarSSL by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>