Sophie

Sophie

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

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/x509.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="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">polarssl/x509.h File Reference</div>  </div>
</div>
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="rsa_8h_source.html">polarssl/rsa.h</a>&quot;</code><br/>
</div>
<p><a href="x509_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__x509__buf.html">_x509_buf</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__x509__name.html">_x509_name</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__x509__time.html">_x509_time</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__x509__cert.html">_x509_cert</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__x509__crl__entry.html">_x509_crl_entry</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__x509__crl.html">_x509_crl</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__x509__node.html">_x509_node</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__x509__raw.html">_x509_raw</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="a0274145c2843f1d22cf7ca9b7ed37bab"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_ASN1_OUT_OF_DATA" ref="a0274145c2843f1d22cf7ca9b7ed37bab" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_ASN1_OUT_OF_DATA</b>&#160;&#160;&#160;0x0014</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a171798e67a7a1024ab5e1c12c73f0537"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_ASN1_UNEXPECTED_TAG" ref="a171798e67a7a1024ab5e1c12c73f0537" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_ASN1_UNEXPECTED_TAG</b>&#160;&#160;&#160;0x0016</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a05662cd7f7290c3de3e74598f0a60b7e"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_ASN1_INVALID_LENGTH" ref="a05662cd7f7290c3de3e74598f0a60b7e" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_ASN1_INVALID_LENGTH</b>&#160;&#160;&#160;0x0018</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="affc1c105d348cf2be47a2c8d6ab5ef63"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_ASN1_LENGTH_MISMATCH" ref="affc1c105d348cf2be47a2c8d6ab5ef63" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_ASN1_LENGTH_MISMATCH</b>&#160;&#160;&#160;0x001A</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6dab8f2bf2ddd7e0c9f274267ab6aa30"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_ASN1_INVALID_DATA" ref="a6dab8f2bf2ddd7e0c9f274267ab6aa30" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_ASN1_INVALID_DATA</b>&#160;&#160;&#160;0x001C</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1ff85472d1f06bac7aadef70dbc404f"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_FEATURE_UNAVAILABLE" ref="aa1ff85472d1f06bac7aadef70dbc404f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_FEATURE_UNAVAILABLE</b>&#160;&#160;&#160;-0x0020</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad381e83e9cf22c78177b5739ebf6380b"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_INVALID_PEM" ref="ad381e83e9cf22c78177b5739ebf6380b" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_PEM</b>&#160;&#160;&#160;-0x0040</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca3a920f5b16da40c2e28aa5d9e2100f"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_INVALID_FORMAT" ref="aca3a920f5b16da40c2e28aa5d9e2100f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_FORMAT</b>&#160;&#160;&#160;-0x0060</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad825d47d7a1be65bfe682e43a8c7bf2e"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_INVALID_VERSION" ref="ad825d47d7a1be65bfe682e43a8c7bf2e" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_VERSION</b>&#160;&#160;&#160;-0x0080</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aae24eb27e6e1c1796b088a806d2677d6"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_INVALID_SERIAL" ref="aae24eb27e6e1c1796b088a806d2677d6" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_SERIAL</b>&#160;&#160;&#160;-0x00A0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa232ca8dd86f696cf1e2a4e5f8fbf3ae"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_INVALID_ALG" ref="aa232ca8dd86f696cf1e2a4e5f8fbf3ae" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_ALG</b>&#160;&#160;&#160;-0x00C0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c6bd891b87bec9193cf16f2dfae5c68"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_INVALID_NAME" ref="a7c6bd891b87bec9193cf16f2dfae5c68" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_NAME</b>&#160;&#160;&#160;-0x00E0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d5211d99927813cf5a2f48b91efd3ad"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_INVALID_DATE" ref="a6d5211d99927813cf5a2f48b91efd3ad" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_DATE</b>&#160;&#160;&#160;-0x0100</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ba7972d3da824c035d58ce85c326697"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_INVALID_PUBKEY" ref="a5ba7972d3da824c035d58ce85c326697" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_PUBKEY</b>&#160;&#160;&#160;-0x0120</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abfb8fe7657e90a3124e44c6233f49bbd"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_INVALID_SIGNATURE" ref="abfb8fe7657e90a3124e44c6233f49bbd" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_SIGNATURE</b>&#160;&#160;&#160;-0x0140</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66a34aca6078998cfea53755bd705560"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS" ref="a66a34aca6078998cfea53755bd705560" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS</b>&#160;&#160;&#160;-0x0160</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a51c9af64f5a030b98e2212dc0a410c02"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_UNKNOWN_VERSION" ref="a51c9af64f5a030b98e2212dc0a410c02" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_UNKNOWN_VERSION</b>&#160;&#160;&#160;-0x0180</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b1eb62a3bfb1863d7ad03e518ca010d"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_UNKNOWN_SIG_ALG" ref="a8b1eb62a3bfb1863d7ad03e518ca010d" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_UNKNOWN_SIG_ALG</b>&#160;&#160;&#160;-0x01A0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c579f712e762bab804be561fc1cb63f"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_UNKNOWN_PK_ALG" ref="a5c579f712e762bab804be561fc1cb63f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_UNKNOWN_PK_ALG</b>&#160;&#160;&#160;-0x01C0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f6c35a25fec95ffc066f00e34a169c3"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_SIG_MISMATCH" ref="a0f6c35a25fec95ffc066f00e34a169c3" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_SIG_MISMATCH</b>&#160;&#160;&#160;-0x01E0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2712a2708993f706e6c3f3716ec1f275"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_CERT_VERIFY_FAILED" ref="a2712a2708993f706e6c3f3716ec1f275" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_VERIFY_FAILED</b>&#160;&#160;&#160;-0x0200</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a439ea4067d2c763c28c1fef375eacca1"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_KEY_INVALID_PEM" ref="a439ea4067d2c763c28c1fef375eacca1" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_INVALID_PEM</b>&#160;&#160;&#160;-0x0220</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc7701cdffa2def00aba61c42a69fdc5"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_KEY_INVALID_VERSION" ref="adc7701cdffa2def00aba61c42a69fdc5" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_INVALID_VERSION</b>&#160;&#160;&#160;-0x0240</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad97a386f0b6d508e4e4f5a1c328e1157"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_KEY_INVALID_FORMAT" ref="ad97a386f0b6d508e4e4f5a1c328e1157" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_INVALID_FORMAT</b>&#160;&#160;&#160;-0x0260</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad61de429215b9b9085a27eb26c62a88d"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_KEY_INVALID_ENC_IV" ref="ad61de429215b9b9085a27eb26c62a88d" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_INVALID_ENC_IV</b>&#160;&#160;&#160;-0x0280</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af93c54133db259fc968431b677351a60"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_KEY_UNKNOWN_ENC_ALG" ref="af93c54133db259fc968431b677351a60" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_UNKNOWN_ENC_ALG</b>&#160;&#160;&#160;-0x02A0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8942651bebcf29e40c88940ccca77659"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_KEY_PASSWORD_REQUIRED" ref="a8942651bebcf29e40c88940ccca77659" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_PASSWORD_REQUIRED</b>&#160;&#160;&#160;-0x02C0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a101ced5b6895badcd35c3b7a55e0cefb"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_KEY_PASSWORD_MISMATCH" ref="a101ced5b6895badcd35c3b7a55e0cefb" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_PASSWORD_MISMATCH</b>&#160;&#160;&#160;-0x02E0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa5133ca60fc715dcd1949b342932405a"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_POINT_ERROR" ref="aa5133ca60fc715dcd1949b342932405a" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_POINT_ERROR</b>&#160;&#160;&#160;-0x0300</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac9a2534e6598bab7643b774d432f5dc1"></a><!-- doxytag: member="x509.h::POLARSSL_ERR_X509_VALUE_TO_LENGTH" ref="ac9a2534e6598bab7643b774d432f5dc1" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_VALUE_TO_LENGTH</b>&#160;&#160;&#160;-0x0320</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a64e936014215ef18f026ff101b6f8369"></a><!-- doxytag: member="x509.h::BADCERT_EXPIRED" ref="a64e936014215ef18f026ff101b6f8369" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>BADCERT_EXPIRED</b>&#160;&#160;&#160;1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ecb1ad0da0f9d6bb0017e091ea4ee2a"></a><!-- doxytag: member="x509.h::BADCERT_REVOKED" ref="a4ecb1ad0da0f9d6bb0017e091ea4ee2a" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>BADCERT_REVOKED</b>&#160;&#160;&#160;2</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acfafc04b8cd60bd1819cf41bc78a24de"></a><!-- doxytag: member="x509.h::BADCERT_CN_MISMATCH" ref="acfafc04b8cd60bd1819cf41bc78a24de" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>BADCERT_CN_MISMATCH</b>&#160;&#160;&#160;4</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a71c9686585580f77964a3653e147ad0a"></a><!-- doxytag: member="x509.h::BADCERT_NOT_TRUSTED" ref="a71c9686585580f77964a3653e147ad0a" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>BADCERT_NOT_TRUSTED</b>&#160;&#160;&#160;8</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3e80bd3df035edaa81dcd44da586153"></a><!-- doxytag: member="x509.h::BADCRL_NOT_TRUSTED" ref="ad3e80bd3df035edaa81dcd44da586153" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>BADCRL_NOT_TRUSTED</b>&#160;&#160;&#160;16</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5d4bfa3090cb468e734596094f39a1f"></a><!-- doxytag: member="x509.h::BADCRL_EXPIRED" ref="ad5d4bfa3090cb468e734596094f39a1f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>BADCRL_EXPIRED</b>&#160;&#160;&#160;32</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ecb3f6655f48694a6326657290d4996"></a><!-- doxytag: member="x509.h::ASN1_BOOLEAN" ref="a5ecb3f6655f48694a6326657290d4996" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_BOOLEAN</b>&#160;&#160;&#160;0x01</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d3b979ef2ca9618ec1899fd0e14d8ec"></a><!-- doxytag: member="x509.h::ASN1_INTEGER" ref="a0d3b979ef2ca9618ec1899fd0e14d8ec" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_INTEGER</b>&#160;&#160;&#160;0x02</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1493defdd429594af36feaf6309cc70a"></a><!-- doxytag: member="x509.h::ASN1_BIT_STRING" ref="a1493defdd429594af36feaf6309cc70a" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_BIT_STRING</b>&#160;&#160;&#160;0x03</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae251e2c2d40228a89468f3f939a18585"></a><!-- doxytag: member="x509.h::ASN1_OCTET_STRING" ref="ae251e2c2d40228a89468f3f939a18585" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_OCTET_STRING</b>&#160;&#160;&#160;0x04</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a381db5db1873cb0b03744322cd9bc19c"></a><!-- doxytag: member="x509.h::ASN1_NULL" ref="a381db5db1873cb0b03744322cd9bc19c" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_NULL</b>&#160;&#160;&#160;0x05</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3fef844d0ea67080b66b3a4d5f0a9ec8"></a><!-- doxytag: member="x509.h::ASN1_OID" ref="a3fef844d0ea67080b66b3a4d5f0a9ec8" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_OID</b>&#160;&#160;&#160;0x06</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0dcba566de60f1776d36931ac1733b8d"></a><!-- doxytag: member="x509.h::ASN1_UTF8_STRING" ref="a0dcba566de60f1776d36931ac1733b8d" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_UTF8_STRING</b>&#160;&#160;&#160;0x0C</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9321fc9f2a5ef4103008fbe5c4b230df"></a><!-- doxytag: member="x509.h::ASN1_SEQUENCE" ref="a9321fc9f2a5ef4103008fbe5c4b230df" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_SEQUENCE</b>&#160;&#160;&#160;0x10</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa4097914560e5318d1c316106b38998"></a><!-- doxytag: member="x509.h::ASN1_SET" ref="aaa4097914560e5318d1c316106b38998" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_SET</b>&#160;&#160;&#160;0x11</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9d250073c32cfa2d0f90a92fa9485c89"></a><!-- doxytag: member="x509.h::ASN1_PRINTABLE_STRING" ref="a9d250073c32cfa2d0f90a92fa9485c89" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_PRINTABLE_STRING</b>&#160;&#160;&#160;0x13</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aecb31acd8c2e58371f4cc5163f13ee3e"></a><!-- doxytag: member="x509.h::ASN1_T61_STRING" ref="aecb31acd8c2e58371f4cc5163f13ee3e" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_T61_STRING</b>&#160;&#160;&#160;0x14</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45d8160d9158c5e040db66bb79fc8f18"></a><!-- doxytag: member="x509.h::ASN1_IA5_STRING" ref="a45d8160d9158c5e040db66bb79fc8f18" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_IA5_STRING</b>&#160;&#160;&#160;0x16</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94a96a45489af8cb19d6dd3ee76eefb2"></a><!-- doxytag: member="x509.h::ASN1_UTC_TIME" ref="a94a96a45489af8cb19d6dd3ee76eefb2" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_UTC_TIME</b>&#160;&#160;&#160;0x17</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7a08388517b5d807fb6bc2ed0325b90"></a><!-- doxytag: member="x509.h::ASN1_GENERALIZED_TIME" ref="ab7a08388517b5d807fb6bc2ed0325b90" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_GENERALIZED_TIME</b>&#160;&#160;&#160;0x18</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7571a2e3383313e9a36cf168b707b4f9"></a><!-- doxytag: member="x509.h::ASN1_UNIVERSAL_STRING" ref="a7571a2e3383313e9a36cf168b707b4f9" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_UNIVERSAL_STRING</b>&#160;&#160;&#160;0x1C</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae17ad2492005596109a4179b6f22cc62"></a><!-- doxytag: member="x509.h::ASN1_BMP_STRING" ref="ae17ad2492005596109a4179b6f22cc62" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_BMP_STRING</b>&#160;&#160;&#160;0x1E</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad61fcc873df5268453d3064aa11ffbca"></a><!-- doxytag: member="x509.h::ASN1_PRIMITIVE" ref="ad61fcc873df5268453d3064aa11ffbca" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_PRIMITIVE</b>&#160;&#160;&#160;0x00</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a799d7b17a9532e1dadc8355f04477e27"></a><!-- doxytag: member="x509.h::ASN1_CONSTRUCTED" ref="a799d7b17a9532e1dadc8355f04477e27" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_CONSTRUCTED</b>&#160;&#160;&#160;0x20</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1f89bc6e469d46d5293f724d317d1d7"></a><!-- doxytag: member="x509.h::ASN1_CONTEXT_SPECIFIC" ref="ab1f89bc6e469d46d5293f724d317d1d7" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ASN1_CONTEXT_SPECIFIC</b>&#160;&#160;&#160;0x80</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45a04f9d89dc80c1a69b988dac53563d"></a><!-- doxytag: member="x509.h::X520_COMMON_NAME" ref="a45a04f9d89dc80c1a69b988dac53563d" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>X520_COMMON_NAME</b>&#160;&#160;&#160;3</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a80196d37e746a915063c85f99d76e41e"></a><!-- doxytag: member="x509.h::X520_COUNTRY" ref="a80196d37e746a915063c85f99d76e41e" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>X520_COUNTRY</b>&#160;&#160;&#160;6</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac00597e7a5f5c41f04599940f078d842"></a><!-- doxytag: member="x509.h::X520_LOCALITY" ref="ac00597e7a5f5c41f04599940f078d842" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>X520_LOCALITY</b>&#160;&#160;&#160;7</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a25857f18441d509658731ff393fd86f2"></a><!-- doxytag: member="x509.h::X520_STATE" ref="a25857f18441d509658731ff393fd86f2" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>X520_STATE</b>&#160;&#160;&#160;8</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af17ab905a8f8c2d4739c5983391acc8b"></a><!-- doxytag: member="x509.h::X520_ORGANIZATION" ref="af17ab905a8f8c2d4739c5983391acc8b" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>X520_ORGANIZATION</b>&#160;&#160;&#160;10</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a340c757a1a41734fce5aab4e0d2c6eb8"></a><!-- doxytag: member="x509.h::X520_ORG_UNIT" ref="a340c757a1a41734fce5aab4e0d2c6eb8" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>X520_ORG_UNIT</b>&#160;&#160;&#160;11</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a00b91e03940df9994a7e27ea7b3695"></a><!-- doxytag: member="x509.h::PKCS9_EMAIL" ref="a3a00b91e03940df9994a7e27ea7b3695" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PKCS9_EMAIL</b>&#160;&#160;&#160;1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abab555b94383b8ef98fce9d42b209a04"></a><!-- doxytag: member="x509.h::X509_OUTPUT_DER" ref="abab555b94383b8ef98fce9d42b209a04" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>X509_OUTPUT_DER</b>&#160;&#160;&#160;0x01</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b53420a9891a18cf07950833eb60b5a"></a><!-- doxytag: member="x509.h::X509_OUTPUT_PEM" ref="a4b53420a9891a18cf07950833eb60b5a" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>X509_OUTPUT_PEM</b>&#160;&#160;&#160;0x02</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70f13ab2a0c7daff105590e6ef3dd479"></a><!-- doxytag: member="x509.h::PEM_LINE_LENGTH" ref="a70f13ab2a0c7daff105590e6ef3dd479" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PEM_LINE_LENGTH</b>&#160;&#160;&#160;72</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af08572ebc0abbb56da4c3b617099056c"></a><!-- doxytag: member="x509.h::X509_ISSUER" ref="af08572ebc0abbb56da4c3b617099056c" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>X509_ISSUER</b>&#160;&#160;&#160;0x01</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a613a62c3fb286f4d34ec655967e11907"></a><!-- doxytag: member="x509.h::X509_SUBJECT" ref="a613a62c3fb286f4d34ec655967e11907" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>X509_SUBJECT</b>&#160;&#160;&#160;0x02</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e761e5b4deffb65783125d8382f83b4"></a><!-- doxytag: member="x509.h::OID_X520" ref="a6e761e5b4deffb65783125d8382f83b4" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>OID_X520</b>&#160;&#160;&#160;&quot;\x55\x04&quot;</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac252df2e2ddb1b2772f0fc803fade904"></a><!-- doxytag: member="x509.h::OID_CN" ref="ac252df2e2ddb1b2772f0fc803fade904" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>OID_CN</b>&#160;&#160;&#160;&quot;\x55\x04\x03&quot;</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="affd3c6c6b6029897c09631c9e71b5775"></a><!-- doxytag: member="x509.h::OID_PKCS1" ref="affd3c6c6b6029897c09631c9e71b5775" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>OID_PKCS1</b>&#160;&#160;&#160;&quot;\x2A\x86\x48\x86\xF7\x0D\x01\x01&quot;</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89f411612e522c42397ebfd1f9b83fef"></a><!-- doxytag: member="x509.h::OID_PKCS1_RSA" ref="a89f411612e522c42397ebfd1f9b83fef" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>OID_PKCS1_RSA</b>&#160;&#160;&#160;&quot;\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01&quot;</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7e1d8297adb1372fb76dc3982443d315"></a><!-- doxytag: member="x509.h::OID_RSA_SHA_OBS" ref="a7e1d8297adb1372fb76dc3982443d315" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>OID_RSA_SHA_OBS</b>&#160;&#160;&#160;&quot;\x2B\x0E\x03\x02\x1D&quot;</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a83854c65d3947ccff4c7b6b1dc2195b2"></a><!-- doxytag: member="x509.h::OID_PKCS9" ref="a83854c65d3947ccff4c7b6b1dc2195b2" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>OID_PKCS9</b>&#160;&#160;&#160;&quot;\x2A\x86\x48\x86\xF7\x0D\x01\x09&quot;</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0fac7acdd45c0c38eb50aa675c73f54"></a><!-- doxytag: member="x509.h::OID_PKCS9_EMAIL" ref="af0fac7acdd45c0c38eb50aa675c73f54" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>OID_PKCS9_EMAIL</b>&#160;&#160;&#160;&quot;\x2A\x86\x48\x86\xF7\x0D\x01\x09\x01&quot;</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="a94fe342a7bd862e903e6ac24933579d6"></a><!-- doxytag: member="x509.h::x509_buf" ref="a94fe342a7bd862e903e6ac24933579d6" args="" -->
typedef struct <a class="el" href="struct__x509__buf.html">_x509_buf</a>&#160;</td><td class="memItemRight" valign="bottom"><b>x509_buf</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69d15fd0b9ee28768f50da79f3be3b77"></a><!-- doxytag: member="x509.h::x509_name" ref="a69d15fd0b9ee28768f50da79f3be3b77" args="" -->
typedef struct <a class="el" href="struct__x509__name.html">_x509_name</a>&#160;</td><td class="memItemRight" valign="bottom"><b>x509_name</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a51a234c4cead82f9678485379c5de825"></a><!-- doxytag: member="x509.h::x509_time" ref="a51a234c4cead82f9678485379c5de825" args="" -->
typedef struct <a class="el" href="struct__x509__time.html">_x509_time</a>&#160;</td><td class="memItemRight" valign="bottom"><b>x509_time</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1459dffc8f6b8dde1bf4fb3253467fe4"></a><!-- doxytag: member="x509.h::x509_cert" ref="a1459dffc8f6b8dde1bf4fb3253467fe4" args="" -->
typedef struct <a class="el" href="struct__x509__cert.html">_x509_cert</a>&#160;</td><td class="memItemRight" valign="bottom"><b>x509_cert</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac14b30af3597cbaae63d9106f14d04e8"></a><!-- doxytag: member="x509.h::x509_crl_entry" ref="ac14b30af3597cbaae63d9106f14d04e8" args="" -->
typedef struct <a class="el" href="struct__x509__crl__entry.html">_x509_crl_entry</a>&#160;</td><td class="memItemRight" valign="bottom"><b>x509_crl_entry</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d6714f926c6cc578e0f983aa6ddaf2a"></a><!-- doxytag: member="x509.h::x509_crl" ref="a6d6714f926c6cc578e0f983aa6ddaf2a" args="" -->
typedef struct <a class="el" href="struct__x509__crl.html">_x509_crl</a>&#160;</td><td class="memItemRight" valign="bottom"><b>x509_crl</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0119225ac11060492ff0d3b2becfc532"></a><!-- doxytag: member="x509.h::x509_node" ref="a0119225ac11060492ff0d3b2becfc532" args="" -->
typedef struct <a class="el" href="struct__x509__node.html">_x509_node</a>&#160;</td><td class="memItemRight" valign="bottom"><b>x509_node</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a397c129761ab499b469f652e159df3d9"></a><!-- doxytag: member="x509.h::x509_raw" ref="a397c129761ab499b469f652e159df3d9" args="" -->
typedef struct <a class="el" href="struct__x509__raw.html">_x509_raw</a>&#160;</td><td class="memItemRight" valign="bottom"><b>x509_raw</b></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="x509_8h.html#a91ec44a937b911fe1032c99900920fd8">x509parse_crt</a> (<a class="el" href="struct__x509__cert.html">x509_cert</a> *chain, const unsigned char *buf, int buflen)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse one or more certificates and add them to the chained list.  <a href="#a91ec44a937b911fe1032c99900920fd8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="x509_8h.html#a830b87ec90ed51fcdec55ad5fbe24251">x509parse_crtfile</a> (<a class="el" href="struct__x509__cert.html">x509_cert</a> *chain, const char *path)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load one or more certificates and add them to the chained list.  <a href="#a830b87ec90ed51fcdec55ad5fbe24251"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="x509_8h.html#a0223bc1ca74c12c1bef3e0b8b31d9022">x509parse_crl</a> (<a class="el" href="struct__x509__crl.html">x509_crl</a> *chain, const unsigned char *buf, int buflen)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse one or more CRLs and add them to the chained list.  <a href="#a0223bc1ca74c12c1bef3e0b8b31d9022"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="x509_8h.html#ae07469859cb8e9de4779d31ee1c63d64">x509parse_crlfile</a> (<a class="el" href="struct__x509__crl.html">x509_crl</a> *chain, const char *path)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load one or more CRLs and add them to the chained list.  <a href="#ae07469859cb8e9de4779d31ee1c63d64"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="x509_8h.html#ad7a70dffe8f7e13e1a1099031302d9fe">x509parse_key</a> (<a class="el" href="structrsa__context.html">rsa_context</a> *rsa, const unsigned char *key, int keylen, const unsigned char *pwd, int pwdlen)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a private RSA key.  <a href="#ad7a70dffe8f7e13e1a1099031302d9fe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="x509_8h.html#a13b4022c81bd138610e902fb48709c9d">x509parse_keyfile</a> (<a class="el" href="structrsa__context.html">rsa_context</a> *rsa, const char *path, const char *password)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load and parse a private RSA key.  <a href="#a13b4022c81bd138610e902fb48709c9d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="x509_8h.html#a6d5f50efc32fb2d1ecb9a71345de6a89">x509parse_dn_gets</a> (char *buf, size_t size, const <a class="el" href="struct__x509__name.html">x509_name</a> *dn)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the certificate DN in printable form into buf; no more than size characters will be written.  <a href="#a6d5f50efc32fb2d1ecb9a71345de6a89"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="x509_8h.html#a448c4ee94531ff9ef424f1133508ad8d">x509parse_cert_info</a> (char *buf, size_t size, const char *prefix, const <a class="el" href="struct__x509__cert.html">x509_cert</a> *crt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an informational string about the certificate.  <a href="#a448c4ee94531ff9ef424f1133508ad8d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="x509_8h.html#abfc319de12efcfe71c5f1503342aa5b8">x509parse_crl_info</a> (char *buf, size_t size, const char *prefix, const <a class="el" href="struct__x509__crl.html">x509_crl</a> *crl)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an informational string about the CRL.  <a href="#abfc319de12efcfe71c5f1503342aa5b8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="x509_8h.html#ae7b36f60674ea1937ba373e633420599">x509parse_time_expired</a> (const <a class="el" href="struct__x509__time.html">x509_time</a> *time)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check a given x509_time against the system time and check if it is valid.  <a href="#ae7b36f60674ea1937ba373e633420599"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="x509_8h.html#a35cd90e3e1e232bd292619b95305f7ae">x509parse_verify</a> (<a class="el" href="struct__x509__cert.html">x509_cert</a> *crt, <a class="el" href="struct__x509__cert.html">x509_cert</a> *trust_ca, <a class="el" href="struct__x509__crl.html">x509_crl</a> *ca_crl, const char *cn, int *flags)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify the certificate signature.  <a href="#a35cd90e3e1e232bd292619b95305f7ae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="x509_8h.html#a5f1334782538ef0ac2ebf430b966fcc3">x509_free</a> (<a class="el" href="struct__x509__cert.html">x509_cert</a> *crt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unallocate all certificate data.  <a href="#a5f1334782538ef0ac2ebf430b966fcc3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="x509_8h.html#a99ed152b33d41e55cd14a78c7dcf7bef">x509_crl_free</a> (<a class="el" href="struct__x509__crl.html">x509_crl</a> *crl)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unallocate all CRL data.  <a href="#a99ed152b33d41e55cd14a78c7dcf7bef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="x509_8h.html#a4a038a644bb6f527315bcfdea826bf79">x509_self_test</a> (int verbose)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checkup routine.  <a href="#a4a038a644bb6f527315bcfdea826bf79"></a><br/></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>Function Documentation</h2>
<a class="anchor" id="a99ed152b33d41e55cd14a78c7dcf7bef"></a><!-- doxytag: member="x509.h::x509_crl_free" ref="a99ed152b33d41e55cd14a78c7dcf7bef" args="(x509_crl *crl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void x509_crl_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct__x509__crl.html">x509_crl</a> *&#160;</td>
          <td class="paramname"><em>crl</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unallocate all CRL data. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">crt</td><td>CRL chain to free </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5f1334782538ef0ac2ebf430b966fcc3"></a><!-- doxytag: member="x509.h::x509_free" ref="a5f1334782538ef0ac2ebf430b966fcc3" args="(x509_cert *crt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void x509_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct__x509__cert.html">x509_cert</a> *&#160;</td>
          <td class="paramname"><em>crt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unallocate all certificate data. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">crt</td><td>Certificate chain to free </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4a038a644bb6f527315bcfdea826bf79"></a><!-- doxytag: member="x509.h::x509_self_test" ref="a4a038a644bb6f527315bcfdea826bf79" args="(int verbose)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int x509_self_test </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>verbose</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checkup routine. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, or 1 if the test failed </dd></dl>

