Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 8df484ca79a7b6bb61e4a376e1506870 > files > 206

polarssl-devel-0.14.3-1.fc14.x86_64.rpm

<!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&#160;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&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<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 &lt;time.h&gt;</code><br/>
<code>#include &quot;<a class="el" href="net_8h_source.html">polarssl/net.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="dhm_8h_source.html">polarssl/dhm.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="rsa_8h_source.html">polarssl/rsa.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="md5_8h_source.html">polarssl/md5.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="sha1_8h_source.html">polarssl/sha1.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="x509_8h_source.html">polarssl/x509.h</a>&quot;</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 &#160;</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 &#160;</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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_INPUT_DATA</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_INVALID_MAC</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_INVALID_RECORD</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_INVALID_MODULUS_SIZE</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_UNKNOWN_CIPHER</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_NO_CIPHER_CHOSEN</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_NO_SESSION_FOUND</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_NO_CLIENT_CERTIFICATE</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_CERTIFICATE_TOO_LARGE</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_CERTIFICATE_REQUIRED</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_PRIVATE_KEY_REQUIRED</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_CA_CHAIN_REQUIRED</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_UNEXPECTED_MESSAGE</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_FATAL_ALERT_MESSAGE</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_PEER_VERIFY_FAILED</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_CLIENT_HELLO</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_SERVER_HELLO</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_CERTIFICATE</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_CERTIFICATE_REQUEST</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_SERVER_HELLO_DONE</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_CERTIFICATE_VERIFY</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_CHANGE_CIPHER_SPEC</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_SSL_BAD_HS_FINISHED</b>&#160;&#160;&#160;-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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_MAJOR_VERSION_3</b>&#160;&#160;&#160;3</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a4fedd81485a2c0a99b8d0d1dea245302">SSL_MINOR_VERSION_0</a>&#160;&#160;&#160;0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#a3e0c978697874bb5457d61f7515e8f55">SSL_MINOR_VERSION_1</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ssl_8h.html#aab565447d7abe2dcb01544e7dbfcd4c9">SSL_MINOR_VERSION_2</a>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_IS_CLIENT</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_IS_SERVER</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_COMPRESS_NULL</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_VERIFY_NONE</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_VERIFY_OPTIONAL</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_VERIFY_REQUIRED</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_MAX_CONTENT_LEN</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_BUFFER_LEN</b>&#160;&#160;&#160;(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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_RSA_RC4_128_MD5</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_RSA_RC4_128_SHA</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_RSA_DES_168_SHA</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_EDH_RSA_DES_168_SHA</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_RSA_AES_128_SHA</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_EDH_RSA_AES_128_SHA</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_RSA_AES_256_SHA</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_EDH_RSA_AES_256_SHA</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_RSA_CAMELLIA_128_SHA</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_EDH_RSA_CAMELLIA_128_SHA</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_RSA_CAMELLIA_256_SHA</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_EDH_RSA_CAMELLIA_256_SHA</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_MSG_CHANGE_CIPHER_SPEC</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_MSG_ALERT</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_MSG_HANDSHAKE</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_MSG_APPLICATION_DATA</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_LEVEL_WARNING</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_LEVEL_FATAL</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_CLOSE_NOTIFY</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_UNEXPECTED_MESSAGE</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_BAD_RECORD_MAD</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_DECRYPTION_FAILED</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_RECORD_OVERFLOW</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_DECOMPRESSION_FAILURE</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_HANDSHAKE_FAILURE</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_NO_CERT</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_BAD_CERT</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_UNSUPPORTED_CERT</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_CERT_REVOKED</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_CERT_EXPIRED</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_CERT_UNKNOWN</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_ILLEGAL_PARAMETER</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_UNKNOWN_CA</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_ACCESS_DENIED</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_DECODE_ERROR</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_DECRYPT_ERROR</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_EXPORT_RESTRICTION</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_PROTOCOL_VERSION</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_INSUFFICIENT_SECURITY</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_INTERNAL_ERROR</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_USER_CANCELED</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_ALERT_MSG_NO_RENEGOTIATION</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_HS_HELLO_REQUEST</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_HS_CLIENT_HELLO</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_HS_SERVER_HELLO</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_HS_CERTIFICATE</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_HS_SERVER_KEY_EXCHANGE</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_HS_CERTIFICATE_REQUEST</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_HS_SERVER_HELLO_DONE</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_HS_CERTIFICATE_VERIFY</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_HS_CLIENT_KEY_EXCHANGE</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>SSL_HS_FINISHED</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>TLS_EXT_SERVERNAME</b>&#160;&#160;&#160;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&#160;</td><td class="memItemRight" valign="bottom"><b>TLS_EXT_SERVERNAME_HOSTNAME</b>&#160;&#160;&#160;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>&#160;</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>&#160;</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 &#160;</td><td class="memItemRight" valign="bottom"><b>ssl_states</b> { <br/>
&#160;&#160;<b>SSL_HELLO_REQUEST</b>, 
<b>SSL_CLIENT_HELLO</b>, 
<b>SSL_SERVER_HELLO</b>, 
<b>SSL_SERVER_CERTIFICATE</b>, 
<br/>
&#160;&#160;<b>SSL_SERVER_KEY_EXCHANGE</b>, 
<b>SSL_CERTIFICATE_REQUEST</b>, 
<b>SSL_SERVER_HELLO_DONE</b>, 
<b>SSL_CLIENT_CERTIFICATE</b>, 
<br/>
&#160;&#160;<b>SSL_CLIENT_KEY_EXCHANGE</b>, 
<b>SSL_CERTIFICATE_VERIFY</b>, 
<b>SSL_CLIENT_CHANGE_CIPHER_SPEC</b>, 
<b>SSL_CLIENT_FINISHED</b>, 
<br/>
&#160;&#160;<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&#160;</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">&#160;</td><td class="mdescRight">Initialize an SSL context.  <a href="#add102a477ee9b9d9cda8fb1b86313d2e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Set the debug callback.  <a href="#a284ba5bb8d4f5e338b6a8ad9d45c9024"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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 *&#160;</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">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Perform the SSL handshake.  <a href="#ac16d7f3ed66ca2d497b47b0e68d58f20"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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 &lt;polarssl_maintainer at polarssl.org&gt;</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&#160;&#160;&#160;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&#160;&#160;&#160;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&#160;&#160;&#160;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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>ssl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</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> *&#160;</td>
          <td class="paramname"><em>ssl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>authmode</em>&#160;</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> *&#160;</td>
          <td class="paramname"><em>ssl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(void *, unsigned char *, int)&#160;</td>
          <td class="paramname"><em>f_recv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</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)&#160;</td>
          <td class="paramname"><em>f_send</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>p_send</em>&#160;</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> *&#160;</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> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>ca_crl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>peer_cn</em>&#160;</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> *&#160;</td>
          <td class="paramname"><em>ssl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>ciphers</em>&#160;</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> *&#160;</td>
          <td class="paramname"><em>ssl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(*)(void *, int, const char *)&#160;</td>
          <td class="paramname"><em>f_dbg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>p_dbg</em>&#160;</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> *&#160;</td>
          <td class="paramname"><em>ssl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dhm_P</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dhm_G</em>&#160;</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> *&#160;</td>
          <td class="paramname"><em>ssl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>endpoint</em>&#160;</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> *&#160;</td>
          <td class="paramname"><em>ssl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>hostname</em>&#160;</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> *&#160;</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> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>rsa_key</em>&#160;</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> *&#160;</td>
          <td class="paramname"><em>ssl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(void *)&#160;</td>
          <td class="paramname"><em>f_rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>p_rng</em>&#160;</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> *&#160;</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> *)&#160;</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> *)&#160;</td>
          <td class="paramname"><em>s_set</em>&#160;</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> *&#160;</td>
          <td class="paramname"><em>ssl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>resume</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</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> *&#160;</td>
          <td class="paramname"><em>session</em>&#160;</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> *&#160;</td>
          <td class="paramname"><em>ssl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</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&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>