<!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 Page</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li id="searchli"> <div id="MSearchBox" class="MSearchBoxInactive"> <span class="left"> <img id="MSearchSelect" src="search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> </span><span class="right"> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </span> </div> </li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#define-members">Defines</a> | <a href="#typedef-members">Typedefs</a> | <a href="#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 "<a class="el" href="rsa_8h_source.html">polarssl/rsa.h</a>"</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  </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  </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  </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  </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  </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  </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  </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  </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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_ASN1_OUT_OF_DATA</b>   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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_ASN1_UNEXPECTED_TAG</b>   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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_ASN1_INVALID_LENGTH</b>   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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_ASN1_LENGTH_MISMATCH</b>   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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_ASN1_INVALID_DATA</b>   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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_FEATURE_UNAVAILABLE</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_PEM</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_FORMAT</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_VERSION</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_SERIAL</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_ALG</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_NAME</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_DATE</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_PUBKEY</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_SIGNATURE</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_UNKNOWN_VERSION</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_UNKNOWN_SIG_ALG</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_UNKNOWN_PK_ALG</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_SIG_MISMATCH</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_CERT_VERIFY_FAILED</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_INVALID_PEM</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_INVALID_VERSION</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_INVALID_FORMAT</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_INVALID_ENC_IV</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_UNKNOWN_ENC_ALG</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_PASSWORD_REQUIRED</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_KEY_PASSWORD_MISMATCH</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_POINT_ERROR</b>   -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 </td><td class="memItemRight" valign="bottom"><b>POLARSSL_ERR_X509_VALUE_TO_LENGTH</b>   -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 </td><td class="memItemRight" valign="bottom"><b>BADCERT_EXPIRED</b>   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 </td><td class="memItemRight" valign="bottom"><b>BADCERT_REVOKED</b>   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 </td><td class="memItemRight" valign="bottom"><b>BADCERT_CN_MISMATCH</b>   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 </td><td class="memItemRight" valign="bottom"><b>BADCERT_NOT_TRUSTED</b>   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 </td><td class="memItemRight" valign="bottom"><b>BADCRL_NOT_TRUSTED</b>   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 </td><td class="memItemRight" valign="bottom"><b>BADCRL_EXPIRED</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_BOOLEAN</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_INTEGER</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_BIT_STRING</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_OCTET_STRING</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_NULL</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_OID</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_UTF8_STRING</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_SEQUENCE</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_SET</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_PRINTABLE_STRING</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_T61_STRING</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_IA5_STRING</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_UTC_TIME</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_GENERALIZED_TIME</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_UNIVERSAL_STRING</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_BMP_STRING</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_PRIMITIVE</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_CONSTRUCTED</b>   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 </td><td class="memItemRight" valign="bottom"><b>ASN1_CONTEXT_SPECIFIC</b>   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 </td><td class="memItemRight" valign="bottom"><b>X520_COMMON_NAME</b>   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 </td><td class="memItemRight" valign="bottom"><b>X520_COUNTRY</b>   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 </td><td class="memItemRight" valign="bottom"><b>X520_LOCALITY</b>   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 </td><td class="memItemRight" valign="bottom"><b>X520_STATE</b>   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 </td><td class="memItemRight" valign="bottom"><b>X520_ORGANIZATION</b>   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 </td><td class="memItemRight" valign="bottom"><b>X520_ORG_UNIT</b>   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 </td><td class="memItemRight" valign="bottom"><b>PKCS9_EMAIL</b>   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 </td><td class="memItemRight" valign="bottom"><b>X509_OUTPUT_DER</b>   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 </td><td class="memItemRight" valign="bottom"><b>X509_OUTPUT_PEM</b>   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 </td><td class="memItemRight" valign="bottom"><b>PEM_LINE_LENGTH</b>   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 </td><td class="memItemRight" valign="bottom"><b>X509_ISSUER</b>   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 </td><td class="memItemRight" valign="bottom"><b>X509_SUBJECT</b>   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 </td><td class="memItemRight" valign="bottom"><b>OID_X520</b>   "\x55\x04"</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 </td><td class="memItemRight" valign="bottom"><b>OID_CN</b>   "\x55\x04\x03"</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 </td><td class="memItemRight" valign="bottom"><b>OID_PKCS1</b>   "\x2A\x86\x48\x86\xF7\x0D\x01\x01"</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 </td><td class="memItemRight" valign="bottom"><b>OID_PKCS1_RSA</b>   "\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01"</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 </td><td class="memItemRight" valign="bottom"><b>OID_RSA_SHA_OBS</b>   "\x2B\x0E\x03\x02\x1D"</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 </td><td class="memItemRight" valign="bottom"><b>OID_PKCS9</b>   "\x2A\x86\x48\x86\xF7\x0D\x01\x09"</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 </td><td class="memItemRight" valign="bottom"><b>OID_PKCS9_EMAIL</b>   "\x2A\x86\x48\x86\xF7\x0D\x01\x09\x01"</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> </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> </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> </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> </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> </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> </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> </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> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </td><td class="mdescRight">Verify the certificate signature. <a href="#a35cd90e3e1e232bd292619b95305f7ae"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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"> </td><td class="mdescRight">Unallocate all certificate data. <a href="#a5f1334782538ef0ac2ebf430b966fcc3"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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"> </td><td class="mdescRight">Unallocate all CRL data. <a href="#a99ed152b33d41e55cd14a78c7dcf7bef"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </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"> </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 <polarssl_maintainer at polarssl.org></p> <p>All rights reserved.</p> <p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.</p> <p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p> <p>You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. </p> </div><hr/><h2>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> * </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> * </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 </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 * </td> <td class="paramname"><em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>size</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </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> * </td> <td class="paramname"><em>crt</em> </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> * </td> <td class="paramname"><em>chain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>buflen</em> </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 * </td> <td class="paramname"><em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>size</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </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> * </td> <td class="paramname"><em>crl</em> </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> * </td> <td class="paramname"><em>chain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </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> * </td> <td class="paramname"><em>chain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>buflen</em> </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> * </td> <td class="paramname"><em>chain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </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 * </td> <td class="paramname"><em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </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> * </td> <td class="paramname"><em>dn</em> </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> * </td> <td class="paramname"><em>rsa</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>keylen</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>pwd</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>pwdlen</em> </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> * </td> <td class="paramname"><em>rsa</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>password</em> </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> * </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> * </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> * </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> * </td> <td class="paramname"><em>ca_crl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>cn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>flags</em> </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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Defines</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <hr class="footer"/><address class="footer"><small>Generated on Mon May 16 2011 for PolarSSL by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>