</div>
</div>
<a class="anchor" id="a448c4ee94531ff9ef424f1133508ad8d"></a><!-- doxytag: member="x509.h::x509parse_cert_info" ref="a448c4ee94531ff9ef424f1133508ad8d" args="(char *buf, size_t size, const char *prefix, const x509_cert *crt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int x509parse_cert_info </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>prefix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="struct__x509__cert.html">x509_cert</a> *&#160;</td>
          <td class="paramname"><em>crt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns an informational string about the certificate. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>Buffer to write to </td></tr>
    <tr><td class="paramname">size</td><td>Maximum size of buffer </td></tr>
    <tr><td class="paramname">prefix</td><td>A line prefix </td></tr>
    <tr><td class="paramname">crt</td><td>The X509 certificate to represent</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The amount of data written to the buffer, or -1 in case of an error. </dd></dl>

</div>
</div>
<a class="anchor" id="a0223bc1ca74c12c1bef3e0b8b31d9022"></a><!-- doxytag: member="x509.h::x509parse_crl" ref="a0223bc1ca74c12c1bef3e0b8b31d9022" args="(x509_crl *chain, const unsigned char *buf, int buflen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int x509parse_crl </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct__x509__crl.html">x509_crl</a> *&#160;</td>
          <td class="paramname"><em>chain</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>buflen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse one or more CRLs and add them to the chained list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">chain</td><td>points to the start of the chain </td></tr>
    <tr><td class="paramname">buf</td><td>buffer holding the CRL data </td></tr>
    <tr><td class="paramname">buflen</td><td>size of the buffer</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, or a specific X509 error code </dd></dl>

</div>
</div>
<a class="anchor" id="abfc319de12efcfe71c5f1503342aa5b8"></a><!-- doxytag: member="x509.h::x509parse_crl_info" ref="abfc319de12efcfe71c5f1503342aa5b8" args="(char *buf, size_t size, const char *prefix, const x509_crl *crl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int x509parse_crl_info </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>prefix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="struct__x509__crl.html">x509_crl</a> *&#160;</td>
          <td class="paramname"><em>crl</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns an informational string about the CRL. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>Buffer to write to </td></tr>
    <tr><td class="paramname">size</td><td>Maximum size of buffer </td></tr>
    <tr><td class="paramname">prefix</td><td>A line prefix </td></tr>
    <tr><td class="paramname">crt</td><td>The X509 CRL to represent</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The amount of data written to the buffer, or -1 in case of an error. </dd></dl>

</div>
</div>
<a class="anchor" id="ae07469859cb8e9de4779d31ee1c63d64"></a><!-- doxytag: member="x509.h::x509parse_crlfile" ref="ae07469859cb8e9de4779d31ee1c63d64" args="(x509_crl *chain, const char *path)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int x509parse_crlfile </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct__x509__crl.html">x509_crl</a> *&#160;</td>
          <td class="paramname"><em>chain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Load one or more CRLs and add them to the chained list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">chain</td><td>points to the start of the chain </td></tr>
    <tr><td class="paramname">path</td><td>filename to read the CRLs from</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, or a specific X509 error code </dd></dl>

</div>
</div>
<a class="anchor" id="a91ec44a937b911fe1032c99900920fd8"></a><!-- doxytag: member="x509.h::x509parse_crt" ref="a91ec44a937b911fe1032c99900920fd8" args="(x509_cert *chain, const unsigned char *buf, int buflen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int x509parse_crt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct__x509__cert.html">x509_cert</a> *&#160;</td>
          <td class="paramname"><em>chain</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>buflen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse one or more certificates and add them to the chained list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">chain</td><td>points to the start of the chain </td></tr>
    <tr><td class="paramname">buf</td><td>buffer holding the certificate data </td></tr>
    <tr><td class="paramname">buflen</td><td>size of the buffer</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, or a specific X509 error code </dd></dl>

</div>
</div>
<a class="anchor" id="a830b87ec90ed51fcdec55ad5fbe24251"></a><!-- doxytag: member="x509.h::x509parse_crtfile" ref="a830b87ec90ed51fcdec55ad5fbe24251" args="(x509_cert *chain, const char *path)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int x509parse_crtfile </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct__x509__cert.html">x509_cert</a> *&#160;</td>
          <td class="paramname"><em>chain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Load one or more certificates and add them to the chained list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">chain</td><td>points to the start of the chain </td></tr>
    <tr><td class="paramname">path</td><td>filename to read the certificates from</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, or a specific X509 error code </dd></dl>

</div>
</div>
<a class="anchor" id="a6d5f50efc32fb2d1ecb9a71345de6a89"></a><!-- doxytag: member="x509.h::x509parse_dn_gets" ref="a6d5f50efc32fb2d1ecb9a71345de6a89" args="(char *buf, size_t size, const x509_name *dn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int x509parse_dn_gets </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="struct__x509__name.html">x509_name</a> *&#160;</td>
          <td class="paramname"><em>dn</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Store the certificate DN in printable form into buf; no more than size characters will be written. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>Buffer to write to </td></tr>
    <tr><td class="paramname">size</td><td>Maximum size of buffer </td></tr>
    <tr><td class="paramname">dn</td><td>The X509 name to represent</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The amount of data written to the buffer, or -1 in case of an error. </dd></dl>

</div>
</div>
<a class="anchor" id="ad7a70dffe8f7e13e1a1099031302d9fe"></a><!-- doxytag: member="x509.h::x509parse_key" ref="ad7a70dffe8f7e13e1a1099031302d9fe" args="(rsa_context *rsa, const unsigned char *key, int keylen, const unsigned char *pwd, int pwdlen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int x509parse_key </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrsa__context.html">rsa_context</a> *&#160;</td>
          <td class="paramname"><em>rsa</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>keylen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>pwd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pwdlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse a private RSA key. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">rsa</td><td>RSA context to be initialized </td></tr>
    <tr><td class="paramname">key</td><td>input buffer </td></tr>
    <tr><td class="paramname">keylen</td><td>size of the buffer </td></tr>
    <tr><td class="paramname">pwd</td><td>password for decryption (optional) </td></tr>
    <tr><td class="paramname">pwdlen</td><td>size of the password</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, or a specific X509 error code </dd></dl>

</div>
</div>
<a class="anchor" id="a13b4022c81bd138610e902fb48709c9d"></a><!-- doxytag: member="x509.h::x509parse_keyfile" ref="a13b4022c81bd138610e902fb48709c9d" args="(rsa_context *rsa, const char *path, const char *password)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int x509parse_keyfile </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrsa__context.html">rsa_context</a> *&#160;</td>
          <td class="paramname"><em>rsa</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>password</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Load and parse a private RSA key. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">rsa</td><td>RSA context to be initialized </td></tr>
    <tr><td class="paramname">path</td><td>filename to read the private key from </td></tr>
    <tr><td class="paramname">pwd</td><td>password to decrypt the file (can be NULL)</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, or a specific X509 error code </dd></dl>

</div>
</div>
<a class="anchor" id="ae7b36f60674ea1937ba373e633420599"></a><!-- doxytag: member="x509.h::x509parse_time_expired" ref="ae7b36f60674ea1937ba373e633420599" args="(const x509_time *time)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int x509parse_time_expired </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="struct__x509__time.html">x509_time</a> *&#160;</td>
          <td class="paramname"><em>time</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check a given x509_time against the system time and check if it is valid. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">time</td><td>x509_time to check</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Return 0 if the x509_time is still valid, or 1 otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="a35cd90e3e1e232bd292619b95305f7ae"></a><!-- doxytag: member="x509.h::x509parse_verify" ref="a35cd90e3e1e232bd292619b95305f7ae" args="(x509_cert *crt, x509_cert *trust_ca, x509_crl *ca_crl, const char *cn, int *flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int x509parse_verify </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct__x509__cert.html">x509_cert</a> *&#160;</td>
          <td class="paramname"><em>crt</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>trust_ca</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>cn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Verify the certificate signature. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">crt</td><td>a certificate to be verified </td></tr>
    <tr><td class="paramname">trust_ca</td><td>the trusted CA chain </td></tr>
    <tr><td class="paramname">ca_crl</td><td>the CRL chain for trusted CA's </td></tr>
    <tr><td class="paramname">cn</td><td>expected Common Name (can be set to NULL if the CN must not be verified) </td></tr>
    <tr><td class="paramname">flags</td><td>result of the verification</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful or POLARSSL_ERR_X509_SIG_VERIFY_FAILED, in which case *flags will have one or more of the following values set: BADCERT_EXPIRED -- BADCERT_REVOKED -- BADCERT_CN_MISMATCH -- BADCERT_NOT_TRUSTED</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>TODO: add two arguments, depth and crl </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>